- /*******************************************************************************
- * 函 数 名 : main
- * 函数功能 : 主函数
- * 输 入 : 无
- * 输 出 : 无
- *******************************************************************************/
- void main()
- {
-
- while(1)
- {
-
- LcdDisplay(Ds18b20ReadTemp());
- }
- /*******************************************************************************
- * 函 数 名 : Ds18b20ReadTemp
- * 函数功能 : 读取温度
- * 输 入 : com
- * 输 出 : 无
- *******************************************************************************/
- int Ds18b20ReadTemp()
- {
- int temp = 0;
- uchar tmh, tml;
- Ds18b20ChangTemp(); //先写入转换命令
- Ds18b20ReadTempCom(); //然后等待转换完后发送读取温度命令
- tml = Ds18b20ReadByte(); //读取温度值共16位,先读低字节
- tmh = Ds18b20ReadByte(); //再读高字节
- temp = tmh;
- temp <<= 8;
- temp |= tml;
- return temp;
- }
- 为了扩展应用,我在主函数中定义了个P2.0口,在while死循环中判断
- void main()
- {
-
- sbit LED=P2.0
- LED=1;
- int wd = Ds18b20ReadTemp();
- while(1)
- {
- if(wd > 29)
- {
- LED=0;
- }
- LcdDisplay(Ds18b20ReadTemp());
- }
复制代码运行出来P2.0口一直是0(低电平)
定义的int wd值(Ds18b20ReadTemp()函数返回值)应可以直接和29进行比较吧?
请帮忙诊断下。
一周热门 更多>