當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]單時鐘完成多點分別計時的實現(xiàn)和應用

摘要:本文通過介紹只有雙時鐘的單片機系統(tǒng),在多個事件需要分別定時或延時的時候,解決一個時鐘完成多個計時延時的有效方法,通過這種方法可以達到對多個被控事件統(tǒng)一自動控制目的。

    關鍵詞:單片機、定時器、機器周期、分頻

    一、引言

    單片機作為嵌入式系統(tǒng)的微控制器,已經不是新鮮的事情,作為單片機的定時/計數(shù)器的使用可以說沒有什么難度,但對于需要多個獨立計時的事件,單片機的兩個時鐘顯得有點不能滿足要求,其實不然,合理的運用內存和標志位可以實現(xiàn)一個定時器充當多個計時時鐘的效果,本文以51系列單片機為例,實現(xiàn)一個時鐘控制8個獨立馬達的運行過程中,時間分別統(tǒng)計方法。

    二、單片機計數(shù)/定時器的基本原理簡介

    本文以51系列單片機為例介紹定時器的用法,定時/計數(shù)器的原理可以分為定時和計數(shù)兩部分,定時器的原理是通過設定8位或16位的定時器單元,通過給定定時器單元的初值,然后啟動定時器,于是定時器開始從初值開始累計,每增加一個數(shù)需要特定的時間,這個特定的時間是累加指令的機器周期,是由MCU的晶振的頻率決定。對于51系列的單片機機器周期是時鐘周期的1/12,也就是晶振頻率的12分頻。單片機的定時器原理上相當于一個16位的內存單元,通過TMOD可以設定定時/計數(shù)器的工作方式。計數(shù)值從初值計到全“1”,如果是16位方式則計數(shù)單元變成FF,此時并不產生中斷,當下一個計數(shù)指令加1,導致存儲單元溢出,在中斷控制寄存器允許的情況下產生中斷,通過中斷服務程序執(zhí)行特定的任務。計數(shù)器的原理不同之處在于,不是單純的加指令,而是對外部的脈沖計數(shù),常用來測量脈沖的寬度。

    三、時鐘對多事件分別計數(shù)的具體途徑

    對于實時性要求不是很高的時間可以通過如下方式實現(xiàn)。在完成基本的定時器工作方式設定以后,也就是設定定時器的計數(shù)方式,比如16位或8位,以及計數(shù)的初始值,以及啟動中斷的方式,建議使“SETB   TR0”的方式。并且允許中斷。在中斷服務程序中,開辟存儲單元,以8個事件為例,每個事件不一定同時發(fā)生,每個事件發(fā)生以后以相同的時間延遲,再進行下一步的任務,為了完成定時延時,事件發(fā)生的時刻記作A1,A2,A3。。。。。。A10,中段服務程序中首先檢查有無這些既定的事件發(fā)生,沒有則不做任何處理,恢復計數(shù)初值后退出中斷,相反,假如檢測到AX(X=1、2、3。。。。。。)事件發(fā)生則給預先選定的對應的內存單元增加1,也就是執(zhí)行累加運算,比如,

A1~50H;        表示A1對應的存儲單元是50h
A2~51H;        表示A2對應的存儲單元是51h
A3~52H;
。   。
。   。
。   。
A7  57H;       表示A7對應的存儲單元是57h

    假如A3事件發(fā)生,則對52H內存表示的地址單元增加1,使用的指令是“INC  52H”,可以預先計算事件延時時間與計數(shù)單元數(shù)值的關系,當對應的數(shù)值到了預先設定的值時,執(zhí)行下一任務。比如開關操作等等,并且恢復初始值以便繼續(xù)循環(huán)控制。這樣可以分別對A1到A7,8個任務分別計時,時間可以相同也可以不同,具體的情況可以根據(jù)中斷程序中寄存器累計的實際值與根據(jù)需要所設定的預定值比較而實現(xiàn)。

    四、典型應用

    也許大家都看到過繁華街道上的拼圖式廣告牌吧,有十幾個或者幾十個三棱柱,通過旋轉,構成不同的畫面,在每幅畫面都停留一段時間,這正好是上面介紹的情況,當一個棱柱的某個畫面轉到特定的角度,比如正對馬路的方向,該畫面必須停留,等所有與此畫面相連接而能拼成完整畫面的其他柱面到來,也就是從柱面開始啟動到下一次停下來需要所有畫面經過相同的時間,然而所有的主面不可能同時啟動,可能為了形成某種觀賞效果,有意依次啟動,或由中間開始啟動,逐漸向兩邊延伸,等等,所有這些事件的轉動控制實質就是定時控制,先啟動,先停止。最終保證所有的畫面構成一幅完整的畫面,而且必須是一個平面,我通過這種方法成功地完成了8組和15組轉動馬達的起??刂?,實踐證明這種方法簡單可行。部分原程序如下所示?;玖鞒毯筒糠殖绦虼a如下。

以下是定時中斷服務程序的全部代碼,可以完成對8個事件的時間統(tǒng)計,并在時間滿足條件時,調用子程序OUT01,是對外部開關的控制指令。通過這段程序,成功實現(xiàn)了一個定時器對多個事件的自動運行控制(以下程序僅供參考)。

