學(xué)習(xí)任務(wù)五 單片機定時計數(shù)器應(yīng)用-交通燈控制系統(tǒng)設(shè)計 單片機應(yīng)用技術(shù)教學(xué)課件_第1頁
學(xué)習(xí)任務(wù)五 單片機定時計數(shù)器應(yīng)用-交通燈控制系統(tǒng)設(shè)計 單片機應(yīng)用技術(shù)教學(xué)課件_第2頁
學(xué)習(xí)任務(wù)五 單片機定時計數(shù)器應(yīng)用-交通燈控制系統(tǒng)設(shè)計 單片機應(yīng)用技術(shù)教學(xué)課件_第3頁
學(xué)習(xí)任務(wù)五 單片機定時計數(shù)器應(yīng)用-交通燈控制系統(tǒng)設(shè)計 單片機應(yīng)用技術(shù)教學(xué)課件_第4頁
學(xué)習(xí)任務(wù)五 單片機定時計數(shù)器應(yīng)用-交通燈控制系統(tǒng)設(shè)計 單片機應(yīng)用技術(shù)教學(xué)課件_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

學(xué)習(xí)任務(wù)五單片機定時/計數(shù)器應(yīng)用——

交通燈控制系統(tǒng)設(shè)計

單片機應(yīng)用技術(shù)學(xué)習(xí)目標(biāo)任務(wù)說明自從1868年英國人發(fā)明了原始的機械扳手交通燈之后,隨后的100多年里,交通燈改變了交通路況,也在人們?nèi)粘I钪姓紦?jù)了重要地位。隨著經(jīng)濟的發(fā)展人們社會活動日益頻繁,汽車數(shù)量急劇增加,城市道路日漸擁擠,交通燈更加顯示出了它的功能,交通得到有效管制,對于提高道路導(dǎo)通能力、減少交通事故等都有顯著的效果。學(xué)習(xí)目標(biāo)任務(wù)說明近年來隨著科技的飛速發(fā)展,電子器件也隨之廣泛應(yīng)用,其中單片機也不斷深入我們的生活。本學(xué)習(xí)任務(wù)模擬交通燈系統(tǒng)利用單片機A89S51作為核心元件,實現(xiàn)通過信號燈對路面狀況的智能控制。在本學(xué)習(xí)任務(wù)中,根據(jù)實際情況設(shè)計一套交通燈控制系統(tǒng),假設(shè)在十字路口,分為東西向和南北向,在任一時刻只有一個方向通行,另一方向禁行,持續(xù)一定時間后,經(jīng)過短暫的過渡,將通行和禁行方向?qū)Q,該系統(tǒng)運行狀況如下。學(xué)習(xí)目標(biāo)任務(wù)說明東西路口綠燈亮,南北路口紅燈亮,同時在兩位七段顯示器上開始25s倒計時,南北方向上也同時顯示時間;25s倒計時進行到5s時,東西路口綠燈閃爍,以示警示;綠燈閃爍3s后,倒計時到2s時東西路口黃燈亮,表示進入路口的車?yán)^續(xù)行進,未進入路口的車輛禁止超過標(biāo)志線,黃燈亮2s之后熄滅;然后是東西向與南北向反過來進行一次上面的循環(huán),以此類推不斷循環(huán)。交通燈控制系統(tǒng)總體框圖如圖5-1所示,其中“按鍵控制電路”及其功能的實現(xiàn)不在本學(xué)習(xí)任務(wù)之中。按鍵控制電路部分為功能擴展部分,基于實際情況,可增加緊急狀況處理和通行時間可調(diào)這兩項特殊功能。感興趣的學(xué)生可以在完成本任務(wù)的基礎(chǔ)上實現(xiàn)此項特殊功能,使交通燈控制系統(tǒng)的功能更完善。通過實訓(xùn)模塊的操作訓(xùn)練和相關(guān)知識的學(xué)習(xí),使學(xué)生熟悉單片機端口控制的工作原理,掌握定時器/計數(shù)器的控制方法,熟悉單片機開發(fā)的根本過程。圖5-1交通燈控制系統(tǒng)總體框圖學(xué)習(xí)目標(biāo)學(xué)習(xí)目標(biāo)知識和能力要求

知識要求(1)掌握單片機端口的控制方法;(2)熟悉常用的單片機定時/計數(shù)器的使用方法;(3)理解常用幾種結(jié)構(gòu)的程序設(shè)計特點;(4)掌握單片機定時/計數(shù)器初始化的方法;(5)掌握常用元器件的特性和測試方法;(6)掌握單片機子程序的編寫及調(diào)用方法;(7)掌握單片機倒計時程序的編寫方法。學(xué)習(xí)目標(biāo)知識和能力要求

