完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
哪位大虾帮我看看,哪里出错了!
//这个程序只检测湿度 #include //湿度位定义 ***it dht11 = P2^0; //存放两字节数据的数组 static unsigned char value_array[2]; static unsigned char code array[]= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //函数声明 void Delay_1ms(unsigned int ms);//延时 static void Delay_10us(void); //延时 10us static unsigned char ReadValue(void);//读一个字节的数据 static void SMG_Display(unsigned int value); //数码管显示 unsigned char ReadTempAndHumi(void);//读一次的数据,共五字节 int humi_value; int main(void) { //先等上电稳定 Delay_1ms(1000); //因为读一次数据dht11 才会触发一次采集数据. //即在先使用数据时采集一次数据 ReadTempAndHumi(); while(1) { //显示湿度 SMG_Display(humi_value); } return 0; } //延时 void Delay_1ms(unsigned int ms) { unsigned int x,y; for(x=ms;x>0;x--) { for(y=124;y>0;y--); } } //延时10us static void Delay_10us(void) { unsigned char i; i--; i--; i--; i--; i--; i--; } //*读一个字节的数据 static unsigned char ReadValue(void) { unsigned char count, value = 0, i; for(i=2;i>0;i--) { //高位在先 value <<= 1; count = 0; //每一位数据前会有一个50us 的低电平时间.等待50us 低电平结束 while(dht11==0); //26-28us 的高电平表示该位是0,为70us 高电平表该位1 Delay_10us(); Delay_10us(); Delay_10us(); //延时30us 后检测数据线是否还是高电平 if(dht11 != 0) { //进入这里表示该位是1 value++; //等待剩余(约40us)的高电平结束 while(dht11 != 0) { dht11 = 1; } } } return (value); } //读一次的数据,共两字节 unsigned char ReadTempAndHumi(void) { unsigned char i=0,check_value=0,count=0; dht11=0; //拉低数据线大于18ms 发送开始信号 Delay_1ms(20); //需大于18 毫秒 dht11=1; //释放数据线,用于检测低电平的应答信号 //延时20-40us,等待一段时间后检测应答信号,应答信号是从机拉低数据线80us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); if(dht11==0) { count = 0; dht11 = 1;//释放数据线 } //应答信号后会有一个80us 的高电平,等待高电平结束 while(dht11 != 0); //读出湿.温度值 for(i=0;i<2;i++) { value_array[i] = ReadValue(); check_value += value_array[i]; } humi_value = value_array[0]; return humi_value; } //数码管显示函数 static void SMG_Display(unsigned int value) { unsigned char ge,bai,shi; ge=value%10; shi=value%100/10; bai=value%1000/100; P0=array[bai]; Delay_1ms(2); P0=array[shi]; P0|=0x80; /*显示小数点*/ Delay_1ms(2); P0=array[ge]; Delay_1ms(2); } |
|
相关推荐
12 个讨论
|
|
|
俺也不懂 不过俺想要楼主的程序可否给?
|
|
|
|
|
|
|
|
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-11 14:13 , Processed in 1.089745 second(s), Total 65, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
7528