ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:88.19KB ,
资源ID:1605161      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/1605161.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(DHT11数字温湿度传感器附1602显示程序已验证ok.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

DHT11数字温湿度传感器附1602显示程序已验证ok.docx

1、DHT11数字温湿度传感器附1602显示程序已验证okDHT11数字温湿度传感器(附1602显示程序)已验证okD7、DHT11引脚说明 8、DHT11温湿度1602液晶显示程序示例主程序:#include #include #include #include#includetypedef unsigned char U8; typedef unsigned int U16; U8 U8FLAG;U8 U8count,U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8 U8T_data_H_temp,U8

2、T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8 U8comdata;sbit P2_0 = P20 ;sbit P2_1 = P21 ;sbit P2_2 = P22 ;sbit P2_3 = P23 ;unsigned char str1=ShiDu:;unsigned char str2=WenDu:;void Delay(U16 j) U8 i; for(;j0;j-) for(i=0;i27;i+); void Delay_10us(void) U8 i; i-; i-; i-; i-; i-; i

3、-; void COM(void) U8 i; for(i=0;i8;i+) U8FLAG=2; /- P2_1=0 ; /T P2_1=1 ; /T /- while(!P2_0)&U8FLAG+); Delay_10us(); Delay_10us(); / Delay_10us(); U8temp=0; if(P2_0)U8temp=1; U8FLAG=2; while(P2_0)&U8FLAG+); /- P2_1=0 ; /T P2_1=1 ; /T /- /超时则跳出for循环 if(U8FLAG=1)break; /判断数据位是0还是1 / 如果高电平高过预定0高电平值则数据位为

4、 1 U8comdata=1; U8comdata|=U8temp; /0 /rof /-/-湿度读取子程序 -/-/-以下变量均为全局变量-/-温度高8位= U8T_data_H-/-温度低8位= U8T_data_L-/-湿度高8位= U8RH_data_H-/-湿度低8位= U8RH_data_L-/-校验 8位 = U8checkdata-/-调用相关子程序如下-/- Delay();, Delay_10us();,COM(); /-void RH(void) /主机拉低18ms P2_0=0; Delay(180); P2_0=1;/总线由上拉电阻拉高 主机延时20us Delay_

5、10us(); Delay_10us(); Delay_10us(); Delay_10us();/主机设为输入 判断从机响应信号 P2_0=1;/判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!P2_0) /T ! U8FLAG=2;/判断从机是否发出 80us 的低电平响应信号是否结束 while(!P2_0)&U8FLAG+); U8FLAG=2;/判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while(P2_0)&U8FLAG+);/数据接收状态 COM(); U8RH_data_H_temp=U8comdata; COM(); U8RH_da

6、ta_L_temp=U8comdata; COM(); U8T_data_H_temp=U8comdata; COM(); U8T_data_L_temp=U8comdata; COM(); U8checkdata_temp=U8comdata; P2_0=1;/数据校验 U8temp=(U8T_data_H_temp+U8T_data_L_temp+U8RH_data_H_temp+U8RH_data_L_temp); if(U8temp=U8checkdata_temp) U8RH_data_H=U8RH_data_H_temp; U8RH_data_L=U8RH_data_L_temp;

7、 U8T_data_H=U8T_data_H_temp; U8T_data_L=U8T_data_L_temp; U8checkdata=U8checkdata_temp; /fi /fivoid main()U8 shidu_shi,shidu_ge,wendu_shi,wendu_ge; LCD_init(); delay_nms(2); LCD_write_string(0,LINE1,str1); LCD_write_string(0,LINE2,str2); while(1) RH(); shidu_shi=0x30+U8RH_data_H/10; shidu_ge=0x30+U8R

8、H_data_H%10; / shidu_xs=0x30+U8RH_data_L/10; wendu_shi=0x30+U8T_data_H/10; wendu_ge=0x30+U8T_data_H%10; /wendu_xs=0x30+U8T_data_L/10; LCD_write_char(6,0,shidu_shi); LCD_write_char(7,0,shidu_ge); /LCD_write_char(9,0,shidu_xs); LCD_write_char(6,1,wendu_shi); LCD_write_char(7,1,wendu_ge); /LCD_write_ch

9、ar(9,1,wendu_xs); H 文件 ifndef lcd_H#define lcd_H#include #include /*/common part #define HIGH 1#define LOW 0#define TRUE 1#define FALSE 0#define ZERO 0 #define MSB 0x80#define LSB 0x01/*/lcd part#define LINE1 0#define LINE2 1#define LINE1_HEAD 0x80#define LINE2_HEAD 0xC0#define DATA_MODE 0x38#define

10、 OPEN_SCREEN 0x0C#define DISPLAY_ADDRESS 0x80#define CLEARSCREEN LCD_en_com(0x01)/*/change this part at different board#define LCDIO P1sbit LCD1602_RS=P24; sbit LCD1602_RW=P25; sbit LCD1602_EN=P26; /*/void LCD_Read_BF(void)unsigned char read=0; LCD1602_RS = LOW; /RS 0LCD1602_RW = HIGH; /RW 1LCD1602_EN = HIGH; /EN 1 Read BFLCDIO = 0xFF;do read = LCDIO;while(read&MSB);void LCD_en_com(unsigned char command) /写指令LCD_Read_BF(); LCD1602_RS = LOW; /RS 0 LCD1602_RW = LOW; /RW 0 LCD1602_EN = HIGH; /EN -|/_ Write commandLCDIO = command;LCD1602_EN = LOW;void LCD_en_dat(unsigned cha

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1