亚洲日本成本线在观看,最新国自产拍在线,免费性爱视频日本,久久精品国产亚洲精品国产精品

            現(xiàn)在位置:范文先生網(wǎng)>理工論文>電子通信論文>單時(shí)鐘完成多點(diǎn)分別計(jì)時(shí)的實(shí)現(xiàn)和應(yīng)用

            單時(shí)鐘完成多點(diǎn)分別計(jì)時(shí)的實(shí)現(xiàn)和應(yīng)用

            時(shí)間:2023-02-20 23:16:00 電子通信論文 我要投稿
            • 相關(guān)推薦

            單時(shí)鐘完成多點(diǎn)分別計(jì)時(shí)的實(shí)現(xiàn)和應(yīng)用

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

                關(guān)鍵詞:單片機(jī)、定時(shí)器、機(jī)器周期、分頻

                一、引言

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

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

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

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

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

            A1~50H;        表示A1對(duì)應(yīng)的存儲(chǔ)單元是50h
            A2~51H;        表示A2對(duì)應(yīng)的存儲(chǔ)單元是51h
            A3~52H;
            。   。
            。   。
            。   。
            A7  57H;       表示A7對(duì)應(yīng)的存儲(chǔ)單元是57h

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

                四、典型應(yīng)用

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

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

            TIME0:                  CLR       TR0
                             PUSH      PSW
                         &nbs

            p;          PUSH      ACC
                                    MOV       TL0,#22H;定時(shí)100ms重新啟動(dòng)定時(shí)器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   
              &n

            bsp;                     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
               &nb

            sp;                    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

                 &nb

            sp;                     
            FINISH:                 MOV       A,2CH
                                    CJNE      A,#00H,TUI
                                   
                                 
                                    SETB      TR0;SETB      TR0
                             POP       ACC
                             POP       PSW
                             RETI
             TUI:                SETB      TR0;開定時(shí)器   
                             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



            【單時(shí)鐘完成多點(diǎn)分別計(jì)時(shí)的實(shí)現(xiàn)和應(yīng)用】相關(guān)文章:

            GPS高精度的時(shí)鐘的設(shè)計(jì)和實(shí)現(xiàn)08-06

            無縫線路軌溫實(shí)時(shí)監(jiān)測系統(tǒng)的實(shí)現(xiàn)和應(yīng)用08-06

            Powerbuilder中樹形視圖的實(shí)現(xiàn)與應(yīng)用08-06

            比和比的應(yīng)用08-16

            無線通信SCADA系統(tǒng)的實(shí)現(xiàn)與應(yīng)用08-06

            數(shù)據(jù)字典在ArcView GIS中的實(shí)現(xiàn)與應(yīng)用08-09

            權(quán)威、地位和自我實(shí)現(xiàn)08-17

            用TL494實(shí)現(xiàn)單回路控制器08-06

            PowerPC和Dallas的時(shí)鐘芯片接口設(shè)計(jì)08-06