版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 畢業(yè)設(shè)計說明書</b></p><p> 課題名稱: 單片機(jī)控制智能交通信號燈</p><p> 系 別 電氣電子工程學(xué)院 </p><p> 專 業(yè) 機(jī)電一體化 </p><p> 班
2、 級 </p><p> 姓 名 </p><p> 學(xué) 號 </p><p> 指導(dǎo)教師
3、 </p><p> 起訖時間:2011 年2月21 日~2011 年4月15日(共8 周)</p><p><b> 摘 要</b></p><p> 近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術(shù)日益更新。在實(shí)時檢測和自動控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個核心部件來使用,僅單片機(jī)方面
4、知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。</p><p> 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實(shí)現(xiàn)這井然秩序呢?靠的就是交通信號燈的自動指揮系統(tǒng)。交通信號燈控制方式很多。本系統(tǒng)采用MSC-51系列單片機(jī)ATSC51和可編程并行I/O接口芯片8255A為中心器件來設(shè)計交通燈控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際車流量通過8051芯片的P1口設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循
5、環(huán)點(diǎn)亮,倒計時剩5秒時黃燈閃爍警示(交通燈信號通過PA口輸出,顯示時間直接通過8255的PC口輸出至雙位數(shù)碼管);車輛闖紅燈報警;綠燈時間可檢測車流量并可通過雙位數(shù)碼管顯示。本系統(tǒng)實(shí)用性強(qiáng)、操作簡單、擴(kuò)展功能強(qiáng)。 </p><p><b> 關(guān)鍵詞:</b></p><p> 單片機(jī) 交通燈 闖紅燈 檢測車流量</p><p><
6、b> Abstract</b></p><p> In recent years, with the rapid development of science and technology, the application of SCM is unceasingly thorough, it causes the traditional control test technology inc
7、reasingly updates. In real-time detection and automatic control of microcomputer application system, often as a core component single-chip microcontroller, only to use knowledge is not enough, should according to specifi
8、c hardware structure, software and hardware combined with improved. </p><p> Crossroads transports, pedestrian roar, driveways, garage, orderly pedestrian humanitarian. So what to achieve this by an orderly
9、 order? Lean is the traffic lights automatic command system. The traffic lights control many ways. The system USES the MSC - 51 series microcontroller ATSC51 and programmable parallel I/O interface chip 8255A as the cent
10、er device to designing traffic light controller, realized by the 8051 according to actual traffic can chip set red, green P1 mouth burning time functio</p><p><b> keyword</b></p><p>
11、; microcontroller affic lights jaywalk traffic volume</p><p><b> 目 錄</b></p><p><b> 第一章 引言6</b></p><p> 第二章 芯片簡介8</p><p> 2.1 MSC-51芯
12、片簡介8</p><p> 2.2 8255芯片簡介11</p><p> 2.3 74LS373簡介12</p><p> 第三章 系統(tǒng)硬件設(shè)計14</p><p> 3.1交通管理的方案論證14</p><p> 3.2系統(tǒng)硬件設(shè)計14</p><p> 第四章
13、控制器的軟件設(shè)計17</p><p> 4.1每秒鐘的設(shè)定及硬件延時17</p><p> 4.1.1 計數(shù)器初值計算17</p><p> 4.1.2 計算公式17</p><p> 4.1.3 1秒的方法17</p><p> 4.1.4相應(yīng)程序代碼18</p><p&
14、gt; 4.2 軟件延時18</p><p> 4.3 時間及信號燈的顯示19</p><p> 4.3.1 8051并行口的擴(kuò)展19</p><p> 4.3.2顯示原理20</p><p> 4.3.3 8255PA口輸出信號接信號燈20</p><p> 4.3.4 8255輸出信號與數(shù)
15、碼管的連接20</p><p> 4.3.5 8255與8051的連接21</p><p> 4.4 程序設(shè)計21</p><p> 4.4.1流程圖如圖所示21</p><p> 4.4.2 程序源代碼22</p><p><b> 結(jié)論29</b></p>
16、<p><b> 參考文獻(xiàn)30</b></p><p><b> 第一章 引言</b></p><p> 當(dāng)今,紅綠燈安裝在各個道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。</p><p> 19世紀(jì)初,在英國中部的約克城,紅綠裝分別代表女性的不同身份。其中著紅妝的
17、女人代表我已經(jīng)結(jié)婚了,而著綠裝的女人則是未婚者。后來,英國倫敦議會大廈前經(jīng)常發(fā)生馬車扎人的事故,于是人們受到紅綠裝的啟發(fā),1868年12月10日,信號燈家族的第一個成員就在英國倫敦議會大廈的廣場上誕生了,由當(dāng)時英國機(jī)械師師德.哈特設(shè)計,制造的燈柱高7米,身上掛著一盞紅綠兩色的提燈—煤氣交通信號燈,這是城市街道的第一盞信號燈。在燈的腳下,一名手持長桿的警察隨心所欲的牽動皮帶轉(zhuǎn)換提燈的顏色。后來在信號燈的中心裝上煤氣燈罩,它的前面有兩塊紅、
18、綠玻璃交替遮擋。不幸的是只面試23天的煤氣燈突然爆炸自滅,使一位正在值勤的警察也因此斷送了性命。從此,城市的交通燈被取締了。知道1914年,在美國的克利夫蘭市才率先恢復(fù)了紅綠燈,不過這時已是“電氣信號燈”。稍后又在紐約和芝加哥等城市,相繼重新出現(xiàn)了交通信號燈。隨著各種交通工具的發(fā)展和交通指揮的需要,第一盞名副其實(shí)的三色燈(紅黃綠三種標(biāo)志)于1918年誕生。它是三色圓形四面投影器,被安裝在紐約市五號街的一座高塔上,由于它的誕生使城市交
19、通大為改善。 黃色信號燈的發(fā)明者是我國</p><p> 單片機(jī)微型計算機(jī)是微型計算機(jī)的一個重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU隨機(jī)存儲器RAM、只讀存儲器ROM、多種I/O口和中斷系統(tǒng)、定時器/計時器等功能(可能還包括顯示驅(qū)動電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路
20、)集成到一塊硅片上構(gòu)成的一個小而完善的計算機(jī)系統(tǒng)。</p><p> 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計算機(jī)的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機(jī)控制系統(tǒng)。</p><p> 單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引
21、角的多功能化,以及低電壓底功耗。</p><p><b> 第二章 芯片簡介</b></p><p> 2.1 MSC-51芯片簡介</p><p> MCS-51單片機(jī)內(nèi)部結(jié)構(gòu)</p><p> 8051是MCS-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。
22、 8051單片機(jī)包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時/計數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明</p><p><b> ·中央處理器:</b></p><p> 中央處理器(CPU)是整個單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代
23、碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。</p><p> ·數(shù)據(jù)存儲器(RAM)</p><p> 8051內(nèi)部有128個8位用戶數(shù)據(jù)存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個,可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)
24、果或用戶定義的字</p><p><b> 圖2.1:內(nèi)部結(jié)構(gòu)</b></p><p> ·程序存儲器(ROM):</p><p> 8051共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。</p><p> ·定時/計數(shù)器(ROM):</p><p>
25、 8051有兩個16位的可編程定時/計數(shù)器,以實(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ù)的傳輸。</p><p><b> ·全雙工串行口:</b></p><
26、p> 8051內(nèi)置一個全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。</p><p><b> ·中斷系統(tǒng):</b></p><p> 8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。</p>
27、<p><b> ·時鐘電路:</b></p><p> 8051內(nèi)置最高頻率達(dá)12MHz的時鐘電路,用于產(chǎn)生整個單片機(jī)運(yùn)行的脈沖時序,但8051單片機(jī)需外置振蕩電容。</p><p> 單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲器和數(shù)據(jù)存儲器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計算機(jī)廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為
28、一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。</p><p><b> 圖2</b></p><p> 圖2.2:MCS-51結(jié)構(gòu)框圖</p><p> MCS-51的引腳說明:</p><p>
29、; MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用。現(xiàn)在我們對這些引腳的功能加以說明:</p><p> MCS-51的引腳說明:</p><p> MCS-51系列單片機(jī)中的8031、8051及8751均
30、采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個I/O口,中斷口線與P3口線復(fù)用。</p><p> 圖2.3:引腳功能圖</p><p> Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng)8051通電,時鐘電路開始工作,在RESET引腳上出現(xiàn)24個時鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程
31、序計數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。</p><p> 8051的復(fù)位方式可以是自動復(fù)位,也可以是手動復(fù)位,見下圖4。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保
32、證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。</p><p> 圖2.4:功能方式圖</p><p> ·Pin30:ALE/當(dāng)訪問外部程序器時,ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲器時,ALE端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機(jī)是否工作,也可以當(dāng)作一個時鐘向外輸出。更有一個特點(diǎn),當(dāng)訪問外部程序存儲器,ALE會跳過一個脈沖。<
33、;/p><p> 如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖。</p><p> ·Pin29:當(dāng)訪問外部程序存儲器時,此腳輸出負(fù)脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。</p><p> ·Pin31:EA/Vpp程序存儲器的內(nèi)外部選通線,8051和87
34、51單片機(jī),內(nèi)置有4kB的程序存儲器,當(dāng)EA為高電平并且程序地址小于4kB時,讀取內(nèi)部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內(nèi)部無程序存儲器的8031,EA端必須接地。</p><p> 在編程時,EA/Vpp腳還需加上21V的編程電壓。</p><p> 2.2 8255芯片簡介</p>
35、;<p> 8255可編程并行接口芯片簡介:</p><p> 8255可編程并行接口芯片有三個輸入輸出端口,即A口、B口和C口,對應(yīng)于引腳PA7~PA0、PB7~PB0和PC7~PC0。其內(nèi)部還有一個控制寄存器,即控制口。通常A口、B口作為輸入輸出的數(shù)據(jù)端口。C口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個端口包含一個4位鎖存器。它們分別與端口A/B配合使用,可以用作
36、控制信號輸出或作為狀態(tài)信號輸入。</p><p> 8255可編程并行接口芯片方式控制字格式說明:</p><p> 8255有兩種控制命令字;一個是方式選擇控制字;另一個是C口按位置位/復(fù)位控制字。其中C口按位置位/復(fù)位控制字方式使用較為繁難,說明也較冗長,故在此不作敘述,需要時用戶可自行查找有關(guān)資料。</p><p> 表2.1:方式控制表</p&g
37、t;<p> D7:設(shè)定工作方式標(biāo)志,1有效。</p><p> D6、D5:A口方式選擇</p><p><b> 0 0 —方式0</b></p><p><b> 0 1 —方式1</b></p><p><b> 1 ×—方式2</b>
38、</p><p> D4:A口功能 (1=輸入,0=輸出)</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位
39、功能 (1=輸入,0=輸出)</p><p> 8255可編程并行接口芯片工作方式說明:</p><p> 方式0:基本輸入/輸出方式。適用于三個端口中的任何一個。每一個端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存。</p><p> 方式1:選通輸入/輸出方式。這時A口或B口的8位外設(shè)線用作輸入或輸出,C口的4條線中三條用作數(shù)據(jù)傳輸?shù)穆?lián)絡(luò)信號和中斷請
40、求信號。</p><p> 方式2 :雙向總線方式。只有A口具備雙向總線方式,8位外設(shè)線用作輸入或輸出,此時C口的5條線用作通訊聯(lián)絡(luò)信號和中斷請求信號。</p><p> 2.3 74LS373簡介</p><p> 74LS373 是一種帶三態(tài)門的8D鎖存器,其管腳示意圖如下示:</p><p> 其中:1D-8D為8個輸入端。&l
41、t;/p><p> 1Q-8Q為8個輸出端。</p><p> LE為數(shù)據(jù)打入端:當(dāng)LE為“1”時,鎖存器輸出</p><p> 狀態(tài)同輸入狀態(tài);當(dāng)LE由“1”變“0”時,數(shù)據(jù)</p><p><b> 打入鎖存器</b></p><p> OE為輸出允許端:當(dāng)OE=0時,三態(tài)門打開;<
42、;/p><p> 當(dāng)OE=1時,三態(tài)門關(guān)閉,輸出高阻。</p><p> 第三章 系統(tǒng)硬件設(shè)計</p><p> 3.1交通管理的方案論證</p><p> 東西、南北兩干道交于一個十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r
43、間為東西、南北兩干道的公共停車時間。設(shè)東西道比南北道的車流量大,指示燈亮的方案如表3.1。</p><p> 表3.1:指示燈亮方案表</p><p> 表3.1說明: </p><p> (1)當(dāng)東西方向為紅燈,此道車輛禁止通行,東西道行人可通過;南北道為綠燈,此道車輛通過,行人禁止通行。時間為60秒。</p><p>
44、 ?。?)黃燈閃爍5秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。 </p><p> ?。?)當(dāng)東西方向為綠燈,此道車輛通行;南北方向為紅燈,南北道車輛禁止通過,行人通行。時間為80秒。 東西方向車流大 通行時間長。</p><p> ?。?)這樣如上表的時間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。</p><p> ?。?)此表可
45、根據(jù)車流量動態(tài)設(shè)定紅綠燈初始值。</p><p><b> 3.2系統(tǒng)硬件設(shè)計</b></p><p> 選用設(shè)備8031單片機(jī)一片選用設(shè)備:8031彈片機(jī)一片,8255并行通用接口芯片一片,74LS07兩片,MAX692‘看門狗’一片,共陰極的七段數(shù)碼管兩個雙向晶閘管若干,7805三端穩(wěn)壓電源一個,紅、黃、綠交通燈各兩個,開關(guān)鍵盤、連線若干。</p>
46、<p> 圖3.1系統(tǒng)框圖 </p><p><b> 圖3.2接線圖</b></p><p> 3.3 系統(tǒng)工作原理</p><p> (1)開關(guān)鍵盤輸入交通燈初始時間,通過8051單片機(jī)P1輸入到系統(tǒng)</p><p> (2) 由8051單片機(jī)的定時器
47、每秒鐘通過P0口向8255的數(shù)據(jù)口送信息,由8255的PA 口顯示紅、綠、黃燈的燃亮情況;由8255的PC口顯示每個燈的燃亮?xí)r間。</p><p> (3)8051通過 設(shè)置 各個信號等的燃亮?xí)r間、通過8031設(shè)置,綠、紅時間分別為60秒、80秒循環(huán)由8051的 P0口向8255的數(shù)據(jù)口輸出。</p><p> ?。?) 通過8051單片機(jī)的P3.0位來控制系統(tǒng)是工作或設(shè)置初值,當(dāng).牌
48、位0就對系統(tǒng)進(jìn)行初始化,為1系統(tǒng)就開始工作。</p><p> ?。?)紅燈倒計時時間,當(dāng)有車輛闖紅燈時,啟動蜂鳴器進(jìn)行報警,3S后然后恢復(fù)正常。</p><p> ?。?)增加每次綠燈時間車流量檢測的功能,并且通過查詢P2.0端口的電平是否為低,開關(guān)按下為低電平,雙位數(shù)碼管顯示車流量,直到下一次綠燈時間重新記入。</p><p> ?。?)綠燈時間倒計時完畢,重新
49、循環(huán)。</p><p> 第四章 控制器的軟件設(shè)計</p><p> 4.1每秒鐘的設(shè)定及硬件延時</p><p> 延時方法可以有兩種一中是利用MCS-51內(nèi)部定時器才生溢出中斷來確定1秒的時間,另一種是采用軟延時的方法。</p><p> 4.1.1 計數(shù)器初值計算</p><p> 定時器工作時必須給計
50、數(shù)器送計數(shù)器初值,這個值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值設(shè)定為C和計數(shù)初值設(shè)定為TC 可得到如下計算通式:</p><p><b> TC=M-C</b></p><p> 式中,M為計數(shù)器摸值,該值和計數(shù)器工作方式有關(guān)。在方式0時M為213 ;在方式1時M的值為216;在方
51、式2和3為28</p><p> 4.1.2 計算公式</p><p> T=(M-TC)T計數(shù)</p><p> 或TC=M-T/T計數(shù)</p><p> T計數(shù)是單片機(jī)時鐘周期TCLK的12倍;TC為定時初值</p><p> 如單片機(jī)的主脈沖頻率為TCLK12MHZ ,經(jīng)過12分頻</p>
52、<p> 方式0 ?。裕停粒兀?13 *1微秒=8.192毫秒</p><p> 方式1 ?。裕停粒兀?16?。蔽⒚耄剑叮担担常逗撩?lt;/p><p> 顯然1秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題.</p><p> 4.1.3 1秒的方法</p><p>
53、; 我們采用在主程序中設(shè)定一個初值為20的軟件計數(shù)器和使T0定時50毫秒.這樣每當(dāng)T0到50毫秒時CPU就響應(yīng)它的溢出中斷請求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計數(shù)器減1,然后判斷它是否為零。為零表示1秒已到可以返回到輸出時間顯示程序。</p><p> 4.1.4相應(yīng)程序代碼</p><p><b> (1)主程序 </b></
54、p><p> 定時器需定時50毫秒,故T0工作于方式1。 初值:</p><p> TC=M-T/ T計數(shù)?。剑玻保丁。担癿s/1us=15536=3CBOH</p><p><b> ORG 1000H</b></p><p> START: MOV TMOD, #01H ; 令TO為定時器方式1<
55、;/p><p> MOV TH0, #3CH ;裝入定時器初值</p><p> MOV TL0, #BOH ;</p><p> MOV IE, #82H ;開T0中斷</p><p> SEBT TRO ?。粏樱裕坝嫈?shù)器</p><p> MOV RO,
56、 #14H ;軟件計數(shù)器賦初值</p><p> LOOP: SJMP $ ??;等待中斷</p><p> (2)中斷服務(wù)子程序</p><p> ?。希遥恰 。埃埃埃拢?lt;/p><p> ?。粒剩停小 。拢遥裕?lt;/p><p><b> ?。希遥恰。埃埃拢?lt;/b>&l
57、t;/p><p> ?。拢遥裕希篋JNZ R0,NEXT</p><p> AJMP TIME ; 跳轉(zhuǎn)到時間及信號燈顯示子程序 </p><p> DJNZ:MOV?。遥希#保矗取?;恢復(fù)R0值</p><p> MOV TH0, #3CH ;重裝入定時器初值</p><p> MOV
58、 TL0, #BOH ;</p><p> MOV IE, #82H </p><p><b> RET1</b></p><p><b> ?。牛危?lt;/b></p><p><b> 4.2 軟件延時</b></p><p>
59、MCS-51的工作頻率為2-12MHZ,我們選用的8031單片機(jī)的工作頻率為6MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個機(jī)器周期的時間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時間。</p><p> 具體的延時程序分析:</p><p> DELAY:MOV R4,#08H 延時1秒子程序<
60、;/p><p> DE2:LCALL DELAY1 </p><p> DJNZ R4,DE2</p><p><b> RET</b></p><p> DELAY1:MOV R6,#0 延時125ms 子程序</p><p><b> MOV R5,#0</b&g
61、t;</p><p> DE1: DJNZ R5,$</p><p> DJNZ R6,DE1</p><p><b> RET</b></p><p> MOV RN,#DATA 字節(jié)數(shù)數(shù)為2 機(jī)器周期數(shù)為1</p><p> 所以此指令的執(zhí)行時間為2ms </
62、p><p> DELAY1 為一個雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時時間=65536*2=131072us 約為125us </p><p> DELAY R4設(shè)置的初值為8 主延時程序循環(huán)8次,所以125us*8= 1秒</p><p> 由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時間可以忽略不計。</p><p>
63、 4.3 時間及信號燈的顯示</p><p> 4.3.1 8051并行口的擴(kuò)展</p><p> 8051雖然有4個8位I/O端口,但真正能提供借用的只有P1口,因為P2和P0口通常用于傳送外部傳送地址和數(shù)據(jù),P3口也有它的第二功能。因此,8031通常需要擴(kuò)展。由于我們用外部輸入設(shè)定紅綠燈倒計時初值、數(shù)碼管的輸出顯示、紅綠黃信號燈的顯示都要用到一個I/O端口,顯然8031的端口是
64、不夠,需要擴(kuò)展。</p><p> 擴(kuò)展的方法有兩種:(1)借用外部RAM地址來擴(kuò)展I/O端口;(2)采用I/O接口新片來擴(kuò)充。我們用8255并行接口信片來擴(kuò)展I/O端口。</p><p><b> 4.3.2顯示原理</b></p><p> 當(dāng)定時器定時為1秒,時程序跳轉(zhuǎn)到時間顯示及信號燈顯示子程序,它將依次顯示信號燈時間 ,同時一直
65、顯示信號燈的顏色,這時在返回定時子程序定時一秒,在顯示黃燈的下一個時間,這樣依次把所有的燈色的時間顯示完后在重新給時間計數(shù)器賦初值 ,重新進(jìn)入循環(huán)。 </p><p> 4.3.3 8255PA口輸出信號接信號燈</p><p> 由于發(fā)光二極管為共陽極接法,輸出端口為低電平,對應(yīng)的二極管發(fā)光,所以可以用置位方法點(diǎn)亮紅,綠,黃發(fā)光二極管。</p><p>
66、 4.3.4 8255輸出信號與數(shù)碼管的連接</p><p> LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點(diǎn)量而顯示不同的字形如 SP,g,f,e,d,c,b,a 管角上加上7FH所以?。樱猩蠟椋胺?,不亮其余為TTL高電平,全亮則顯示為8</p><p><b> 采用共陰級連接:</b></p><p>
67、其中 PC0\PB0-a,</p><p> PC1\PB1-b, </p><p> PC2\PB2-c,</p><p> PC3\PB3-d,</p><p> PC4\PB4-e, </p><p> PC5\PB5-f,</p><p><b> PC6\P
68、B6-g</b></p><p> PC7\PB7 -SP接地</p><p> 表4.1 驅(qū)動代碼表</p><p> 4.3.5 8255與8051的連接</p><p> 用8051的P0 口的 p0.7 連接8255的片選信號cs 我們用8031的地址采用全譯碼方式,當(dāng)p0.7 =0 時片選有效, 其他無效
69、, p0.1 p0.1 用于選擇8255端口</p><p> P0.7 p0.6 p0.5 p0.4 p0.3 p0.2 P0.1 P0.0</p><p> A7 A6 A5 A4 A3 A2 A1 A0</p><p> 1 X X X X X 0 0 00H為8255 的PA口
70、</p><p> 1 X X X X X 0 1 01H 為8255的PB口</p><p> 1 X X X X X 1 0 02H 為8255的PC口</p><p> 1 X X X X X 1 1 03H 為825
71、5的控制口</p><p> 由于8051是分時對8255和儲存器進(jìn)行訪問所以8051的P0口不會發(fā)生沖突</p><p><b> 4.4 程序設(shè)計</b></p><p> 4.4.1流程圖如圖所示</p><p><b> 圖8</b></p><p> 圖4
72、.1 程序流程圖</p><p> 4.4.2 程序源代碼</p><p> ORG 0000H ;主程序的入口地址</p><p> LJMP MAIN ;跳轉(zhuǎn)到主程序的開始處</p><p> ORG 0003H ;外部中斷0的中斷程序入口地址 </p>
73、;<p> ORG 000BH ;定時器0的中斷程序入口地址</p><p> LJMP T0_INT ;跳轉(zhuǎn)到中斷服務(wù)程序處</p><p> ORG 0013H ;外部中斷1的中斷程序入口地址 </p><p> MAIN : MOV SP,#50H</p><p&
74、gt; MOV IE,#8EH ;CPU開中斷,允許T0中斷,T1中斷和外部中斷1中斷</p><p> MOV TMOD,#51H ;設(shè)置T1為計數(shù)方式,T0為定時方式,且都工作于模式1</p><p> MOV TH1,#00H ;T1計數(shù)器清零</p><p> MOV TL1,#00H</p><p&
75、gt; SETB TR1 ;啟動T1計時器</p><p> SETB EX1 ;允許INT1中斷</p><p> SETB IT1 ;選擇邊沿觸發(fā)方式</p><p> MOV DPTR ,#0003H</p><p> MOV A, #80H ;給8255賦初值,
76、8255工作于方式0</p><p> MOVX @DPTR, A</p><p> AGAIN: JB P3.1,N0 ;判斷是否要設(shè)定東西方向紅綠燈時間的初值,若P3.1為1 則跳轉(zhuǎn)</p><p> MOV A,P1 </p><p> JB P1.7,RED ;判斷P1.7是否為1,若為1則設(shè)定紅
77、燈時間,否則設(shè)定綠燈時間 </p><p> MOV R0,#00H ;R0清零</p><p> MOV R0,A ;存入東西方向綠燈初始時間</p><p><b> MOV R3,A</b></p><p> LCALL DISP1</p><p>
78、 LCALL DELAY</p><p> AJMP AGAIN</p><p> RED: MOV A,P1</p><p> ANL A,#7FH ;P1.7置0</p><p> MOV R7,#00H ;R7清零</p><p> MOV R7,A ;存入東西方向紅
79、燈初始時間</p><p><b> MOV R3,A</b></p><p> LCALL DISP1</p><p> LCALL DELAY</p><p> AJMP AGAIN</p><p> ;----------------------------------------
80、---</p><p> N0: SETB TR0 ;啟動T0計時器</p><p> MOV 76H,R7 ;紅燈時間存入76H</p><p> N00: MOV A,76H ;東西方向禁止,南北方向通行</p><p> MOV R3,A </p>
81、<p> MOV DPTR,#0000H ;置8255A口,東西方向紅燈亮,南北方向綠燈亮</p><p> MOV A,#0DDH</p><p> MOVX @DPTR, A</p><p> N01: JB P2.0,B0</p><p> N02: SETB P3.0</p><p&
82、gt; CJNE R3,#00H,N01 ;比較R3中的值是否為0,不為0轉(zhuǎn)到當(dāng)前指令處執(zhí)行</p><p> ;------黃燈閃爍5秒程序------</p><p> N1: SETB P3.0</p><p> MOV R3,#05H</p><p> MOV DPTR,#0000H ;置8255A口,東西,南北方
83、向黃燈亮</p><p> MOV A,#0D4H</p><p> MOVX @DPTR,A</p><p> N11: MOV R4,#00H</p><p> N12: CJNE R4,#7DH,$ ;黃燈持續(xù)亮0.5秒</p><p> N13: MOV DPTR,#0000H
84、; 置8255A口,南北方向黃燈滅</p><p> MOV A,#0DDH</p><p> MOVX @DPTR,A</p><p> N14: MOV R4,#00H</p><p> CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒</p><p> CJNE R3,#00H,N1 ;
85、閃爍時間達(dá)5秒則退出</p><p> ;------------------------------------------------------------</p><p> N2: MOV R7,#00H</p><p> MOV A,R0 ;東西通行,南北禁止</p><p><b> MOV R3,A&
86、lt;/b></p><p> MOV DPTR,#0000H ; 置8255A口,東西方向綠燈亮,南北方向紅燈亮</p><p> MOV A,#0EBH</p><p> MOVX @DPTR,A</p><p> N21: JB P2.0,T03</p><p> N22: CJNE R3
87、,#00H,N21</p><p> ;------黃燈閃爍5秒程序------</p><p> N3: MOV R3,#05H</p><p> MOV DPTR,#0000H ;置8255A口,東西,南北方向黃燈亮</p><p> MOV A,#0E2H</p><p> MOVX @DP
88、TR,A</p><p> N31: MOV R4,#00H</p><p> CJNE R4,#7DH,$ ;黃燈持續(xù)亮0.5秒</p><p> N32: MOV DPTR,#0000H ; 置8255A口,南北方向黃燈滅</p><p> MOV A,#0EBH</p><p> MO
89、VX @DPTR,A</p><p> N33: MOV R4,#00H</p><p> CJNE R4,#7DH,$ ;黃燈持續(xù)滅0.5秒</p><p> CJNE R3,#00H,N3 ;閃爍時間達(dá)5秒則退出</p><p><b> SJMP N00</b></p><
90、;p> ;------闖紅燈報警程序------</p><p> B0: MOV R2,#03H ;報警持續(xù)時間3秒</p><p> B01: MOV A,R3</p><p> JZ N1 ;若倒計時完畢,不再報警</p><p> CLR P3.0
91、;報警 </p><p> CJNE R2,#00H,B01 ;判斷3秒是否結(jié)束</p><p><b> SJMP N02</b></p><p> ;------1秒延時子程序-------</p><p> N7: RETI</p><p> T0_INT:MOV TL
92、0,#9AH ;給定時器T0送定時10ms的初值</p><p> MOV TH0,#0F1H </p><p><b> INC R4</b></p><p><b> INC R5</b></p><p> CJNE R5,#0FAH,T01 ;判斷延時是否夠一秒,不夠
93、則調(diào)用顯示子程序</p><p> MOV R5,#00H ;R5清零</p><p> DEC R3 ;倒計時初值減一</p><p> DEC R2 ;報警初值減一</p><p> T01: ACALL DISP ;調(diào)用顯示子程序</p>
94、;<p> RETI ;中斷返回</p><p> ;------顯示子程序------</p><p> DISP: JNB P2.4,T02</p><p> DISP1: MOV B,#0AH</p><p> MOV A,R3 ;R3中值二轉(zhuǎn)十顯示轉(zhuǎn)換<
95、/p><p><b> DIV AB</b></p><p><b> MOV 79H,A</b></p><p><b> MOV 7AH,B</b></p><p> DIS: MOV A,79H ;顯示十位</p><p&g
96、t; MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p> MOV DPTR,#0002H</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#0001H</p><p> MOV A,#0F7H</p><p>
97、 MOVX @DPTR,A</p><p> LCALL DELAY</p><p> DS2: MOV A,7AH ;顯示個位</p><p> MOV DPTR,#TAB </p><p> MOVC A,@A+DPTR</p><p> MOV DPTR,#0002H<
98、/p><p> MOVX @DPTR,A</p><p> MOV DPTR,#0001H</p><p> MOV A,#0FBH</p><p> MOVX @DPTR,A</p><p><b> RET</b></p><p> ;------東西方向車流量
99、檢測程序------</p><p> T03: MOV A,R3</p><p> SUBB A,#00H ;若綠燈倒計時完畢,不再檢測車流量</p><p> JZ N3 </p><p> JB P2.0,T03</p><p> INC R7
100、 </p><p> CJNE R7,#64H,E1 </p><p> MOV R7,#00H ;中斷到100次則清零</p><p> E1: SJMP N22</p><p> ;------東西方向車流量顯示程序------</p><p>
101、; T02: MOV B,#0AH</p><p> MOV A,R7 ;R7中值二轉(zhuǎn)十顯示轉(zhuǎn)換</p><p><b> DIV AB</b></p><p><b> MOV 79H,A</b></p><p><b> MOV 7AH
102、,B</b></p><p> DIS3: MOV A,79H ;顯示十位</p><p> MOV DPTR,#TAB</p><p> MOVC A,@A+DPTR</p><p> MOV DPTR,#0002H</p><p> MOVX @DPTR,A</p&
103、gt;<p> MOV DPTR,#0001H</p><p> MOV A,#0F7H</p><p> MOVX @DPTR,A</p><p> LCALL DELAY</p><p> DS4: MOV A,7AH ;顯示個位</p><p> MOV DPTR
104、,#TAB </p><p> MOVC A,@A+DPTR</p><p> MOV DPTR,#0002H</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#0001H</p><p> MOV A,#0FBH</p><p> MOVX @DPT
105、R,A</p><p><b> LJMP N7</b></p><p> ;------延時4MS子程序----------</p><p> DELAY: MOV R1,#0AH</p><p> LOOP: MOV R6,#64H</p><p><b> NOP&
106、lt;/b></p><p> LOOP1: DJNZ R6,LOOP1</p><p> DJNZ R1,LOOP</p><p> RET </p><p> ;------字符表------</p><p> TAB: DB 3FH,06H,5BH,4FH,66H,6DH,
107、7DH,07H,7FH,6FH </p><p><b> END</b></p><p><b> 結(jié)論</b></p><p> 本系統(tǒng)就是充分利用了8051和8255芯片的I/O引腳。系統(tǒng)統(tǒng)采用MSC-51系列單片機(jī)Intel8051和可編程并行I/O接口芯片8255A為中心器件來設(shè)計交通燈控制器,實(shí)現(xiàn)了能根據(jù)
108、實(shí)際車流量通過8031芯片的P1口設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計時剩5秒時黃燈閃爍警示(交通燈信號通過PA口輸出,顯示時間直接通過8255的PC口輸出至雙位數(shù)碼管);車輛闖紅燈報警;綠燈時間可檢測車流量并可通過雙位數(shù)碼管顯示。。系統(tǒng)不足之處不能控制車的左、右轉(zhuǎn)、以及自動根據(jù)車流改變紅綠燈時間等。這是由于本身地理位子以及車流量情況所定,如果有需要可以設(shè)計擴(kuò)充原系統(tǒng)來實(shí)現(xiàn) 。</p><p> 通
109、過這次畢業(yè)設(shè)計,使我得到了一次用專業(yè)知識、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉。使我在單片機(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計思路技巧(特別是匯編語言)的掌握方面都能向前邁了一大步,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。</p><p><b> 參考文獻(xiàn)</b></p><p> 1. 趙德安.單片機(jī)原理與應(yīng)用.北京:機(jī)械工業(yè)出版社.20
110、05</p><p> 2. 彭為,黃科.單片機(jī)典型系統(tǒng)設(shè)計實(shí)例精講.電子工業(yè)出版社.2006</p><p> 3. 鄧紅,張越.單片機(jī)實(shí)驗與應(yīng)用設(shè)計教程.冶金工業(yè)出版社.2004</p><p> 4. 王治剛.單片機(jī)應(yīng)用技術(shù)與實(shí)訓(xùn).北京:清華大學(xué)出版社.2004</p><p> 5. 何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計
111、.北京:北京航空航天大學(xué)出版社.1990</p><p> 6. 張友德,趙志英.單片微型機(jī)原理、應(yīng)用與實(shí)驗.上海:復(fù)旦大學(xué)出版社.1991</p><p> 7. 李繼燦.微型計算機(jī)系統(tǒng)與接口.北京:清華大學(xué)出版社.2005</p><p> 8. 文艷,譚鴻. Protel 99 SE電子電路設(shè)計.北京:機(jī)械工業(yè)出版社.2006</p>&l
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)控制交通燈課程設(shè)計
- 單片機(jī)控制交通燈課程設(shè)計
- 單片機(jī)控制交通燈課程設(shè)計
- 單片機(jī)課程設(shè)計---交通燈控制
- 單片機(jī)交通燈課程設(shè)計
- 單片機(jī)課程設(shè)計---交通燈
- 單片機(jī)交通燈課程設(shè)計
- 單片機(jī)課程設(shè)計-交通燈
- 單片機(jī)課程設(shè)計--交通燈
- 單片機(jī)課程設(shè)計(交通燈)
- 課程設(shè)計---單片機(jī)控制交通燈系統(tǒng)
- 單片機(jī)交通燈的控制課程設(shè)計
- 單片機(jī)交通燈課程設(shè)計
- 單片機(jī)交通燈課程設(shè)計
- 單片機(jī)交通燈課程設(shè)計
- 單片機(jī)課程設(shè)計報告--交通燈控制
- 單片機(jī)交通燈課程設(shè)計
- 單片機(jī)課程設(shè)計--交通燈的控制設(shè)計
- 交通燈單片機(jī)課程設(shè)計--基于單片機(jī)的交通燈顯示系統(tǒng)
- 交通燈單片機(jī)課程設(shè)計--基于單片機(jī)的交通燈顯示系統(tǒng)
評論
0/150
提交評論