版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 基于單片機的交通燈控制器的研究與設(shè)計</p><p><b> 目 錄</b></p><p> 摘要 ................................................................... I</p><p> Abstract....................
2、.............................................II</p><p> 1 引言 .................................................................1</p><p> 2 單片機概述 ...............................................
3、............ 1</p><p> 3 芯片的選者與簡介......................................................1</p><p> 3.1 MSC-51芯片簡介.....................................................1</p><p> 3.2
4、 8255芯片簡介.......................................................4</p><p> 3.3 其他器件...........................................................5</p><p> 4 控制器硬件的設(shè)計...............................
5、........................5</p><p> 4.1交通管理方案論證....................................................5</p><p> 4.2系統(tǒng)硬件設(shè)計........................................................6</p><p&g
6、t; 4.2.1交通燈系統(tǒng)框圖..................................................6</p><p> 4.2.2交通燈控制線路圖................................................7</p><p> 4.2.3系統(tǒng)工作原理..................................
7、..................8</p><p> 5控制器的軟件設(shè)計........................................................8</p><p> 5.1每秒鐘的設(shè)定.........................................................8</p><p>
8、 5.2計數(shù)器的硬件延時.....................................................8</p><p> 5.2.1計數(shù)器初值計算...................................................8</p><p> 5.2.2計算公式...................................
9、......................8</p><p> 5.2.3設(shè)置1秒的方法...................................................8</p><p> 5.2.4相應代碼程序.....................................................9</p><p>
10、 5.3軟件延時............................................................9</p><p> 5.4時間及信號燈的顯示..................................................10 </p><p> 5.4.1 8031并行口擴展.........................
11、........................10</p><p> 5.4.2顯示原理........................................................10</p><p> 5.4.3 8255輸出信號的放大.............................................10</p><p
12、> 5.4.4 8255輸出信號與信號燈的連接.....................................11</p><p> 5.4.5 8255與8031的連接...............................................11</p><p> 5.5程序設(shè)計..................................
13、..........................11</p><p> 5.5.1流程圖如圖所示..................................................11</p><p> 5.5.2 程序源代碼..................................................... 12</p><
14、;p> 6看門狗硬件電路設(shè)計.....................................................16</p><p> 6.1軟件看門狗....................................................... 17 </p><p> 6.2硬件看門狗.........................
15、.............................. 17</p><p> 7單片機開發(fā)系統(tǒng).........................................................19</p><p> 8實驗平臺...............................................................20<
16、;/p><p> 8.1實驗平臺...........................................................20</p><p> 8.2實驗步驟 ..........................................................20</p><p> 8.3 系統(tǒng)編程信息........
17、.............................................. 20</p><p> 8.3.1 系統(tǒng)內(nèi)存分配和I/0接口使用...................................... 21</p><p> 8.3.2 實驗程序原代碼..................................................
18、21</p><p> 9結(jié)論..................................................................26</p><p> 10致謝..................................................................26 </p><p> 參考文獻.
19、...............................................................27</p><p> 基于單片機的交通燈控制器的設(shè)計與實現(xiàn)</p><p> 摘要: 近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷地走向深入,同時帶動傳統(tǒng)控制檢測日新月異更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往是作為一個核心部件來使用,僅單片
20、機方面知識是不夠的,還應根據(jù)具體硬件結(jié)構(gòu),以及針對具體應用對象特點的軟件結(jié)合,加以完善。</p><p> 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現(xiàn)這井然秩序呢?靠的是交通信號燈的自動指揮系統(tǒng)。交通信號燈控制方式很多。本系統(tǒng)采用MSC-51系列單片機Intel8031和可編程并行I/O接口芯片8255A為中心器件來設(shè)計交通燈控制器,實現(xiàn)了能根據(jù)實際車流量通過8031芯片的P1口
21、設(shè)置紅、綠燈燃亮時間的功能;為了系統(tǒng)穩(wěn)定可靠采用了MAX629“看門狗”芯片,避免了系統(tǒng)因為死機而停止工作的情況發(fā)生;顯示時間直接通過8255的PA、PB口輸出;交通燈信號通過PC口輸出;交通燈的點亮采用VT雙向晶閘管來控制,直接采用220V交流電源驅(qū)動,系統(tǒng)實用性強、操作簡單、擴展性強。 </p><p> 關(guān)鍵詞:單片機 交通燈 控制器 設(shè)計 實現(xiàn)</p><p> Bas
22、ed on the design of the controler of traffic lights of single flat machine</p><p> with realization</p><p><b> TANG Bo</b></p><p> (Grade 2001 ,Computer Science and T
23、echnology[Educational direction], College of Mathematics and Computer Science,Chongqing Three Gorges University ,Wanzhou, Chongqing 404000) </p><p> Abstract: In recent years along with science and technolo
24、gy develop fast, the application of single flat machine is moving towards thorough continuously, at the same time drive traditional control detection day the benefit of new moon update. In the only flat machine applicati
25、on system of the automatic control and detection of real time, only flat machine is often to use as a key parts, only single flat machine aspect knowledge is insufficient , return should basis specificly hardware structu
26、re,</p><p> Crossroads vehicle wear comb, pedestrian Xi Rang, turn to be all right lane, person pedestrian says , methodically. Do you lean what to realize this orderly order? What lean is that the automati
27、c command system of traffic signal lamp. Traffic signal lamp control way is many . This system adopts MSC-51 series only flat machine Intel8031 with but programming parallel interface chip 8255 A of I/O is central device
28、 the design controler of traffic lights, haverealized can measure according to actual </p><p> Keywords: Only flat machine Traffic lights Controler Design Realize</p><p><b> 1 引言<
29、/b></p><p> 再今天,紅綠燈安裝在各個道口上,已經(jīng)成為疏導交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀就已出現(xiàn)了。</p><p> 1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。
30、它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。</p><p> 1914年,電氣啟動的紅綠燈出現(xiàn)在美國。這種紅綠燈由紅綠黃三色圓形的投光器組成,安裝在紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。</p><p> 1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一
31、種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。</p><p> 信號燈的出現(xiàn),使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國《道路交通和道路標志
32、信號協(xié)定》對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。</p><p><b> 2 單片機概述&
33、lt;/b></p><p> 單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領(lǐng)域,故又稱為微控制器。</p><p> 通常,單片機由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計算機的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機只需要和適當?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機控制系統(tǒng)。</p&g
34、t;<p> 單片機經(jīng)過1、2、3、3代的發(fā)展,目前單片機正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強,內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗。</p><p> 3 芯片的選擇與簡介</p><p> 3.1 MSC-51芯片簡介</p><p> MCS-51單片機內(nèi)部結(jié)構(gòu)</p><p> 80
35、51是MCS-51系列單片機的典型產(chǎn)品,我們以這一代表性的機型進行系統(tǒng)的講解。 8051單片機包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、 串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以 說明:</p><p><b> ·中央處理器:<
36、;/b></p><p> 中央處理器(CPU)是整個單片機的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進制數(shù)據(jù)或代碼,CPU負責控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運算和控制輸入輸出功能等操作。</p><p> ·數(shù)據(jù)存儲器(RAM)</p><p> 8051內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)
37、一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運算的中間結(jié)果或用戶定義的字型表。</p><p><b> 圖1</b></p><p> ·程序存儲器(ROM):</p><p> 8051共有4096個8位掩膜ROM,用于存放用戶
38、程序,原始數(shù)據(jù)或表格。</p><p> ·定時/計數(shù)器(ROM):</p><p> 8051有兩個16位的可編程定時/計數(shù)器,以實現(xiàn)定時或計數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。</p><p> ·并行輸入輸出(I/O)口:</p><p> 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳
39、輸。</p><p><b> ·全雙工串行口:</b></p><p> 8051內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。</p><p><b> ·中斷系統(tǒng):</b></p><p> 80
40、51具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。</p><p><b> ·時鐘電路:</b></p><p> 8051內(nèi)置最高頻率達12MHz的時鐘電路,用于產(chǎn)生整個單片機運行的脈沖時序,但8051單片機需外置振蕩電容。</p><p> 單片機的
41、結(jié)構(gòu)有兩種類型,一種是程序存儲器和數(shù)據(jù)存儲器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計算機廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機則采用普林斯頓結(jié)構(gòu)。</p><p> 下圖是MCS-51系列單片機的內(nèi)部結(jié)構(gòu)示意圖2。</p><p
42、><b> 圖2</b></p><p> MCS-51的引腳說明:</p><p> MCS-51系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用?,F(xiàn)在我們對這些引腳的功能加以說明:<
43、/p><p> MCS-51的引腳說明:</p><p> MCS-51系列單片機中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復用。現(xiàn)在我們對這些引腳的功能加以說明:如圖3</p><p><b>
44、圖3</b></p><p> Pin9:RESET/Vpd復位信號復用腳,當8051通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復位。初始化后,程序計數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復位不改變RAM(包括工作寄存
45、器R0-R7)的狀態(tài),8051的初始態(tài)。</p><p> 8051的復位方式可以是自動復位,也可以是手動復位,見下圖4。此外,RESET/Vpd還是一復用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機內(nèi)部RAM的數(shù)據(jù)不丟失。</p><p><b> 圖4</b></p><p> ·Pin30:ALE/當訪問外部程序器
46、時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當作一個時鐘向外輸出。更有一個特點,當訪問外部程序存儲器,ALE會跳過一個脈沖。</p><p> 如果單片機是EPROM,在編程其間,將用于輸入編程脈沖。</p><p> ·Pin29:當訪問外部程序存儲器時,此
47、腳輸出負脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。</p><p> ·Pin31:EA/Vpp程序存儲器的內(nèi)外部選通線,8051和8751單片機,內(nèi)置有4kB的程序存儲器,當EA為高電平并且程序地址小于4kB時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存
48、儲器指令。顯然,對內(nèi)部無程序存儲器的8031,EA端必須接地。</p><p> 在編程時,EA/Vpp腳還需加上21V的編程電壓。</p><p> 3.2 8255芯片簡介</p><p> 8255可編程并行接口芯片簡介:</p><p> 8255可編程并行接口芯片有三個輸入輸出端口,即A口、B口和C口,對應于引腳PA7~P
49、A0、PB7~PB0和PC7~PC0。其內(nèi)部還有一個控制寄存器,即控制口。通常A口、B口作為輸入輸出的數(shù)據(jù)端口。C口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個端口包含一個4位鎖存器。它們分別與端口A/B配合使用,可以用作控制信號輸出或作為狀態(tài)信號輸入。</p><p> 8255可編程并行接口芯片方式控制字格式說明:</p><p> 8255有兩種控制命令
50、字;一個是方式選擇控制字;另一個是C口按位置位/復位控制字。其中C口按位置位/復位控制字方式使用較為繁難,說明也較冗長,故在此不作敘述,需要時用戶可自行查找有關(guān)資料。</p><p> 方式控制字格式說明如表1:</p><p><b> 表1</b></p><p> D7:設(shè)定工作方式標志,1有效。</p><p&
51、gt; D6、D5:A口方式選擇</p><p><b> 0 0 —方式0</b></p><p><b> 0 1 —方式1</b></p><p><b> 1 ×—方式2</b></p><p> D4:A口功能 (1=輸入,0=輸出)&
52、lt;/p><p> D3:C口高4位功能 (1=輸入,0=輸出)</p><p> D2:B口方式選擇 (0=方式0,1=方式1)</p><p> D1:B口功能 (1=輸入,0=輸出)</p><p> D0:C口低4位功能 (1=輸入,0=輸出)</p><p> 8255可編程并行接口芯
53、片工作方式說明:</p><p> 方式0:基本輸入/輸出方式。適用于三個端口中的任何一個。每一個端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存。</p><p> 方式1:選通輸入/輸出方式。這時A口或B口的8位外設(shè)線用作輸入或輸出,C口的4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號和中斷請求信號。</p><p> 方式2 :雙向總線方式。只有A口具備雙向總線
54、方式,8位外設(shè)線用作輸入或輸出,此時C口的5條線用作通訊聯(lián)絡(luò)信號和中斷請求信號。</p><p><b> 3.3 其他器件</b></p><p> 數(shù)共陰極的七段數(shù)碼管。如圖5</p><p><b> 圖5</b></p><p> VT為雙向晶閘管,當門極為高電平時晶閘管導通,該支
55、路指示燈亮;當門極為低電平時晶閘管關(guān)斷,該支路指示燈滅。</p><p> 4 控制器硬件系統(tǒng)設(shè)計</p><p> 4.1交通管理的方案論證</p><p> A、B兩干道交于一個十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮時間為A、B兩干道的公共停
56、車時間。設(shè)A道比B道的車流量大,指示燈燃亮的方案如表2。</p><p><b> 表2</b></p><p> 此表2說明:(1)當為黃燈時 A、B兩道同時為黃燈;以提示行人或車輛下一個燈色即將到來 時間 3秒。 </p><p> (2)當A到為紅燈,A 道車輛禁止通行,A 道行人可通過;B 道為綠燈,B 道車輛通過
57、,行人禁止通行。時間為60秒。</p><p> (3)當A道綠燈,A 道車輛通行;B 道為紅燈,B 道車輛禁止通過,行人通行。時間為80秒。 A道車流大 通行時間長</p><p> ?。?)這樣如上表的時間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。</p><p> ?。?)此表可根據(jù)車流量動態(tài)設(shè)定</p><p>
58、;<b> 4.2系統(tǒng)硬件設(shè)計</b></p><p> 選用設(shè)備8031單片機一片選用設(shè)備:8031彈片機一片,8255并行通用接口芯片一片,74LS07兩片,MAX692‘看門狗’一片,共陰極的七段數(shù)碼管兩個雙向晶閘管若干,7805三端穩(wěn)壓電源一個,紅、黃、綠交通燈各兩個,開關(guān)鍵盤、連線若干。</p><p> 4.2.1 系統(tǒng)總框圖如下:</p&g
59、t;<p><b> 圖6</b></p><p> 4.2.2 交通燈控制線路圖 </p><p> 4.2.3 系統(tǒng)工作原理</p><p> ?。?)開關(guān)鍵盤輸入交通燈初始時間,通過8031單片機P1輸入到系統(tǒng)</p><p> (2) 由8
60、031單片機的定時器每秒鐘通過P0口向8255的數(shù)據(jù)口送信息,由8255的PC 口顯示紅、綠、黃燈的燃亮情況;由8255的PA、PB口顯示每個燈的燃亮時間。</p><p> (3)8031通過 設(shè)置 各個信號等的燃亮時間、通過8031設(shè)置,黃、綠、紅時間依次為3秒、60秒、3秒、80秒、3秒循環(huán)由8031的 P0口向8255的數(shù)據(jù)口輸出。</p><p> ?。?) 通過8031單片
61、機的P3.0位來控制系統(tǒng)是工作或設(shè)置初值,當.牌位0就對系統(tǒng)進行初始化,為1系統(tǒng)就開始工作。</p><p> ?。?)8255PA口用于輸出時間的個位,PB口用于輸出時間的十位,由747S07驅(qū)動芯片驅(qū)動;.而PC口用于輸出各個燈的情況,它的末段連接雙向晶閘管采用220V交流電壓驅(qū)動。</p><p> ?。?)在交通控制程序中加入看門狗指令,當系統(tǒng)出現(xiàn)異??撮T狗將發(fā)出溢出中斷。通過專用
62、端口輸入到MAX692看門狗芯片的WDI 引角引起RESET復位信號復位系統(tǒng)</p><p> ?。担刂破鞯能浖O(shè)計</p><p><b> 5.1每秒鐘的設(shè)定</b></p><p> 延時方法可以有兩種一中是利用MCS-51內(nèi)部定時器才生溢出中斷來確定1秒的時間,另一種是采用軟延時的方法。</p><p>
63、 5.2計數(shù)器硬件延時</p><p> 5.2.1 計數(shù)器初值計算</p><p> 定時器工作時必須給計數(shù)器送計數(shù)器初值,這個值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值設(shè)定為C和計數(shù)初值設(shè)定為TC 可得到如下計算通式:</p><p><b> TC=M-C<
64、/b></p><p> 式中,M為計數(shù)器摸值,該值和計數(shù)器工作方式有關(guān)。在方式0時M為213 ;在方式1時M的值為216;在方式2和3為28</p><p> 5.2.2 計算公式</p><p> T=(M-TC)T計數(shù)</p><p> 或TC=M-T/T計數(shù)</p><p> T計數(shù)是單片機時
65、鐘周期TCLK的12倍;TC為定時初值</p><p> 如單片機的主脈沖頻率為TCLK12MHZ ,經(jīng)過12分頻</p><p> 方式0 TMAX=213?。蔽⒚耄剑福保梗埠撩?lt;/p><p> 方式1 ?。裕停粒兀?16 *1微秒=65.536毫秒</p><p> 顯然1秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們
66、只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題.</p><p> 5.2.3 1秒的方法</p><p> 我們采用在主程序中設(shè)定一個初值為20的軟件計數(shù)器和使T0定時50毫秒.這樣每當T0到50毫秒時CPU就響應它的溢出中斷請求,進入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計數(shù)器減1,然后判斷它是否為零。為零表示1秒已到可以返回到輸出時間顯示程序。</p&g
67、t;<p> 5.2.4相應程序代碼</p><p><b> ?。ǎ保┲鞒绦颉?lt;/b></p><p> 定時器需定時50毫秒,故T0工作于方式1?!〕踔担?lt;/p><p> ?。裕茫剑停裕?T計數(shù) =216?。担癿s/1us=15536=3CBOH</p><p><b> ORG
68、1000H</b></p><p> START: MOV TMOD, #01H ; 令TO為定時器方式1</p><p> MOV TH0, #3CH ;裝入定時器初值</p><p> MOV TL0, #BOH ;</p><p> MOV IE, #82H ;開T0
69、中斷</p><p> SEBT TRO ??;啟動T0計數(shù)器</p><p> MOV RO, #14H ;軟件計數(shù)器賦初值</p><p> LOOP: SJMP $ ;等待中斷</p><p> (2)中斷服務(wù)子程序</p><p> ?。希遥恰 。埃埃埃拢?lt;/
70、p><p> AJMP ?。拢遥裕?lt;/p><p><b> ?。希遥恰。埃埃拢?lt;/b></p><p> ?。拢遥裕希篋JNZ R0,NEXT</p><p> AJMP TIME ; 跳轉(zhuǎn)到時間及信號燈顯示子程序 </p><p> DJNZ:MOV?。遥?,#14H??;恢復R0
71、值</p><p> MOV TH0, #3CH ;重裝入定時器初值</p><p> MOV TL0, #BOH ;</p><p> MOV IE, #82H </p><p><b> ?。遥牛裕?lt;/b></p><p><b> ?。牛危?lt
72、;/b></p><p><b> 5.3 軟件延時</b></p><p> MCS-51的工作頻率為2-12MHZ,我們選用的8031單片機的工作頻率為6MHZ。機器周期與主頻有關(guān),機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間。</p&
73、gt;<p> 具體的延時程序分析:</p><p> DELAY:MOV R4,#08H 延時1秒子程序</p><p> DE2:LCALL DELAY1 </p><p> DJNZ R4,DE2</p><p><b> RET</b></p><p> D
74、ELAY1:MOV R6,#0 延時125ms 子程序</p><p><b> MOV R5,#0</b></p><p> DE1: DJNZ R5,$</p><p> DJNZ R6,DE1</p><p><b> RET</b></p><p>
75、; MOV RN,#DATA 字節(jié)數(shù)數(shù)為2 機器周期數(shù)為1</p><p> 所以此指令的執(zhí)行時間為2ms </p><p> DELAY1 為一個雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時時間=65536*2=131072us 約為125us </p><p> DELAY R4設(shè)置的初值為8 主延時程序循環(huán)8次,所以125
76、us*8= 1秒</p><p> 由于單片機的運行速度很快其他的指令執(zhí)行時間可以忽略不計。</p><p> 5.4 時間及信號燈的顯示</p><p> 5.4.1 8031并行口的擴展</p><p> 8031雖然有4個8位I/O端口,但真正能提供借用的只有P1口,因為P2和P0口通常用于傳送外部傳送地址和數(shù)據(jù),P3口也有它
77、的第二功能。因此,8031通常需要擴展。由于我們用外輸出時間時,時間的個位、十位、信號燈的顯示都要用到一個I/O端口,顯然8031的端口是不夠,需要擴展。</p><p> 擴展的方法有兩種:(1)借用外部RAM地址來擴展I/O端口;(2)采用I/O接口新片來擴充。, 我們用8255并行接口信片來擴展I/O端口。</p><p> 5.4.2顯示原理:</p><
78、;p> 當定時器定時為1秒,時程序跳轉(zhuǎn)到時間顯示及信號燈顯示子程序,它將依次顯示信號燈時間 ,同時一直顯示信號燈的顏色,這時在返回定時子程序定時一秒,在顯示黃燈的下一個時間,這樣依次把所有的燈色的時間顯示完后在重新給時間計數(shù)器賦初值 ,重新進入循環(huán)。 </p><p> 5.4.3 8255輸出信號的放大:</p><p> 要使行人能看見信號燈的情況,必須把8255輸出
79、的信號進行放大,這里我們用VT為雙向晶閘管,當門極為高電平時晶閘管導通,該支路指示燈亮;當門極為低電平時關(guān)斷,該支路指示燈滅。如圖2</p><p> 我們用連接7段數(shù)碼管的方法來連接晶閘管 </p><p> 5.4.4 8255輸出信號與信號燈的連接:</p><p> LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點量而顯示不同的
80、字形如 SP,g,f,e,d,c,b,a 管角上加上7FH所以?。樱猩蠟椋胺?,不亮其余為TTL高電平,全亮則顯示為8</p><p><b> 采用共陰級連接:</b></p><p> 其中 PA0\PB0-a,</p><p> PA1\PB1-b, </p><p> PA2\PB2-c,</p&g
81、t;<p> PA3\PB3-d,</p><p> PA4\PB4-e, </p><p> PA5\PB5-f,</p><p><b> PA6\PB6-g</b></p><p> PA7\PB7 -SP接地</p><p> 表 3 驅(qū)動代碼表</p
82、><p> 5.4.5 8255與8031的連接:</p><p> 用8031的P0 口的 p0.7 連接8255的片選信號cs 我們用8031的地址采用全譯碼方式,當p0.7 =0 時片選有效, 其他無效, p0.1 p0.1 用于選擇8255端口</p><p> P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0<
83、/p><p> A7 A6 A5 A4 A3 A2 A1 A0</p><p> 1 X X X X X 0 0 00H為8255 的PA口</p><p> 1 X X X X X 0 1 01H 為8255的PB口</p>&l
84、t;p> 1 X X X X X 1 0 02H 為8255的PC口</p><p> 1 X X X X X 1 1 03H 為8255的控制口</p><p> 由于8031是分時對8255和儲存器進行訪問所以8031的P0口不會發(fā)生沖突</p><p>&l
85、t;b> 5.5 程序設(shè)計</b></p><p> 5.5.1流程圖如圖所示</p><p><b> 圖8</b></p><p><b> 圖9 程序流程圖</b></p><p> 5.5.2 程序源代碼</p><p> R4 存
86、放黃燈時間 3 03H (此時間可以動態(tài)設(shè)定)</p><p> R5 存放紅燈時間 60 3CH</p><p> R6 存放綠燈時間 80 50H</p><p> PC0 顯示黃燈信號</p><p> PC1 顯示紅燈信號</p><p> PC2
87、 顯示黃燈信號 </p><p><b> 工作于方式0</b></p><p> 8255 PA、PB、 PC口輸出 PC 控制字為10000000B (80H)</p><p><b> 程序源代碼:</b></p><p><b> ORG 0000H</b&g
88、t;</p><p><b> LJMP MAIN</b></p><p><b> ORG 0100H</b></p><p> MAIN: MOV R1,#03H 初始化8255</p><p> MOV A,#80H</p><p> MOV
89、X @R1,A</p><p> AGAIN: MOV P3,#80H 設(shè)置初值</p><p><b> MOV A,P3</b></p><p> JB ACC.7, NEXT0</p><p> AGAIN1: MOV P3,#40H</p><p><
90、b> MOV A,P3</b></p><p> JB ACC.6, RED</p><p> MOV P3,#0FH</p><p><b> MOV A,P3</b></p><p> ANL A,#0FH</p><p><b> MOV R3,A&l
91、t;/b></p><p> AJMP AGAIN1</p><p> RED: MOV P3,#0FH</p><p><b> MOV A,P3</b></p><p> ANL A,#0FH</p><p><b> MOV R2,A</b>
92、;</p><p> AJMP AGAIN</p><p> NEXT0: MOV R1,#03H </p><p> NEXT1: MOV DPTR,#TAB 顯示黃燈個位</p><p><b> MOV A,R1</b></p><p> MOV
93、C A,@A+DPTR</p><p> MOV R1,#00H</p><p> MOVX @R1, A</p><p> MOV R1,#O</p><p> MOV DPTR,#TAB 顯示黃燈十位</p><p><b> MOV A,R0</b></p>&
94、lt;p> MOVC A,@A+DPTR</p><p> MOV R1,#01H</p><p> MOVX @R1,A</p><p> MOV DPTR,#0C62H 顯示黃燈信號</p><p> MOV A,#00H</p><p> LCALL 0F4E0H</p>&l
95、t;p> ACALL DELAY 延時1秒</p><p> DJNZ R0,NEXT1</p><p><b> MOV A,R3</b></p><p> MOV R0,A </p><p> NEXT2:MOV DPTR,#TAB 顯示紅燈個位</p><p&g
96、t;<b> MOV A,R0</b></p><p> MOVC A,@A+DPTR</p><p> MOV R1,#00H</p><p> MOVX @R1,A</p><p> MOV DPTR,#TAB 顯示紅燈十位</p><p><b> MOV A,R0
97、</b></p><p> MOVC A,@A+DPTR</p><p> MOV R1,#01H</p><p><b> MOV A,R0</b></p><p> MOVX @R1,R0</p><p> MOV R1,#02H 顯示紅燈信號</p>
98、<p> MOV A,#02H</p><p> MOVX @R1,A</p><p> ACALL DELAY 延時1秒</p><p> DJNZ R0,NEXT2</p><p><b> MOV A,R2</b></p><p> MOV R0,A
99、</p><p> NEXT3:MOV DPTR,#TAB 顯示綠燈個位</p><p><b> MOV A,R0</b></p><p> MOVC A,@A+DPTR</p><p> MOV R1,#00H</p><p> MOVX @R1,R0</p><
100、;p> MOV DPTR,#TAB 顯示綠燈十位</p><p><b> MOV A,R0</b></p><p> MOVC A,@A+DPTR</p><p> MOV R1,#01H</p><p><b> MOV A,R0</b></p><p&
101、gt; MOVX @R1,R0</p><p> MOV R1,#02H 顯示綠燈信號</p><p> MOV A,#02H</p><p> MOVX @R1,A</p><p> ACALL DELAY 延時1秒</p><p> DJNZ R0,NEXT3</p><
102、;p> AJMP NEXT0</p><p> DELAY:MOV R4,#08H 延時1秒子程序</p><p> DE2:LCALL DELAY1 </p><p> DJNZ R4,DE2</p><p><b> RET</b></p><p> DELAY1:M
103、OV R6,#0 </p><p><b> MOV R5,#0</b></p><p> DE1: DJNZ R5,$</p><p> DJNZ R6,DE1</p><p><b> RET</b></p><p> TAB: DB 3FH,06H,
104、5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H</p><p><b> 驅(qū)動代碼表</b></p><p><b> END</b></p><p> 6 看門狗硬件電路 </p><p> 由于單片機自身的抗干擾能力比較差,
105、尤其在一些條件比較惡劣、噪聲大的場合,常會出現(xiàn)單片機因為受外界干擾而導致死機的現(xiàn)象,造成系統(tǒng)不能正常工作。設(shè)置看門狗是為了防止單片機死機、提高單片機系統(tǒng)抗干擾性的一種重要途徑。</p><p> 一個完整的單片機應用系統(tǒng)應該是一個軟、硬件的結(jié)合體,在系統(tǒng)正常工作時,會受到各種外界干擾因素的影響。這種外界干擾輕者導致系統(tǒng)內(nèi)部數(shù)據(jù)出錯,重者將嚴重影響程序的運行。因此單片機應用系統(tǒng)的開發(fā)一定要考慮系統(tǒng)可靠性的設(shè)計,以
106、滿足系統(tǒng)在現(xiàn)場苛刻環(huán)境下的正常運行,而“看門狗”則是系統(tǒng)可靠性設(shè)計的重要一環(huán)。在一個單片機應用系統(tǒng)中,所謂的“看門狗”是指在系統(tǒng)設(shè)計中通過軟件或硬件方式在一定的周期內(nèi)監(jiān)控單片機或其他CPU的運行情況。如果在規(guī)定的時間內(nèi)沒有收到來自單片機或其他CPU的觸發(fā)信號,則系統(tǒng)會強制復位,以保證系統(tǒng)在受到干擾時仍能夠維持正常的工作狀態(tài)。在單片機系統(tǒng)中,看門狗的設(shè)計一般采用硬件和軟件結(jié)合兩種方式。</p><p><b&
107、gt; 6.1軟件看門狗</b></p><p> 軟件看門狗是利用單片機片內(nèi)閑置的定時器/計數(shù)器單元作為看門狗,在單片機程序中適當?shù)牟迦氡O(jiān)控指令,當程序出現(xiàn)異常或進入死循環(huán)時,利用軟件將程序計數(shù)器PC賦予初始值,強制性的使程序重新開始運行。</p><p> 使用軟件看門狗的具體實現(xiàn)方法如下。</p><p> 首先在初始化程序中設(shè)置好定時器/
108、計數(shù)器的方式控制寄存器(TMOD) 和定時時間的初值,并開中斷。</p><p> 根據(jù)定時器的定時時間,在主程序中按一定的間隔插入復位定時器的指令,既插入監(jiān)控指令,兩條指令間的時間間隔應該小于定時時間,否則看門狗將發(fā)生錯誤動作。</p><p> 在定時器的中斷服務(wù)程序中設(shè)置一條無條件轉(zhuǎn)移指令,將程序計數(shù)器PC轉(zhuǎn)移到初始化程序的入口。</p><p>
109、; 軟件看門狗的最大特點是無須外加硬件電路,經(jīng)濟性好。當然,如果片內(nèi)的定時器/計數(shù)器被占用,就需要尋求其他的設(shè)計方式了。</p><p> 6.2硬件看門狗 </p><p> 專用硬件看門狗是指一些集成化的或集成在單片機內(nèi)的專用看門狗電路,它實際上是一個特殊的定時器,當定時時間到時,發(fā)出溢出脈沖。從實現(xiàn)角度上看,該方式是一種軟件與片外專用電路相結(jié)合的技術(shù),硬件電路連接好后,
110、在程序中適當?shù)夭迦胍恍┛撮T狗復位的指令,保證程序正常運行時看門狗不溢出。而當程序運行異常時,看門狗超時發(fā)出溢出脈沖,通過單片機的RESET引腳使單片機復位。這種方式中,看門狗能否可靠有效地工作,與硬件組成及軟件的控制策略都有密切的關(guān)系。目前常用的集成看門狗電路很多,如MAX705~708、MAX813L、X5043/5045等。</p><p> 看門狗電路可以分為內(nèi)看門狗和外看門狗。看門狗電路是指看門狗的硬件
111、電路包含在單片機內(nèi)部,如Microchip的16C5x系列,MOTOROLA的68C05系列,51內(nèi)核中比較典型的有Atmel公司的AT89C55WD、AT89S8252,Winbond公司的W77E58,SST公司的SST89C58以及Philips公司87系列的多種型號的單片機等。</p><p> 對于沒有看門狗定時器的單片機或是認為內(nèi)部看門狗不可靠時,可以采用外部看門狗定時器。外部看門狗電路既可以用專用
112、看門狗芯片,也可由普通芯片實現(xiàn)。</p><p> 這里,以專用芯片MAX692作為外部看門狗的電路。</p><p> MAX692是微系統(tǒng)監(jiān)控電路芯片,具有后備電池切換、掉電判別、看門狗監(jiān)控等功能。其封裝和引腳說明如圖10所示。</p><p> 圖 10 MAX692封裝和引腳</p><p> VOUT
113、 VBATT</p><p> VCC RESET</p><p> GND WDI</p><p> PFI /PFD</p><p> VOUT:電源輸出引腳。</p&
114、gt;<p> VCC:接電源引腳,電源供電3.0~5.5V。</p><p><b> GND:接地。</b></p><p> PFI:電池故障輸入。</p><p> /PFO:電池故障輸出。</p><p> WDI:監(jiān)視器輸入引腳。</p><p> /RESE
115、T:復位輸出引腳,低電平有效。</p><p> VBATT:后備電池輸入端。</p><p> MAX692在本文的單片機系統(tǒng)中的具體使用方法和電路原理圖如圖11所示。</p><p> MAX692電路原理圖 如圖其中WDI是看門狗監(jiān)測輸入腳,接到CPU的一個專用I/O口或一個總線上。/RESET是復位信號輸出腳,接到CPU的復位輸入腳。</p>
116、;<p> MAX692的WDI定時周期是1.6s,復位脈沖寬度是200ms。如果WDI保持高或低超過看門狗定時周期(1.6s),/RESET端將發(fā)生200ms的負脈沖使CPU復位</p><p> 圖 11 MAX692電路原理圖</p><p> 7 單片機開發(fā)系統(tǒng)</p><p> 單片機開發(fā)系統(tǒng)實際上也是一種計算機系統(tǒng),是專門用來開發(fā)
117、單片機應用系統(tǒng)的一種工具,它通常由一臺系統(tǒng)機、一個通用再線仿真器和一個通用編程器構(gòu)成如圖</p><p><b> 圖 12</b></p><p> 在主機上運行開發(fā)軟件(編輯軟件、調(diào)試軟件)就可以輸入、刪除、編輯和運行用戶程序,也可以把用戶目標代碼通過串口傳送到通用再線仿真器。編程器可以對EPROM進行編程和效驗,也可以在主機對編程器進行操作</p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通燈畢業(yè)設(shè)計
- 交通燈設(shè)計畢業(yè)設(shè)計
- 模擬交通燈 畢業(yè)設(shè)計
- 交通燈畢業(yè)設(shè)計論文
- 模擬交通燈畢業(yè)設(shè)計
- 畢業(yè)設(shè)計模擬交通燈
- 模擬交通燈畢業(yè)設(shè)計
- 畢業(yè)設(shè)計---智能交通燈
- 交通燈畢業(yè)設(shè)計論文
- plc交通燈畢業(yè)設(shè)計
- plc交通燈畢業(yè)設(shè)計
- 交通燈畢業(yè)設(shè)計論文
- 模擬交通燈畢業(yè)設(shè)計
- 智能交通燈畢業(yè)設(shè)計
- 模擬交通燈畢業(yè)設(shè)計
- 交通燈畢業(yè)設(shè)計---- 基于單片機的交通燈設(shè)計
- plc交通燈畢業(yè)設(shè)計---多功能交通燈監(jiān)控系統(tǒng)設(shè)計
- plc交通燈設(shè)計(畢業(yè)設(shè)計)
- plc交通燈設(shè)計(畢業(yè)設(shè)計)
- plc交通燈設(shè)計(畢業(yè)設(shè)計)
評論
0/150
提交評論