LCD上显示温湿度.doc

LCD上显示温湿度.doc

ID:55545713

大小:63.50 KB

页数:14页

时间:2020-05-16

LCD上显示温湿度.doc_第1页
LCD上显示温湿度.doc_第2页
LCD上显示温湿度.doc_第3页
LCD上显示温湿度.doc_第4页
LCD上显示温湿度.doc_第5页
资源描述:

《LCD上显示温湿度.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、12864LCD显示温湿度第一种方式:/**********************DHT11与12864LCD************************/#include#defineucharunsignedchar#defineuintunsignedintucharlcd_x,lcd_y,data_byte=0,count;uintTH_data,TL_data,RH_data,RL_data,CK_data;uintTH_temp,TL_temp,RH_temp,RL_t

2、emp,CK_temp;ucharnum;sbitRS=P2^0;//并行指令,数据选择信号sbitRW=P2^1;//读写信号sbitEN=P2^2;//并行使能信号sbitPSB=P2^3;//并串口选择信号sbitRST=P2^5;//复位信号sbitio=P1^0;//DHT11总线voidread_io();//开始信号,读数据并校验voiddelay(uinta);//延时函数voidLCD_init();//LCD初始化程序voidwrite_cmd(ucharcmd);//写指令voidw

3、rite_data(uchardat);//写数据bitcheck_busy();//检测LCD忙信号//voidclear_gcrom();//清除GCROMvoiddelay1();//10us延时voidlcd_dis_code(uintcmd_addr,ucharnum,uchardis[]);//显示函数voidlcd_pos(unsignedcharX,unsignedcharY);//LCD显示位置计算ucharcodelcd[]={"温湿度检测系统"};ucharcodelcd1[]={"

4、温度:"};ucharcodelcd2[]={"湿度:"};ucharcodelcd3[]={"℃"};ucharcodelcd4[]={"%RH"};ucharstr1[]={""};ucharstr2[]={""};voidmain(){uchark,j;LCD_init();lcd_dis_code(0x80,16,lcd);lcd_dis_code(0x88,9,lcd1);lcd_dis_code(0x98,9,lcd2);lcd_dis_code(0x8e,2,lcd3);lcd_dis_co

5、de(0x9e,5,lcd4);while(1){read_io();//读取温湿度数据//clear_gcrom();//湿度for(k=0;k<2;k++){lcd_pos(4,k+4);write_data(str1[k]);}//clear_gcrom();//温度for(j=0;j<2;j++){lcd_pos(3,j+4);write_data(str2[j]);}delay(500);}}voiddelay1()//延时10us{unsignedchari;for(i=0;i<3;i++);

6、}voidlcd_pos(unsignedcharX,unsignedcharY){unsignedcharpos;if(X==1){pos=0x80;}elseif(X==2){pos=0x90;}elseif(X==3){pos=0x88;}else{pos=0x98;}write_cmd(Y

7、pos);//数据指针=80+地址变量}/**********************DHT11模块**********************/ucharreceive_byte()//接收一个字节{ucha

8、ri,temp;for(i=0;i<8;i++){count=2;while((!io)&&count++)//等待50us低电平结束,并防止死循环temp=0;delay1();delay1();delay1();if(io==1){temp=1;count=2;while(io&&count++);}elsetemp=0;data_byte<<=1;data_byte

9、=temp;}return(data_byte);}voidread_io()//开始信号,读数据并校验{io=0;delay(18)

10、;//主机拉低18msio=1;//DATA总线由上拉电阻拉高主机延时20usdelay1();delay1();delay1();delay1();io=1;//主机设置为输入高电平,判断从机响应信号if(!io){count=2;while((!io)&&count++);//判断DHT11发出80us低电平响应信号是否结束count=2;while(io&&count++);//判断DHT11拉高总线80us高电平是否结

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。