51单片机300秒倒计时?

我要做的是0~300s倒计时,但是我做完后只能0~255,我猜测是uchar的原因,但不知道该怎么做,希望大佬解答一下

修改 num 的定义为 int num;

然后在中断例程中修改倒计时起始值即可;

另外,你的程序很有问题啊,抄谁的呀;

不该在中断例程里面加delayms()函数;

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-21
将num的uchar的类型改成uint,再将语句“num=255”改成“num=300”即可。追问

改成了uint num;和num=300;
但是显示的不是300,而是8.35,而且只有小数点后两位倒计时,
从35到0,然后变成99

追答

在主函数开始处加一条num=300;

追问

我改成num=301,从300开始,如果是num=300,会从299开始
非常感谢!!!!!!!!!!!!

追答

这是“先减1后再送显示,还是先送显示后再减1”的顺序问题。

本回答被提问者采纳