找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3140|回復: 8
收起左側

單片機中斷程序疑問

[復制鏈接]
回帖獎勵 10 黑幣 回復本帖可獲得 10 黑幣獎勵! 每人限 1 次
ID:1079270 發(fā)表于 2023-6-26 09:33 | 顯示全部樓層 |閱讀模式
void InterruptTimer0() interrupt 1
{
TH0 = 0xFC; //重新加載初值
TL0 = 0x67;
cnt++; //中斷次數計數值加 1
if (cnt >= 1000) //中斷 1000 次即 1 秒
{
cnt = 0; //清零計數值以重新開始下 1 秒計時
flag1s = 1; //設置 1 秒定時標志為 1
}
LedScan();
}
問:這里的LedScan();是920us刷新一次嗎?問:為什么fc67習慣說是1ms?


回復

使用道具 舉報

ID:884147 發(fā)表于 2023-6-26 10:19 | 顯示全部樓層
初值是根據晶振頻率計算的,首先確定使用多大的晶振,是11.0592還是12M還是......
回復

使用道具 舉報

ID:1079270 發(fā)表于 2023-6-26 10:33 | 顯示全部樓層
mtdzok 發(fā)表于 2023-6-26 10:19
初值是根據晶振頻率計算的,首先確定使用多大的晶振,是11.0592還是12M還是......

11059200
回復

使用道具 舉報

ID:752974 發(fā)表于 2023-6-26 10:39 | 顯示全部樓層
1. 為什么是1ms,自己看書去。
2. 中斷服務程序應該簡潔,追求執(zhí)行時間最短的指導思想,LedScan();最好不要放在這里。
回復

使用道具 舉報

ID:123289 發(fā)表于 2023-6-26 10:44 | 顯示全部樓層
【LedScan()】,在【void InterruptTimer0() interrupt 1】中只運行了一次。
所以【void InterruptTimer0() interrupt 1】多久運行一次,【LedScan()】就多久運行一次。
也即取次于你的中斷時常數設定。而時基又是晶振頻率。所以你看著辦吧。
回復

使用道具 舉報

ID:161164 發(fā)表于 2023-6-26 11:11 | 顯示全部樓層
說的出920us就代表你懂得TH0 = 0xFC;TL0 = 0x67;的意義
但還差一點的,就是0xFC67加到0x10000溢出的時間計算
0x10000 - 0xFC67 = 921
THTL每加1的時間間隔是基于晶振頻率
12Mhz是1us, 而11.0592Mhz就是12/11.0592 = 1.085us
921 x 1.085 = 999.35 差不多是1ms

評分

參與人數 1黑幣 +10 收起 理由
xnysfh + 10 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

ID:1079270 發(fā)表于 2023-6-26 13:17 | 顯示全部樓層
lkc8210 發(fā)表于 2023-6-26 11:11
說的出920us就代表你懂得TH0 = 0xFC;TL0 = 0x67;的意義
但還差一點的,就是0xFC67加到0x10000溢出的時間計 ...

參考了6樓的講解,已解決問題,謝謝大家參與討論
回復

使用道具 舉報

ID:1053359 發(fā)表于 2023-7-3 13:45 | 顯示全部樓層
根據提供的代碼,可以看出在 Timer0 的中斷函數 InterruptTimer0() 中調用了函數 LedScan()。由于沒有給出 LedScan() 的具體實現代碼,無法確定其刷新頻率。因此,無法準確回答 "LedScan(); 是 920us 刷新一次嗎?" 這個問題。

至于為什么 TH0 = 0xFC 和 TL0 = 0x67 常被稱為 1ms,是因為這是設置 Timer0 初值的方式,在一些常見的時鐘頻率和定時器設定下,可能導致定時器每溢出一次需要 1ms 的時間。

具體來說,當使用 11.0592MHz 的晶振作為時鐘源,并將定時器 T0 設置為模式 1(16位定時/計數模式),以 12 分頻(Prescaler)的方式進行計數時,初值 TH0 = 0xFC,TL0 = 0x67 可以使定時器在溢出前計數滿 1000 次,而每次計數需要 1ms。
回復

使用道具 舉報

ID:517951 發(fā)表于 2023-7-5 08:03 | 顯示全部樓層
中斷服務函數里面,不要調用ledscan這種耗時長的子程序.
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表