2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p> 題 目單片機(jī)控制交通燈課程設(shè)計(jì)</p><p> 課程設(shè)計(jì)的任務(wù)及要求 通過軟件實(shí)驗(yàn)程序的調(diào)試,使學(xué)生熟悉MCS-51的指令系統(tǒng),了解程序設(shè)計(jì)過程,掌握匯編語言設(shè)計(jì)方法以及如何使用實(shí)驗(yàn)系統(tǒng)提供的調(diào)試手段來排除程序錯(cuò)誤。硬件實(shí)驗(yàn)可使學(xué)生能進(jìn)一步掌握單片機(jī)系統(tǒng)擴(kuò)展和輸入/輸出程序的設(shè)計(jì)方法,熟悉對擴(kuò)展系統(tǒng)的軟件、硬件設(shè)計(jì),調(diào)試方法和技巧。</p><p> 課程設(shè)計(jì)所需

2、的軟件、硬件等單片機(jī)實(shí)驗(yàn)機(jī)</p><p> 課程設(shè)計(jì)進(jìn)度計(jì)劃拿到題目后首先進(jìn)行模塊分析,流程圖設(shè)計(jì),原理圖設(shè)計(jì)。然后在實(shí)驗(yàn)機(jī)上進(jìn)行硬件連接和軟件仿真,如硬件實(shí)驗(yàn)結(jié)果不滿足要求,則修改設(shè)計(jì),直到滿足要求為止。</p><p> 任課教師評語 成績: 教師簽名: 日期: </p><p

3、><b>  目 錄</b></p><p>  第一章單片機(jī)控制交通燈的背景5</p><p>  1.1交通燈的背景5</p><p>  1.1.1交通燈的歷史5</p><p>  1.1.2交通燈的出現(xiàn)5</p><p>  1.2單片機(jī)簡介5</p>

4、<p>  1.2.1單片機(jī)的發(fā)展歷程5</p><p>  1.2.2單片機(jī)的特點(diǎn)6</p><p>  1.2.3 MCS—51單片機(jī)內(nèi)部結(jié)構(gòu)有8大部分6</p><p>  1.2.4單片機(jī)的內(nèi)部結(jié)構(gòu)圖9</p><p>  第二章 單片機(jī)控制交通系統(tǒng)總體設(shè)計(jì)10</p><p>  2.

5、1單片機(jī)交通控制系統(tǒng)通行方案設(shè)計(jì)10</p><p>  2.2單片機(jī)交通控制系統(tǒng)的功能要求11</p><p>  2.2.1倒計(jì)時(shí)顯示11</p><p>  2.2.2 車流量檢測及調(diào)整12</p><p>  2.2.3時(shí)間手動(dòng)設(shè)置12</p><p>  2.2.4 緊急處理12</p>

6、;<p>  2.3單片機(jī)交通控制系統(tǒng)的基本構(gòu)成及原理12</p><p>  第三章 系統(tǒng)硬件電路的設(shè)計(jì)14</p><p>  3.1系統(tǒng)硬件總電路構(gòu)成及原理14</p><p>  3.1.1系統(tǒng)硬件電路構(gòu)成14</p><p>  3.1.2系統(tǒng)工作原理14</p><p>  3.1.

7、3車流量檢測電路及模擬16</p><p>  3.1.4八段LED數(shù)碼管17</p><p>  3.3.4其它器件18</p><p>  第四章 系統(tǒng)軟件程序的設(shè)計(jì)19</p><p>  4.1程序主體設(shè)計(jì)流程19</p><p>  4.2子程序模塊設(shè)計(jì)20</p><p>

8、;  4.2.1按鍵掃描程序20</p><p>  4.2.2狀態(tài)燈顯示及判斷21</p><p>  4.2.3 LED倒計(jì)時(shí)顯示22</p><p>  4.2.4車流量檢測中斷服務(wù)子程序22</p><p>  4.2.5緊停及違規(guī)中斷服務(wù)子程序22</p><p>  4.2.6紅綠燈時(shí)間調(diào)整程序

9、23</p><p>  4.2.7消抖動(dòng)程序23</p><p><b>  參考文獻(xiàn)24</b></p><p><b>  附錄A25</b></p><p><b>  致謝30</b></p><p><b>  摘 要&

10、lt;/b></p><p>  近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測技術(shù)日益更新。在實(shí)時(shí)檢測和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。</p><p>  十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實(shí)現(xiàn)這井然秩序呢?靠的就是交通信

11、號(hào)燈的自動(dòng)指揮系統(tǒng)。交通信號(hào)燈控制方式很多。本系統(tǒng)采用MSC-51系列單片機(jī)ATSC51和可編程并行I/O接口芯片80C51為中心器件來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際車流量通過8051芯片的P1口設(shè)置紅、綠燈燃亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)剩秒時(shí)黃燈閃爍警示。本系統(tǒng)實(shí)用性強(qiáng)、操作簡單、擴(kuò)展功能強(qiáng)。</p><p>  第一章單片機(jī)控制交通燈的背景 </p><p><b&g

12、t;  1.1交通燈的背景</b></p><p>  1.1.1交通燈的歷史</p><p>  19世紀(jì)初,在英國中部的約克城,紅、綠裝分別代表女性的不同身份。其中,著紅裝的女人表示我已結(jié)婚,而著綠裝的女人則是未婚者。后來,英國倫敦議會(huì)大廈前經(jīng)常發(fā)生馬車軋人的事故,于是人們受到紅綠裝啟發(fā),1868年12月10日,信號(hào)燈家族的第一個(gè)成員就在倫敦議會(huì)大廈的廣場上誕生了,由當(dāng)時(shí)英

13、國機(jī)械師德·哈特設(shè)計(jì)、制造的燈柱高7米,身上掛著一盞紅、綠兩色的提燈--煤氣交通信號(hào)燈,這是城市街道的第一盞信號(hào)燈。在燈的腳下,一名手持長桿的警察隨心所欲地牽動(dòng)皮帶轉(zhuǎn)換提燈的顏色。后來在信號(hào)燈的中心裝上煤氣燈罩 ,它的前面有兩塊紅、綠玻璃交替遮擋。不幸的是只面世23天的煤氣燈突然爆炸自滅,使一位正在值勤的警察也因此斷送了性命。 </p><p>  從此,城市的交通信號(hào)燈被取締了。直到1914年,在美國

14、的克利夫蘭市才率先恢復(fù)了紅綠燈,不過,這時(shí)已是“電氣信號(hào)燈”。稍后又在紐約和芝加哥等城市,相繼重新出現(xiàn)了交通信號(hào)燈。</p><p>  1.1.2交通燈的出現(xiàn)</p><p>  隨著各種交通工具的發(fā)展和交通指揮的需要,第一盞名副其實(shí)的三色燈(紅、黃、綠三種標(biāo)志)于1918年誕生。它是三色圓形四面投影器,被安裝在紐約市五號(hào)街的一座高塔上,由于它的誕生,使城市交通大為改善。 </p&

