DHT11测温湿度程序lcd1602显示_第1页
DHT11测温湿度程序lcd1602显示_第2页
DHT11测温湿度程序lcd1602显示_第3页
DHT11测温湿度程序lcd1602显示_第4页
DHT11测温湿度程序lcd1602显示_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DHT11测温湿度程序lcd1602显示#include#include#define uchar unsigned char #define uint unsigned int #define Data P0 / 数据端口sbit RS=P2A4;sbit RW=P2A5;sbit E=P2A6;sbit DHT=P1A0;uchar FirstLine =wen:00.00; /第一行数据uchar SecondLine=shi:00.00; /第二行数据unsigned char shiZ,shiX,wenZ,wenX,check;unsigned char tr_shiZ,tr_shi

2、X,tr_wenZ,tr_wenX;unsigned char flag;unsigned int n=20,m;void delay_1ms(unsigned int i) unsigned int j=88;for(;i0;i-)while(j0)j-;void delay_10us()unsigned char i; i-;i-;i-;i-;i-;i-;温湿度读取函数*/char read_data()unsigned char i,num,temp;num=0;for(i=0;i8;i+)flag=2;while(!DHT)&flag+);delay_10us();delay_10us

3、();delay_10us();if(DHT=1)temp=1;flag=2;while(DHT&flag+);elsetemp=0;num0;i-) for(j=100;j0;j-); void DelayUs(unsigned char us) /- unsigned char uscnt;uscnt=us1; /*12MHz 频率 */ while(-uscnt); void DelayMs(unsigned char ms) while(-ms)DelayUs(250);DelayUs(250);DelayUs(250);DelayUs(250);void lcd_write_com(

4、uchar c) / 写命令 DelayMs(5);/ 操作前短暂延时,保证信号稳定E=0;RS=0;RW=0;_nop_();E=1;Data=c;E=0;void lcd_write_dat(uchar c) / 写数据 DelayMs(5); / 操作前短暂延时,保证信号稳定 E=0;RS=1;RW=0;_nop_();E=1;Data=c;E=0;RS=0;void lcd_init() /LCD 初始化DelayMs(15);lcd_write_com(0x38); /display modelcd_write_com(0x38); /display modelcd_write_co

5、m(0x38); /display modelcd_write_com(0x06); /显示光标移动位置lcd_write_com(0x0c); /显示开及光标设置lcd_write_com(0x01); /显示清屏显示单个字符 4 位为 0xcvoid ShowChar(uchar pos,uchar c) / unsigned char p;if (pos=0x10) p=pos+0xb0; / 是第二行则命令代码高else p=pos+0x80; / 是第二行则命令代码高 4 位为 0x8 lcd_write_com(p);/ 写命令 lcd_write_dat(c); / 写数据voi

6、d ShowString (uchar line,char *ptr) /显示字符串unsigned char l,*p;p=ptr;l=line4;while(*p)!=0)ShowChar(l+,*(p);p+;void disp(void) /主函数调用的显示函数 ShowString(0,FirstLine);ShowString(1,SecondLine); void read_init()初始化及采集程序 */DHT=O; /主机使DHT11低电平并延时至少18ms delay_1ms(21);DHT=1; /主机置DHT11高电平2040us,并等待从机相应 delay_1Ous

7、();delay_10us();delay_10us();delay_10us();DHT=1;if(!DHT) / 从机发出相应信号flag=2; while(!DHT)&flag+);开始采集数据采集湿度整数部分 采集湿度小数部分 采集温度整数部分 采集温度小数部分 采集校验位flag=2; while(DHT&flag+); / tr_shiZ=read_data();/ tr_shiX=read_data();/ tr_wenZ=read_data();/ tr_wenX=read_data();/ check=read_data(); / DHT=1;void main()unsigned char temp; lcd_init();delay(50); while(1) disp();read_init();temp=tr_shiZ+tr_shiX+tr_wenZ+tr_wenX; if(check=temp)shiZ=tr_shiZ; shiX=tr_shiX; wenZ=tr_wenZ; wenX=tr_wenX;FirstLine4=0+wenZ/10;FirstLine5=0+wenZ%10;FirstLine

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论