完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include #include "Dogs102x6.h" #define CPU (1000000) #define delay_us(x) (__delay_cycles((double)x*CPU/1000000.0)) #define delay_ms(x) (__delay_cycles((double)x*CPU/1000.0)) #define HIGH P2OUT|= BIT1; #define LOW P2OUT &=~BIT1; unsigned char temph,templ,humdh,humdl,check,cal; char receive(void) //接受函数 { unsigned char num=0,tem,cnt; //临时变量用于存储接受数据 for(cnt=0;cnt<8;cnt++) { tem=0; while(!(P2IN&BIT1)); //等待14us的低电平结束 delay_us(30); if((P2IN&BIT1)) /////////长于30us定义为1 { tem=1; while((P2IN&BIT1)); //等待一位的采集结束 } num<<=1; num|=tem; } return num; } void receive_init() { P2DIR|=BIT1; LOW; delay_ms(20); HIGH; delay_us(30); //20--40 P2DIR &=~BIT1; if(!(P2IN&BIT1)); //从机发出响应信号 { while(!(P2IN&BIT1));//等待响应响应结束 while((P2IN&BIT1));//开始采集 humdh=receive(); humdl=receive(); temph=receive(); templ=receive(); check=receive(); } } void main( void ) { unsigned char str1[7]={}; unsigned char str2[6]={}; WDTCTL=WDTPW+WDTHOLD; UCSCTL4 |= SELS__DCOCLK ; // Ini_Lcd(); Dogs102x6_init(); Dogs102x6_clearScreen(); //清屏 // show_tishi(); while(1) { receive_init(); str1[0] =humdh/10; str1[1] =humdh%10; str1[2] ='.'; //小数点 //湿度小数部分 str1[3] = humdl/10; str1[4] = '%'; //"%" str1[5] = 'R'; //"R" str1[6] = 'H'; //"H" //温度整数部分 str2[0] =temph/10; str2[1] =temph%10; str2[2] ='.'; //小数点 //温度小数部分 str2[3] = templ/10; str2[4] = '`'; str2[5] = 'C'; //"C"*/ cal=humdh+humdl+temph+templ; if(cal==check) { Dogs102x6_init();//初始化LCD Dogs102x6_backlightInit(); Dogs102x6_setContrast(15); //设置对比度 Dogs102x6_setBacklight(11);//设置背光度 Dogs102x6_charDraw(1, 1, str1[0], 0); Dogs102x6_charDraw(1, 11, str1[1], 0); Dogs102x6_charDraw(1, 23, str1[2], 0); Dogs102x6_charDraw(1, 34, str1[3], 0); Dogs102x6_charDraw(1, 45, str1[4], 0); Dogs102x6_charDraw(1, 54, str1[5], 0); Dogs102x6_charDraw(1, 64, str1[6], 0); Dogs102x6_charDraw(2, 1, str2[0], 0); Dogs102x6_charDraw(2, 12, str2[1], 0); Dogs102x6_charDraw(2, 22, str2[2], 0); Dogs102x6_charDraw(2, 32, str2[3], 0); Dogs102x6_charDraw(2, 42, str2[4], 0); Dogs102x6_charDraw(2, 52, str2[5], 0); } } } 为什么温度湿度显示不出来,只显示一个点。如下图 |
|
相关推荐
11个回答
|
|
这个你得看看DHT11的芯片手册,。。。。。
|
|
|
|
感谢分享 顶一个
|
|
|
|
请问楼主问题解决了吗?
|
|
|
|
str1[0] =0x30+humdh / 10;少了个asc编码的前缀+0x30
|
|
|
|
有人在吗?
|
|
|
|
有人在吗?
|
|
|
|
有谁能帮我写一个俄罗斯方块游戏的程序啊!我急用,有价格好商量。
|
|
|
|
必须用msp430f249单片机的。
|
|
|
|
这些在数据手册里面有写,仔细翻翻就能看到。
|
|
|
|
|
|
|
|
数字要转成ASCII码,后面直接+'0'
|
|
|
|
只有小组成员才能发言,加入小组>>
3032个成员聚集在这个小组
加入小组2928 浏览 1 评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3601 浏览 2 评论
请问怎么把下面51单片机的代码改成msp430 g2 pocket的代码,还有改下时间变成30秒
2341 浏览 1 评论
4804 浏览 1 评论
2573 浏览 1 评论
1328浏览 3评论
MSP430FR5994 使用库函数 定时器触发AD问题请教
3601浏览 2评论
2928浏览 1评论
1510浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-29 18:23 , Processed in 1.716606 second(s), Total 102, Slave 84 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号