15、gt;<p>  黃色信號(hào)燈的發(fā)明者是我國的胡汝鼎,他懷著“科學(xué)救國”的抱負(fù)到美國深造,在大發(fā)明家愛迪生為董事長的美國通用電器公司任職員。一天,他站在繁華的十字路口等待綠燈信號(hào),當(dāng)他看到紅燈而正要過去時(shí),一輛轉(zhuǎn)彎的汽車呼地一聲擦身而過,嚇了他一身冷汗?;氐剿奚?,他反復(fù)琢磨,終于想到在紅、綠燈中間再加上一個(gè)黃色信號(hào)燈,提醒人們注意危險(xiǎn)。他的建議立即得到有關(guān)方面的肯定。于是紅、黃、綠三色信號(hào)燈即以一個(gè)完整的指揮信號(hào)家族,遍及全

16、世界陸、海、空交通領(lǐng)域了。</p><p><b>  1.2單片機(jī)簡介</b></p><p>  1.2.1單片機(jī)的發(fā)展歷程</p><p>  單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。</p><p>  在MCS-51系列

17、單片機(jī)中,有兩個(gè)子系列:51子系列和52子系列。每個(gè)子系列有諾干中型號(hào)。51系列有8051、8751和8031三個(gè)型號(hào),后來經(jīng)過改進(jìn)產(chǎn)生了80c51、87c51、80c31三個(gè)型號(hào);52系列有5021、8752、8032三個(gè)型號(hào),改進(jìn)后的型號(hào)是80c52/87c52、80c32。改進(jìn)后的型號(hào)更加省電。52系列比對應(yīng)的51系列增加了定時(shí)器T2并將內(nèi)部程序存貯器增加到8KB。Inter公司停止生產(chǎn)MCS-51系列單片機(jī)之后將生產(chǎn)權(quán)轉(zhuǎn)讓給了許

18、多其他公司,于是出現(xiàn)了許多與Mcs-51兼容的單片機(jī)?,F(xiàn)在生產(chǎn)mcs-51兼容單片機(jī)的公司對其進(jìn)行了不同程度的改進(jìn)和提高。我們現(xiàn)在使用比較的多的是AT89C51/AT89s51等。</p><p>  通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。</p><

19、p>  單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗。</p><p>  1.2.2單片機(jī)的特點(diǎn)</p><p>  (1)性價(jià)比高,開發(fā)周期短,易于產(chǎn)品化,</p><p>  (2)集成度高,可靠性好,抗干擾性強(qiáng),</p><p>

20、; ?。?)功能完善,接口多樣,</p><p> ?。?)低功耗、低電壓</p><p>  一般電源供電電壓在5~3V范圍內(nèi)單片機(jī)都能正常工作,供電的下限可達(dá)1~2V。</p><p> ?。?)總線多樣,易于擴(kuò)展</p><p>  單片機(jī)外部的典型三總線結(jié)構(gòu),方便系統(tǒng)構(gòu)擴(kuò)展,構(gòu)成各種規(guī)模的應(yīng)用系統(tǒng)。外部總線增加了I2C及SPI等串行總

21、線方式, 可根據(jù)需要進(jìn)行并行或者串行擴(kuò)展。</p><p>  1.2.3 MCS—51單片機(jī)內(nèi)部結(jié)構(gòu)有8大部分</p><p> ?、?一個(gè)8 位的中央處理器 CPU(又稱為微處理器)</p><p>  中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控

22、制輸入輸出功能等操作。</p><p>  ②有 128字節(jié) 的片內(nèi)數(shù)據(jù)存儲(chǔ)器RAM。8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。</p><p>  ③.4KB片內(nèi) 程序存儲(chǔ)器ROM

23、或EPROM</p><p>  8051共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)</p><p>  ④.片內(nèi) 18個(gè) 特殊功能寄存器(SFR)</p><p>  如圖(圖1-1)所示:</p><p>  圖1-1片內(nèi)特殊存儲(chǔ)器分布圖</p><p> ?、?4個(gè)8位 的并行輸入輸出I/O口(PI

24、O)</p><p>  8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸</p><p>  P0口 P0.0~P0.7 輸入與輸出 分時(shí)的傳送地址低8位與數(shù)據(jù)線</p><p>  P1口 P1.0~P1.7 輸入與輸出 無第二功能</p><p>  P2口 P2.0~

25、P2.7 輸入與輸出 傳送地址的高8位</p><p>  P3口 P3.0~P3.7 輸入與輸出 P3.0—RXD:串行口輸入端</p><p>  P3.1—TXD:串行口輸出端</p><p>  P3.1—TXD:串行口輸出端</p><p>  P3.2—:外部中斷0中斷請求輸入端</p>&

26、lt;p>  P3.3—:外部中斷1中斷請求輸入端</p><p>  P3.4—T0:定時(shí)器/計(jì)數(shù)器0外部輸入端</p><p>  P3.5—T1:定時(shí)器/計(jì)數(shù)器1外部輸入端</p><p>  P3.6—:外部數(shù)據(jù)存儲(chǔ)器寫選通信號(hào)</p><p>  P3.7—:外部數(shù)據(jù)存儲(chǔ)器讀選通信號(hào)</p><p> 

27、?、?1個(gè) 串行口I/O(SIO/UART)完成單片機(jī)與其他微機(jī)的之間的串行通信</p><p> ?、?2/3個(gè)16位 定時(shí)器/計(jì)數(shù)器(TIMER/COUNTER)</p><p>  ⑧.可處理 5個(gè)中斷源,兩級可程序優(yōu)先級的中斷系統(tǒng)</p><p>  其中含有MCS-51指令集含 111條指令,按照指令操作功能話費(fèi)有五類:</p><p&

28、gt;  <1>數(shù)據(jù)傳送指令(28)</p><p>  <2>算術(shù)運(yùn)算指令(24)</p><p>  <3>邏輯運(yùn)算及轉(zhuǎn)移指令(25)</p><p>  <4>控制轉(zhuǎn)移指令(22)</p><p>  <5>位操作指令(12)</p><p>  1.2

29、.4單片機(jī)的內(nèi)部結(jié)構(gòu)圖</p><p>  除去圖中的存儲(chǔ)電路和I/O部件,剩下的是CPU,它可以分為運(yùn)算器和控制器兩部分。運(yùn)算器功能部件包括算術(shù)邏輯運(yùn)算單元ALU、累加器ACC、寄存器B、暫存寄存器TMP1、TMP2、程序狀態(tài)字寄存器PSW等??刂破鞴δ懿考ǔ绦蛴?jì)數(shù)器PC、指令寄存器IR、指令譯碼器ID、定時(shí)控制邏輯電路CU、數(shù)據(jù)指針寄存器DPTR、堆棧指針SP及時(shí)鐘電路等。</p><

