• / 16
  • 下载费用:5.98 积分  

单片机接口设计-温度湿度检测仪.docx

资源描述:
《单片机接口设计-温度湿度检测仪.docx》由本站会员分享,支持在线阅读,更多《单片机接口设计-温度湿度检测仪网友投稿.docx》相关的内容可在三九文库网上搜索。

《单片机接口设计》——温湿度检测仪学 院: 班 级: 学 号: 姓 名: 指导教师: 1. 2. 实验目的及设计要求:在第一阶段掌握绘图技能的基础上,根据所选择的课题——温湿度检测仪进行设计,包括硬件原理及电路板的设计,以及软件程序的设计,以实现对外界温湿度的准确检测,并实现相应的报警功能。可以进行合理的功能附加,已完成更好的功能设计。充分发挥所学知识,通过此课程设计进一步地了解我们所学的单片机知识,通过实践去检验知识的掌握,并利用它去深化知识层面。3. 硬件系统说明及原理图:1.原理图及相关介绍图一 温湿度检测仪原理图先通过查阅资料确定要使用的器件都有哪些。

1、并提前计算好电路中各部分的参数,查明所用器件所遵循的原理以设计电路,之后画出原理图。如图所示:将DHT11温湿度传感器,1602显示屏,及报警电路与主电路连接,形成我们所需的原理图,为下一步布板做铺垫,(要保证原理图正确无误,若出现错误立即认真地去发现并找出错误。)以实现所需功能。以下三张图分别为1602显示电路,有两个灯组成的分别担任超温报警和超湿报警的发光报警电路,和DHT11温湿度检测电路。将他们与主电路组合形成原理图电路。2.PCB图 画好原理图并检查无错误后,将其生成为PCB图,如图二所示为PCB图。图二 PCB图三.软件流程图及软件清单1。

2、软件流程图(1)DHT11流程图读取温湿度寄存器启动温湿度转换上图为DHT11温湿度传感器的工作流程图,它与微处理器之间采用单线数据格式进行同步通讯,通讯时间4ms左右。一次完整的数据传输40bit,高位先出。总线空闲状态为高电平,主机把总线拉低等待DHT11响应,必须大于18ms,保证DHT11接收到主机的开始信号后,等待主机开始信号结束后,发送低电平响应信号。延时20到40us后主机读取DHT11的响应信号,主机发送开始信号后,输出高电平,总线拉高。而总线为低电平,说明DHT11再把总线拉高80us,准备发送数据。

3、每一比特数据都以50us低电平时隙开始,高电平的长短决定数据位是0还是1。如读高电平,则DHT11没有响应,此时检查线路,当最后一比特数据传送完毕后,DHT11拉低总线50us,随后总线进入空闲状态。(2) LCD1602原理说明显示屏有两个重要端口,分别为RS和RW。RS进行寄存器选择,高电平选择数据寄存器,低电平选择指令寄存器。RW为读写信号线,高电平读,低电平写。RS,RW共同为低时可以写入指令或显示地址,RS为低,RW为高可以读信号,反之可以写入数据,E为使能端,当它有高电平变为低电平时,液晶模块执行命令。1602与单片机连接实现与温湿度传感器的通信。2.下面为所编的软件程序利用Keil软件编程。

4、为了方便在同一文件内分三部分编出各部分功能,以便编好的调试与改进。第一部分:1602显示屏部分#include #define uint unsigned int#define uchar unsigned char#define LCD_DATA P0sbit LED1 = P1^6;sbit LED2 = P1^7;sbit bit11 = P2^0;sbit LCD_RS = P2^1;sbit LCD_RW = P2^2;sbit LCD_EN = P2^3;void Delay_us(uchar n)。

5、void Delay_ms(uint n);// LCD1602部分 //向LCD写指令或数据void LCD_write_char(uchar cd , uchar ab);//向LCD1602中写入一字节数据void LCD_byte(uchar abc);//初始化LCDvoid init_LCD();//向LCD写入一字符串void LCD_write_str(unsigned char X , unsigned char Y , unsigned char *s); //LCD中显示字符的起始位置void LCD_set_xy(uchar x。

