欢迎来到天天文库
浏览记录
ID:57295177
大小:1.16 MB
页数:17页
时间:2020-08-10
《基于单片机温湿度控制课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、设计思路温湿度采集传感器:DHT11实物图与单片机连接图DHT11时序主机发送请求信号从机发送应答信号位数据“0”的格式位数据“1”的格式温湿度显示:LCD1602引脚LCD_1602初始化一些重要指令:0x38设置16*2显示,5*7点阵,8位数据接口0x01清屏0x0F开显示,显示光标,光标闪烁0x08只开显示0x0e开显示,显示光标,光标不闪烁0x0c开显示,不显示光标0x06地址加1,当写入数据的时候光标右移0x02地址计数器AC=0;(此时地址为0x80)光标归原点,但是DDRAM中断内容不变0x18光标和显示一起向左移动160
2、2读写时序图总电路图程序如下:#include#includetypedefunsignedcharuchar;typedefunsignedintunint;unsignedcharstr1[]={""};unsignedcharstr2[]={""};unsignedcharcodedis1[]={"TRHRH:"};unsignedcharcodedis2[]={"TRHT:"};sbitTRH=P2^7;//温湿度传感器DHT11数据接入sbitLCD_RS=P2^3;sbitLCD_RW=
3、P2^4;sbitLCD_EN=P2^5;sbitjiare=P1^4;sbitjiangwen=P1^5;sbitzengshi=P1^6sbitjiangshi=P1^7;ucharTH_data,TL_data,RH_data,RL_data,CK_data;ucharTH_temp,TL_temp,RH_temp,RL_temp,CK_temp;ucharcom_data,untemp,temp;ucharrespond;voiddelayNOP(){_nop_();_nop_();_nop_();_nop_();}voiddel
4、ay_us()//5us级延时程序{uchari;i--;i--;i--;i--;i--;i--;}voiddelay_ms(unsignedcharms)//毫秒级延时子程序{unsignedchari;while(ms--){for(i=0;i<150;i++){_nop_();_nop_();_nop_();_nop_();}}}//测试LCD忙碌状态lcd_busy()为1时,忙,等待。lcd_busy()为0时,闲,可写指令与数据。bitlcd_busy(){bitresult;LCD_RS=0;LCD_RW=1;LCD_EN=
5、1;delayNOP();result=(bit)(P0&0x80);LCD_EN=0;return(result);}//写入指令数据到LCDvoidlcd_wcmd(unsignedcharcmd){while(lcd_busy());LCD_RS=0;LCD_RW=0;LCD_EN=0;_nop_();_nop_();P0=cmd;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}//写显示数据到LCD:RS=高电平,RW=低电平,E=高脉冲,D0-D7=数据。voidlcd_wdata(unsign
6、edchardat){while(lcd_busy());LCD_RS=1;LCD_RW=0;LCD_EN=0;P0=dat;delayNOP();LCD_EN=1;delayNOP();LCD_EN=0;}//LCD初始化设定voidlcd_init(){delay_ms(15);lcd_wcmd(0x38);//16*2显示,5*7点阵,8位数据delay_ms(5);lcd_wcmd(0x0c);//显示开,关光标delay_ms(5);lcd_wcmd(0x06);//移动光标delay_ms(5);lcd_wcmd(0x01);
7、//清除LCD的显示内容delay_ms(5);}//设定LCD显示位置voidlcd_dis_pos(unsignedcharpos){lcd_wcmd(pos
8、0x80);//数据指针=80+地址变量}//收发信号检测,数据读取charreceive(){uchari;com_data=0;for(i=0;i<=7;i++){respond=2;while((!TRH)&&respond++);delay_us();delay_us();delay_us();if(TRH){temp=1;respond=2;while((TRH)&&
9、respond++);}elsetemp=0;com_data<<=1;com_data
10、=temp;}return(com_data);}//读取温湿度子程序voidread_TRH(){T
此文档下载收益归作者所有