30、p>  圖1-2單片機(jī)內(nèi)部結(jié)構(gòu)圖</p><p>  第二章 單片機(jī)控制交通系統(tǒng)總體設(shè)計(jì)</p><p>  2.1單片機(jī)交通控制系統(tǒng)通行方案設(shè)計(jì)</p><p>  設(shè)在十字路口,分為東西向和南北向,在任一時(shí)刻只有一個(gè)方向通行,另一方向禁行,持續(xù)一定時(shí)間,經(jīng)過短暫的過渡時(shí)間,將通行禁行方向?qū)Q。其具體狀態(tài)如下圖所示。說明:黑色表示亮,白色表示滅。交通狀態(tài)從

31、狀態(tài)1開始變換,直至狀態(tài)6然后循環(huán)至狀1,周而復(fù)始,即如圖(圖2-1)所示:直至狀態(tài)6然后循環(huán)至狀態(tài)1,通過具體的路口交通燈狀態(tài)的演示分析我們可以把這四個(gè)狀態(tài)歸納如下:</p><p><b>  圖2-1交通狀態(tài)</b></p><p>  ※東西方向紅燈滅,同時(shí)綠燈亮,南北方向黃燈滅,同時(shí)紅燈亮,倒計(jì)時(shí)20秒。此狀態(tài)下,東西向禁止通行,南北向允許通行。</p

32、><p>  ※東西方向綠燈滅,同時(shí)黃燈亮,南北方向紅燈亮,倒計(jì)時(shí)2秒。此狀態(tài)下,除了已經(jīng)正在通行中的其他所以車輛都需等待狀態(tài)轉(zhuǎn)換。</p><p>  ※南北方向紅燈滅,同時(shí)綠燈亮,東西方向黃燈滅,同時(shí)紅燈亮,倒計(jì)時(shí)20秒。此狀態(tài)下,東西向允許通行,南北向禁止通行。</p><p>  ※南北方向綠燈滅,同時(shí)黃燈亮,東西方向紅燈亮,倒計(jì)時(shí)2秒。此狀態(tài)下,除了已經(jīng)正在通

33、行中的其他所以車輛都需等待狀態(tài)轉(zhuǎn)換。</p><p>  下面我們可以用圖表表示燈狀態(tài)和行止?fàn)顟B(tài)的關(guān)系如下:</p><p>  表2-1交通狀態(tài)及紅綠燈狀態(tài)</p><p>  東西南北四個(gè)路口均有紅綠黃3燈和數(shù)碼顯示管2個(gè),在任一個(gè)路口,遇紅燈禁止通行,轉(zhuǎn)綠燈允許通行,之后黃燈亮警告行止?fàn)顟B(tài)將變換。狀態(tài)及紅綠燈狀態(tài)如表2.1所示。說明:0表示滅,1表示亮。<

34、;/p><p>  2.2單片機(jī)交通控制系統(tǒng)的功能要求</p><p>  本設(shè)計(jì)能模擬基本的交通控制系統(tǒng),用紅綠黃燈表示禁行,通行和等待的信號(hào)發(fā)生,還能進(jìn)行倒計(jì)時(shí)顯示,車流量檢測及調(diào)整,交通違規(guī)處理和緊急處理等功能。</p><p>  2.2.1倒計(jì)時(shí)顯示</p><p>  倒計(jì)時(shí)顯示可以提醒駕駛員在信號(hào)燈燈色發(fā)生改變的時(shí)間、在“停止”和“

35、通過”兩者間作出合適的選擇。駕駛員和行人普遍都愿意選擇有倒計(jì)時(shí)顯示的信號(hào)控制方式,并且認(rèn)為有倒計(jì)時(shí)顯示的路口更安全。倒計(jì)時(shí)顯示是用來減少駕駛員在信號(hào)燈色改變的關(guān)鍵時(shí)刻做出復(fù)雜判斷的1種方法,它可以提醒駕駛員燈色發(fā)生改變的時(shí)間,幫助駕駛員在“停止”和“通過”兩者間作出合適的選擇 。</p><p>  2.2.2 車流量檢測及調(diào)整</p><p>  隨著我國經(jīng)濟(jì)建設(shè)的蓬勃發(fā)展,城市人口和機(jī)

36、動(dòng)車擁有量在急劇增長,交通流量日益加大,交通擁擠堵塞現(xiàn)象日趨嚴(yán)重,交通事故時(shí)有發(fā)生。車輛檢測器作為智能交通系統(tǒng)的基本組成部分,在智能交通系統(tǒng)中占有重要的地位?,F(xiàn)階段,車輛檢測器檢測方式有很多,各有其優(yōu)缺點(diǎn),如紅外線檢測器、地磁檢測器、機(jī)械壓電檢測器,磁頻檢測器、波頻檢測器、視頻檢測器等。一般車流量檢測器采用傳感器+單片機(jī)+外圍器件來實(shí)現(xiàn)。 而且,目前國內(nèi)使用的紅綠燈都是固定的紅綠燈時(shí)間,并自動(dòng)切換。紅燈時(shí)間和綠燈時(shí)間,是根據(jù)道口東西向和

37、南北向的車流量,利用統(tǒng)計(jì)方法確定的。交通警察不斷觀察十字路口的兩個(gè)方向,根據(jù)車輛密度和流速?zèng)Q定是否切換紅綠燈,以保證最佳的道路交通控制狀態(tài)。</p><p>  2.2.3時(shí)間手動(dòng)設(shè)置</p><p>  除系統(tǒng)根據(jù)車流量自動(dòng)控制調(diào)整,也可以通過鍵盤進(jìn)行手動(dòng)設(shè)置,增加了人為的可控性,避免自動(dòng)故障和意外發(fā)生,并再緊急狀態(tài)下,可設(shè)置所有燈變?yōu)榧t燈。鍵盤是單片機(jī)系統(tǒng)中最常用的人機(jī)接口,一般情況下

38、有獨(dú)立式和行列式兩種。前者軟件編寫簡單,但在按鍵數(shù)量較多時(shí)特別浪費(fèi)I/0口資源,一般用于按鍵數(shù)量少的系統(tǒng)。后者適用于按鍵數(shù)量較多的場合,但是在單片機(jī)I/0 口資源相對較少而需要較多按鍵時(shí),此方法仍不能滿足設(shè)計(jì)要求。本系統(tǒng)要求的按鍵控制不多,且I/0口足夠,可直接采用獨(dú)立式。</p><p>  2.2.4 緊急處理</p><p>  交通路口出現(xiàn)緊急狀況在所難免,如特大事件發(fā)生,救護(hù)車等

