《基于单片机的环境温度湿度检测仪课程设计(共20页).doc》由会员分享,可在线阅读,更多相关《基于单片机的环境温度湿度检测仪课程设计(共20页).doc(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上MC大学 环境温度湿度检测仪 题 目: 环境温度湿度检测仪 专 业: 电子信息工程 班 级: 电信XX班 姓 名: XXX 学 号: XX 指导老师: XXX 小组成员: XXX XXX XXX 成 绩: 专心-专注-专业环境温度湿度检测仪摘要环境温度湿度检测仪是生活乃至生产中不可或缺的重要仪器生活中,人们用检测仪可以精确的了解到当前空气的温湿度,采用适当的方法改变当前的环境湿度与温度,使人体舒适,不易生病(例如:长期生活在较潮湿的地方易得风湿病等)。在工业生产中,更是体现了检测仪的重要性,工厂的仓库是一个工厂的核心,仓库货物繁多,需要做到防潮、防霉、防腐、防爆,才能
2、保障储备物资的使用寿命和工作可靠性,只有在适当的温湿度下,才能做到对货物的长期储存,如若温湿度不当,就会造成一系列的损失甚至灾难(例如:货物的堆压可能导致内部温度过高引起自燃)。故环境温湿度检测仪是科学发展道路上不可少的仪器。此次课程设计主要通过单片机与温湿度传感器的硬件连接,以及对芯片内程序的烧写进行实现的,其中重点要使传感器所检测到的直面表达给人们看,能给人一目了然。目录一、总体设计单片机是一种芯片,是采用技术把具有数据处理能力的CPU随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到
3、一块硅片上构成的一个小而完善的微型系统,在工业控制领域的广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的32位300M的高速单片机。目前渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、全自动洗衣机的控制,以及程控玩具、等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械以及各种智能机械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。单片机广泛应用于仪器
4、仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及等领域。接下来就有我们从单片机的角度去制作出一个环境温湿度检测仪,检测其的实用性。二、课程设计任务及要求2.1设计任务利用单片机原理制作环境温湿度检测仪,需具备原理图、仿真图以及实物图,需对实物有详细的说明。1.设计一个有能在LCD1602液晶显示器精确显示温湿度的单片机设计(利用DHT11传感器);2.用简明的单片机电路实现。2.2设计步骤1.用DHT11温湿度传感器感受环境的温湿度情况,并能在LCD1602液晶显示器显示出温度以及湿度的值;2正确编写程序使之能驱动芯片;3. 正确选择各个原件,并选择其最佳值;4.首先需要用仿真设计电
5、路图(通过protues),通过Keil编写程序;5.利用Keil生成Hex文件,并在Protues仿真图上进行仿真;6.仿真设计完毕之后就通过仿真图进行实物的焊接(需注意各个原件的焊接情况,切勿焊接错,以防通电时烧坏芯片);7.对实物图进行烧写程序并启动实物图进行观察。三、电路及个元器件功能介绍3.1原件介绍3.1.1 AT89C52引脚图如下所示:AT89C52 有 40 个引脚,32 个外部双向输入/输出(I/O)端口,同时内含 2 个外中断口,3 个 16 位可编程定时计数器,2 个全双工串行通信口,2 个读写口线,AT89C52 可以按照常规方法进行编程,但不可以在线编程(S 系列的
6、才支持在线编程)。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复擦写的Flash 存储器可有效地降低开发成本,采用PDIP封装(塑料双列直插式封装),单片机的复位分为上电自动复位、按键手动复位两种和看门狗强制复位三种等。上电复位通常利用电容的充放电来实现。在这个例子中,我们采用按键电平复位。3.1.2 DHT11温湿度传感器 DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个 NTC 测温元件,并与一个高性能 8 位单片机相连接
7、。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个 DHT11 传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在 OTP 内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达 20 米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为 4 针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。应用:暖通空调、测试及检测设备、汽车、数据记录器、消费品、自动控制、气象站、家电、温度调节器、医疗、除湿器等等。3.1.3 LCD1602液晶显示器(带背光)
8、编号符号引脚说明 编号符号引脚说明1 GND 电源地 9 D2 数据2 VCC 电源正极 10 D3 数据3 VL 液晶显示偏压 11 D4 数据4 RS 数据/命令选择 12 D5 数据5 R/W 读/写选择 13 D6 数据6 E 使能信号 14 D7 数据7 D0 数据 15BLA 背光源正极8 D1 数据 16BLK 背光源负极1602LCD 主要技术参数:显示容量:162 个字符芯片工作电压:4.55.5V工作电流:2.0mA(5.0V)模块最佳工作电压:5.0V字符尺寸:2.954.35(WH)mm3.2 系统设计3.2.1结构的基本框图3.2.2系统原理图及工作原理 3.2.3驱
9、动执行程序#include #include typedef unsigned char unint8;typedef unsigned char unint16;unsigned char str1= ;unsigned char str2= ;unsigned char code dis1 = TEMP T: ;unsigned char code dis2 = HUMIRH: ;sbit TRH = P10;/温湿度传感器DHT11数据接入sbit ST = P11;/状态显示,是为了方便调试,具体使用的时候可以不要sbit LCD_RS = P25; sbit LCD_RW = P26
10、;sbit LCD_EN = P27;unint8 TH_data,TL_data,RH_data,RL_data,CK_data;unint8 TH_temp,TL_temp,RH_temp,RL_temp,CK_temp;unint8 com_data,untemp,temp;unint8 respond;void delayNOP() _nop_(); _nop_(); _nop_(); _nop_();void delay_ms(unsigned char ms) unsigned char i; while(ms-) for(i = 0; i 150; i+) _nop_(); _n
11、op_(); _nop_(); _nop_(); void delay_us() unint8 i; i-; i-; i-; i-; i-; i-; bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result);void lcd_wcmd(unsigned char cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _n
12、op_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; void lcd_wdata(unsigned char dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; void lcd_init() delay_ms(15); lcd_wcmd(0x38); /16*2显示,5*7点阵,8位数据 delay_ms(5); lcd_wcmd(0x
13、38); delay_ms(5); lcd_wcmd(0x38); delay_ms(5); lcd_wcmd(0x0c); /显示开,关光标 delay_ms(5); lcd_wcmd(0x06); /移动光标 delay_ms(5); /lcd_wcmd(0x01); /清除LCD的显示内容,如果屏幕过暗,可将这俩句删除 /delay_ms(5);void lcd_dis_pos(unsigned char pos) lcd_wcmd(pos | 0x80); /数据指针=80+地址变量char receive() unint8 i; ST=0; com_data=0; for(i=0;i
14、=7;i+) respond=2; while(!TRH)&respond+); delay_us(); delay_us(); delay_us(); if(TRH) temp=1; respond=2; while(TRH)&respond+); else temp=0; com_data=1; com_data|=temp; return(com_data); void read_TRH() /主机拉低18ms TRH=0; delay_ms(18); TRH=1; /DATA总线由上拉电阻拉高 主机延时20us delay_us(); delay_us(); delay_us(); d
15、elay_us(); /delay_us(); /delay_us();delay_us();delay_us();delay_us(); /主机设为输入 判断从机响应信号 TRH=1; /判断DHT11是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!TRH) respond=2; /判断DHT11发出 80us 的低电平响应信号是否结束 while(!TRH)& respond+); respond=2; /判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while(TRH & respond+); /数据接收状态 RH_temp = receive(); RL
16、_temp = receive(); TH_temp = receive(); TL_temp = receive(); CK_temp = receive(); TRH=1;ST=1; /数据校验 untemp=(RH_temp+RL_temp+TH_temp+TL_temp); if(untemp=CK_temp) RH_data = RH_temp; RL_data = RL_temp; TH_data = TH_temp; TL_data = TL_temp; CK_data = CK_temp; /湿度整数部分 str10 = (char)(0X30+RH_data/10); str
17、11 = (char)(0X30+RH_data%10); str12 = 0x2e; /小数点 /湿度小数部分 str13 = (char)(0X30+RL_data/10); str15 = 0X25; /% str16 = 0X52; /R str17 = 0X48; /H /温度整数部分 str20 = (char)(0X30+TH_data/10); str21 = (char)(0X30+TH_data%10); str22 = 0x2e; /小数点 /温度小数部分 str23 = (char)(0X30+TL_data/10); str25 = 0XDF; / str26 = 0
18、X43; /Cvoid main() unsigned char i,n=0x40,m; lcd_init(); delay_us(); while(1) read_TRH(); /写字符 for(i=0;i=7;i+) lcd_dis_pos(n+i); /显示字符 lcd_wdata(dis2i); lcd_dis_pos(i); /显示字符 lcd_wdata(dis1i); /写湿度数据 m=0x48; for(i=0;i=7;i+) lcd_dis_pos(m); lcd_wdata(str1i); m+; /写温度数据 m=0x08; for(i=0;i=7;i+) lcd_dis
19、_pos(m); lcd_wdata(str2i); m+; /延时 delay_ms(1000) ; 四、实物图的焊接以及程序的烧写4.1对照仿真图进行焊接并连线4.2 对单片机进行程序烧写(过程) 打开STC烧写软件,芯片类型选择实验所用的STC89C52,选择驱动运行程序为Hex文件。如下图所示:4.3实物烧写进程序并进行检测 从下面图中可以看到我们所做的温度湿度检测仪经过烧写程序之后成功运行,1602液晶上面第一行显示的“TEMP T:”为温度,可以看到当时实时温度为16,第二行显示的是“HUMIRH”为湿度,可以看到当时实时的相对湿度为26%,说明我们所做出来的成品硬件部分和程序都没有问题。五、心得与体会 附录1:元件清单元件名称规格元件个数(个)AT89C52RC40脚双列直插1单片机活座40P1DHT11温湿度传感器AOSONG-DHT1111602液晶显示器1602A1晶振12MHz1瓷片电容10pF2电解电容10F1排阻10K1可调电阻10K1自锁开关7*7MM1点触开关6*6*5MM1电阻10K1电阻1K1排针间距2.54MM若干排座间距2.54MM若干杜邦线双头1P若干单排圆孔插座间距2.54MM若干USB电源数据下载器USB转TTL19*15电路板2.54MM1附录2:参考文献1