找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 6505|回復(fù): 18
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)定時器和中斷不夠用怎么辦?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:463139 發(fā)表于 2019-5-26 05:54 來自觸屏版 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
大佬幫我出出主意吧
我芯片用的是stc89c52RC單片機(jī) 問:T0用于外部計數(shù)中斷每1s,T1用于10ms的定時中斷數(shù)碼管刷新,現(xiàn)在還需要wifi通信,那么需要波特率發(fā)生器和定時中斷,但是定時器只剩下T2了該怎么辦?還有51的波特率發(fā)生器默認(rèn)是T1,我知道是可以改的,就是想再確認(rèn)下。資源不夠用我該怎么變通?
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:530392 發(fā)表于 2019-5-26 10:17 | 只看該作者
用中斷查詢的方法,不過這個需要另加驅(qū)動,直接連肯定是不行的(我試過,當(dāng)時搞了一晚上沒搞出來,血的教訓(xùn),一定要加驅(qū)動�。�
回復(fù)

使用道具 舉報

板凳
ID:94031 發(fā)表于 2019-5-26 10:28 | 只看該作者
把波特率發(fā)生器用T2,騰出T1干別的用。
回復(fù)

使用道具 舉報

地板
ID:213173 發(fā)表于 2019-5-26 11:17 | 只看該作者
如果對外部計數(shù)脈沖頻率不是很高不必非得用T0外部計數(shù)中斷,隨便用哪個IO口,在主函數(shù)中查詢即可。數(shù)碼管動態(tài)刷新也不必非得用定時器精確定時,只要主循環(huán)周期基本穩(wěn)定也可以用計數(shù)法計時刷新數(shù)碼管。
回復(fù)

使用道具 舉報

5#
ID:56665 發(fā)表于 2019-5-26 11:24 | 只看該作者
一個定時中斷產(chǎn)生N個軟件定時器,用這個辦法試試。
回復(fù)

使用道具 舉報

6#
ID:160500 發(fā)表于 2019-5-26 11:32 | 只看該作者
根據(jù)自己的需要,把不是必須中斷和使用定時器的用軟件模擬,必須用中斷的做好優(yōu)先級,相同優(yōu)先級的通過一個與門接到int端,中斷程序里判斷是哪個外設(shè)請求的中斷,做相應(yīng)處理。定時器只能針對一個事件計數(shù)或定時,軟件必須針對情況作出判斷和處理,實在不能繞開,就換芯片或加外部擴(kuò)展
回復(fù)

使用道具 舉報

7#
ID:490330 發(fā)表于 2019-5-26 11:57 | 只看該作者
其實可以用兩個單片機(jī)的。。如果項目允許你可以試試
回復(fù)

使用道具 舉報

8#
ID:511890 發(fā)表于 2019-5-26 16:44 | 只看該作者
中斷可以復(fù)用呀。比如單倍的中斷處理通訊,雙倍的中斷處理數(shù)碼管刷新。只需加一個全局變量和一個if語句罷了。還有外部中斷也可以考慮。
回復(fù)

使用道具 舉報

9#
ID:530034 發(fā)表于 2019-5-26 18:09 | 只看該作者
不必非得用T0外部計數(shù)中斷,隨便用哪個IO口,在主函數(shù)中查詢即可。數(shù)碼管動態(tài)刷新也不必非得用定時器精確定時,只要主循環(huán)周期基本穩(wěn)定也可以用計數(shù)法計時刷新數(shù)碼管。
回復(fù)

使用道具 舉報

10#
ID:530034 發(fā)表于 2019-5-26 18:11 | 只看該作者
用兩個單片機(jī)  就行了
回復(fù)

使用道具 舉報

11#
ID:45330 發(fā)表于 2019-5-26 20:33 | 只看該作者
能做10ms定時,100個10ms就是1s了
回復(fù)

使用道具 舉報

12#
ID:52944 發(fā)表于 2019-5-27 08:40 | 只看該作者
單片機(jī)外設(shè)不夠,換其它單片機(jī)啊
回復(fù)

使用道具 舉報

13#
ID:714012 發(fā)表于 2020-5-25 17:53 | 只看該作者
13856449865 發(fā)表于 2019-5-26 10:17
用中斷查詢的方法,不過這個需要另加驅(qū)動,直接連肯定是不行的(我試過,當(dāng)時搞了一晚上沒搞出來,血的教訓(xùn) ...

另加驅(qū)動什么意思,要是用Proteus仿真直接按照這個圖不可以?
回復(fù)

使用道具 舉報

14#
ID:401564 發(fā)表于 2020-5-26 09:11 | 只看該作者
難道數(shù)碼管中斷不能用T2,一定要用T1嗎?
回復(fù)

使用道具 舉報

15#
ID:319023 發(fā)表于 2020-5-26 10:43 | 只看該作者
一個定時器可以用代碼處理到N個軟件定時器。 或者換功能強(qiáng)大的單片機(jī)添加單片機(jī)個數(shù)。  
回復(fù)

使用道具 舉報

16#
ID:170800 發(fā)表于 2023-11-2 15:50 | 只看該作者
初學(xué)入門,但我想思路可以有:統(tǒng)一各定時需求初值基準(zhǔn)THL0H、TH0L,兩個定時需求都需要打開計時器TR0=1;然后據(jù)不同的觸發(fā)條件打開其相應(yīng)計數(shù)開關(guān),中斷計數(shù)夠后,由觸發(fā)條件程序進(jìn)行要處理,并復(fù)零;
回復(fù)

使用道具 舉報

17#
ID:195496 發(fā)表于 2023-11-3 22:30 | 只看該作者
51速度太慢了,你這多個任務(wù)不如早點換上別的單片機(jī)
回復(fù)

使用道具 舉報

18#
ID:517951 發(fā)表于 2023-11-4 07:22 | 只看該作者
T0用于外部計數(shù)中斷每1s,T1用于10ms的定時中斷數(shù)碼管刷新.   
這兩個功能可以合并為用一個T0或T1來完成.   多想想辦法, 辦法總比困難多.
回復(fù)

使用道具 舉報

19#
ID:382454 發(fā)表于 2023-11-4 14:21 | 只看該作者
兩個定時器夠多了,可以用一個定時器做成時基,
如果你的要求真不達(dá)不到,可以選用高級點的單片機(jī),STC官方大把。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表