- 1、本文档共19页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
;设计思路;温湿度采集传感器:DHT11;DHT11时序;温湿度显示:LCD1602;1602读写时序图;总电路图;程序如下:;voiddelayNOP()
{
_nop_();
_nop_();
_nop_();
_nop_();
}
voiddelay_us()//5us级延时程序
{
uchari;i--;
i--;
i--;
i--;
i--;
i--;
};voiddelay_ms(unsignedcharms)//毫秒级延时子程序
{
unsignedchari;while(ms--)
{
for(i=0;i150;i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}; //测试LCD忙碌状态lcd_busy()为1时,忙,等待。lcd_busy()为0时,闲,可写指令与数据。
bitlcd_busy()
{
bitresult;
LCD_RS=0;
LCD_RW=1;
LCD_EN=1;
delayNOP();
result=(bit)(P00x80);
LCD_EN=0;
return(result);
};//写入指令数据到LCD
voidlcd_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(unsignedchardat)
{
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);
delay_ms(5);
lcd_wcmd(0x0c);
delay_ms(5);
lcd_wcmd(0x06);
delay_ms(5);
lcd_wcmd(0x01);
delay_ms(5);
};//设定LCD显示位置
voidlcd_dis_pos(unsignedcharpos)
{
lcd_wcmd(pos|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)respond++);
}
else
temp=0;
com_data=1;
com_data|=temp;
}
return(com_data);
};//读取温湿度子程序
voidread_TRH()
{
TRH=0;
delay_ms(18);
TRH=1;
delay_us();
delay_us();
delay_us();
delay_us();
if(!TRH)
{
respond=2;
while((!TRH)respond++);
respond=2;
while(TRHrespond++);
//数据接收状态
RH_temp=receive();RL_temp=receive();TH_temp=receive();TL_temp=receive();CK_temp=receive();;//显示字符;if(TH_data34)
{
jiare=1;Jiangwen=0;
}
文档评论(0)