39、急行車通過等,我們都必須盡量允許其暢通無阻,畢竟在這種情況下是分秒必爭的,時(shí)時(shí)刻刻關(guān)系著公共財(cái)產(chǎn)安全,個(gè)人生死攸關(guān)等。由此在交通控制中增設(shè)禁停按鍵,就可達(dá)到想此目的。</p><p>  2.3單片機(jī)交通控制系統(tǒng)的基本構(gòu)成及原理</p><p>  單片機(jī)設(shè)計(jì)交通燈控制系統(tǒng),可用單片機(jī)直接控制信號(hào)燈的狀態(tài)變化,基本上可以指揮交通的具體通行,當(dāng)然,接入LED數(shù)碼管就可以顯示倒計(jì)時(shí)以提醒行使者

40、,更具人性化。本系統(tǒng)在此基礎(chǔ)上,加入了違規(guī)檢測電路和車流量檢測電路為單片機(jī)采集數(shù)據(jù),單片機(jī)對此進(jìn)行具體處理,及時(shí)調(diào)整控制指揮,為了超越視覺指揮的局限性,同時(shí)接上蜂鳴器,在聽覺上加強(qiáng)了指揮提醒作用。如圖(圖2-2)所示:</p><p><b>  單片機(jī)</b></p><p>  圖2-2 系統(tǒng)的總體框圖</p><p>  據(jù)此,本設(shè)計(jì)系統(tǒng)

41、以單片機(jī)為控制核心,連接成最小系統(tǒng),由車流量檢測模塊,違規(guī)檢測模塊,和按鍵設(shè)置模塊等產(chǎn)生輸入,信號(hào)燈狀態(tài)模塊,LED倒計(jì)時(shí)模塊和蜂鳴器狀態(tài)模塊接受輸出。系統(tǒng)的總體框圖如上所示。</p><p>  鍵盤設(shè)置模塊對系統(tǒng)輸入模式選擇及具體通行時(shí)間設(shè)置的信號(hào),系統(tǒng)進(jìn)入正常工作狀態(tài),執(zhí)行交通燈狀態(tài)顯示控制,同時(shí)將時(shí)間數(shù)據(jù)倒計(jì)時(shí)輸入到LED數(shù)碼管上實(shí)時(shí)顯示。在此過程中還要實(shí)時(shí)捕捉違規(guī)檢測和緊急按鍵信號(hào),以達(dá)到對異常狀態(tài)進(jìn)行

42、實(shí)時(shí)控制的目的。急停按鍵和違規(guī)檢測隨時(shí)調(diào)用中斷。</p><p>  在模式選擇上,若為自動(dòng)模式,將不斷調(diào)用車流量檢測模塊對車流量進(jìn)行檢測統(tǒng)計(jì),到達(dá)一定時(shí)間將修正通行時(shí)間一滿足不同路況的需要。</p><p>  第三章 系統(tǒng)硬件電路的設(shè)計(jì)</p><p>  3.1系統(tǒng)硬件總電路構(gòu)成及原理</p><p>  實(shí)現(xiàn)本設(shè)計(jì)要求的具體功能,可以

43、選用AT89C52單片機(jī)及外圍器件構(gòu)成最小控制系統(tǒng),12個(gè)發(fā)光二極管分成4組紅綠黃三色燈構(gòu)成信號(hào)燈指示模塊,8個(gè)LED東西南北各兩個(gè)構(gòu)成倒計(jì)時(shí)顯示模塊,車流量檢測傳感器采集流量數(shù)據(jù),光敏傳感器捕獲違規(guī)信號(hào),若干按鍵組成時(shí)間設(shè)置和模式選擇按鈕和緊急按鈕等,以及用1個(gè)蜂鳴器進(jìn)行報(bào)警。</p><p>  3.1.1系統(tǒng)硬件電路構(gòu)成</p><p>  本系統(tǒng)以單片機(jī)為核心,組成一個(gè)集車流量采集

44、、處理、自動(dòng)控制為一身的閉環(huán)控制系統(tǒng)。系統(tǒng)硬件電路由車流量檢測電路、單片機(jī)、違規(guī)檢測電路,狀態(tài)燈,LED顯示,按鍵,蜂鳴器組成。其具體的硬件電路總圖如圖3.1所示。</p><p>  其中P0,P1,用于送顯兩片LED數(shù)碼管,P2用于控制紅綠黃發(fā)光二極管,XTAL1和XTAL2接入晶振時(shí)鐘電路,REST引腳接上復(fù)位電路,P3.2即INT1接違規(guī)檢測電路和緊停/東西時(shí)間設(shè)置鍵J,P3.3即INT1接車流量檢測電路

45、,P3.6接南北時(shí)間設(shè)置鍵S,P3.7接自動(dòng)模式選擇/返回鍵F,P3.4接蜂鳴器。</p><p>  3.1.2系統(tǒng)工作原理</p><p>  系統(tǒng)上電或手動(dòng)復(fù)位之后,系統(tǒng)等待模式選擇設(shè)置鍵按下,模式分兩種:紅綠燈時(shí)間自動(dòng)和紅綠燈時(shí)間設(shè)置。若此時(shí)F鍵按下,則設(shè)置為自動(dòng)模式,若此時(shí)按下的是S鍵,則設(shè)置為時(shí)間設(shè)置模式,依次按S若干次,J鍵若干次可設(shè)置好兩個(gè)方向的紅綠燈時(shí)間,再按F鍵確認(rèn)。其

46、實(shí)這個(gè)過程就是將存儲(chǔ)時(shí)間值的寄存器進(jìn)行設(shè)置,以及標(biāo)志是否要進(jìn)行車流量檢測及調(diào)整。</p><p>  接下來,系統(tǒng)必須先顯示狀態(tài)燈及LED數(shù)碼管,將狀態(tài)碼值送顯P2口,將要顯示的時(shí)間值的個(gè)位和十位分別送顯P0和P1口,在此同時(shí)以50ms為周期,用軟件方法計(jì)時(shí)1秒,到達(dá)1s就要將時(shí)間值減1,刷新LED數(shù)碼管。</p><p>  時(shí)間到達(dá)一個(gè)狀態(tài)所要全部時(shí)間,則要進(jìn)行下一狀態(tài)判斷及銜接,并裝

47、入次狀態(tài)的相應(yīng)狀態(tài)碼值以及時(shí)間值,</p><p>  當(dāng)然,還要開啟兩個(gè)外部中斷,其一為違規(guī)信號(hào)或禁停信號(hào)輸入,一旦信號(hào)有效,中斷開始,進(jìn)入中斷服務(wù)子程序,開啟蜂鳴器禁止全部通行,當(dāng)按下F鍵,中斷結(jié)束返回。其二為車流量檢測信號(hào)輸入,若檢測到車輛經(jīng)過,進(jìn)入相應(yīng)的中斷子程序,將存儲(chǔ)車流量的寄存器加1,然后中斷結(jié)束返回。</p><p>  每滿一個(gè)狀態(tài)循環(huán)周期,若為自動(dòng)模式,則須將檢測到的車

