標(biāo)題: 單片機(jī)定時(shí)器和中斷不夠用怎么辦? [打印本頁(yè)]

作者: 拼命三娘    時(shí)間: 2019-5-26 05:54
標(biāo)題: 單片機(jī)定時(shí)器和中斷不夠用怎么辦?
大佬幫我出出主意吧
我芯片用的是stc89c52RC單片機(jī) 問(wèn):T0用于外部計(jì)數(shù)中斷每1s,T1用于10ms的定時(shí)中斷數(shù)碼管刷新,現(xiàn)在還需要wifi通信,那么需要波特率發(fā)生器和定時(shí)中斷,但是定時(shí)器只剩下T2了該怎么辦?還有51的波特率發(fā)生器默認(rèn)是T1,我知道是可以改的,就是想再確認(rèn)下。資源不夠用我該怎么變通?
作者: 13856449865    時(shí)間: 2019-5-26 10:17
用中斷查詢的方法,不過(guò)這個(gè)需要另加驅(qū)動(dòng),直接連肯定是不行的(我試過(guò),當(dāng)時(shí)搞了一晚上沒(méi)搞出來(lái),血的教訓(xùn),一定要加驅(qū)動(dòng)。

作者: xuyaqi    時(shí)間: 2019-5-26 10:28
把波特率發(fā)生器用T2,騰出T1干別的用。
作者: wulin    時(shí)間: 2019-5-26 11:17
如果對(duì)外部計(jì)數(shù)脈沖頻率不是很高不必非得用T0外部計(jì)數(shù)中斷,隨便用哪個(gè)IO口,在主函數(shù)中查詢即可。數(shù)碼管動(dòng)態(tài)刷新也不必非得用定時(shí)器精確定時(shí),只要主循環(huán)周期基本穩(wěn)定也可以用計(jì)數(shù)法計(jì)時(shí)刷新數(shù)碼管。
作者: m182892    時(shí)間: 2019-5-26 11:24
一個(gè)定時(shí)中斷產(chǎn)生N個(gè)軟件定時(shí)器,用這個(gè)辦法試試。
作者: liuzx66    時(shí)間: 2019-5-26 11:32
根據(jù)自己的需要,把不是必須中斷和使用定時(shí)器的用軟件模擬,必須用中斷的做好優(yōu)先級(jí),相同優(yōu)先級(jí)的通過(guò)一個(gè)與門(mén)接到int端,中斷程序里判斷是哪個(gè)外設(shè)請(qǐng)求的中斷,做相應(yīng)處理。定時(shí)器只能針對(duì)一個(gè)事件計(jì)數(shù)或定時(shí),軟件必須針對(duì)情況作出判斷和處理,實(shí)在不能繞開(kāi),就換芯片或加外部擴(kuò)展
作者: 溫酒斬華騰    時(shí)間: 2019-5-26 11:57
其實(shí)可以用兩個(gè)單片機(jī)的。。如果項(xiàng)目允許你可以試試
作者: 幻劍心    時(shí)間: 2019-5-26 16:44
中斷可以復(fù)用呀。比如單倍的中斷處理通訊,雙倍的中斷處理數(shù)碼管刷新。只需加一個(gè)全局變量和一個(gè)if語(yǔ)句罷了。還有外部中斷也可以考慮。
作者: 麻吉馬巧龍    時(shí)間: 2019-5-26 18:09
不必非得用T0外部計(jì)數(shù)中斷,隨便用哪個(gè)IO口,在主函數(shù)中查詢即可。數(shù)碼管動(dòng)態(tài)刷新也不必非得用定時(shí)器精確定時(shí),只要主循環(huán)周期基本穩(wěn)定也可以用計(jì)數(shù)法計(jì)時(shí)刷新數(shù)碼管。

作者: 麻吉馬巧龍    時(shí)間: 2019-5-26 18:11
用兩個(gè)單片機(jī)  就行了
作者: tehity    時(shí)間: 2019-5-26 20:33
能做10ms定時(shí),100個(gè)10ms就是1s了
作者: liushangming    時(shí)間: 2019-5-27 08:40
單片機(jī)外設(shè)不夠,換其它單片機(jī)啊
作者: 清風(fēng)無(wú)慮    時(shí)間: 2020-5-25 17:53
13856449865 發(fā)表于 2019-5-26 10:17
用中斷查詢的方法,不過(guò)這個(gè)需要另加驅(qū)動(dòng),直接連肯定是不行的(我試過(guò),當(dāng)時(shí)搞了一晚上沒(méi)搞出來(lái),血的教訓(xùn) ...

另加驅(qū)動(dòng)什么意思,要是用Proteus仿真直接按照這個(gè)圖不可以?

作者: Y_G_G    時(shí)間: 2020-5-26 09:11
難道數(shù)碼管中斷不能用T2,一定要用T1嗎?
作者: 隨風(fēng)飄遠(yuǎn)    時(shí)間: 2020-5-26 10:43
一個(gè)定時(shí)器可以用代碼處理到N個(gè)軟件定時(shí)器。 或者換功能強(qiáng)大的單片機(jī)添加單片機(jī)個(gè)數(shù)。  
作者: hui7279    時(shí)間: 2023-11-2 15:50
初學(xué)入門(mén),但我想思路可以有:統(tǒng)一各定時(shí)需求初值基準(zhǔn)THL0H、TH0L,兩個(gè)定時(shí)需求都需要打開(kāi)計(jì)時(shí)器TR0=1;然后據(jù)不同的觸發(fā)條件打開(kāi)其相應(yīng)計(jì)數(shù)開(kāi)關(guān),中斷計(jì)數(shù)夠后,由觸發(fā)條件程序進(jìn)行要處理,并復(fù)零;
作者: 大漠落日    時(shí)間: 2023-11-3 22:30
51速度太慢了,你這多個(gè)任務(wù)不如早點(diǎn)換上別的單片機(jī)
作者: rayin    時(shí)間: 2023-11-4 07:22
T0用于外部計(jì)數(shù)中斷每1s,T1用于10ms的定時(shí)中斷數(shù)碼管刷新.   
這兩個(gè)功能可以合并為用一個(gè)T0或T1來(lái)完成.   多想想辦法, 辦法總比困難多.
作者: univers    時(shí)間: 2023-11-4 14:21
兩個(gè)定時(shí)器夠多了,可以用一個(gè)定時(shí)器做成時(shí)基,
如果你的要求真不達(dá)不到,可以選用高級(jí)點(diǎn)的單片機(jī),STC官方大把。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1