單片機控制交通燈(程序源代碼)課程設計_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

6、;<p>  2.3單片機交通控制系統(tǒng)的基本構成及原理12</p><p>  第三章 系統(tǒng)硬件電路的設計14</p><p>  3.1系統(tǒng)硬件總電路構成及原理14</p><p>  3.1.1系統(tǒng)硬件電路構成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)軟件程序的設計19</p><p>  4.1程序主體設計流程19</p><p>  4.2子程序模塊設計20</p><p>

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

9、23</p><p>  4.2.7消抖動程序23</p><p><b>  參考文獻24</b></p><p><b>  附錄A25</b></p><p><b>  致謝30</b></p><p><b>  摘 要&

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

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

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

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

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

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

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

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

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

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

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

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

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

23、或EPROM</p><p>  8051共有4096個8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)</p><p>  ④.片內 18個 特殊功能寄存器(SFR)</p><p>  如圖(圖1-1)所示:</p><p>  圖1-1片內特殊存儲器分布圖</p><p> ?、?4個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 輸入與輸出 分時的傳送地址低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ù)器0外部輸入端</p><p>  P3.5—T1:定時器/計數(shù)器1外部輸入端</p><p>  P3.6—:外部數(shù)據(jù)存儲器寫選通信號</p><p>  P3.7—:外部數(shù)據(jù)存儲器讀選通信號</p><p> 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

60、別記為:S鍵,J鍵,F(xiàn)鍵對應IO端口的P3.6,P3.2,P3.7,低電平有效,按鍵順序是指定的,若直接按F鍵,則為自動調整模式,然后進入下一程序;若先按S鍵,再按J鍵,F(xià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>  接下來要判斷具體是那個鍵,若為F鍵,則將自動標志位置1,進入下一程序,否則為S鍵,則表示設置南北綠燈時間,用R0存值,按1下加1,同時還需判

62、斷此時J鍵是否按下,若按下,則表示南北綠燈時間設置完畢,開始設置東西綠燈時間,用R1存值,同樣按1下加1 ,同時判斷此時F鍵是否按下,若按下,則表示時間設置完畢,進入下一程序。</p><p>  在這個過程中,S,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>  在本設計中,實際控制的燈只有6個,即:東西紅燈,東西綠燈,東西黃燈,南北紅燈,南北綠燈,南北黃燈。定義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>  括號中是P2端口8個引腳值P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,P2.1,P2.0以及

66、對應的十六進制碼。</p><p>  在用于顯示發(fā)光二極管時,直接由MOV指令將十六進制碼送入P2口。</p><p>  剛才的4個狀態(tài)是依次變換的,這就要涉及到狀態(tài)的判斷和銜接了。先把P2端口的值與所有的4個狀態(tài)碼比較,若相同則判斷成功當前狀態(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倒計時顯示</p><p>  LED計時

69、每1秒都要刷新1次,那么計時滿1秒時就要將存儲時間的工作寄存器R4減1,然后送入LED顯示程序中顯示。下面要將時間數(shù)據(jù)R4的十位,個位分開送顯P1,P0端口,首先將R4除以10,整數(shù)即十位放在A中,余數(shù)即個位放在B中,設置7段LED顯示數(shù)據(jù)的數(shù)據(jù)表,用數(shù)據(jù)指針寄存器DPTR指向數(shù)據(jù)表的首地址,再加上A中的偏移量,就可以指向十位數(shù)字,然后送顯即可,個位顯示同理。具體程序如下:</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車流量檢測中斷服務子程序</p><p>  車流量檢測是用外部中斷引腳P3.3即INT1捕獲到一個低電平,則進入相應的中斷服務子程序,在子程序中,用R5計南北向車流量,用R6計東西向車流量,設車向標志位為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ī)中斷服務子程序</p><p>  緊停按鍵和違規(guī)信號傳感器均連接到外部中斷引腳P3.2,即INT0捕獲到一個低電平,則進入該中斷,中斷程序中先把蜂鳴器P3.4端口置0,啟動蜂

74、鳴。并且等待恢復鍵F鍵P3.7按下,然后關閉蜂鳴返回。</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紅綠燈時間調整程序</p><p>  根據(jù)紅綠燈時間調整原理,一個周期下來,R5,R6中分別存儲著南北,東西的車流量,接下來求單位時間車流量,此時南北向時間,東西向時間分別存儲在R0,R1中,則兩個方向的流量比例為(R5/R0)/(R6/

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

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

81、lt;/p><p>  利用程序執(zhí)行一條指令的時間,再加上兩次累減嵌套,程序如下:</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>  參考文獻</b></p><p>  [l]邊海龍,孫永奎. 單片機開發(fā)與典型工程項目實例詳解[J].電子工業(yè)出版社,2008,(10):143-160.</p><p>  [2]王為青,邱文勛. 51單片機開發(fā)案例精選[J].人民郵

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

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

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

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

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

88、: 華中科技大學出版社 2004</p><p>  [19] 陳炳權 曾慶六 EDA技術實用教程[M].北京: 湘潭大學出版社 2010</p><p>  [20] 先鋒工作室. 單片機程序實例[M].北京:清華大學出版社,2002.</p><p>  [21] 李伯成.基于MCS-51單片機的嵌入式系統(tǒng)的設計[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>  ;主程序,選擇設置紅綠燈時間模式或自動調整模式</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軟件方法計時1s</p><p>  MOV R0, #20

92、;預設值紅綠燈時間</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鍵按下為自動模式,進入掃描</p><p>  K2: JNB P3.2, S ;S鍵按下并等待計數(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鍵按下并等待計數(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 ;設置完畢為設定時間模式,進入掃描</p><p>  JNB P3.6, J</p><p>  MOV P2, #0DDH ;預設信號燈狀態(tài),時間和車向<

98、;/p><p>  MOV R4, R0</p><p>  SETB 01H</p><p>  SETB EX0</p><p>  ;程序開始,進行每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計時</p><p>  DJNZ R3, Y ;1s是否計時完畢</p><p>  MOV R3, #20&l

100、t;/p><p>  DJNZ R4, Y ;本狀態(tài)是否結束,并進行下一狀態(tài)設置</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倒計時顯示</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 ;判斷是否要計數(shù)車流量</p><p>  JB P3.3, WAIT ;判斷是否有車經過</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 ;中斷服務子程序,闖紅燈或緊停按鍵</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ù)處理及紅綠燈時間調整</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 ;延時程序,用于按鍵消抖動</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個位</p><p>  P1 LED十位</p><p>  P3.7 F鍵 自動調整模式/ 時間設置模式確認</p><p>  P3.2 S鍵 設置南北向通行時間</p><

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

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

溫馨提示

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

評論

0/150

提交評論