|
搞了一天了,下面是程序,麻烦各位大神帮忙看看- #include "msp430x14x.h"
- #include "Dht11.h"
- typedef unsigned char U8; /* defined for unsigned 8-bits integer variable 无符号8位整型变量 */
- typedef signed char S8; /* defined for signed 8-bits integer variable 有符号8位整型变量 */
- typedef unsigned int U16; /* defined for unsigned 16-bits integer variable 无符号16位整型变量 */
- typedef signed int S16; /* defined for signed 16-bits integer variable 有符号16位整型变量 */
- typedef unsigned long U32; /* defined for unsigned 32-bits integer variable 无符号32位整型变量 */
- typedef signed long S32; /* defined for signed 32-bits integer variable 有符号32位整型变量 */
- typedef float F32; /* single precision floating point variable (32bits) 单精度浮点数(32位长度) */
- typedef double F64; /* double precision floating point variable (64bits) 双精度浮点数(64位长度) */
- //
- //===============================================================================
- U8 U8temp;
- U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;
- U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;
- char receive(void) //接受函数
- {
- char tem,cnt=0; //临时变量用于存储接受数据
- while(cnt<8)
- {
- while(!(P3IN&BIT0)); //等待50us的低电平结束
- DelayNus(45);
- if(P3IN&BIT0) //长于30us定义为1
- {
- tem++;
- tem<<=1;
- while(P3IN&BIT0); //结束高电平
- }
- else
- {
- tem<<=1;
- }
- if(cnt!=7)
- while(!(P3IN&BIT0)); //最后一次给函数返回留下时间
- cnt++;
- }
- return tem;
- }
- void RH(void)
- {
- LOW;
- DelayNus(18000);
- HIGH;
- DelayNus(30);
- P3DIR&=~BIT0;
- while(P3IN&BIT0);
-
- while(!(P3IN&BIT0));
- while(P3IN&BIT0);
- //Data comes
- U8RH_data_H=receive();
- U8RH_data_L=receive();
- U8T_data_H=receive();
- U8T_data_L=receive();
- U8checkdata_temp=receive();
- U8checkdata=U8RH_data_H+U8RH_data_L+U8T_data_H+U8T_data_L;
- if(U8checkdata_temp==U8checkdata)
- {
- //LPM0;
- }
- }
复制代码 在定时器里对时间和温度进行显示的,同时放在主程序的话,12864液晶很容易乱码。。只有这样效果稍稍好点。求大神帮忙解答下。
这是完整工程
谢谢 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。
|