1、目 录第一章 绪论 1.1 绪论 1.2温度系统的组成 1.3单片机的发展 1.4传感器的发展第二章 系统的组成 2.1 传感器DHT11介绍 2.2 单片机STC89C52介绍 2.3液晶1602介绍 2.4接口电路第三章 硬件电路设计 第四章 程序设计第五章 附录 第一章 绪论 1.1毕业论文(设计)题目的来源 传感器是现代电子信息技术的关键技术之一,其应用广泛,从家用电器到工业设备,道路交通,无处不体现着传感器的方便,快捷为人类提供了极大的便利。不管是在生活之中还是在地球轨外围的卫星轨道上,我们时刻都在享受着天气预报给我们带来的乐趣。在各行各业之中。温度是一个重要的指标,他展现着某个环境
2、是否在安全范围之类,一旦温度异常将会给人类的社会活动工农业生产带来巨大不利因素。所以时时刻刻对温度进行监控是必要的安全措施。作为一对双胞胎湿度也无时不刻的影响这我们的一切:小到穿衣防寒因此了解我们所处环境的湿度对我们生活大有益处。 在21世纪,传感器技术和计算机技术、通信技术并成为当今现代信息技术。三者分工合作:传感器相当于人的感官器官,将所有搜集到的周围规定的被测量目标的变化;通信技术则相当于人的神经负责将传感器搜集到的数据信息传递给大脑计算机:计算机则负责一切数据的处理并作出判断。 所以利用传感器可以准确的测量我们所需要的信息。作为和我们最为密切的一对参数温度和湿度的测量是不可或缺的。测量
3、部分显示部分1.2 温湿度测量系统的组成 控制部分 温湿度测量系统由控制部分、测量部分和显示部分组成。控制部分采用单片机STC89C52;测量部分采用集A/D转换功能、温度测量、湿度测量集于一体的DHT11传感器;显示部分采用液晶屏1602。 1.3 单片机发展 1.4传感器的发展和介绍第二章 系统的组成 在第一章中我们已经介绍该系统由控制部分、测量部分和显示部分组成。现在我们来分系统介绍。2.1 单片机89C52 此系统采用常用的STC89C52单片机STC89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随
4、机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可提供许多较复杂系统控制应用场合。 STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。STC89C52是51系列单片机
5、的一个型号,它是ATMEL公司生产的。 可以直接替换,只是 内部多了一个 EEPROM 空间,可以 串口下载程序,指令执行速度快一倍。 51系列单片机介绍主要功能特性u 兼容MCS51指令系统u 8k可反复擦写(1000次)Flash ROM u 32个双向I/O口 ? 256x8bit内部RAM u 3个16位可编程定时/计数器中断 ? 时钟频率0-24MHz u 2个串行中断 u 可编程UART串行通道 u 2个外部中断源 u 共8个中断源 u 2个读写中断口线 u 3级加密位 u 低功耗空闲和掉电模式 u 软件设置睡眠和唤醒功能 8051单片机的引脚功能 MCS-51系列单片机一般采用4
6、0个引脚,双列直插式封装,用HMOS工艺制造,其外部引脚排列如图所示。其中,各引脚的功能为: (a)DIP引脚图 (b) 逻辑符号 8051单片机的引脚介绍 主电源引脚: Vcc(40脚):接5V电源正端 Vss(20脚):接5V电源地端一般Vcc和Vss间应接高频去耦电容和低频滤波电容。 外接晶体或外部振荡器引脚XTAL1(19脚):接外部晶振的一个引脚。在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器OSC。当采用外部振荡器时,此引脚应接地。XTAL2(18脚):接外部晶振的另一个引脚。在片内接至反相放大器的输出端和内部时钟电路的输入端。当采用外部振荡器时,此脚接外部振
7、荡器的输出端。 控制信号线RST/VPD(9脚):复位信号输入端,复位/掉电时内部RAM的备用电源输入端ALE/ (30脚):地址锁存允许/编程脉冲输入。用ALE锁存从P0口输出的低8位地址;在对片内EPROM编程时,编程脉冲由此输入。 (29脚):外部程序存储器读选通信号,低电平有效。 /VPP(31脚):访问外部存储器允许/编程电压输入。EA为高电平时,访问内部存储器;低电平时,访问外部存储器。对片内EPROM编程时,此脚接21V编程电压。 多功能I/O口引脚8051单片机设有4个双向I/O口(P0、P1、P2、P3),每一组I/O口线都可以独立地用作输入或输出口,其中: 1. P0口为(
8、3239脚)双向口(三态),可作为输入/输出口,可驱动8个LSTTL门电路。实际应用中常作为分时使用的地址/数据总线口,对外部程序或数据存储器寻址时低8位地址与数据总线分时使用P0口:先送低8位地址信号到P0口,由地址锁存信号ALE的下降沿将地址信号锁存到地址锁存器后,再作为数据总线的口线对数据进行输入或输出。 2. P1口(18脚)准双向口(三态),可驱动4个LSTTL门电路。用作输入线时,口锁存器必须由单片机先写入“1”,每一位都可编程为输入或输出线。 3. P2口(2128)准双向口(三态),可驱动4个LSTTL门电路。可作为输入/输出口,实际应用中一般作为地址总线的高8位,与P0口一起
9、组成16位地址总线,用于对外部存储器的接口电路进行寻址。 4. P3口(1017脚)准双向口(三态),可驱动4个LSTTL门电路。双功能口,作为第一功能使用时,与P1口一样;作为第二功能使用时,每一位都有特定用途,其特殊用途如表所示:端口引脚第二功能注 释P3.0RXD串行口数据接收端P3.1TXD串行口数据发送端P3.2/INT0外中断请求0P3.3/INT1外中断请求1P3.4T0定时/计数器0外部计数信号输入P3.5T1定时/计数器1外部计数信号输入P3.6/WR外部RAM写选通信号输出P3.7/RD外部RAM读选通信号输出2.2 DHT11介绍DHT11特点u 相对湿度和温度测量u 全
10、部校准,数字输出 u 卓越的长期稳定性 u 无需额外部件u 超长的信号传输距离 u 超低能耗u 4 引脚安装u 完全互换 DHT11产品概述DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
11、单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。 其中电源引脚的供电电压为 3.5-5.5V。传感器上电后,要等待 1s 以越过不稳定状态在此期间不要发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。 DHT11典型应用电路如图所示,其连接电路简单,只需要占用控制器一个I/O口即可完成上下位的连接。建议连接线长度短于20时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻,图 DHT11典型应用电路 DHT112.3 液晶160
12、2介绍1602液晶简介1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的 比不带背光的厚,是否带背光在应用中并无差别,此设计采用的是带背光16脚,两者尺寸差别如下图所示:1602LCD主要技术参数:显示容量:162个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm2.4接口电路本设计采用USB接口供电,电源电压5V。同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。其电路原理如图所示:第三章 硬件电路设计3.1单片机电路 通过K2、K3、K4、K5为4个调节按键分
13、别用来调节温度和湿度的上限和下线。其中K2为温度上限增加,K3为温度上限减小,K4为湿度上限增加,K5为湿度上限减小。3.2传感器接线 DHT11的连线 DHT11数字湿温度传感器采用单总线数据格式,即单个数据引脚端口完成输入输出双向传输。其数据包由5Byte(40Bit)组成。一次通讯时间最大3ms,数据分小数部分和整数部分。 一次完整的数据传输为40bit,高位先出。 数据格式如表:表 DHT11数据格式 配用EEPROM芯片AT24C04,使存储的温度上下限和湿度上下限可以掉电永久保存。温湿度阈值存储在EEPROM芯片AT24C04中,并可以通过K2K5按键调节并保存。3.3显示部分 1
14、602接线图引脚功能1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极 第四章程序设计 4.1 main.c主程序编写#include #include 1602.h#include dht.h#include 2402.h(2) 管脚定义sbit Led_qushi=P16; /去湿灯sbit Le
15、d_jiangwen=P15;/降温灯sbit Led_shengwen=P14;/升温灯sbit Key_TH1 = P32;sbit Key_TH2 = P33;sbit Key_HH1 = P34;sbit Key_HH2 = P35;(3) 常量、变量定义/定义标识volatile bit FlagStartRH = 0; /开始温湿度转换标志volatile bit FlagKeyPress = 0; /有键按下/定义温湿度传感器用外部变量extern U8 U8FLAG,k;extern U8 U8count,U8temp;extern U8 U8T_data_H,U8T_data
16、_L,U8RH_data_H,U8RH_data_L,U8checkdata;extern U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp;extern U8 U8checkdata_temp;extern U8 U8comdata;extern U8 count, count_r;U16 temp;S16 temperature, humidity;S16 idata TH, HH; /温度上限和湿度上限char * pSave;U8 keyvalue, keyTH1, keyTH2, keyHH1,
17、keyHH2;U16 RHCounter;(4) 各子程序/数据初始化void Data_Init() RHCounter = 0; Led_qushi = 1; Led_jiangwen = 1; Led_shengwen = 1; TH = 40; HH = 85; keyvalue = 0; keyTH1 = 1; keyTH2 = 1; keyHH1 = 1; keyHH2 = 1;/定时器0初始化void Timer0_Init()ET0 = 1; /允许定时器0中断TMOD = 1; /定时器工作方式选择TL0 = 0x06; TH0 = 0xf8; /定时器赋予初值TR0 = 1
18、; /启动定时器/定时器0中断void Timer0_ISR (void) interrupt 1 using 0TL0 = 0x06;TH0 = 0xf8; /定时器赋予初值/每2秒钟启动一次温湿度转换 RHCounter +; if (RHCounter = 1000) FlagStartRH = 1; RHCounter = 0; /存入设定值、void Save_Setting() pSave = (char *)&TH; /地址低位对应低8位,高位对应高8位 wrteeprom(0, *pSave); /存温度上限值TH低8位 DELAY(500); pSave +; wrteepr
19、om(1, *pSave); /存温度上限值TH高8位 DELAY(500); pSave = (char *)&HH; wrteeprom(2, *pSave); /存湿度上限值RH低8位 DELAY(500); pSave +; wrteeprom(3, *pSave); /存湿度上限值RH高8位 DELAY(500);/载入设定值、void Load_Setting() pSave = (char *)&TH; *pSave+ = rdeeprom(0); *pSave = rdeeprom(1); pSave = (char *)&HH; *pSave+ = rdeeprom(2);
20、*pSave = rdeeprom(3); if (TH99)|(TH99)|(HH0) HH = 85;void KeyProcess(uint num) switch (num) case 1: if (TH1) TH-; L1602_char(1, 15, TH/10+48); L1602_char(1, 16, TH%10+48); break; case 3: if (HH1) HH-; L1602_char(2, 15, HH/10+48); L1602_char(2, 16, HH%10+48); break; default: break; Save_Setting();(5)
21、 main()函数void main() U16 i, j, testnum; EA = 0;Timer0_Init(); /定时器0初始化 Data_Init();EA = 1;L1602_init();L1602_string(1,1, Welcome to T&H );L1602_string(2,1, Control System! );/延时for (i=0;i1000;i+) for (j=0;j TH) Led_jiangwen = 0;else Led_jiangwen = 1; /降温if (humidity HH) Led_qushi = 0;else Led_qushi
22、= 1;/去湿 /键盘查询,在弹起时响应if (Key_TH1)&(keyTH1=0) FlagKeyPress = 1; keyvalue = 1; else if (Key_TH2)&(keyTH2=0) FlagKeyPress = 1; keyvalue = 2; else if (Key_HH1)&(keyHH1=0) FlagKeyPress = 1; keyvalue = 3; else if (Key_HH2)&(keyHH2=0) FlagKeyPress = 1; keyvalue = 4;if (FlagKeyPress = 1) KeyProcess(keyvalue); FlagKeyPress = 0; if (!Key_TH1) keyTH1 = 0;else keyTH1 = 1; if (!Key_TH2) keyTH2 = 0;else keyTH2 = 1; if (!Key_HH1) keyHH1 = 0;else keyHH1 = 1; if (!Key_HH2) keyHH2 = 0;else keyHH2 = 1;
版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。
Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1
陕公网安备 61072602000132号 违法和不良信息举报:0916-4228922