全球旧事资料 分类
ay1temp0时间为26us28us表示接收的为数据0ifio1
temp1如果26us28us之后还为高电平则表示接收的数据为1whileio等待数据信号高电平0为26us28us1为70usdata_byte1接收的数据为高位在前右移data_bytetempretur
data_byte
voidreceive接收数据
ucharT_HT_LR_HR_Lcheck
um_checkistart开始信号io1主机设为输入判断从机DHT11响应信号ifio判断从机是否有低电平响应信号
whileio判断从机发出80us的低电平响应信号是否结束whileio判断从机发出80us的高电平是否结束如结束则主机进入数据接收状态R_Hreceive_byte湿度高位R_Lreceive_byte湿度低位T_Hreceive_byte温度高位
fT_Lreceive_byte温度低位checkreceive_byte校验位io0当最后一bit数据接完毕后从机拉低电平50usfori0i7i差不多50us的延时delay1io1总线由上拉电阻拉高进入空闲状态
um_checkR_HR_LT_HT_Lif
um_checkcheck判断读到的四个数据之和是否与校验位相同RHR_HRLR_LTHT_HTLT_Lcheck
um_check
voidmai
主函数模块
lcd_i
it初始化LCD
fwhile1
receive接收数据display0x00RLCD的第一行显示display0x01display0x02RH100x300x30表示带字库的LCD1602中0x30的位置放有数字0RH100x30即表示湿度的十位数字在字库RH100x30的位置处放着display0x03RH100x30display0X04display0x40TLCD的第二行显示display0x41display0x42TH100x30display0x43TH100x30display0x440xdf以下两个是温度单位的处理display0x450x43
f另附效果图:
fr
好听全球资料 返回顶部