在lcd1602上分时显示 出现问题

2019-07-18 11:55发布

我用8个ds18b20测量温度然后分两组先后显示在lcd1602上 (因为8组温度显示不完,所以先显示1-4通道,再显示5-8通道),两组单独显示时没的问题,但是一起显示的时候就出现了问题(我用了一个i/o口),估计是程序有问题。大神来解答啊
3.png
1.png
2.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
8条回答
dengxc
2019-07-18 20:41
        你5-8通道的温度检测和显示为何要在定时器的中断服务函数中进行?你的显示函数应该没有问题,但你没有注意到DS18B20检测一次温度的时间是多少?假设你的系统时钟频率为12MHz,定时器每10000个机器周期中断一次,标准51单片机中断一次的时间为10ms;DS18B20设置为9位温度数据时,标准转换时间为93.75ms,设置为12位温度数据时,标准转换时间为750ms,4个通道的温度转换及显示需要的时间比一次中断的时间要大;所以,当计时3秒到达时,你要进行温度转换和显示,结果正在进行某通道的转换或显示时,定时器溢出并再次请求中断,由于定时器中断未返回,程序执行出错。

一周热门 更多>