48、流量數(shù)據(jù)處理一次,判斷兩個(gè)方向的交通輕重緩急狀況,再調(diào)整下次狀態(tài)循環(huán)的紅綠燈時(shí)間,以達(dá)到自動(dòng)控制的目的。如圖(圖3-1)所示。</p><p>  圖3-1基于單片機(jī)的交通燈控制系統(tǒng)電路圖</p><p>  3.1.3車流量檢測電路及模擬</p><p>  為了達(dá)到對紅綠燈的時(shí)間控制,需要對道路上的車流量進(jìn)行檢測。當(dāng)前比較流行的車流量檢測器件,是一種自感式的車輛

49、傳感器。其工作原理是當(dāng)車輛經(jīng)過傳感器時(shí),引起其自感的變化,考慮到單片機(jī)系統(tǒng)的便利性,本次設(shè)計(jì)用一種手動(dòng)的操作方式,即車流量的檢測電路用撥斷開關(guān)代替。其基本思路為:當(dāng)車流量大時(shí),有撥斷開關(guān)送出一個(gè)高電平。另外,再單片機(jī)和坡度按開關(guān)之間加了光電隔離。下面叫簡紹光電隔離,以TLP550為例。</p><p>  TLP550是日本東芝公司生產(chǎn)的一款光耦,該光耦沒有和基極連接,適合與再噪聲比較大的環(huán)境中應(yīng)用。TLP550

50、的工作原理如下:當(dāng)2.3叫的電壓為正,且能時(shí)發(fā)光二極管正常發(fā)光時(shí),控制的發(fā)光二極管發(fā)光,使得輸出端的光敏二極管導(dǎo)通。這樣輸出端的基極相當(dāng)于與8引腳連接,其電平為高,使得三極管導(dǎo)通,及5.6兩個(gè)引腳導(dǎo)通。由于5引腳接地,這樣輸出端6叫就為低電平。再實(shí)際使用中,6.8引腳通常會(huì)連接一個(gè)電阻。這樣當(dāng)2.3引腳的電壓不足使發(fā)光二級光發(fā)光時(shí),輸出端三極管就不到同,就相當(dāng)于輸出端6引腳通過一個(gè)電阻接到了8腳上。相對于后面的連接電路來書,其為高電平。

51、這樣就可以通過控制2.3引腳之間的電壓,來控制輸出6引腳的電平,達(dá)到電壓耦合的隔離的作用。車流量檢測電路如下圖(圖3-2)所示。</p><p>  圖3-2 車流量檢測電路</p><p>  基于光電隔離的作用,再加上撥斷開關(guān)和LED,為了避免干擾信號(hào),可以加入光電耦合器。如圖所示,當(dāng)開關(guān)狀態(tài)如圖所示時(shí),LED點(diǎn)亮,同時(shí)低電平被單片機(jī)捕獲。當(dāng)開關(guān)撥下時(shí)LED熄滅,同時(shí)高點(diǎn)平被單片機(jī)捕獲

52、,這樣單片機(jī)通過捕獲的</p><p>  電平狀態(tài)做出相應(yīng)的控制,與LED的狀態(tài)即車流量的狀態(tài)互相配合協(xié)調(diào)。</p><p>  3.1.4八段LED數(shù)碼管</p><p>  LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價(jià)格低、壽命長、維護(hù)簡便等優(yōu)點(diǎn)。LED數(shù)碼管的結(jié)構(gòu)簡單,分為七段和八段兩種形式,也有共陽和共陰之分。以八段共陽管為例,它有8個(gè)發(fā)光二極管(比

53、七段多一個(gè)發(fā)光二極管,用來顯示sP,即點(diǎn)),每個(gè)發(fā)光二極管的陽極連在一起,如圖(圖3-3)所示。這樣,一個(gè)LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個(gè)數(shù)值,就要分別對它們的高低電平來加以控制。為方便起見,本文主要討論共陽八段LED數(shù)碼顯示管,其他類形的顯示管與其類似。</p><p>  圖3-3 LED數(shù)碼管</p><p>  LED 燈的顯示原理:通過同名管腳上所加電平的高

54、低來控制發(fā)光二極管是否點(diǎn)亮而顯示不同的字形,如 dp,g,f,e,d,c,b,a全亮顯示為8,采用共陽極連接驅(qū)動(dòng)代碼,代碼表如下表(表3-1)所示。</p><p>  表3-1 驅(qū)動(dòng)代碼表</p><p>  相應(yīng)在程序軟件上,可以通過調(diào)用程序給定的秒值經(jīng)過特定計(jì)算算出需要顯示的個(gè)位和十位,然后有DPTR調(diào)取LEDMAP的代碼。</p><p>  LED8段數(shù)

55、碼管的設(shè)置為每個(gè)方位上的一對2為顯示器。四個(gè)方位上總共用8個(gè)LED接在單片機(jī)的IO口上。雖然路口不一樣,但是顯示的時(shí)間在數(shù)字上是一樣的,所以兩邊連接的IO口是對稱的。如圖(圖3-4)所示,其中A,B分別是P0,P1的網(wǎng)絡(luò)標(biāo)號(hào)。</p><p>  圖3-4 LED連接圖</p><p><b>  3.3.4其它器件</b></p><p>&

56、lt;b> ?。?)發(fā)光二極管</b></p><p>  根據(jù)本設(shè)計(jì)的特點(diǎn),紅綠燈的顯示不可少,紅綠燈的顯示采用普通的發(fā)光二極</p><p>  管。每個(gè)方向上設(shè)置紅綠黃燈,總共4組。如果東西紅燈亮,那南北方向就是綠燈</p><p>  亮,反之亦然,所以在硬件上連接圖上也是對稱分布的,如下圖(圖3-6)所示:</p><

57、p>  圖3-6 信號(hào)燈的連接</p><p><b> ?。?)按鍵控制</b></p><p>  本設(shè)計(jì)設(shè)置了有3個(gè)鍵:S鍵P3.2,J鍵P3.2,F(xiàn)鍵P3.7。每個(gè)按鍵一端接地,另一端接上拉電阻。低電平有效,當(dāng)按鍵按下端口接地,單片機(jī)捕獲到低電平,從而知道相應(yīng)的輸入信息。如下圖(圖3-7)所示。</p><p><b>