6、uchar y);//在液晶中显示浮点数函数void LCD_value(uchar x , uchar y , float f);// DHT11部分 char COM();void GetDHT11();第二部分:DHT11温湿度传感器部分void main(){ //测试 init_LCD(); LCD_write_str(0,0,"HELLO , MA");//液晶预显示 Delay_ms(2000); init_LCD(); while(1) { GetDHT11();

7、 F16T=30.21f; F16RH=75.00f; if(F16T>MaxT) {LED1 = 0; }if(F16RH>MaxRH) {LED2 = 0; } LCD_write_str(0,0,"T="); LCD_value(3,0,F16T); LCD_write_str(8,0,"C"); LCD_write_str(0,1,"RH="); LCD_value(4,1,F16RH); LCD_write_str(9。

8、1,"%"); Delay_ms(500);} }第三部分:单片机传输部分#include "LCDDHT11.h"#include #include #define uint unsigned int#define uchar unsigned charuchar U8T_data_H, U8T_data_L,U8RH_data_H, U8RH_data_L, U8checkdata;uchar U8FLAG;float F16T。

9、F16RH;void Delay_ms(uint n) // n毫秒延时函数{ char i, j; for(i=n;i<=0;i--) for(j=0;j<125;j++);}void Delay_us(uchar n) // n us延时函数{ n=n/2; while(--n);}void LCD_write_char(uchar cd , uchar ab){ Delay_us(20); if(cd==0) { LCD_RS = 1; LCD_byte(ab)。

10、 } else { LCD_RS = 0; LCD_byte(cd); }}void LCD_byte(uchar abc){ LCD_RW = 0; LCD_EN = 0; LCD_DATA = abc; Delay_ms(1); LCD_EN=1; Delay_ms(5); LCD_EN=0;}void init_LCD(){ LCD_write_char(0x38,0); //开显示 Delay_ms(1); LCD_write_char(0x38。

11、0); Delay_ms(1); LCD_write_char(0x38,0); Delay_ms(1); LCD_write_char(0x38,0); Delay_ms(1); LCD_write_char(0x0c,0); //开显示不显示光标 Delay_ms(1); LCD_write_char(0x06,0); //写一个指针加1 Delay_ms(1); LCD_write_char(0x01,0); //清屏 Delay_ms(1); LCD_write_char(0x80。

12、0); //设置数据指针起点 Delay_ms(1); }void LCD_set_xy(uchar x,uchar y){ uchar address; if(y==0) { address = 0x80 + x; } else { address = 0xc0 + x; } LCD_write_char(address , 0);}void LCD_write_str(unsigned char x , unsigned char y , unsigned char *s){ LCD_write_char(0。

13、""); LCD_set_xy(x,y); //写地址 while(*s) { LCD_write_char(0,*s);s++; }}void LCD_value(uchar x , uchar y , float f){ unsigned char str[20]; sprintf(str,"%.2f",f); LCD_write_str(x,y,str);}// DHT11部分 char COM(){ //U8FLAG=2; char i。

14、U8temp,U8comdata; for(i=0;i<8;i++) { while(!bit11); Delay_us(35); U8temp=0; if(bit11) U8temp=1; while(bit11); U8comdata<<=1; U8comdata|=U8temp; }return U8comdata;} void GetDHT11() { do { bit11=0; Delay_ms(20); bit11=1; Delay_us(60)。

展开阅读全文
 温馨提示:
下载提示
关于本文
本文标题:单片机接口设计-温度湿度检测仪.docx
链接地址:https://www.999doc.com/3925.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright © 2016-2021  999doc三九文库网 版权所有

经营许可证编号:苏ICP备2020069977号  网站客服QQ:772773258  联系电话:0518-83073133