能力要求(1)能夠根據(jù)項目要求分解任務(wù)并設(shè)計出硬件電路;(2)能夠使用WAVE6000軟件對匯編程序進行調(diào)試、編譯等;(3)能夠進行復(fù)雜電路的正確連接及調(diào)試;(4)能夠進行顯示電路的設(shè)計和數(shù)據(jù)傳輸程序的設(shè)計與調(diào)試;(5)能夠靈活運用單片機中除法指令進行數(shù)據(jù)拆分;(6)能夠把分解開的任務(wù)進行綜合、整體分析并編寫連接程序;(7)能夠讀懂交通燈系統(tǒng)總體程序;(8)能夠熟練使用編程器下載程序到單片機中。任務(wù)準(zhǔn)備在單片機控制系統(tǒng)中,常常需要有實時時鐘以實現(xiàn)定時或延時控制,也常需要有對外界事件進行計數(shù)的功能。定時或計數(shù)功能既可用軟件實現(xiàn),也可用單片機內(nèi)部的可編程定時/計數(shù)器實現(xiàn)。用軟件實現(xiàn)定時及計數(shù),常采用延時程序,它占用了CPU的執(zhí)行時間,降低CPU的利用率。為了提高CPU的利用率往往采用單片機內(nèi)部的定時/計數(shù)器,通過軟件確定和改變它的定時/計數(shù)值,實現(xiàn)各種定時/計數(shù)要求。單片機定時/計數(shù)器系統(tǒng)一、定時/計數(shù)器的結(jié)構(gòu)1.

A89S51單片機內(nèi)部有兩個定時/計數(shù)器T0和T1,每個定時/計數(shù)器都可以實現(xiàn)定時和計數(shù)功能,其結(jié)構(gòu)框圖如圖5-2所示。定時/計數(shù)器i的基本部件是兩個8位寄存器THi及i組合的16位加法計數(shù)器,用于對定時或計數(shù)脈沖進行加法計數(shù)。任務(wù)準(zhǔn)備圖5-2定時/計數(shù)器結(jié)構(gòu)框圖任務(wù)準(zhǔn)備當(dāng)計數(shù)脈沖來自內(nèi)部時鐘脈沖,即機器周期〔fosc/12〕時,定時/計數(shù)器作定時器使用。當(dāng)計數(shù)脈沖來自于外部引腳T0/T1上的輸入脈沖時,定時/計數(shù)器作計數(shù)器使用。如果在第一個周期檢測到T0/T1引腳的脈沖信號為1,第二個機器周期檢測到T0/T1引腳的脈沖信號為0,即出現(xiàn)從高電平到低電平的跳變時,計數(shù)器加1。由于檢測到一次負(fù)跳變需要兩個機器周期,所以最高的外部計數(shù)脈沖的頻率不能超過時鐘頻率的1/24,并且要求外部計數(shù)脈沖的高電平和低電平的持續(xù)時間不能小于一個機器周期。任務(wù)準(zhǔn)備定時器方式寄存器TMOD用于設(shè)置定時/計數(shù)器的工作方式,定時器控制寄存器TCON用于控制定時/計數(shù)器的啟動和停止。任務(wù)準(zhǔn)備定時/計數(shù)器的控制1.1)定時/計數(shù)器方式控制寄存器OD定時/計數(shù)器方式控制存放器TMOD的地址為89H,用于控制和選擇定時/計數(shù)器的工作方式,高4位置1,低4位控制0,不能采用位尋址方式。格式如下。任務(wù)準(zhǔn)備〔1〕GATE。門控位,用來指定外部中斷請求是否參與對定時/計數(shù)器的啟動控制。當(dāng)GATE=0時,只要TCON存放器中的TRi位為1,就可以啟動定時/計數(shù)器i,與外部中斷輸入信號INi無關(guān),是一種內(nèi)部啟動方式;假設(shè)GATE=1,那么只有當(dāng)TRi為1且外部中斷輸入信號INi為1時,才能啟動定時/計數(shù)器i,這種方式可以實現(xiàn)外部信號對定時器的啟動控制?!?〕C/定時/計數(shù)方式選擇位。C/=0為定時方式,C/=1為計數(shù)方式。任務(wù)準(zhǔn)備〔3〕T1/T0。工作方式選擇位。用以選擇定時/計數(shù)器的工作方式,內(nèi)部定時/計數(shù)器的操作方式見表5-1。任務(wù)準(zhǔn)備例如,設(shè)置T0工作于定時方式,內(nèi)部啟動,操作方式為方式2;設(shè)置T1工作在計數(shù)方式下,外部啟動,操作方式為方式0。那么設(shè)定工作方式的程序為MOVTMOD,#0C2或MOVTMOD,#11000010B;對應(yīng)OD存放器可以看出設(shè)置方法任務(wù)準(zhǔn)備2)定時/計數(shù)器控制寄存器TCON

