登录|立即注册|使用QQ帐号登录
论坛 > 51单片机
发帖|
看3196|回0|收藏
楼主 ID:605148 只看他
2020-2-28 14:21

系统功能简介
本系统所要完成的任务如下:
1)人性化的设计。界限温度值及湿度能够由用户根据不同的需求输入并通过显示器显示,能够实时、准确的显示当前的温度值与湿度值。
2)通过采集的温度值及湿度值,准确的判断预定值与当前值之间的差异,看是都符合预定值,及时的采取措施,使其到达设定的范围,若室内烟雾浓度过高时还会启动蜂鸣器报警装置,同时LED灯亮,从而达到提示的作用。
具体功能如下:
系统通过独立按键中的K1键选择改变最高温度、最低温度、最高湿度、最低湿度、烟雾浓度预定值,通过K2键调高设定的预定值,通过K3键调低设定的预定值。
当温度高于预定的最高值时,LED1灯亮,同时风扇工作;当温度低于预定的最低值时,LED2灯亮,同时由继电器控制的加热器工作;当湿度高于预定的最高值时,LED3灯亮;当湿度低于预定的最低值时,LED4灯亮;当烟雾浓度高于预定值时,蜂鸣器报警,LED灯亮。
2.2系统硬件设计
单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能,硬件上实现模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起,这种设计方法可以降低系统设计的复杂性。本系统主要硬件设计包括店员电路、蜂鸣器电路、LED显示电路,温湿度传感器电路等。

图片1.png
1核心电路
LCD显示电路的连接图如图2所示,第1脚和第2脚分别接到了电路的GND和VCC,这2个脚是液晶工作的电源输入脚。第3脚连接到地端,可通过调节该电位器来调节液晶的对比度。第4脚是液晶的寄存器控制脚。第5脚是液晶的读写控制脚第6脚是液晶的使能脚。第7脚到第14脚是液晶的数据/地址8位总线,接到了单片机的PO口上。
       图片2.png
2LCD显示电路
发光二极管简称为LED。 由含镓(Ga)、砷(As)、磷(P)、氮(N)等的化合物制成。在电路及仪器中作为指示灯,或者组成文字或数字显示。在本系统中,LED的作用是提示。在温度高于预定范围时LED1灯会亮,显示为绿色;在温度低于预定范围时LED2灯会亮,显示为黄色;在湿度高于预定范围时LED3灯会亮,显示为红色;在湿度低于预定范围时LED4灯会亮,显示为绿色;在烟感浓度高于设定值时LED灯会亮,显示为红色。LED的连接图如图3所示
图片3.png
3LED控制电路
图片4.png      
4电动机电路
蜂鸣器是-种一体化结构的电子讯响器,采用直流电压供电,可以用作发声器件。本设计使用的是电磁式蜂鸣器。电磁式蜂鸣器由振荡器、电磁线圈、磁铁、振动膜片及外壳等组成。接通电源后,振荡器产生的音频信号电流通过电磁线圈,使电磁线圈产生磁场。振动膜片在电磁线圈和磁铁的相互作用下,周期性地振动发声。蜂鸣器的连接图如图5所示:
                     图片5.png       
5蜂鸣器电路


图片6.png
6烟雾感应电路
键盘是人与单片机打交道的主要设备。其中独立键盘硬件电路简单,而且在程序设计上也不复杂本设计中由于采用的按键数量较少,只有3个按键,分别是“设置需要改变的参数”、“加”“减”进而选用了独立键盘的形式按键的连接图如图7所示:
                   图片7.png    
7按键输入电路

                      图片8.png
8温度传感器电路

                   图片9.png    
9湿度传感器电路

三、系统实现
此系统是基于c51单片机的集成系统,此系统中,运用DS18B20温度传感器检测温度,运用DHT11温度传感器来检查湿度,运用MQ-135空气质量传感器检测空气质量。
首先确定AT89C51芯片的引脚占用情况,设计占用引脚情况如下图
图片10.png
实验51hei.docx (827.27 KB)
(下载次数: 20, 2020-2-28 14:21 上传)

下载积分: 黑币 -5

10c51芯片引脚占用图
其中00-0724-27LCD显示屏占用引脚;3435363724为指示灯占用引脚;332221为按键占用引脚;20DS18B20传感器数据占用引脚;32HTD11湿度传感器占用引脚;17为蜂鸣器占用引脚;16为继电器占用引脚;15131211分别接AD数模转换中的CSDINDOUTCLK引脚;10为电动机占用引脚。
然后分别定义延时函数、写命令函数、写数据函数、LCD1602初始化函数、DHT11复位函数;
定义DHT11_Check()
DHT11检测函数,检测DHT11是否存在,如果DHT11不存在,则在显示屏上显示ERROR
定义DHT11_Init()
DHT11初始化函数,初始化成功返回0,失败返回1
定义DHT11_Read函数读取湿度值;
定义void ds18b20init()                //18b20初始化
定义void ds18b20wr(uint8 dat)          //18b20写数据
定义uint8 ds18b20rd()                  //18b20读数据
定义void key_pros()  //按键处理函数
运用if函数分别判断是哪个函数,判断出不同的按键运用if判断和flag值实现按键不同的功能
定义void data_pros()        //数据处理函数
当三个传感器读取数值之后,传入到数据处理函数,并通过公式计算出相应的数值用作显示和后期报警判断;
定义void sound()函数
此函数为蜂鸣器驱动函数,运用延迟函数实现蜂鸣器的间歇鸣响;
定义void baojingpros()函数
此函数为判断函数,用来判断传感器所检测到的数值,并与系统所设置的最高最低值判断,当数值处在正常值范围内,系统正常;当数值超过正常范围,这分别触动不同的报警反应。
定义main()函数
此函数为系统的主函数,用于调用相应函数并初始化报警设备。

51黑电子论坛

Powered by Discuz! X3.1

首页|标准版|触屏版|电脑版