51單片機定時器不夠用怎么辦?
網(wǎng)友解答: 確實如此,定時器是使用頻率最高的資源。STC89C52單片機有3個定時器,分別是T0,T1和T2。一般夠用,一個串口波特率發(fā)生,2個計時。其中T2有捕捉功能。由于定時器較少,
確實如此,定時器是使用頻率最高的資源。STC89C52單片機有3個定時器,分別是T0,T1和T2。一般夠用,一個串口波特率發(fā)生,2個計時。其中T2有捕捉功能。由于定時器較少,一般用法都是在一個定時器中,設(shè)置不同的時間位,如1ms定時,在中斷中進行計數(shù),通過計數(shù)周期不同來產(chǎn)生不同的時間位,設(shè)置10ms定時時間位flag10ms,設(shè)置100ms定時時間位flag100ms,設(shè)置1s定時時間位flag1s。但這也有缺點,當計數(shù)周期為倍數(shù)關(guān)系時,軟件就要額外處理,該怎么協(xié)調(diào)時間位的處理,如1s定時到,其實10ms和100ms的標志位都會置位。
確實定時器資源少,會影響使用,軟件處理也會復(fù)雜,建議還是更換升級的單片機,如STC12系列,有2個定時器,2路PCA可以作為定時器,還有獨立的波特率發(fā)生器,不占用定時器。
或者更高一級,STC15系列,有5個定時器,2路PCA,共有7個定時器,足夠使用。這些定時器的應(yīng)用基本一致,配置好寄存器,就可以工作了。而且中斷等級分了四等,方便處理多中斷任務(wù)。
附圖一,89C52的內(nèi)部結(jié)構(gòu)。附圖二,STC12的配置。附圖三,STC15的配置。附圖四,STC15中斷結(jié)構(gòu)。
網(wǎng)友解答:推薦樓主一本書時間觸發(fā)嵌入式系統(tǒng)設(shè)計模式,希望能夠?qū)侵饔兴鶐椭?