TCON既參與定時控制,又參與中斷控制,有關(guān)中斷控制的內(nèi)容詳見學(xué)習(xí)任務(wù)六。與定時/計數(shù)器控制相關(guān)的有定時器溢出中斷請求標(biāo)志F1/F0及定時啟動/定時控制TR1/TR0。TF1/TF0=1時,定時器有溢出中斷請求;TF1/TF0=0時,定時器無溢出中斷請求。TR1/TR0=1時,啟動定時器工作;TR1/TR0=0時,停止定時器工作。任務(wù)準(zhǔn)備定時/計數(shù)器的工作方式二、工作方式01.當(dāng)TMOD中的10=00時,定時/計數(shù)器工作在方式0。此時,定時/計數(shù)器內(nèi)部的計數(shù)器為13位計數(shù)器,由i提供高8位,i提供低5位。假設(shè)在i和i中設(shè)置好計數(shù)初值,且啟動定時/計數(shù)器就可以進行加法計數(shù)。i低5位計數(shù)滿時直接向i進位,當(dāng)13位計數(shù)器計數(shù)滿時,定時器溢出中斷請求標(biāo)志位Fi置1。此種工作方式下內(nèi)部計數(shù)器的最大計數(shù)值為213=8192。定時時間及計數(shù)值可按如下公式計算。任務(wù)準(zhǔn)備〔1〕作定時器用時,定時時間為Δt=〔213-計數(shù)初值〕×機器周期=〔8192-計數(shù)初值〕×?xí)r鐘周期×12〔2〕作計數(shù)器用時,計數(shù)值為C=213-計數(shù)初值=8192-計數(shù)初值任務(wù)準(zhǔn)備工作方式12.當(dāng)TMOD中的M1M0=01時,定時計數(shù)器工作在方式1。此時,定時/計數(shù)器內(nèi)部的計數(shù)器為16位計數(shù)器。由THi提供高8位,i提供低8位。在THi和TLi中設(shè)置好計數(shù)初值,啟動定時/計數(shù)器就可以進行加法計數(shù)。當(dāng)16位計數(shù)器計數(shù)滿時,定時器溢出中斷請求標(biāo)志位TFi置1。此種工作方式下內(nèi)部計數(shù)器的最大計數(shù)值為216=65536。定時時間及計數(shù)值可按如下公式計算。任務(wù)準(zhǔn)備(1)作定時用時,定時時間為Δt=(216-計數(shù)初值)×機器周期=(65536-計數(shù)初值)×?xí)r鐘周期×12(2)作計數(shù)器用時,計數(shù)值為C=216-計數(shù)初值=65536-計數(shù)初值例如,當(dāng)fosc=6z時,計數(shù)初值為0FF06(65286),則定時時間為

任務(wù)準(zhǔn)備工作方式23.當(dāng)TMOD中的M1M0=10時,定時/計數(shù)器工作在方式2。此時,定時/計數(shù)器內(nèi)部的計數(shù)器為自動重裝初值的8位計數(shù)器。兩個8位計數(shù)器THi和TLi中的TLi作加法計數(shù)器,THi作為預(yù)置常數(shù)存放器。當(dāng)TLi計數(shù)滿時,將中斷請求TFi置1,同時將THi中的計數(shù)初值以硬件方法自動裝入TLi。此種工作方式下內(nèi)部計數(shù)器的最大計數(shù)值為28=256。定時時間及計數(shù)值可按如下公式計算?!?〕作定時器用時,定時時間為Δt=〔28-計數(shù)初值〕×機器周期=〔256-計數(shù)初值〕×?xí)r鐘周期×12〔2〕作計數(shù)器用時,計數(shù)值為C=28-計數(shù)初值=256-計數(shù)初值任務(wù)準(zhǔn)備工作方式34.當(dāng)TMOD中的M1M0=11時,定時/計數(shù)器工作在方式3。此時定時/計數(shù)器T0可拆成兩個獨立的8位定時/計數(shù)器使用,T1不變。當(dāng)定時/計數(shù)器工作在方式3時,T0、T1的設(shè)置和使用方法是不同的。定時/計數(shù)器T0中的兩個8位計數(shù)器TH0、TL0拆分為兩個獨立的計數(shù)器后,TL0所對應(yīng)的定時/計數(shù)器使用T0原有控制資源,即使用TR0控制啟停,TF0作為溢出標(biāo)志。TH0所對應(yīng)的定時/計數(shù)器只能作8位定時器用,借用T1的資源TR1、TF1。任務(wù)準(zhǔn)備