58、  圖3-7 按鍵示意</b></p><p>  第四章 系統(tǒng)軟件程序的設(shè)計(jì)</p><p>  4.1程序主體設(shè)計(jì)流程</p><p>  全部控制程序?qū)嶋H上分為若干模塊:鍵盤設(shè)置處理程序,狀態(tài)燈控制程序,LED顯示程序,消抖動(dòng)延時(shí)程序,次狀態(tài)判斷及處理程序,緊?;蜻`規(guī)判斷程序,中斷服務(wù)子程序,車流量計(jì)數(shù)程序,紅綠燈時(shí)間調(diào)整程序等。</p>

59、;<p>  整個(gè)軟件程序方面主要分兩大部分:按鍵處理程序和50ms掃描程序。流程圖如圖(圖4-1)所示。 </p><p>  圖4-1系統(tǒng)總的流程圖</p><p>  4.2子程序模塊設(shè)計(jì)</p><p>  4.2.1按鍵掃描程序</p><p>  首先程序不斷掃描模式設(shè)置鍵,分

60、別記為:S鍵,J鍵,F(xiàn)鍵對應(yīng)IO端口的P3.6,P3.2,P3.7,低電平有效,按鍵順序是指定的,若直接按F鍵,則為自動(dòng)調(diào)整模式,然后進(jìn)入下一程序;若先按S鍵,再按J鍵,F(xiàn)鍵則為設(shè)置時(shí)間模式,然后進(jìn)入下一程序。</p><p>  程序的開始要判斷是否有鍵按下,可以不斷將S鍵值和F鍵值相與,與值為1則表示沒有鍵按下,為0則表示有鍵按下,程序如下:</p><p>  K1: MOV

61、 C, P0.0 </p><p>  ANL C, P0.1</p><p>  JB C, K1</p><p><b>  …… </b></p><p>  接下來要判斷具體是那個(gè)鍵,若為F鍵,則將自動(dòng)標(biāo)志位置1,進(jìn)入下一程序,否則為S鍵,則表示設(shè)置南北綠燈時(shí)間,用R0存值,按1下加1,同時(shí)還需判

62、斷此時(shí)J鍵是否按下,若按下,則表示南北綠燈時(shí)間設(shè)置完畢,開始設(shè)置東西綠燈時(shí)間,用R1存值,同樣按1下加1 ,同時(shí)判斷此時(shí)F鍵是否按下,若按下,則表示時(shí)間設(shè)置完畢,進(jìn)入下一程序。</p><p>  在這個(gè)過程中,S,J鍵的計(jì)數(shù)是循環(huán)的,從初值20開始,加到40則循環(huán)回到20。如判斷S鍵程序如下:</p><p>  CJNZ R0, #40, V1</p><p&g

63、t;  MOV R0, #20</p><p>  V1: INC R0</p><p><b>  …… </b></p><p>  4.2.2狀態(tài)燈顯示及判斷</p><p>  在本設(shè)計(jì)中,實(shí)際控制的燈只有6個(gè),即:東西紅燈,東西綠燈,東西黃燈,南北紅燈,南北綠燈,南北黃燈。定義IO端口如下,其

64、中均是低電平有效。</p><p>  H_GREEN BIT P2.2</p><p>  H_YELLOW BIT P2.3</p><p>  L_RED BIT P2.4</p><p>  L_GREEN BIT P2.5</p><p>  L_YELLOW

65、 BIT P2.6</p><p>  共有4鐘狀態(tài):東西紅燈亮,南北綠燈亮(11011101/DDH);東西紅燈亮,南北黃燈亮(10111101/BDH);東西綠燈亮,南北紅燈亮(11101101/EDH);東西黃燈亮,南北紅燈亮(11100111/E7H)。</p><p>  括號(hào)中是P2端口8個(gè)引腳值P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0以及

66、對應(yīng)的十六進(jìn)制碼。</p><p>  在用于顯示發(fā)光二極管時(shí),直接由MOV指令將十六進(jìn)制碼送入P2口。</p><p>  剛才的4個(gè)狀態(tài)是依次變換的,這就要涉及到狀態(tài)的判斷和銜接了。先把P2端口的值與所有的4個(gè)狀態(tài)碼比較,若相同則判斷成功當(dāng)前狀態(tài),再把下一狀態(tài)的狀態(tài)碼送顯P2即可。程序如下:</p><p>  MOV A, P2</p>

67、<p>  CJNZ A, #0DDH,D1</p><p>  MOV P2, #BDH</p><p>  D1: CJNZ A, BDH,D2</p><p>  MOV P2, #EDH</p><p>  D2: CJNZ A, #EDH,D3</p><

68、;p>  MOV P2, #E7H</p><p>  D3: CJNZ A, #E7H,Y</p><p>  MOV R2, #DDH</p><p><b>  ……</b></p><p>  4.2.3 LED倒計(jì)時(shí)顯示</p><p>  LED計(jì)時(shí)

69、每1秒都要刷新1次,那么計(jì)時(shí)滿1秒時(shí)就要將存儲(chǔ)時(shí)間的工作寄存器R4減1,然后送入LED顯示程序中顯示。下面要將時(shí)間數(shù)據(jù)R4的十位,個(gè)位分開送顯P1,P0端口,首先將R4除以10,整數(shù)即十位放在A中,余數(shù)即個(gè)位放在B中,設(shè)置7段LED顯示數(shù)據(jù)的數(shù)據(jù)表,用數(shù)據(jù)指針寄存器DPTR指向數(shù)據(jù)表的首地址,再加上A中的偏移量,就可以指向十位數(shù)字,然后送顯即可,個(gè)位顯示同理。具體程序如下:</p><p>  MOV A,

70、 R4 </p><p>  MOV B, #10</p><p>  DIV A, B</p><p>  MOV DPTR, #LEDMAP</p><p>  MOVC A, @A+DPTR</p><p>  MOV P1, A</p><p>

71、;  MOV A, B</p><p>  MOVC A, @A+DPTR</p><p>  MOV P3, A</p><p>  LEDMAP: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH</p><p><b>  ……</b></p>

72、;<p>  4.2.4車流量檢測中斷服務(wù)子程序</p><p>  車流量檢測是用外部中斷引腳P3.3即INT1捕獲到一個(gè)低電平,則進(jìn)入相應(yīng)的中斷服務(wù)子程序,在子程序中,用R5計(jì)南北向車流量,用R6計(jì)東西向車流量,設(shè)車向標(biāo)志位為01H,判斷車向,程序如下:</p><p>  JNB 01H, U </p><p>  INC

73、R5</p><p>  U: INC R6</p><p><b>  ……</b></p><p>  4.2.5緊停及違規(guī)中斷服務(wù)子程序</p><p>  緊停按鍵和違規(guī)信號(hào)傳感器均連接到外部中斷引腳P3.2,即INT0捕獲到一個(gè)低電平,則進(jìn)入該中斷,中斷程序中先把蜂鳴器P3.4端口置0,啟動(dòng)蜂

74、鳴。并且等待恢復(fù)鍵F鍵P3.7按下,然后關(guān)閉蜂鳴返回。</p><p>  INT0: SETB P0.5 </p><p>  JB P0.0, $</p><p>  LCALL DELAY</p><p>  CLR P0.5</p><p><b>

75、  RETI</b></p><p><b>  ……</b></p><p>  4.2.6紅綠燈時(shí)間調(diào)整程序</p><p>  根據(jù)紅綠燈時(shí)間調(diào)整原理,一個(gè)周期下來,R5,R6中分別存儲(chǔ)著南北,東西的車流量,接下來求單位時(shí)間車流量,此時(shí)南北向時(shí)間,東西向時(shí)間分別存儲(chǔ)在R0,R1中,則兩個(gè)方向的流量比例為(R5/R0)/(R6/

76、R1)=(R5*R1)/(R6*R0),顯然該比例是1左右?guī)?shù)的值,然而單片機(jī)程序中只取整數(shù),重要的數(shù)據(jù)信息就會(huì)丟失,所以本設(shè)計(jì)中首先將(R5*R1)乘以10,比例就變?yōu)?0左右的值。將該比例值放在A,然后進(jìn)行時(shí)間調(diào)整。</p><p>  由于受到多方面的限制,時(shí)間調(diào)整在此只劃定3個(gè)范圍。比例0到0.7為一個(gè)范圍,0.8到1.5為一個(gè)范圍,1.5以上為一個(gè)范圍。第一范圍顯然表明東西向交通嚴(yán)重,應(yīng)將時(shí)間調(diào)長;第

77、二范圍表明兩向相當(dāng),可設(shè)置一樣的時(shí)間,第三范圍表明南北向交通嚴(yán)重,應(yīng)將該向時(shí)間調(diào)長。具體設(shè)置如下表(表4-1)</p><p>  表4-1 比例及調(diào)整時(shí)間</p><p>  由表可知,對應(yīng)的時(shí)間調(diào)整也只有三種,分別是20,40;30,30;40,20.顯然在實(shí)際應(yīng)用中這樣簡單的處理難以盡如人意,但在此處,本設(shè)計(jì)只是模擬大致的調(diào)整過程,以上要求的程序如下:</p><

78、p>  CJNZ A, #7 M1</p><p>  M2: MOV R2, #20</p><p>  MOV R1, #40</p><p>  SJMP OUT</p><p>  M1: JB C, M2</p><p>  CJNZ A, #

79、15 N1</p><p>  N2: MOV R0, #30</p><p>  MOV R1, #30</p><p>  SJMP OUT</p><p>  N1: JB C, N2</p><p>  MOV R0, #40</p><

80、;p>  MOV R1, #20</p><p>  OUT: CLR R5</p><p>  CLR R6</p><p><b>  RET</b></p><p><b>  ……</b></p><p>  4.2.7消抖動(dòng)程序&

81、lt;/p><p>  利用程序執(zhí)行一條指令的時(shí)間,再加上兩次累減嵌套,程序如下:</p><p>  DELAY: MOV R2, #14H </p><p>  A1: MOV R7, #0FFH</p><p>  DJNZ R2, $</p><p>  DJNZ R7, A

82、1</p><p>  RET4.2.8源程序:見附錄A</p><p><b>  參考文獻(xiàn)</b></p><p>  [l]邊海龍,孫永奎. 單片機(jī)開發(fā)與典型工程項(xiàng)目實(shí)例詳解[J].電子工業(yè)出版社,2008,(10):143-160.</p><p>  [2]王為青,邱文勛. 51單片機(jī)開發(fā)案例精選[J].人民郵

83、電出版社,2001,(5):45-47.</p><p>  [3]張鑫,華臻,陳書謙. 單片機(jī)原理及應(yīng)用[J].電子工業(yè)出版社,2008(5).</p><p>  [4]張洪潤,張亞凡.單片機(jī)原理及應(yīng)用[J]. 清華大學(xué)出版社,2005,(4).</p><p>  [5]黃智偉.凌陽單片機(jī)課程設(shè)計(jì)指導(dǎo)[J]. 北京航空航天大學(xué)出版社,2007,(6)</

84、p><p>  [6]蔣輝平,周國雄. 基于Proteus的單片機(jī)系統(tǒng)設(shè)計(jì)與仿真實(shí)例[M].機(jī)械工業(yè)出版社,2009.</p><p>  [7]張毅坤. 單片微型計(jì)算機(jī)原理及應(yīng)用,[M]西安電子科技大學(xué)出版社 1998 </p><p>  [8]余錫存 曹國華.單片機(jī)原理及接口技術(shù)[M].陜西:西安電子科技大學(xué)出版社,2000.7</p><p

85、>  [9]雷麗文 等.微機(jī)原理與接口技術(shù)[M].北京:電子工業(yè)出版社,1997.</p><p>  [10]張萌·單片機(jī)應(yīng)用系統(tǒng)開發(fā)綜合實(shí)例·第二版·清華大學(xué)出版社·2005年</p><p>  [11]何立民·單片機(jī)應(yīng)用文集·第一版·北京航空航天大學(xué)出版社·2004年</p><

86、;p>  [12]張一工·現(xiàn)代電力電子技術(shù)原理與應(yīng)用第一版·科學(xué)出版社·2002年</p><p>  [13]歐陽文·ATMEL89系列單片機(jī)的原理與開發(fā)實(shí)踐·第一版·中國電力出版社·2007年</p><p>  [14]陳大欽 電子技術(shù)基礎(chǔ)實(shí)驗(yàn) [M].北京:高等教育出版社 2004</p>&

87、lt;p>  [15]陳梓城 電子技術(shù)實(shí)訓(xùn) [M].北京:機(jī)械工業(yè)出版社 2003</p><p>  [16]吳黎明 單片機(jī)原理及應(yīng)用技術(shù)[M].北京:科學(xué)出版社 2003</p><p>  [17]李學(xué)海 標(biāo)準(zhǔn)80C51單片機(jī)基礎(chǔ)教程[M].北京: 北京航空航天大學(xué)出版社 2006</p><p>  [18]劉樂善 微型計(jì)算機(jī)接口技術(shù)及應(yīng)用[M].北京

88、: 華中科技大學(xué)出版社 2004</p><p>  [19] 陳炳權(quán) 曾慶六 EDA技術(shù)實(shí)用教程[M].北京: 湘潭大學(xué)出版社 2010</p><p>  [20] 先鋒工作室. 單片機(jī)程序?qū)嵗齕M].北京:清華大學(xué)出版社,2002.</p><p>  [21] 李伯成.基于MCS-51單片機(jī)的嵌入式系統(tǒng)的設(shè)計(jì)[M].北京:電子工業(yè)出版</p&

89、gt;<p><b>  附錄A</b></p><p>  H_RED BIT P2.1 ;定義IO端口</p><p>  H_GREEN BIT P2.2</p><p>  H_YELLOW BIT P2.3</p><p>  L_RED

90、 BIT P2.4</p><p>  L_GREEN BIT P2.5</p><p>  L_YELLOW BIT P2.6</p><p> ?。恢鞒绦?,選擇設(shè)置紅綠燈時(shí)間模式或自動(dòng)調(diào)整模式</p><p>  ORG 0000H</p><p>  LJMP MAIN</p

91、><p>  ORG 0003H ;中斷入口</p><p>  LJMP INT0</p><p>  ORG 0030H</p><p>  MAIN: MOV R3, #20 ;用于嵌套50ms軟件方法計(jì)時(shí)1s</p><p>  MOV R0, #20

92、;預(yù)設(shè)值紅綠燈時(shí)間</p><p>  MOV R1, #20</p><p>  CLR EX0</p><p>  K1: MOV C, P3.7 ;等待檢測何種模式按鍵按下</p><p>  ANL C, P3.2</p><p>  JB C, K1<

93、/p><p>  JNB P3.7, F ;F鍵按下為自動(dòng)模式,進(jìn)入掃描</p><p>  K2: JNB P3.2, S ;S鍵按下并等待計(jì)數(shù)次數(shù)</p><p><b>  SJMP K2</b></p><p>  F: LCALL DELAY</

94、p><p>  MOV R0, #30</p><p>  MOV R1, #30</p><p>  SETB 00H</p><p><b>  SETB EA</b></p><p>  SETB EX1</p><p>  SJMP STAR

95、T</p><p>  S: LCALL DELAY</p><p>  CJNZ R0, #40, V1</p><p>  MOV R0, #20</p><p>  V1: INC R0</p><p>  JNB P0.1, $</p><p>

96、  JNB P3.6, J ;J鍵按下并等待計(jì)數(shù)次數(shù)</p><p><b>  SJMP K2</b></p><p>  J: LCALL DELAY</p><p>  CJNZ R1, #40, V2</p><p>  MOV R1, #20</p>

97、<p>  V2: INC R1</p><p>  JNB P3.6, $</p><p>  JNB P3.7, START ;設(shè)置完畢為設(shè)定時(shí)間模式,進(jìn)入掃描</p><p>  JNB P3.6, J</p><p>  MOV P2, #0DDH ;預(yù)設(shè)信號(hào)燈狀態(tài),時(shí)間和車向<

98、;/p><p>  MOV R4, R0</p><p>  SETB 01H</p><p>  SETB EX0</p><p> ??;程序開始,進(jìn)行每50ms掃描</p><p>  START: MOV TMOD, #01H</p><p>  MOV TH0,

99、#3CH</p><p>  MOV TL0, #0B0H</p><p>  CLR TF0</p><p>  SETB TR0 ;開始50ms計(jì)時(shí)</p><p>  DJNZ R3, Y ;1s是否計(jì)時(shí)完畢</p><p>  MOV R3, #20&l

100、t;/p><p>  DJNZ R4, Y ;本狀態(tài)是否結(jié)束,并進(jìn)行下一狀態(tài)設(shè)置</p><p>  MOV A, P2</p><p>  CJNZ A, #0DDH,D1</p><p>  MOV P2, #BDH</p><p>  MOV R4, #5</p>

101、<p>  D1: CJNZ A, BDH,D2</p><p>  MOV P2, #EDH</p><p>  MOV R4, R1</p><p>  CLR 01H</p><p>  D2: CJNZ A, #EDH,D3</p><p>  MOV

102、 P2, #E7H</p><p>  MOV R4, #5</p><p>  JNB 00H, D3</p><p>  LCALL DATA</p><p>  D3: CJNZ A, #E7H,Y</p><p>  MOV R2, #DDH</p><p&g

103、t;  MOV R4, R0</p><p>  SETB 01H</p><p>  Y: MOV A, R4 ;LED倒計(jì)時(shí)顯示</p><p>  MOV B, #10</p><p>  DIV A, B</p><p>  MOB DPTR, #LE

104、DMAP</p><p>  MOVC A, @A+DPTR</p><p>  MOV P1, A</p><p>  MOV A, B</p><p>  MOVC A, @A+DPTR</p><p>  MOV P0, A</p><p>  LEDMAP:

105、DB C0H,F9H,A4H,B0H,99H,92H,82H,F8H,80H,90H</p><p>  JNB 00H, WAIT ;判斷是否要計(jì)數(shù)車流量</p><p>  JB P3.3, WAIT ;判斷是否有車經(jīng)過</p><p>  WAIT: JNB TF0, WAIT ;50ms一次掃描完畢</p

106、><p>  SJMP START</p><p>  INT1: JNB 01H, U ;判斷車向</p><p><b>  INC R5</b></p><p>  U: INC R6</p><p><b>  RETI</b&

107、gt;</p><p>  INT0: SETB P3.4 ;中斷服務(wù)子程序,闖紅燈或緊停按鍵</p><p>  JB P3.7, $</p><p>  LCALL DELAY</p><p>  CLR P3.4</p><p><b>  RETI</b&

108、gt;</p><p>  DATA: MOV A, R6 ;車流量數(shù)據(jù)處理及紅綠燈時(shí)間調(diào)整</p><p>  MOV B, R0</p><p>  MUL A, B</p><p>  MOV R6, A</p><p>  MOV A , R5</p>

109、;<p>  MOV B, R1</p><p>  MUL A, B</p><p>  MOV B, #10</p><p>  MUL A, B</p><p>  MOV B, R6</p><p>  DIV A, B</p><p>

110、  CJNZ A, #7 M1</p><p>  M2: MOV R2, #20</p><p>  MOV R1, #40</p><p>  SJMP OUT</p><p>  M1: JB C, M2</p><p>  CJNZ A, #15 N1</p

111、><p>  N2: MOV R0, #30</p><p>  MOV R1, #30</p><p>  SJMP OUT</p><p>  N1: JB C, N2</p><p>  MOV R0, #40</p><p>  MOV R

112、1, #20</p><p>  OUT: CLR R5</p><p><b>  CLR R6</b></p><p><b>  RET</b></p><p>  DELAY: MOV R2, #14H ;延時(shí)程序,用于按鍵消抖動(dòng)</p>&

113、lt;p>  A1: MOV R7, #0FFH</p><p>  DJNZ R2, $</p><p>  DJNZ R7, A1</p><p><b>  RET</b></p><p><b>  END</b></p><p>  程序

114、中部分端口說明:</p><p>  P2 狀態(tài)燈</p><p>  P0 LED個(gè)位</p><p>  P1 LED十位</p><p>  P3.7 F鍵 自動(dòng)調(diào)整模式/ 時(shí)間設(shè)置模式確認(rèn)</p><p>  P3.2 S鍵 設(shè)置南北向通行時(shí)間</p><

115、p>  P3.6 J鍵 設(shè)置東西向通行時(shí)間/ 緊停</p><p>  P3.3 車流量檢測</p><p>  P3.2 紅外對管</p><p>  P3.4 蜂鳴器</p><p>  R3 存20用于乘以50ms計(jì)時(shí)1s</p><p>  R4 暫存狀態(tài)燈持續(xù)時(shí)間</

116、p><p>  R0 存南北向通行時(shí)間</p><p>  R1 存東西向通行時(shí)間</p><p>  R5 計(jì)南北向車流量</p><p>  R6 計(jì)東西向車流量</p><p>  R2,R7 用于軟件延時(shí)</p><p>  00H 自控標(biāo)志位</p>

溫馨提示

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

評論

0/150

提交評論