51单片机 用定时器T1控制两位数码管做从0计数到60的实验,每一秒加1,可是怎都不显示,求高手帮忙找原因

2025-03-12 02:32:15
推荐回答(2个)
回答1:

通过定时器初值可以看出单片机使用的是11.0592MHz晶振

把函数void dispiay(uchar ge,uchar shi)
改成void display(uchar shi,uchar ge)
即可编译通过

只是函数拼写错误和变量顺序错误

回答2:

第一个问题:
如果你的晶振是12M的话
你的TH1 和TL1 的设置,表示你大约定时20ms,20ms*20=400ms
你需要的是1s定时,不是400ms定时

第二个问题是:

你的函数定义是 void dispiay(uchar ge,uchar shi)
你的调用却是 display(shi,ge); //显示函数
两个形参是相反的

第三个问题:★★★★★★★★★这是最主要的问题所在
你的函数申明和定义中:void dispiay(uchar,uchar); 将其中的 l 错写成 i 了
但是你的函数调用却是拼写正确的,所以函数调用失败