- 相關(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ù),常用來測(cè)量脈沖的寬度。
三、時(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ù)初值后退出中斷,相反,假如檢測(cè)到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ì)的
[1] [2] [3] [4] [5]
【單時(shí)鐘完成多點(diǎn)分別計(jì)時(shí)的實(shí)現(xiàn)和應(yīng)用】相關(guān)文章:
分別倒計(jì)時(shí)400字作文04-28
多點(diǎn)關(guān)心多點(diǎn)愛作文04-27
草稿筆工具在基于圖片請(qǐng)求的WebGIS中的應(yīng)用和實(shí)現(xiàn)04-26
多點(diǎn)源網(wǎng)格落地濃度計(jì)算模型及應(yīng)用04-26
單像空間后方交會(huì)原理與實(shí)現(xiàn)04-30
通過單電子泵實(shí)現(xiàn)對(duì)單電子運(yùn)動(dòng)的控制及其相圖分析04-29
紅外遙控技術(shù)在公交系統(tǒng)的應(yīng)用實(shí)現(xiàn)04-30
和孩子分別的傷感說說10-29
單端正激ZVT功率變換器實(shí)現(xiàn)04-26
讓新聞多點(diǎn)文采05-01