<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • 單時鐘完成多點分別計時的實現和應用

    時間:2024-06-30 02:47:44 理工畢業論文 我要投稿
    • 相關推薦

    單時鐘完成多點分別計時的實現和應用

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

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

    一、引言

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

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

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

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

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

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

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

    四、典型應用

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

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

    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

    【單時鐘完成多點分別計時的實現和應用】相關文章:

    基于主機的3D網絡應用的研究和實現03-03

    電子版護理記錄單表格式的設計和應用05-26

    網頁模糊歸類算法的應用與實現03-19

    二分法求解單變量非線性方程及其應用與實現03-12

    壓力控制通氣和呼氣末正壓在單肺通氣中的應用12-27

    PowerPC和Dallas的時鐘芯片接口設計03-18

    高精度時鐘芯片SD2001E及其應用03-19

    新聞發布系統的設計和實現03-07

    基于FPGA的高頻時鐘的分頻和分配設計03-19

    主站蜘蛛池模板: 国产精品亚洲玖玖玖在线观看| 久久久久这里只有精品| 韩国三级中文字幕hd久久精品| 亚洲精品无码久久久久sm| 国产精品玖玖美女张开腿让男人桶爽免费看 | 久久精品无码一区二区三区免费 | 免费人欧美日韩在线精品| 亚洲欧美日韩精品| 国产成人精品日本亚洲专| 亚洲国产第一站精品蜜芽| 精品无码综合一区| 99久久亚洲综合精品成人| 国产精品欧美一区二区三区不卡| 亚洲国产精品乱码一区二区 | 日韩av无码久久精品免费| 精品国产呦系列在线观看免费| 国产l精品国产亚洲区在线观看| 亚洲精品无码久久久久| 日本精品久久久久久久久免费| 国产精品无码免费播放| 99久久国产综合精品五月天喷水| 99re久久精品国产首页2020| 久久精品www人人爽人人| 亚洲精品蜜桃久久久久久| 亚洲国产成人久久精品99| 久久乐国产精品亚洲综合| 久草欧美精品在线观看| 国产精品乱视频| 国产精品色视频ⅹxxx | 久久久精品免费国产四虎| 国产在线精品免费aaa片| 少妇人妻无码精品视频app| 亚洲日韩精品无码一区二区三区| 尤物TV国产精品看片在线| 亚洲国产精品成人久久蜜臀 | 亚洲婷婷国产精品电影人久久| 免费精品精品国产欧美在线欧美高清免费一级在线| 91精品福利在线观看| 国产精品福利电影一区二区三区四区欧美白嫩精品 | 无码国产精品一区二区免费vr| 亚洲国产精品va在线播放|