T0工作在方式3時的定時/計數(shù)值計算與方式2相同。定時/計數(shù)值1仍然可工作于方式0~方式2下,只是由于其TR1、TF1被0的0占用,因而沒有計算溢出標(biāo)志可供使用,計算溢出時只能將輸出結(jié)果送至串行口,即用作串行口波特率發(fā)生器。任務(wù)準(zhǔn)備交通信號燈發(fā)展史三、1868年12月10日,信號燈家族的第一個成員就在倫敦議會大廈的廣場上誕生了,由當(dāng)時英國機械師德·哈設(shè)計制造的燈柱高7m,身上掛著一盞紅、綠兩色的提燈——煤氣交通信號燈,這是城市街道的第一盞信號燈。第一盞名副其實的三色燈(紅、黃、綠三種標(biāo)志)于1918年誕生。它是三色圓形四面投影器,被安裝在紐約市五號街的一座高塔上,由于它的誕生使城市交通情況大為改善。任務(wù)準(zhǔn)備黃色信號燈的創(chuàng)造者是我國的胡汝鼎,他懷著“科學(xué)救國〞的抱負(fù)到美國深造,在大創(chuàng)造家愛迪生為董事長的美國通用電氣公司任職。一天,他站在繁華的十字路口等待綠燈信號,當(dāng)他看到紅燈而正要過去時,一輛轉(zhuǎn)彎的汽車呼的一聲擦身而過,嚇了他一身冷汗?;氐剿奚幔磸?fù)琢磨,終于想到在紅、綠燈中間再加上一個黃色信號燈,提醒人們注意危險。他的建議立即得到有關(guān)方面的肯定。于是紅、黃、綠三色信號燈即以一個完整的指揮信號家族普及全世界陸、海、空交通領(lǐng)域了。任務(wù)準(zhǔn)備中國最早的馬路紅綠燈,于1928年出現(xiàn)在上海的英租界。從最早的手牽皮帶到20世紀(jì)50年代的電氣控制,從采用計算機控制到現(xiàn)代化的電子定時監(jiān)控,交通信號燈在科學(xué)化、自動化上不斷地更新、發(fā)展和完善。任務(wù)準(zhǔn)備20世紀(jì)90年代,美國局部地區(qū)開始引進帶有計時器的交通信號燈,這種信號燈不僅能夠指揮行人與車輛正常行駛,還能夠預(yù)先告知紅燈或綠燈所剩的時間,幫助人們判斷何時起步、何時停車。有了這種計時器的幫助,不僅路口交通狀況井然有序,還減少了因為無法預(yù)估變燈時間而造成的事故。目前這種帶有計時器的交通信號燈已經(jīng)遍布世界各地,我國在2000年之后也開始陸續(xù)采用帶有計時器的交通信號燈。任務(wù)準(zhǔn)備早期的交通紅綠燈是在三個白熾燈泡前加上紅、黃、綠三色的玻璃或塑料燈罩組成,這種交通燈亮度不高,方向性不好,現(xiàn)在已逐漸被淘汰,被由LED高亮度發(fā)光二極管組成的交通燈代替。LED交通信號燈任務(wù)準(zhǔn)備任務(wù)一交通信號燈驅(qū)動電路設(shè)計工作內(nèi)容及要求本任務(wù)所要完成的工作是分解出交通信號燈工作順序和狀態(tài)控制方式,完成交通信號燈驅(qū)動電路的硬件設(shè)計和軟件設(shè)計。通過單片機控制外圍驅(qū)動電路點亮發(fā)光二極管,模擬仿真出生活中真實的交通燈顯示效果。本任務(wù)在對交通信號燈控制過程中,主要采用位操作指令,通過對相關(guān)位的置位和清零來完成基本信號燈的亮滅控制,由此使學(xué)生加深位操作指令的理解,為以后的應(yīng)用打下堅實的基礎(chǔ)。在單片機端口的控制中,主要由字節(jié)控制,即輸出8位二進制數(shù),對整個端口要通盤考慮,如在學(xué)習(xí)任務(wù)三中通過查表指令控制外部發(fā)光二極管時,采用的就是字節(jié)操作。本任務(wù)中由于接在端口上的各信號燈變化不同,采用位操作優(yōu)勢明顯。因此,在本任務(wù)中就注意對位操作指令的應(yīng)用,同時提高對任務(wù)的分析能力,抓住解決問題的關(guān)鍵點。任務(wù)分析根據(jù)交通燈控制系統(tǒng)的任務(wù)說明及本任務(wù)的工作內(nèi)容及要求,通過具體的路口交通燈狀態(tài)的演示分析,如圖5-4所示,我們把生活中真實的交通信號燈歸納為如下6個狀態(tài)。(1)東西方向綠燈亮,南北方向同時紅燈亮,倒計時25s開始。此狀態(tài)下,東西方向允許通行,南北方向禁止通行。(2)倒計時到5s時,東西方向綠燈閃爍,閃爍時間3s,起提示作用。南北方向紅燈依然亮,禁止通行。此狀態(tài)下,東西方向未進入路口標(biāo)志線的車注意速度,采取必要措施。任務(wù)一交通信號燈驅(qū)動電路設(shè)計圖5-4交通信號燈工作狀態(tài)任務(wù)一交通信號燈驅(qū)動電路設(shè)計任務(wù)一交通信號燈驅(qū)動電路設(shè)計交通信號燈驅(qū)動電路設(shè)計思路一、根據(jù)上述的信號燈驅(qū)動電路的任務(wù)分析可知,馬路東、西、南、北4個路口均有紅、綠、黃燈,共12只,其中東西方向兩組6只,由于這兩個路口控制方式相同,所以可以串聯(lián)在一起,用單片機同一端口的3個口線就可以控制了。同理,南北方向的兩組6只紅綠黃燈也是串聯(lián)在一起,利用單片機同一端口的另3個口線進行控制。我們在此采用AT89S51單片機作為控制單元,利用它的P2端口的6個口線進行交通信號燈的控制。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計由于單片機并行端口帶負(fù)載能力有限,這就需要在控制端口P2與負(fù)載交通信號燈之間加裝一個驅(qū)動電路,這里采用一個驅(qū)動芯片74LS05反相器,它的好處是想讓哪個燈亮就在連接的端口輸出高電平,這種正邏輯控制正好符合我們的思維方式和生活習(xí)慣,同時這個反相器還具有提供負(fù)載驅(qū)動電流功能,大大提高了單片機帶負(fù)載能力。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計交通信號燈驅(qū)動的連接二、交通信號燈控制端口P2的控制位分配見表5-3。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計交通燈的布置和各位信號燈的連接實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計交通信號燈控制程序設(shè)計三、信號燈狀態(tài)控制程序1.1〕狀態(tài)控制程序設(shè)計思路由表5-2可知,交通燈總的控制狀態(tài)有6種方式,即東西方向和南北方向兩組交通燈有6種工作形式,表中為“1〞時對應(yīng)燈點亮,為“0〞時對應(yīng)燈熄滅。由于單片機的并行端口都可以進行位操作,所以我們采用位操作指令中的置位指令“SETBbit〞使某位置“1〞,點亮所接信號燈;利用位清零指令“CLRbit〞使某位清零,熄滅所接信號燈。為編程方便,把各路口的信號燈定義統(tǒng)一的標(biāo)號,見表5-4。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計2)交通燈基本控制狀態(tài)程序設(shè)計根據(jù)表5-2、表5-4以及狀態(tài)控制程序設(shè)計思路,我們應(yīng)容易編寫出根本的狀態(tài)控制程序。其中狀態(tài)1、狀態(tài)3、狀態(tài)4、狀態(tài)6控制方式根本相同,狀態(tài)2和狀態(tài)5由于綠燈處于閃爍狀態(tài),所以控制程序有所不同,這在程序設(shè)計中要注意區(qū)別。6種狀態(tài)控制程序如下,其中狀態(tài)1~狀態(tài)4控制程序給出,狀態(tài)5和狀態(tài)6可由學(xué)生參照前面的程序補充給出。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計