TIME0:                  CLR       TR0
                 PUSH      PSW
                        PUSH      ACC
                        MOV       TL0,#22H;定時100ms重新啟動定時器0
                 MOV       TH0,#1CH
              
LINSHI:                 MOV       A,2AH
                        CJNE       A,#0FFH,DEA
                        SETB       TR0
                        POP        ACC
                 POP        PSW   
                        RETI
                      
DEA:                    MOV       A,2AH
                        CJNE      A,#00H,DE1
                        MOV       A,2CH
                        CJNE      A,#00H,DE1
                        ;SETB      TR0
                        POP       ACC
                 POP       PSW   
                        RETI                                        
DE1:                    JNB       2AH.0,DEAL1
DE2:                    JNB       2AH.1,DEAL2
DE3:                    JNB       2AH.2,DEAL3
DE4:                    JNB       2AH.3,DEAL4I
DE5:                    JNB       2AH.4,DEAL5I
DE6:                    JNB       2AH.5,DEAL6I
DE7:                    JNB       2AH.6,DEAL7I
DE8:                    JNB       2AH.7,DEAL8I    
                    LJMP      FINISH
                     
DEAL4I:                 LJMP      DEAL4                       
DEAL5I:                 LJMP      DEAL5
DEAL6I:                 LJMP      DEAL6                       
DEAL7I:                 LJMP      DEAL7 
DEAL8I:                 LJMP      DEAL8                       
DEAL1:                  JNB       2CH.0,DE2
                        INC       50H
                        MOV       A,50H
                        CJNE      A,#20,DE2
                        CLR       2CH.0                       
                        LCALL     OUT01
                        mov       50h,#00h
                        LJMP      DE2                       
DEAL2:                  JNB       2CH.1,DE3
                        INC       51H
                        MOV       A,51H
                        CJNE      A,#20,DE3                       
                        CLR       2CH.1                       
                        LCALL     OUT01
                        MOV       51H,#00H
                        LJMP      DE3  
 DEAL3:                JNB       2CH.2,DE4
                 INC       52H
                        MOV       A,52H
                        CJNE      A,#20,DE4
                        CLR       2CH.2
                        LCALL     OUT01
                        MOV       52H,#00H
                        LJMP      DE4
DEAL4:                JNB       2CH.3,DE5I
                INC       53H
                        MOV       A,53H
                        CJNE      A,#20,DE5I
                        CLR       2CH.3
                        LCALL     OUT01
                        MOV       53H,#00H
DE5I:                   LJMP      DE5
DEAL5:                 JNB       2CH.4,DE6I
                 INC       54H
                        MOV       A,54H
                        CJNE      A,#20,DE6I
                        CLR       2CH.4
                        MOV       54H,#00H
                        LCALL     OUT01
DE6I:                   LJMP      DE6
DEAL6:                  JNB       2CH.5,DE7I
                  INC       55H
                        MOV       A,55H
                        CJNE      A,#20,DE7I
                        CLR       2CH.5
                        LCALL     OUT01
                        MOV       55H,#00H
DE7I:                   LJMP      DE7
DEAL7:                  JNB       2CH.6,DE8I
                 INC       56H
                        MOV       A,56H
                        CJNE      A,#20,DE8I
                        CLR       2CH.6
                        LCALL     OUT01
                        MOV       56H,#00H
DE8I:                   LJMP      DE8
DEAL8:                 JNB       2CH.7,FINISH
                 INC       57H
                        MOV       A,57H
                        CJNE      A,#20,FINISH
                        CLR       2CH.7
                        LCALL     OUT01
                        MOV       57H,#00H

                           
FINISH:                 MOV       A,2CH
                        CJNE      A,#00H,TUI
                       
                     
                        SETB      TR0;SETB      TR0
                 POP       ACC
                 POP       PSW
                 RETI
 TUI:                SETB      TR0;開定時器   
                 POP       ACC
                 POP       PSW   
                        RETI
OUT01:              MOV      A,2CH
                        MOV      P2,A
                        CLR      G0
                        LCALL    DELAY
                        CLR      CLOCK
                        LCALL    DELAY
                        SETB     CLOCK
                        NOP
                       
                        CLR      CLOCK
                        SETB     G0
                        LCALL    DELAY
                        RET

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯(lián)系該專欄作者,如若文章內容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或將催生出更大的獨角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉型技術解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術公司SODA.Auto推出其旗艦產品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關鍵字: 汽車 人工智能 智能驅動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產業(yè)博覽會開幕式在貴陽舉行,華為董事、質量流程IT總裁陶景文發(fā)表了演講。

關鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權最終是由生態(tài)的繁榮決定的。

關鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經營業(yè)績穩(wěn)中有升 落實提質增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領增長 以科技創(chuàng)新為引領,提升企業(yè)核心競爭力 堅持高質量發(fā)展策略,塑強核心競爭優(yōu)勢...

關鍵字: 通信 BSP 電信運營商 數(shù)字經濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術學會聯(lián)合牽頭組建的NVI技術創(chuàng)新聯(lián)盟在BIRTV2024超高清全產業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術創(chuàng)新聯(lián)...

關鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關鍵字: BSP 信息技術
關閉
關閉