|
發(fā)布時間: 2020-1-29 21:19
正文摘要:#include<reg52.h> sbit A = P1^0; sbit C = P1^1; sbit E = P1^2; unsigned char code LedChar[]= {0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8, 0X80,0X90,0X88,0X83,0XC6,0XA1,0X86,0X8E }; void mai ... |
| 修改89C52芯片屬性的晶振頻率。 |
試一下看看
|
| 仿真和實際時間不一樣,和你當前的CPU的運行情況有關(guān) |
| if(cnt>=50) 50改成49, |
wulin 發(fā)表于 2020-1-31 08:46 謝謝您,參數(shù)是對的,就是不行 |
v115488 發(fā)表于 2020-1-31 21:22 謝謝您 |
| 用仿真做時鐘,跑不準的因素太多.先不說運行仿真的硬件因素,晶振就是一大問題,51單片機不使用定時計數(shù)器做時鐘,本身誤差就很大. |
你的程序定時器是按晶振頻率11.0592MHz設(shè)置20ms的,仿真時也得把單片機屬性里的時鐘設(shè)置一致,否則當然不準。
|
odfggf 發(fā)表于 2020-1-30 12:03 晶振是11.0592 不知道咋的就不對 |
王可樂_ 發(fā)表于 2020-1-30 10:43 改成您這個又快了一點 |
| 估計晶振頻率沒選對,這個對應(yīng)的11.059M晶振 |
| 你好,你的TH0應(yīng)該是B1,TL0應(yīng)該是E0,才是20ms,然后cnt=50的時候才是1秒 |
csmyldl 發(fā)表于 2020-1-30 09:51 10秒的話慢了2.7秒左右 |
csmyldl 發(fā)表于 2020-1-30 09:51 我還沒有學中斷,我看視頻一樣的程序,人家的可以實現(xiàn)1s,但是他直接用的板子,我這個仿真不知道為啥慢0.幾秒,求大神指點 |
| 定時計數(shù)器改用中斷方式或者修改TH0和TL0的值(慢改大,快改小) |
Powered by 單片機教程網(wǎng)