国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

單時鐘完成多點分別計時的實現(xiàn)和應用

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

一、引言  

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

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

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

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

對于實時性要求不是很高的時間可以通過如下方式實現(xiàn)。在完成基本的定時器工作方式設定以后,也就是設定定時器的計數方式,比如16位或8位,以及計數的初始值,以及啟動中斷的方式,建議使“SETB   TR0”的方式。并且允許中斷。在中斷服務程序中,開辟存儲單元,以8個事件為例,每個事件不一定同時發(fā)生,每個事件發(fā)生以后以相同的時間延遲,再進行下一步的任務,為了完成定時延時,事件發(fā)生的時刻記作A1,A2,A3。。。。。。A10,中段服務程序中首先檢查有無這些既定的事件發(fā)生,沒有則不做任何處理,恢復計數初值后退出中斷,相反,假如檢測到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”,可以預先計算事件延時時間與計數單元數值的關系,當對應的數值到了預先設定的值時,執(zhí)行下一任務。比如開關操作等等,并且恢復初始值以便繼續(xù)循環(huán)控制。這樣可以分別對A1到A7,8個任務分別計時,時間可以相同也可以不同,具體的情況可以根據中斷程序中寄存器累計的實際值與根據需要所設定的預定值比較而實現(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
POPACC
POPPSW   
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
LCALLDELAY
CLR  CLOCK
LCALLDELAY
SETB CLOCK
NOP

CLR  CLOCK
SETB G0
LCALLDELAY
RET
本文地址:http://m.qingdxww.cn/thread-39861-1-1.html     【打印本頁】

本站部分文章為轉載或網友發(fā)布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區(qū)
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節(jié)省時間和空間
  • Dev Tool Bits——使用DVRT協(xié)議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監(jiān)視
  • 貿澤電子(Mouser)專區(qū)

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天噜噜揉揉狠狠夜夜 | 国产精品v欧美精品v日韩精品 | 亚洲一级高清在线中文字幕 | 午夜免费看片 | 久久精品中文字幕有码日本 | 亚洲精品九色在线网站 | 欧美性大战 | 恋老oldmantv| 高清性视频hd| 亚洲国产精久久久久久久 | 欧美日韩一区二区在线 | 国产成人精品免费青青草原app | 日本www在线播放 | 亚洲视频五区 | 四虎影酷 | 99精品在线播放 | 亚洲精品成人中文网 | 欧日韩在线不卡视频 | 青草青草久热精品视频在线观看 | 久久久精品久久久久久 | 草草青青 | 日韩在线观看精品 | 午夜黄色毛片 | 日韩孕妇孕交在线视频 | 1级毛片| 四虎日韩| 男女强吻摸下面揉免费 | 五月国产综合视频在线观看 | 惩罚美女妲己的尤老师 | 麻豆精品视频在线观看 | 天堂毛片 | 国产区香蕉精品系列在线观看不卡 | 91综合国产 | 91视频下载入口 | 久久久久久9 | 4虎最新 | 六月婷婷在线视频 | 97在线视频免费公开观看 | 国产精品久久久久久久久久免费 | 美女啪啪91| 国产精品一区二区手机看片 |