单片机C编程,时钟,温度,湿度主程序问题。急急急

时钟程序是使用中断产生的,在最后主程序中,如果只放温度或湿度的子程序,可正常显示,但同时放温度和湿度子程序,则时间不准,先是走了2-3秒,之后就停了几秒,再走2-3秒。主程序的在一个while循环里,是否是温度和湿度子程序中的延时问题?

1,先测试下温度和湿度子程序运行完成需要多长时间,如果太长了,肯定出现你上面说的问题;
2,在运行温度和湿度子程序时,开启时钟中断,这样就不会出现时间不走的问题;
3,如果你没有使用时钟中断,你要在运行温度和湿度子程序的延进程序里加入读时钟程序,才能相对准一点。追问

怎么测试温度和湿度子程序运行完成需要多长时间,另外我时钟使用的是定时器1

追答

while(1)
{
LED=ON;
温度或温度程序
LED=OFF;
温度或温度程序
}
然后通过示波器观察LED这个管脚波形。

追问

就是我还需要加个LED?我已经做好在PCB板上了。有没有在主程序中使时钟和温度湿度分开同时运行?

追答

LED是一个IO口,你随便找一个IO试

追问

能不能时间使用一个中断,温度和湿度使用一个中断,在主程序中同时运行?

追答

时间设置为最高优先级是可以的!

追问

void tim1()interrupt 3 //定时中断程序
{ TR1=0; //关定时器
TH1=(65536-50000)/256;
TL1=(65536-50000)%256; //重新为定时器赋初值
TR1=1; //开定时器
flag++;
}
这是使用哪个中断啊?

追答

IE可以设的,把`TRI设为最高

追问

我不会哎,这种我老是弄不懂

温馨提示:答案为网友推荐,仅供参考
相似回答