版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微电子工艺实验题目气压温度测量系统强洪学生姓名20121321027号学电子与信息工程学院学院电子科学与技术业专曹鸿霞指导教师月十一年五二O一日二十二目录目录...............................................错误!未定义书签。1系统描述.........................................错误!未定义书签。1.1课程设计题目....................................................21.2系统设计方案介绍................................................21.3方案论证........................................................32硬件电路设计......................................................32.1LCD1602液晶显示模块............................................32.1.1LCD1602原理图及引脚说明......................................42.1.2LCD1602操作时序..............................................52.2AT89C52单片机..................................................62.3DHT11传感器模块...............................................72.3.1DHT11原理图及引脚说明........................................72.3.2DHT11数据帧..................................................82.3.3DHT11电气特性................................................82.3.4DHT11操作时序...............................................92.4蜂鸣器模块....................................................102.5DHT11温湿度检测设计图........................................113软件程序设计.....................................................113.1程序流程图.....................................................113.2程序设计.......................................................123.2.1主程序.......................................................123.2.2LCD显示程序.................................................133.2.3蜂鸣器程序...................................................204实验结果.........................................................215实验总结.........................................................22参考文献...........................................................221测量气压温度测量系统洪强南京信息工程大学电子科学与技术,南京210044摘要本实验基于使用STC89C52单片机、DHT11传感器模块、1602液晶显示屏模块以及报警模块。简单明了的实现的可提要求。DHT11数字温湿度传感器把采集到的温湿度数据传给单片机。经过单片机的处理。准确的)显示到液晶屏上。并对温湿度设置上下限。越限报警。关键词:单片机DHT11传感器1602液晶显示屏STC89C52报警1系统描述1.1课程设计题目温度测量及显示要求:①基于52系列单片机平台和DHT11温湿度传感器完成温湿度的测量;②温度测量数据的显示,可以用LCD1602显示;③对温湿度设置上下限,超过限度报警1.2系统设计方案介绍电路总体上分为温湿度采集部分、中央处理器、显示模块以及报警模块部分。以STC89C52单片机最小系统作为核心控制电路,控制DHT11传感器采集的温湿度的转换,控制1602液晶屏的显示,以及蜂鸣器的报警。具体显示内容及方式由软件来完成。采集温湿度方面由DHT11传感器来完成,它是一个数字温湿度传感器、内置模数转换,可以直接与单片机相连接。而1602液晶屏是插针式,也可以直接与单片机相连接。因此不需要手动焊接等复杂的过程。具体步骤是:按照原理图将传感器、1602液晶显示屏分别接入单片机。通过DHT11传感器采集当前的温湿度值、再经单片机,将处理后的数据传送到液晶屏上显示出来。并且接入蜂鸣器。设置温度的上下限值。(如图一)2传感器传感器与之DHT1P2.0STC89C5控模字符液晶160P2.2~P2.4字符160晶与之相P0.7报警模图系统框图1方案论证1.3是一线式数字温度传感DS18B20方案一:选用DS18B20温度传感器作为温度检测模块。℃,误差范围在~8510℃55器。具有独特的单线式接口方式。测量范围在—℃~125℃,—℃。℃。最高精度可达0.0625-\+0.5-\+2%RH。。误差为HS1101是电容式湿度传感器。可测量相对湿度范围在0%~100%RH是一款集成型的数字温湿度作为设计的温湿度检测模块。DHT11方案二:选用DHT11一体传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓8测温元件,并与一个高性能NTC越的长期稳定性。传感器包括一个电阻式感湿元件和一个性价比极高等优点。抗干扰能力强、位单片机相连接。因此该产品具有品质卓越、超快响应、。完全符合本次℃,测湿精度为-\+2-\+5%RH,0℃~50℃。测温精度为测量范围20%~90%RH毕业设计的要求。但是第二中方案比较以上两种方案,虽然第一种方案在测量的精度方面比第二种更高,的电路、软件设计更简单,在功耗、范围等方面达到要求,故本设计采用方案二。硬件电路设计22.1LCD1602液晶显示模块液晶显示器是以点阵形式来显示字母、数字、符号和汉字的显示模块,显示内LCD1602。81616*2容范围为,即可以显示两行,每行个字符(即个汉字)3原理图及引脚说明2.1.1LCD1602LCD1602如下图2即为系统板中的原理图:原理图2LCD1602图该LCD1602采用16引脚,通过VL口电压来控制背光大小,液晶的各个引脚说明如表3所示:表3LCD1602引脚说明编号符号引脚说明编号符号引脚说明数据VSS9电源地1D2数据D310VDD2电源正极数据D4液晶显示偏压3VL11数据/数据4命令选择D512RS数据5/读写选择13R/WD6数据使能信号14D76E背光源正极数据D0715BLA背光源负极数据816D1BLK具体功能如下:1第脚:VSS为地电源。第正电源。5V接VDD脚:2为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,脚:3第VL对比度过高时会产生“鬼影”,使用时可以通过一个的电位器调整对比度。10K4第RS脚:为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。4第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第7~14脚:D0~D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。2.1.2LCD1602操作时序LCD1602的读写操作时序如下图4和图5所示:tSP1DB0-DB7tPWtRtDtHD1tHD2ValidDatatcRSR/WE读操作时序4图5R/WtHD1tsp1tRtpwtFtsp2tHD2ValidDatatcRSEDB7-DB0写操作时序图5单片机2.2AT89C52存Flash8K在线系统可编程是一种低功耗、高性能CMOS8位微控制器,具有AT89S52产品指令和引脚完80C51Atmel公司高密度非易失性存储器技术制造,与工业储器。使用拥有Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,全兼容。片上为众多嵌入式控制应用系统提供高,使得AT89S52CPU和在系统可编程Flash位灵巧的8,RAM,256字节AT89S52灵活、超有效的解决方案。具有以下标准功能:8k字节Flash26向量16个数据指针,三个位定时器/计数器,一个I/O32位口线,看门狗定时器,2静态逻辑0HzAT89S52级中断结构,全双工串行口,片内晶振及时钟电路。另外,可降至计数、定时器/停止工作,允许操作,支持2种软件可选择节电模式。空闲模式下,CPURAM内容被保存,振荡器被冻结,单片机一切RAM器、串口、中断继续工作。掉电保护方式下,52单片机最小系统图工作停止,直到下一个中断或硬件复位为止。下图为6最小系统图图6传感器模块DHT112.3传感器数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。DHT11位单片机相连接。产品为NTC测温元件,并与一个高性能8包括一个电阻式感湿元件和一个4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。2.3.1DHT11原理图及引脚说明所示:DHT11传感器原理图如下7传感器原理图DHT11图7(单总线,串口用来发收串行数据,即数据口。连接传感器的Pin2单片机的P2.0Pin2的上拉电阻,因此在传感器的20米,建议加一个5K。由于测量范围电路小于行数据)和VDD分别接单片机的电阻。而传感器的电源端口5KPin1和Pin4口与电源之间连接一个所示:传感器原件的电路原理图如下端。传感器的第三脚悬浮放置。GNDDHT1187DHT11电路原理图图8具体引脚如下3~5.5V。:(VDD),电源引脚,供电电压为Pin1),串行数据,单总线。:(DATAPin2,空脚,请悬浮。(NC)Pin3:,接地端,电源负极。(VDD)Pin4米时根据实际情况使用合适的上20,大于米时用建议连接线长度短于205K上拉电阻拉电阻。数据帧2.3.2DHT11一次通讯时采用单总线数据格式,之间的通讯和同步DATA用于微处理器与DHT11,,,当前小数部分用于以后扩展数据分小数部分和整数部分,具体格式在下面说明,间4ms左右:操作流程如下.现读出为零高位先出。一次完整的数据传输为40bit,湿度小数数据湿度整数数据+8bit:8bit数据格式温度小数数据温度整数数据+8bit+8bi温度湿度小数数据+8bi数据传送正确时校验和数据等于“8bit湿度整数数据+8bit位。+8bit温度小数数据”所得结果的末8整数数据电气特性2.3.3DHT11秒钟)T=25℃,除非特殊标注(采样周期间隔不得低于1,电气特性:VDD=5V的电气特性表8DHT118参数开始温湿度测量℃低于a℃高于b蜂鸣器铃响器铃蜂鸣显示数1602响据结束条件Mintypmax单位供电DC355.5V供电电流初始化延时测量0.52.5mA平均0.2温断判1mA待机100150uA采样周期秒1温度次操作时序DHT112.3.4等待主机开始信,发送一次开始信号后,DHT11从低功耗模式转换到高速模式用户MCU用户可选择读取部,,并触发一次信号采集的数据,DHT11发送响应信号,送出40bit号结束后如果没有接收到主机发送开,,DHT11接收到开始信号触发一次温湿度采集分数据.从模式下采集数据后转换到低速模式。不会主动进行温湿度采集.始信号,DHT11通讯图图9主机把总线拉低必须大于,响应,主机把总线拉低等待DHT11总线空闲状态为高电平等待主机开始信号,DHT11接收到主机的开始信号后能检测到起始信号。18毫秒,保证DHT11读取后,主机发送开始信号结束后,延时等待20-40us80us结束,然后发送低电平响应信号.总线或者输出高电平均可,,,DHT11的响应信号主机发送开始信号后,可以切换到输入模式由上拉电阻拉高。通讯图图109总线为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式见下面图示.如果读取响应信号为高电平,则DHT11没有响应,请检查线路是否连接正常.当最后一bit数据传送完毕后,DHT11拉低总线50us,随后总线由上拉电阻拉高进入空闲状态。数字0信号表示方法如下图12所示:图11数字信号0表示数字1信号表示方法如下图13所示图12数字1信号表示2.4蜂鸣器模块蜂鸣器是一种一体化结构的电子讯响器。采用直流电压供电,主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。蜂鸣器在电路中用字母“H”或“HA”(旧标准用“FM”、“LB”、“JD”等)表示。10蜂鸣器工作原理图图13DHT112.5温湿度检测设计图温湿度检测设计图图14DHT113软件程序设计3.1程序流程图11主程序流程图图163.2程序设计3.2.1主程序#include<reg51.h>#include<intrins.h>#include<absacc.h>8号无符/*definedforunsigned8-bitsintegervariabletypedefunsignedcharU8;*/位整型变量16无符号U16;/*definedforunsigned16-bitsintegervariabletypedefunsignedint*/位整型变量#definelcd_H#include<reg51.h>#defineHIGH1#defineLOW0#defineTRUE1#defineFALSE012#defineZERO0#defineMSB0x80#defineLSB0x013.2.2LCD显示程序#defineLINE10#defineLINE21#defineLINE1_HEAD0x80#defineLINE2_HEAD0xC0#defineDATA_MODE0x38#defineOPEN_SCREEN0x0C#defineDISPLAY_ADDRESS0x80#defineCLEARSCREENLCD_en_com(0x01)#defineLCDIOP1sbitLCD1602_RS=P2^4;//定义端口sbitLCD1602_RW=P2^3;sbitLCD1602_EN=P2^2;//----------------------------------------------////----------------IO口定义区--------------------////----------------------------------------------//sbitP2_0=P2^0;sbitSPK=P0^7;intt1,t2,ss;//----------------------------------------------////----------------定义区--------------------////----------------------------------------------//U8U8FLAG;U8U8count,U8temp;U8U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;13U8U8comdata;unsignedcharstr1[]={'s','h','i','d','u',':'};unsignedcharstr2[]={'w','e','n','d','u',':'};LCD_init();voidDelay(U16j){U8i;for(;j>0;j--){for(i=0;i<27;i++);}}voidDelay_10us(void){U8i;i--;i--;i--;i--;i--;i--;}voidCOM(void){U8i;for(i=0;i<8;i++){U8FLAG=2;while((!P2_0)&&U8FLAG++);14Delay_10us();Delay_10us();Delay_10us();U8temp=0;if(P2_0)U8temp=1;U8FLAG=2;while((P2_0)&&U8FLAG++);//超时则跳出for循环if(U8FLAG==1)break;//判断数据位是0还是1//如果高电平高过预定0高电平值则数据位为1U8comdata<<=1;U8comdata|=U8temp;//0}//rof}voidLCD_Read_BF(void){unsignedcharread=0;LCD1602_RS=LOW;LCD1602_RW=HIGH;LCD1602_EN=HIGH;LCDIO=0XFF;read=LCDIO;}voidLCD_en_com(unsignedcharcommand)//写指令{LCD_Read_BF();LCD1602_RS=LOW;LCD1602_RW=LOW;LCD1602_EN=HIGH;LCDIO=command;15LCD1602_EN=LOW;}voidLCD_en_dat(unsignedchardat)//写数据{LCD_Read_BF();LCD1602_RS=HIGH;LCD1602_RW=LOW;LCD1602_EN=HIGH;LCDIO=dat;LCD1602_EN=LOW;}voidLCD_set_xy(unsignedcharx,unsignedchary)//写入地址函数{unsignedcharaddress;if(y==LINE1)address=LINE1_HEAD+x;elseaddress=LINE2_HEAD+x;LCD_en_com(address);}voidLCD_write_char(unsignedcharx,unsignedchary,unsignedchardat)//写入字符函数{LCD_set_xy(x,y);LCD_en_dat(dat);}voidLCD_write_string(unsignedcharx,unsignedchary,unsignedchar*s)//写入字符串函数{LCD_set_xy(x,y);while(*s){LCDIO=*s;LCD_en_dat(*s);16s++;}}voidLCD_Init(void)//初始化函数{LCD_en_com(0x38);/*显示模式设置*/Delay(5);LCD_en_com(0x38);Delay(5);LCD_en_com(0x38);Delay(5);LCD_en_com(0x38);LCD_en_com(0x08);/*显示关闭*/LCD_en_com(0x01);/*显示清屏*/LCD_en_com(0x06);/*显示光标移动设置*/Delay(5);LCD_en_com(0x0C);/*显示开及光标设置*/}//--------------------------------//-----湿度读取子程序------------//--------------------------------//----以下变量均为全局变量--------//----温度高8位==U8T_data_H------//----温度低8位==U8T_data_L------//----湿度高8位==U8RH_data_H-----//----湿度低8位==U8RH_data_L-----//----校验8位==U8checkdata-----//----调用相关子程序如下----------//----Delay();,Delay_10us();,COM();17//--------------------------------voidRH(void){//主机拉低18msP2_0=0;Delay(180);P2_0=1;//总线由上拉电阻拉高主机延时20usDelay_10us();Delay_10us();Delay_10us();Delay_10us();//主机设为输入判断从机响应信号P2_0=1;//判断从机是否有低电平响应信号如不响应则跳出,响应则向下运行if(!P2_0)//T!{U8FLAG=2;//判断从机是否发出80us的低电平响应信号是否结束while((!P2_0)&&U8FLAG++);U8FLAG=2;的高电平,如发出则进入数据接收状态//判断从机是否发出80uswhile((P2_0)&&U8FLAG++);//数据接收状态COM();U8RH_data_H_temp=U8comdata;COM();U8RH_data_L_temp=U8comdata;COM();U8T_data_H_temp=U8comdata;COM();U8T_data_L_temp=U8comdata;COM();U8checkdata_temp=U8comdata;18P2_0=1;//数据校验U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp);if(U8temp==U8checkdata_temp){U8RH_data_H=U8RH_data_H_temp;U8RH_data_L=U8RH_data_L_temp;U8T_data_H=U8T_data_H_temp;U8T_data_L=U8T_data_L_temp;U8checkdata=U8checkdata_temp;}//湿度整数部分str1[6]=(char)(0X30+U8RH_data_H/10);str1[7]=(char)(0X30+U8RH_data_H_x0010_);//湿度小数部分str1[9]=(char)(0X30+U8RH_data_L/10);//温度整数部分str2[6]=(char)(0X30+U8T_data_H/10);str2[7]=(char)(0X30+U8T_data_H_x0010_);//温度小数部分str2[9]=(char)(0X30+U8T_data_L/10);t1=(int)(0X30+U8T_data_H/10);t2=(int)(0X30+U8T_data_H_x0010_);ss=t1*10+t2;}}voidxianshi(void){LCD_write_char(0x00,0,'s');LCD_write_char(0x01,0,'h');LCD_write_char(0x02,0,'i');LCD_write_char(0x03,0,'d');19LCD_write_char(0x04,0,'u');LCD_write_char(0x05,0,':');LCD_write_char(0x06,0,str1[6]);LCD_write_char(0x07,0,str1[7]);LCD_write_char(0x08,0,'.');LCD_write_char(0x09,0,str1[9]);LCD_write_char(0x0B,0,'%');LCD_write_char(0x0C,0,'R');LCD_write_char(0x0D,0,'
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025二手房贷款买卖版合同
- 建筑加固修复浮动价施工协议
- 权益投资收益共享协议
- 临时物业管理员聘用合同
- 酒店业务拓展员聘用协议
- 工业园区混凝土质量承诺书
- 城市自行车道铁艺栏杆施工合同
- 保险业务投资管理办法
- 皮革制品指导员聘用合同
- 五年级数学(小数乘除法)计算题专项练习及答案
- 2024年政府补贴协议书
- 2024年六年级语文下册全册单元教材分析
- 2024新苏教版一年级数学册第五单元第1课《认识11~19》课件
- 《Photoshop CC图形图像处理实例教程》全套教学课件
- 2024-2030年中国永磁耦合器行业经营优势及竞争对手现状调研报告
- 福建省泉州市安溪县实验小学2023-2024学年三年级上学期素养比赛语文试卷
- 小学科学教科版五年级上册全册易错知识点专项练习(判断选择-分单元编排-附参考答案和点拨)
- NB-T47003.1-2009钢制焊接常压容器(同JB-T4735.1-2009)
- 法律逻辑简单学(山东联盟)智慧树知到期末考试答案章节答案2024年曲阜师范大学
- 惠州市惠城区2022-2023学年七年级上学期期末教学质量检测数学试卷
- 北京市西城区2022-2023学年七年级上学期期末英语试题【带答案】
评论
0/150
提交评论