ORG0100H LED_G1BITP2.1;東西路口綠燈 LED_Y1BITP2.2;東西路口黃燈 LED_R1BITP2.3;東西路口紅燈 LED_G2BITP2.4;南北路口綠燈 LED_Y2BITP2.5;南北路口黃燈 LED_R2BITP2.6;南北路口紅燈STATE1:SETBLED_G1;狀態(tài)1,東西路口綠燈亮,南北路口紅燈亮……實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計在下面的空白處寫出交通燈狀態(tài)5和狀態(tài)6的控制程序。實訓(xùn)問題實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計綠燈閃爍程序設(shè)計2.1)程序設(shè)計思路綠燈閃爍程序可以按前面學(xué)習(xí)任務(wù)中發(fā)光二極管“眨眼〞的控制方式進行,就是間隔一定時間,對綠燈輸出端口進行定期的取反“CPLbit〞操作即可。這里把閃爍的時間間隔定為200ms,閃爍持續(xù)時間為3s。與以往延時時間控制方式不同,本任務(wù)中對時間的控制采用單片機的定時/計數(shù)器來完成,這樣時間控制更準(zhǔn)確,程序執(zhí)行效率更高。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計 定時器工作的根本原理其實就是給初值,讓它不斷加1直至定時器計數(shù)超出最大值溢出,這個初值是送到TH和TL中的。它是以加法計數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此我們可以把計數(shù)器記滿為零所需的計數(shù)值,即所要求的計數(shù)值設(shè)定為C,把計數(shù)初值設(shè)定為TC,可得到如下計算通式。TC=M-C式中,M為計數(shù)器模值,即最大計數(shù)值。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計計數(shù)值并不是目的,目的是時間值,計數(shù)1次所用的時間為一個機器周期T,即定時器計數(shù)脈沖的周期為T,計數(shù)脈沖的周期就是單片機的機器周期。設(shè)單片機的晶振頻率f=12MHz,單片機的機器周期與采用的晶振頻率有關(guān),晶振頻率的倒數(shù)就是單片機的時鐘周期,單片機的一個機器周期等于12個時鐘周期,所以一個機器周期T=1/12MHz×12=1μs,由前面定時器的學(xué)習(xí)可知,定時器T0和T1工作在方式1時M的值為65536,所以方式1的最大定時為65.536ms。如果要定時50ms,每計數(shù)一次需要1μs,所需計數(shù)值的計算方法為實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計C=定時時間/機器周期=t/T=50ms/1μs=50000計數(shù)初值為TC=M-C=65536-50000=15536=3CB0H定時時間的計算方法為定時時間=〔65536-計數(shù)初值〕×機器周期因為在學(xué)習(xí)單片機的定時/計數(shù)器的使用過程中,常用數(shù)制轉(zhuǎn)換進行一些簡單的運算。除了運用科學(xué)計算器進行數(shù)制轉(zhuǎn)換外,再向大家推薦一種實用方法,就是利用Windows操作系統(tǒng)中提供的計算器更加方便快捷。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計Windows的科學(xué)計算器數(shù)制轉(zhuǎn)換示意圖從Windows操作系統(tǒng)中,選擇“開始〞→“附件〞→“計算器〞命令翻開計算器。默認(rèn)翻開方式是“標(biāo)準(zhǔn)型〞,可以通過選擇“查看〞菜單切換到“科學(xué)型〞的界面。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計在科學(xué)計算器界面中選擇“十進制〞狀態(tài),輸入上例中的計算初值15536,然后用鼠標(biāo)單擊計算器數(shù)制選擇欄中“十六進制〞復(fù)選框,計算器就將15536轉(zhuǎn)換成十六進制3CB0。由以上分析可知,綠燈間隔200ms,可是12MHz主頻的單片機定時器最長定時時間是工作在方式1,最大延時為65.536ms。這里采用每次定時50ms,循環(huán)4次50ms的定時,就得到200ms的定時,可以作為交通燈的閃爍頻率;再把這200ms的定時循環(huán)5次,就得到1s的定時了,也可以把50ms的定時循環(huán)20次來得到1s的定時,這樣就可以作為交通燈倒計時顯示時間的標(biāo)準(zhǔn)單位了。例如,綠燈閃爍3s時間,只要把這1s的定時再循環(huán)3次就可以了。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計本程序采用定時器T0工作在方式1定時狀態(tài),根據(jù)定時/計數(shù)器控制方式存放器TMOD的結(jié)構(gòu)形式,把初始值01H送給TMOD就完成了控制要求。前面計算出定時器定時50ms時的計數(shù)初值為3CB0H,把初值的高8位3CH送TH0存放器,低8位0B0H送TL0存放器。定時器初始化程序如下。ORG00HMOVTMOD,#01H;定時器T0工作在方式1,16位定時MOVTH0,#3CH;置T0定時初值,高8位送TH0MOVTL0,#0B0H;T0定時初值的低8位送TL0CLRTF0;清T0定時溢出標(biāo)志位TF0SETBTR0;啟動定時器T0實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計2)綠燈閃絡(luò)程序設(shè)計LED_G1BITP2.1;東西路口綠燈由P2.1控制LED_Y1BITP2.2;東西路口黃燈由P2.2控制LED_R1BITP2.3;東西路口紅燈由P2.3控制LED_G2BITP2.4;南北路口綠燈由P2.4控制LED_Y2BITP2.5;南北路口黃燈由P2.5控制LED_R2BITP2.6;南北路口紅燈由P2.6控制ORG00H……實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計程序利用WAVE仿真軟件進行模擬仿真,達到程序設(shè)計要求。仿真時由于計數(shù)器需要多次計數(shù)定時,就采用連續(xù)運行方式進行仿真,為了能看清程序執(zhí)行中控制端口的變化,應(yīng)設(shè)立合適的斷點,如圖5-7所示,斷點設(shè)置在“CPLLED_G1”命令行上,也可以設(shè)在其他命令行上或設(shè)置多個斷點。實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計圖5-7綠燈閃爍程序仿真實訓(xùn)模塊交通信號燈驅(qū)動電路設(shè)計任務(wù)二交通信號燈倒計時顯示電路設(shè)計工作內(nèi)容及要求本任務(wù)所要完成的工作是交通信號燈倒計時顯示電路的硬件設(shè)計和軟件設(shè)計。主要內(nèi)容包括選擇顯示電路的器件、數(shù)據(jù)傳輸方式、數(shù)據(jù)接口芯片與顯示器件的連接、顯示程序算法的設(shè)計、1s定時程序的設(shè)計、顯示程序的仿真等。本任務(wù)在對交通信號燈倒計時顯示模擬時,貼近生活中的實際情況,由兩位七段數(shù)碼管顯示兩位數(shù)據(jù)表示所剩余的時間。在顯示控制過程中,時間上的“十位”與“個位”分開顯示的方法主要采用除法指令,學(xué)生由此拓寬了指令的應(yīng)用范圍,激發(fā)學(xué)生學(xué)習(xí)單片機的積極性,同時提高對任務(wù)的分析能力,抓住解決問題的關(guān)鍵點。任務(wù)分析根據(jù)交通燈控制系統(tǒng)的任務(wù)說明及本任務(wù)的工作內(nèi)容及要求,把交通信號燈倒計時顯示電路設(shè)計分解成如下幾個部分。(1)在倒計時顯示電路硬件設(shè)計中,東西和南北方向各用兩個共陰極的七段數(shù)碼管顯示剩余時間,這樣共需要4個七段數(shù)碼管。(2)為減少端口的占用,同時也為了使系統(tǒng)簡化,采用單片機的串行口P3.0和P3.1進行數(shù)據(jù)傳輸,這里還使用移位寄存器74LS164作為數(shù)碼管的數(shù)據(jù)傳送設(shè)備,4個數(shù)碼管需要4個74LS164配套,把這4個移位寄存器進行串聯(lián),顯示的時間數(shù)據(jù)一次性連續(xù)傳送。任務(wù)二交通信號燈倒計時顯示電路設(shè)計任務(wù)分析(3)顯示時間的拆分是軟件設(shè)計首先需要解決的問題,如東西方向路口顯示“25”時,得先把它分解成“2”和“5”,然后再采用第四單元中查表的方法找到“2”和“5”的段碼,最后從串行口P3.0移位輸出。南北方向倒計時顯示采用的方法與東西方向相同。(4)如何把數(shù)據(jù)輸送到4個移位寄存器呢?還以顯示25s為例,東西方向把電路分解成“2”和“5”,南北方向顯示數(shù)值與東西方向相同,也分解成“2”和“5”,4個數(shù)字查表得到的段碼也是四組,這四組段碼一共是4×8=32位,以“2”“5”“2”“5”的排列方式從串口輸出,32個移位脈沖之后,這32位數(shù)據(jù)就完整地分配給了4個移位寄存器74LS164了,數(shù)碼管也就在東西和南北方向上都顯示“2”和“5”了。任務(wù)二交通信號燈倒計時顯示電路設(shè)計利用除法指令進行數(shù)值拆分1.除法指令:DIVAB;A/B→A〔商〕,余數(shù)→B商〔為整數(shù)〕存放在A中,余數(shù)存放在B中,且CY和溢出標(biāo)志位OV清零。如果B的內(nèi)容為0〔即余數(shù)為0〕,那么存放結(jié)果的A、B中的內(nèi)容不定,并溢出標(biāo)志位OV置1。如果〔A〕=25,〔B〕=10,執(zhí)行指令DIVAB,運算結(jié)果為〔A〕=2,〔B〕=5,CY=0,OV=0。知識鏈接以上運算結(jié)果正是解決倒計時顯示所要的結(jié)果,因為一位數(shù)碼管只能顯示一位數(shù),“25〞不能在一位數(shù)碼管上顯示,要分成十位和個位兩個數(shù)字,分別送到一個數(shù)碼管上進行顯示,才能到達預(yù)想的效果。拆分成兩位數(shù)字之后,再利用學(xué)習(xí)任務(wù)三介紹的查找鍵值段碼的方法,在表中找到各自對應(yīng)的段碼,先送“5〞再送“2〞,顯示的問題就解決了。知識鏈接圖5-7綠燈閃爍程序仿真知識鏈接 ORG0000H MOVR1,#24LOOP:MOVA,R1 MOVB,#10 DIVAB MOVP0,A MOVA,B MOVP1,A DECR1 CJNER1,#20,LOOP END知識鏈接數(shù)值拆分的其他方法2.除了利用除法指令進行數(shù)值拆分外,還可以利用其他方法得到相同的結(jié)果,如利用邏輯指令中的邏輯與指令“ANLA,#0F0H(或#0FH)”進行高4位或低4位的屏蔽,再利用累加器高低位交換指令“SWAPA”也可以完成數(shù)值拆分的功能。知識鏈接倒計時顯示電路設(shè)計思路一、根據(jù)本任務(wù)分析和生活中真實交通信號燈的組成情況,設(shè)計出數(shù)據(jù)串行輸出轉(zhuǎn)換電路,電路的原理圖與學(xué)習(xí)任務(wù)四中的鍵盤輸入數(shù)碼管輸出顯示電路根本相同,只是采用了4組移位存放器,時間顯示的段碼數(shù)據(jù)還是從單片機的P3.0輸出送給第一個移位存放器的輸入端A和B,P3.1發(fā)出脈沖每個移位存放器的CLK端。前一個移位存放器的Q7連接到下一組移位存放器的輸入端A和B的連接點上。74LS164下面都接有一個顯示數(shù)碼管,兩個為一組代表東西方向倒計時顯示設(shè)備,另兩個代表南北方向倒計時顯示設(shè)備。實訓(xùn)模塊交通信號燈倒計時顯示電路軟硬件設(shè)計倒計時數(shù)據(jù)顯示電路原理圖二、實訓(xùn)模塊交通信號燈倒計時顯示電路軟硬件設(shè)計根據(jù)電路設(shè)計思路,設(shè)計出顯示電路原理圖如圖5-9所示。4個移位寄存器從右到左分別編號為A、B、C、D,數(shù)據(jù)移位傳送,先送給移位寄存器D,D移位寄存器的Q7(即D7)連接到C寄存器的輸入端A和B上,后面電路的接法以此類推。圖5-7到紀(jì)實性電視電路原理圖實訓(xùn)模塊交通信號燈倒計時顯示電路軟硬件設(shè)計倒計時顯示電路軟件設(shè)計三、根據(jù)本任務(wù)知識鏈接中介紹的數(shù)值拆分方法,兩種拆分方法中除法指令拆分方便實用,學(xué)生易于掌握,所以本程序采用除法指令進行數(shù)值拆分,程序編寫如下。實訓(xùn)模塊交通信號燈倒計時顯示電路軟硬件設(shè)計1)兩位倒計時數(shù)值拆分顯示程序設(shè)計SECOND1EQU30H;東西路口計時存放器SECOND2EQU31H ;南北路口計時存放器DBUFEQU40H ;顯示緩沖區(qū)1TEMPEQU44H ;顯示緩沖區(qū)2ORG0000HMOVSECOND1,#25 ;東西路口計時顯示初值25sMOVSECOND2,#25 ;南北路口計時顯示初值25sMOVR3,#25 ;控制循環(huán)次數(shù),即顯示數(shù)值的個數(shù)……實訓(xùn)模塊交通信號燈倒計時顯示電路軟硬件設(shè)計2)倒計時顯示程序設(shè)計接上述拆分程序,東西和南北方向的時間數(shù)值都存放在DBUF緩沖區(qū)中。倒計時數(shù)值顯示程序如下。SECOND1EQU30H;東西路口計時存放器SECOND2EQU31H;南北路口計時存放器DBUFEQU40H;顯示緩沖區(qū)TEMPEQU44H;顯示暫存區(qū)ORG0000HMOVR0,#DBUFMOVR1,#TEMP……實訓(xùn)模塊交通信號燈倒計時顯示電路軟硬件設(shè)計程序調(diào)試與仿真三、實訓(xùn)模塊交通信號燈倒計時顯示電路軟硬件設(shè)計把倒計時數(shù)值拆分程序和顯示程序分別錄入到WAVE仿真軟件中,進行程序仿真調(diào)試,觀察端口或寄存器的變化,是否與設(shè)計要求相同。在仿真過程中,為了便于觀察,可以把數(shù)據(jù)直接送到單片機的四個并行端口,這樣可以方便調(diào)試,程序調(diào)試達到設(shè)計要求時,再把原來的存儲地址或寄存器更換回來。任務(wù)三交通燈控制系統(tǒng)調(diào)試工作內(nèi)容及要求本任務(wù)所要完成的工作是進行交通燈控制系統(tǒng)軟硬件聯(lián)合調(diào)試,實現(xiàn)交通燈控制系統(tǒng)的設(shè)計要求。主要內(nèi)容包括:根據(jù)前面任務(wù)完成的硬件電路設(shè)計情況,進行系統(tǒng)整體電路的連接;交通燈控制系統(tǒng)軟件整體設(shè)計及調(diào)試;程序下載到單片機并進行軟硬件聯(lián)合調(diào)試。通過以上任務(wù)的實施,最后使交通燈控制系統(tǒng)能完全模擬生活中真實交通控制信號燈的工作狀態(tài),達到設(shè)計要求。學(xué)生在完成整個任務(wù)的過程中,逐步提高理論知識和實踐能力。通過拓寬單片機的應(yīng)用范圍,激發(fā)學(xué)生學(xué)習(xí)單片機的積極性,同時提高分析問題和解決問題的能力。任務(wù)分析根據(jù)交通燈控制系統(tǒng)的任務(wù)說明及本任務(wù)的工作內(nèi)容及要求,把交通燈控制系統(tǒng)設(shè)計分解成如下幾個部分。(1)根據(jù)前面任務(wù)完成各電路的設(shè)計,進行交通燈控制系統(tǒng)硬件電路的連接測試。(2)交通燈控制系統(tǒng)整體程序的設(shè)計與仿真調(diào)試。(3)下載程序,完成交通燈控制系統(tǒng)的軟硬件聯(lián)合調(diào)試,完成系統(tǒng)的設(shè)計,達到設(shè)計要求。任務(wù)三交通燈控制系統(tǒng)調(diào)試交通燈控制系統(tǒng)線路連接一、交通燈控制系統(tǒng)的電路圖如圖5-10所示,按照電路圖進行硬件連接。連接電路時應(yīng)注意以下幾點?!?〕P3.0接最左側(cè)移位存放器74LS164的輸入端A和B〔1和2腳〕;后面三個移位存放器的輸入端〔A和B〕分別接前一個移位存放器的Q7〔標(biāo)號為D7、C7、B7〕?!?〕P3.1與四個移位存放器的CLK〔8腳〕并聯(lián)在一起。〔3〕P2.1~P2.6接反相器74LS05的6個輸入端,74LS05的對應(yīng)輸出端接各路口的發(fā)光二極管的陰極,二極管的陽極接+5V電源。實訓(xùn)模塊交通燈控制系統(tǒng)線路連接與軟硬件聯(lián)合調(diào)試圖5-10交通燈控制系統(tǒng)電路圖實訓(xùn)模塊交通燈控制系統(tǒng)線路連接與軟硬件聯(lián)合調(diào)試交通燈控制系統(tǒng)整體軟件設(shè)計二、前面我們把任務(wù)分解開來,每個分解的任務(wù)所需要的程序也都已經(jīng)編寫出來了。當(dāng)時在編寫時,我們只是考慮一個單獨任務(wù)所需要的程序,程序編寫中沒有參加相關(guān)任務(wù)的協(xié)調(diào)程序。其實在整個系統(tǒng)中各任務(wù)是相互關(guān)聯(lián)的,有些控制是結(jié)合其他任務(wù)一起進行的,所以在整個交通燈控制系統(tǒng)的軟件總體

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論