基于STC89C52單片機(jī)的數(shù)顯交通燈設(shè)計(jì)說明_第1頁
基于STC89C52單片機(jī)的數(shù)顯交通燈設(shè)計(jì)說明_第2頁
基于STC89C52單片機(jī)的數(shù)顯交通燈設(shè)計(jì)說明_第3頁
基于STC89C52單片機(jī)的數(shù)顯交通燈設(shè)計(jì)說明_第4頁
基于STC89C52單片機(jī)的數(shù)顯交通燈設(shè)計(jì)說明_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 PAGE1 / NUMPAGES27單片機(jī)系統(tǒng)開發(fā)與應(yīng)用工程實(shí)習(xí)報(bào)告選題名稱:基于STC89C52單片機(jī)的數(shù)顯交通燈設(shè)計(jì)系(院): 計(jì)算機(jī)工程學(xué)院專 業(yè):班 級:姓 名:學(xué) 號:指導(dǎo)教師:學(xué)年學(xué)期: 2009 2010 學(xué)年 第 2 學(xué)期2010年5 月 30 日摘要:近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測技術(shù)日益更新。在實(shí)時(shí)檢測和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來使用,僅單片機(jī)方面知識是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。交通燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。本項(xiàng)目

2、主要從單片機(jī)應(yīng)用上來實(shí)現(xiàn)十字路口交通燈智能化的管理,用來控制過往車輛的正常運(yùn)行。我們采用MSC-51系列單片機(jī)STC89C52和驅(qū)動(dòng)芯片74LS245為中心器件,兩位共陰數(shù)碼管和紅、黃、綠LED燈為顯示器件來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了東西南北路口直行,轉(zhuǎn)彎交替通行;人行道通行;數(shù)碼管顯示直行通行時(shí)間倒計(jì)時(shí);紅、綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)剩4秒時(shí)黃燈閃爍警示;某一方向擁擠時(shí),可通過p3.0,p3.1處的兩個(gè)按鍵,實(shí)現(xiàn)人工調(diào)節(jié)通行時(shí)間;緊急情況時(shí),可通過p3.2處的中斷按鍵,實(shí)現(xiàn)各路口顯示紅燈,數(shù)碼管數(shù)據(jù)保持不變等功能。本系統(tǒng)實(shí)用性強(qiáng)、操作簡單、擴(kuò)展功能強(qiáng)。 關(guān)鍵詞:單片機(jī);交通燈;數(shù)碼管;STC89C5

3、2;74LS245;中斷目錄 TOC o 1-3 h z u HYPERLINK l _Toc2633307601 緒言 PAGEREF _Toc263330760 h 1HYPERLINK l _Toc2633307611.1 課題背景 PAGEREF _Toc263330761 h 1HYPERLINK l _Toc2633307621.2 單片機(jī)概述 PAGEREF _Toc263330762 h 1HYPERLINK l _Toc2633307632 項(xiàng)目概述 PAGEREF _Toc263330763 h 2HYPERLINK l _Toc2633307642.1 項(xiàng)目要求 PAGE

4、REF _Toc263330764 h 2HYPERLINK l _Toc2633307652.2系統(tǒng)設(shè)計(jì) PAGEREF _Toc263330765 h 2HYPERLINK l _Toc2633307663 硬件設(shè)計(jì) PAGEREF _Toc263330766 h 3HYPERLINK l _Toc2633307673.1方案比較、設(shè)計(jì)與論證 PAGEREF _Toc263330767 h 3HYPERLINK l _Toc2633307683.1.1 電源提供方案 PAGEREF _Toc263330768 h 3HYPERLINK l _Toc2633307693.1.2 顯示界面方案

5、 PAGEREF _Toc263330769 h 3HYPERLINK l _Toc2633307703.2 芯片簡介 PAGEREF _Toc263330770 h 4HYPERLINK l _Toc2633307713.2.1 MSC-51芯片簡介 PAGEREF _Toc263330771 h 4HYPERLINK l _Toc2633307723.2.2 74LS245引腳,參數(shù)與功能說明 PAGEREF _Toc263330772 h 7HYPERLINK l _Toc2633307733.2.32位共陰數(shù)碼管 PAGEREF _Toc263330773 h 7HYPERLINK l

6、 _Toc2633307743.3 交通管理的方案論證 PAGEREF _Toc263330774 h 8HYPERLINK l _Toc2633307753.4 系統(tǒng)硬件設(shè)計(jì) PAGEREF _Toc263330775 h 9HYPERLINK l _Toc2633307764 軟件設(shè)計(jì) PAGEREF _Toc263330776 h 10HYPERLINK l _Toc2633307774.1 程序流程圖 PAGEREF _Toc263330777 h 10HYPERLINK l _Toc2633307784.2 延時(shí)的設(shè)定 PAGEREF _Toc263330778 h 12HYPERL

7、INK l _Toc2633307794.2.1硬件延時(shí) PAGEREF _Toc263330779 h 12HYPERLINK l _Toc2633307804.2.2 軟件延時(shí) PAGEREF _Toc263330780 h 13HYPERLINK l _Toc26333078143 程序代碼分析 PAGEREF _Toc263330781 h 13HYPERLINK l _Toc2633307824.3.1程序?qū)崿F(xiàn)功能 PAGEREF _Toc263330782 h 13HYPERLINK l _Toc2633307834.3.2 工作寄存器與存儲單元分配 PAGEREF _Toc263

8、330783 h 14HYPERLINK l _Toc2633307844.3.3 初始化程序 PAGEREF _Toc263330784 h 14HYPERLINK l _Toc2633307854.3.4 顯示子程序 PAGEREF _Toc263330785 h 15HYPERLINK l _Toc2633307864.3.5定時(shí)中斷處理程序 PAGEREF _Toc263330786 h 16HYPERLINK l _Toc2633307874.3.6 南北通行到達(dá)最后4秒時(shí)黃燈閃爍 PAGEREF _Toc263330787 h 17HYPERLINK l _Toc263330788

9、4.3.7 東西方向通行時(shí)間剩余4秒鐘黃燈閃爍 PAGEREF _Toc263330788 h 18HYPERLINK l _Toc2633307894.3.8 緊急中斷處理程序 PAGEREF _Toc263330789 h 19HYPERLINK l _Toc263330790439 查表指令0,1,2,3,4,5,6,7,8,9 PAGEREF _Toc263330790 h 20HYPERLINK l _Toc2633307914.3.10 延時(shí)5ms與1ms PAGEREF _Toc263330791 h 20HYPERLINK l _Toc2633307925 測試與結(jié)果 PAGE

10、REF _Toc263330792 h 20HYPERLINK l _Toc263330793總結(jié) PAGEREF _Toc263330793 h 22HYPERLINK l _Toc263330794參考文獻(xiàn) PAGEREF _Toc263330794 h 231 緒言1.1 課題背景隨著我國國民經(jīng)濟(jì)的迅速發(fā)展,城市街道車輛大幅度增長,給城市交通帶來巨大壓力,交通擁堵已經(jīng)成為影響城市可持續(xù)發(fā)展的一個(gè)全局性問題。而街道各十字路口,又是車輛通行的瓶頸所在。已有的許多建立在精確模型基礎(chǔ)上的交通系統(tǒng)控制方案都存在著一定的局限性。研究車輛通行規(guī)律,找出提高十字路口車輛通行效率的有效方法,對緩解交通阻塞

11、,提高暢通率具有十分現(xiàn)實(shí)的意義。地面道路是一個(gè)龐大的網(wǎng)絡(luò),交通狀況十分復(fù)雜,使目前交通燈控制器的單一時(shí)段控制已不能滿足現(xiàn)代交通流量的多變性,特別是在交通流量高峰時(shí),往往會(huì)造成交通路口的通過率下降,甚至出現(xiàn)交通混亂現(xiàn)象,城市的交通擁擠問題正逐漸引起人們的注意。道路平面交叉口(簡稱交叉口)是交通網(wǎng)行能力的“隘口”和交通事故的“多發(fā)源” ,國外城市的交通事故約有一半發(fā)生在交叉口。因此,交叉口這個(gè)事故多發(fā)源不能不引起人們的高度關(guān)注。隨著交通技術(shù)、電子技術(shù)的發(fā)展與微機(jī)技術(shù)的應(yīng)用,人們設(shè)計(jì)出了適應(yīng)各種需要的交通檢測器、信號控制機(jī)和交通信號燈。交通燈是交管部分管理城市交通的重要工具?,F(xiàn)在交通燈一般設(shè)在十字路

12、口,在醒目位置用紅、綠、黃三種顏色的指示燈,加上一個(gè)倒計(jì)時(shí)的顯示計(jì)時(shí)器來控制行車,對于一般情況下的安全行車、車輛分流發(fā)揮著作用。目前絕大部分交通燈其時(shí)間都是設(shè)定好的,采用的是單段式定時(shí)控制或多段式定時(shí)控制,其最大的缺點(diǎn)是綠燈時(shí)間和綠信比是固定的或是分時(shí)段固定的,且最佳綠燈時(shí)間和最佳綠信比的整定較為困難,需要大量的實(shí)測統(tǒng)計(jì)數(shù)據(jù),且很多情況下整定所得值并不是最優(yōu)的,甚至是不合理的??刂破饋矶疾皇呛莒`活,這使得城市車流的調(diào)節(jié)不能達(dá)到最優(yōu)。這次設(shè)計(jì)正是針對這一弊端進(jìn)行了改進(jìn),較好地解決了這一問題。根據(jù)實(shí)時(shí)車流量對各路口的綠燈時(shí)間進(jìn)行動(dòng)態(tài)調(diào)節(jié),大大加強(qiáng)了其靈活性和實(shí)時(shí)性,本系統(tǒng)本著“先到先服務(wù)”的原則,

13、在保證交通安全性不降低的條件下提高了交通效率。與傳統(tǒng)的交通控制系統(tǒng)相比,該控制系統(tǒng)有一定的智能水平和很強(qiáng)的控制能力。1.2 單片機(jī)概述隨著微控技術(shù)的日益完善和發(fā)展,單片機(jī)的應(yīng)用在不斷走向深入。它的應(yīng)用比定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。也就是說單片機(jī)應(yīng)用的出現(xiàn)是對傳統(tǒng)控制技術(shù)的革命。它在工業(yè)控制、數(shù)據(jù)采集、智能化儀表、機(jī)電一體化、家用電器等領(lǐng)路得到了廣泛應(yīng)用,極大的提高了這些領(lǐng)域的技術(shù)水平和自動(dòng)化控制。因此單片機(jī)的開發(fā)應(yīng)用已成為高技術(shù)工程領(lǐng)域的一項(xiàng)重大課題。因此了解單片機(jī)知識,掌握單片機(jī)的應(yīng)用技術(shù)具有重大的意義。本文主要從計(jì)算機(jī)的應(yīng)用上來實(shí)現(xiàn)十字路口交通燈智能化的管理,用以控制過往車輛的正

14、常運(yùn)作。單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖c外部設(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。 單片機(jī)經(jīng)過1、2、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),部資源在增多,引角的多功能化,以與低電壓底功耗。2 項(xiàng)目概述隨著微控技術(shù)的日益完善和發(fā)展,單片機(jī)的應(yīng)用在不斷走向深入。它的應(yīng)用必定導(dǎo)致傳統(tǒng)的控制技術(shù)從根本上發(fā)生變革。它在工業(yè)控制,數(shù)

15、據(jù)采集,智能化儀表,機(jī)電一體化,家用電器等領(lǐng)域得到了廣泛應(yīng)用,極提高了這些領(lǐng)域的技術(shù)水平和自動(dòng)化控制。本項(xiàng)目主要從單片機(jī)應(yīng)用上來實(shí)現(xiàn)十字路口交通燈智能化的管理,用來控制過往車輛的正常運(yùn)作。2.1 項(xiàng)目要求基于STC89C52單片機(jī)的數(shù)顯交通燈的設(shè)計(jì),主要功能有:(1)東西南北路口直行與轉(zhuǎn)彎交替通行,數(shù)碼管顯示直行通行倒計(jì)時(shí)。(2)紅黃綠燈顯示包括人行道在的道路交通狀態(tài)。(3)某一方向道路擁擠時(shí),可以人工控制調(diào)節(jié)東西南北通行時(shí)間。(4)緊急情況時(shí),各路口交通燈顯示紅燈,數(shù)碼管保持?jǐn)?shù)據(jù)不變。2.2系統(tǒng)設(shè)計(jì)按照系統(tǒng)設(shè)計(jì)的要求和功能,將系統(tǒng)分為主控模塊、LED顯示模塊、電源電路、復(fù)位電路、按鍵電路、晶

16、振電路、驅(qū)動(dòng)電路等幾個(gè)模塊,系統(tǒng)組成框圖如圖2-1所示。時(shí)間顯示晶振電路STC89C52單片機(jī)驅(qū)動(dòng)74ls245紅燈狀態(tài)黃燈狀態(tài)綠燈狀態(tài)按鍵電路電源電路圖2-1 基于STC89C52單片機(jī)的數(shù)顯交通燈系統(tǒng)組成框圖3 硬件設(shè)計(jì)3.1方案比較、設(shè)計(jì)與論證3.1.1 電源提供方案為使模塊穩(wěn)定工作,須有可靠電源。我們考慮了兩種電源方案方案一:采用獨(dú)立的穩(wěn)壓電源。此方案的優(yōu)點(diǎn)是穩(wěn)定可靠,且有各種成熟電路可供選用;缺點(diǎn)是各模塊都采用獨(dú)立電源,會(huì)使系統(tǒng)復(fù)雜,且可能影響電路電平。方案二:采用單片機(jī)控制模塊提供電源。改方案的優(yōu)點(diǎn)是系統(tǒng)簡明扼要,節(jié)約成本;缺點(diǎn)是輸出功率不高。綜上所述,我們選擇第二種方案。3.1.

17、2 顯示界面方案該系統(tǒng)要求完成倒計(jì)時(shí)、狀態(tài)燈等功能?;谏鲜鲈颍覀兛紤]了三種方案:方案一:完全采用數(shù)碼管顯示。這種方案只顯示有限的符號和數(shù)碼字苻,無法勝任題目要求。方案二:完全采用點(diǎn)陣式LED 顯示。這種方案實(shí)現(xiàn)復(fù)雜,且須完成大量的軟件工作;但功能強(qiáng)大,可方便的顯示各種英文字符,漢字,圖形等。方案三:采用數(shù)碼管與點(diǎn)陣LED 相結(jié)合的方法因?yàn)樵O(shè)計(jì)既要求倒計(jì)時(shí)數(shù)字輸出,又要求有狀態(tài)燈輸出等,為方便觀看并考慮到現(xiàn)實(shí)情況,用數(shù)碼管與LED燈分別顯示時(shí)間與提示信息。這種方案既滿足系統(tǒng)功能要求,又減少了系統(tǒng)實(shí)現(xiàn)的復(fù)雜度。權(quán)衡利弊第三種方案可互補(bǔ)一二方案的優(yōu)缺,我們決定采用方案三以實(shí)現(xiàn)系統(tǒng)的顯示功能。3

18、.2 芯片簡介3.2.1 MSC-51芯片簡介MCS-51單片機(jī)部結(jié)構(gòu):8051是MCS-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。8051單片機(jī)包含中央處理器、程序存儲器(ROM)、數(shù)據(jù)存儲器(RAM)、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元與數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:中央處理器:中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。數(shù)據(jù)存儲器(RAM):8051部有128個(gè)8位用戶數(shù)據(jù)存儲單元和

19、128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。圖3-1 8051部結(jié)構(gòu)程序存儲器(ROM):8051共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。定時(shí)/計(jì)數(shù)器(ROM):8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。全雙工串行口:8051置一個(gè)全雙工串行通信口,用于與其它設(shè)備間

20、的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。中斷系統(tǒng):8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。時(shí)鐘電路:8051置最高頻率達(dá)12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)需外置振蕩電容。單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲器和數(shù)據(jù)存儲器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲器與數(shù)據(jù)存儲器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品

21、16位的MCS-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。圖3-2 MCS-51 結(jié)構(gòu)圖MCS-51的引腳說明:MCS-51系列單片機(jī)中的8031、8051與8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對這些引腳的功能加以說明:如圖3-3所示:圖3-3 MCS-51的引腳說明Pin9:RESET/Vpd復(fù)位信號復(fù)用腳,當(dāng)8051通電,時(shí)鐘電路開始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)數(shù)器PC指向0000H,P

22、0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見下圖3-4。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)部RAM的數(shù)據(jù)不丟失。圖3-4復(fù)位和時(shí)鐘方式Pin30:ALE/當(dāng)訪問外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問部程序存儲器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號,這個(gè)信號可以用于識別單片機(jī)

23、是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問外部程序存儲器,ALE會(huì)跳過一個(gè)脈沖。如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖。Pin29:當(dāng)訪問外部程序存儲器時(shí),此腳輸出負(fù)脈沖選通信號,PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。Pin31:程序存儲器的外部選通線,8051和8751單片機(jī),置有4kB的程序存儲器,當(dāng)EA為高電平并且程序地址小于4kB時(shí),讀取部程序存儲器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對部無程序存儲器的8031,端

24、必須接地。在編程時(shí),腳還需加上5V的編程電壓。3.2.2 74LS245引腳,參數(shù)與 功能說明74LS245是8路3態(tài) 雙向緩沖驅(qū)動(dòng),也叫做總線驅(qū)動(dòng)門電路或線驅(qū)動(dòng)。主要使用在數(shù)據(jù)的雙向緩沖,原來常見于51的數(shù)據(jù)接口電路,比如,早期電路中,擴(kuò)展了很多的8255/8155/8251/8253/573等芯片的時(shí)候,擔(dān)心8031的數(shù)據(jù)驅(qū)動(dòng)能力不足,就使用一片245作為數(shù)據(jù)緩沖電路,增強(qiáng)驅(qū)動(dòng)能力;也常見與ISA卡的接口電路,圖3-5為245驅(qū)動(dòng)芯片的管腳排列圖3-5 245驅(qū)動(dòng)芯片的引腳圖0,DIR0,B-A;=0, DIR=1, A-B;=1, DIR=X, X=0或者1,輸入和輸出均為高阻態(tài);高阻態(tài)

25、的含意就是相當(dāng)于沒有這個(gè)芯片。2位共陰數(shù)碼管LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價(jià)格低、壽命長、維護(hù)簡便等優(yōu)點(diǎn)。LED數(shù)碼管的結(jié)構(gòu)簡單,分為七段和八段兩種形式,也有共陽和共陰之分。以八段2位共陰管為例,它有8個(gè)發(fā)光二極管(比七段多一個(gè)發(fā)光二極管,用來顯示SP,即點(diǎn)),每個(gè)發(fā)光二極管的陰極連在一起接地。這樣,一個(gè)LED數(shù)碼管就有2根位選線和8根段選線,要想顯示一個(gè)數(shù)值,就要分別對它們的高低電平來加以控制。相應(yīng)在程序軟件上,可以通過調(diào)用程序給定的秒值經(jīng)過特定計(jì)算算出需要顯示的個(gè)位和十位,然后有DPTR調(diào)取table的代碼。LED 8段數(shù)碼管的設(shè)置為每個(gè)方位上的一個(gè)2位顯示器。四個(gè)方位上

26、總共用4個(gè)2位共陰LED接在單片機(jī)的p1口上。如圖3-7所示:圖3-7 2位共陰數(shù)碼管3.3 交通管理的方案論證東西、南北兩干道交于一個(gè)十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車時(shí)間。設(shè)東西道比南北道的車流量大,指示燈燃亮的方案(1)當(dāng)東西方向?yàn)榧t燈,此道車輛禁止通行,東西道行人可通過;南北道為綠燈,此道車輛通過,行人禁止通行。時(shí)間為10秒。(2)南北黃燈閃爍4秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。(3)南北左拐,東西左右拐10秒。(4)當(dāng)東西方向

27、為綠燈,此道車輛通行;南北方向?yàn)榧t燈,南北道車輛禁止通過,行人通行。時(shí)間為20秒。 東西方向車流大 通行時(shí)間長。(5)東西黃燈閃爍4秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。(6)南北左右拐,東西左拐10秒。(7)這樣如上表的時(shí)間和紅、綠、黃出現(xiàn)的順序依次出現(xiàn)這樣行人和車輛就能安全暢通的通行。(8)此表可根據(jù)車流量動(dòng)態(tài)設(shè)定紅綠燈初始值。3.4 系統(tǒng)硬件設(shè)計(jì)核心器件:單片機(jī)系統(tǒng)采用STC89C52芯片,晶振選用12MHz,電源電壓采用5V。信號輸出設(shè)計(jì):用驅(qū)動(dòng)芯片74ls245與單片機(jī)的p0,p2口相連,由74ls245將信號輸送到紅黃綠燈上。信號燈采用發(fā)光二極管,選用紅黃綠三種顏色。紅燈停,綠

28、燈行,黃燈等待。低電平時(shí),燈亮;高電平時(shí),燈熄滅。時(shí)間顯示設(shè)計(jì):采用LED八段2位共陰顯示,采用動(dòng)態(tài)顯示方式。電路圖如圖3-8:圖3-8 交通燈總電路圖4 軟件設(shè)計(jì)4.1 程序流程圖本系統(tǒng)的軟件包括主程序,顯示程序和中斷程序三部分。主程序:初始化子程序,循環(huán)執(zhí)行顯示子程序,中斷系統(tǒng)初始化,顯示緩沖區(qū)賦初值,設(shè)置狀態(tài)標(biāo)志,狀態(tài)切換。具體流程如下:關(guān)中斷保護(hù)現(xiàn)場開中斷中斷服務(wù)關(guān)中斷恢復(fù)現(xiàn)場開中斷中斷返回?cái)帱c(diǎn)地址由堆棧彈入pc圖4-1 中斷服務(wù)程序圖開始南北左拐,東西左右拐東西直行,南北紅燈延時(shí)10S延時(shí)4秒南北左右拐,東西左拐延時(shí)10S延時(shí)10S主程序初始化南北直通狀態(tài),東西紅燈延時(shí)10S南北黃燈

29、中斷入口設(shè)置中斷初始化開中斷延時(shí)4秒圖4-2 主程序復(fù)位按鈕P3.0處的按扭P3.1處的按鈕P3.2處的按鈕復(fù)位延長東西通行時(shí)間延長南北通行時(shí)間緊急中斷,各路口全紅燈,數(shù)碼管時(shí)間靜止圖4-3 按鍵功能4.2 延時(shí)的設(shè)定 延時(shí)方法可以有兩種一中是利用MCS-51部定時(shí)器才生溢出中斷來確定1秒的時(shí)間,另一種是采用軟延時(shí)的方法。4.2.1硬件延時(shí)計(jì)數(shù)器初值計(jì)算:定時(shí)器工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個(gè)值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為TC 可得到如下計(jì)算通式:TC=M-C (4-1)公

30、式中,M為計(jì)數(shù)器摸值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為;在方式1時(shí)M的值為;在方式2和3為計(jì)算公式:T=(MTC)/T計(jì)數(shù)或TC(M-T)/T計(jì)數(shù) (4-2)T計(jì)數(shù)是單片機(jī)時(shí)鐘周期TCLK2倍;TC為定時(shí)初值如單片機(jī)的主脈沖頻率為T12MHZ,經(jīng)過12分頻方式0TMAX213*1微秒8.192毫秒方式1TMAX216*1微秒65.536毫秒顯然1秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題。1秒的方法:我們采用在主程序中設(shè)定一個(gè)初值為20的軟件計(jì)數(shù)器和使T0定時(shí)50毫秒。這樣每當(dāng)T0到50毫秒時(shí)CPU就響應(yīng)它的溢出中斷請求,進(jìn)入他的中斷服務(wù)

31、子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)器減1,然后判斷它是否為零。為零表示1秒已到可以返回到輸出時(shí)間顯示程序。相應(yīng)程序代碼:定時(shí)器需定時(shí)50毫秒,故T0工作于方式1。初值:MOV TMOD,#01H ;初始化定時(shí)器MOV TL0,#0B0HMOV TH0,#3CHSETB EA ;開定時(shí)中斷與緊急中斷SETB ET0SETB TR0SETB EX0SETB IT0 ;設(shè)置中斷程控方式4.2.2 軟件延時(shí) MCS-51的工作頻率為2-12MHZ,我們選用的8051單片機(jī)的工作頻率為12MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為1us。我們可以知道具體每條

32、指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定時(shí)間。 具體的延時(shí)程序分析:去抖延時(shí)子程序D5MS: MOV R7,#50 ;延時(shí)5ms MOV R6,#50 L1: DJNZ R6,$ DJNZ R7,L1 RETD1MS: MOV R7,#10 ;延時(shí)1msMOV R6,#50 L2: DJNZ R6,$ DJNZ R7,L2RET43 程序代碼分析4.3.1程序?qū)崿F(xiàn)功能1、東西南北路口直行與轉(zhuǎn)彎交替通行,數(shù)碼管顯示直行通行倒計(jì)時(shí),紅綠黃燈顯示包括人行道在的道路交通狀態(tài)。2、某一方向道路擁擠時(shí),可以人工控制調(diào)節(jié)東西南北方向通行時(shí)間。3、緊急情況時(shí),各路口交通燈顯示紅燈,數(shù)碼管保持?jǐn)?shù)據(jù)不

33、變。4.3.2 工作寄存器與存儲單元分配1、工作寄存器:R2設(shè)置為定時(shí)器定時(shí)中斷次數(shù),R6、R7用于延時(shí)程序中的寄存器2、片存儲單元:30H、31H作為兩組數(shù)碼管顯示數(shù)據(jù)存儲單元;32H、33H作為交通燈初始狀態(tài)存儲單元;40H、41H作為交通燈顯示數(shù)據(jù)存儲單元。3、標(biāo)志位:00H:南北通行標(biāo)志位;01H:東西通行標(biāo)志位;02H:緊急事件標(biāo)志位 。 SNF EQU 00H ;南北通行標(biāo)志位EWF EQU 01H ;東西通行標(biāo)志位URF EQU 02H ;緊急事件標(biāo)志位ORG 0000HLJMP MAIN ;上電轉(zhuǎn)主程序ORG 000BH ;定時(shí)中斷入口LJMP DSZD ORG 0003H ;

34、緊急中斷入口LJMP URZDORG 0030H MAIN: LCALL INIT ;調(diào)用初始化子程序LOOP: LCALL DIS ;循環(huán)執(zhí)行顯示子程序 AJMP LOOP4.3.3 初始化程序INIT: SETB SNF SETB EWF SETB URF MOV R2,#20 ;定時(shí)器中斷20次為1s MOV TMOD,#01H ;初始化定時(shí)器 MOV TL0,#0B0H MOV TH0,#3CH SETB EA ;開定時(shí)中斷與緊急中斷 SETB ET0 SETB TR0 SETB EX0 SETB IT0 ;設(shè)置中斷程控方式 MOV DPTR,#TAB ;數(shù)值首地址放入DPTR中 MO

35、V 40H,#10 ;東南西北通行時(shí)間設(shè)置 MOV 41H,#10 MOV 30H,#10 ;通行時(shí)間初始化 MOV 31H,#20 MOV P0,#0B3H ;初始化時(shí)南北通行并把交通燈狀態(tài)分別放在32H和33H中 MOV 32H,#0B3H MOV P2,#0ABH MOV 33H,#0ABH RET4.3.4 顯示子程序DIS: MOV P3,#0DFH ;選中南北方向的十位數(shù)碼管 MOV A,30H ;把顯示數(shù)據(jù)送人數(shù)碼管顯示 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P1,A LCALL D1MS MOV P3,#0EFH ;選中南北方向的個(gè)位數(shù)碼管 MO

36、V A,B ;送入數(shù)碼管顯示 MOVC A,A+DPTR MOV P1,A LCALL D1MS MOV P3,#7FH ;選中第東西方向的十位數(shù)碼管 MOV A,31H ;送入數(shù)碼管顯示 MOV B,#10 DIV AB MOVC A,A+DPTR MOV P1,A LCALL D1MS MOV P3,#0BFH ;選中第東西方向的個(gè)位數(shù)碼管MOV A,B MOVC A,A+DPTR MOV P1,A LCALL D1MS SETB P3.0 SETB P3.1 JNB P3.0,DIS_S ;查詢是否第一個(gè)按鍵按下 JNB P3.1,DIS_E ;查詢是否第二個(gè)按鍵按下 AJMP DIS_

37、R ;沒有鍵按下則返回DIS_S:LCALL D5MS ;按鍵去抖 JNB P3.0,DIS_SN AJMP DIS_R DIS_SN:MOV 40H,#50 ;對通行時(shí)間從新分配,南北通行時(shí)間加長 MOV 41H,#30 AJMP DIS_RDIS_E:LCALL D5MS ;按鍵去抖 JNB P3.1,DIS_EW AJMP DIS_RDIS_EW:MOV 40H,#30 ;東西通行時(shí)間加長 MOV 41H,#50DIS_R:RET 4.3.5定時(shí)中斷處理程序DS_C: LJMP DS_R ;接力跳轉(zhuǎn)DSZD: PUSH ACC ;保護(hù)現(xiàn)場 PUSH PSW CLR TR0 ;關(guān)定時(shí)器與中

38、斷標(biāo)志位并重新賦值 CLR TF0 MOV TL0,#0B0H MOV TH0,#3CH DJNZ R2,DS_C ;判斷1s時(shí)間是否到達(dá) MOV R2,#20 ;到達(dá)重新賦值DEC 30H ;南北方向通行時(shí)間減一 MOV A,30H ;把減一后的時(shí)間送入顯示存儲單元4.3.6 南北通行到達(dá)最后4秒時(shí)黃燈閃爍DS_10:CJNE A,#4,DS_11 ;如果通行時(shí)間剩余4秒 JNB SNF,DS_11 ;判斷是否是南北通行 MOV P0,#0B5H MOV 32H, #0B5H ;把交通燈狀態(tài)存入存儲單元(后面類似)DS_11:CJNE A,#3,DS_12 ;不是剩余3秒,返回 JNB SN

39、F,DS_12 ;不是南北通行時(shí)間,返回 MOV P0,#0B7H MOV 32H, #0B7HDS_12:CJNE A,#2,DS_13 JNB SNF,DS_13 MOV P0,#0B5H MOV 32H, #0B5H DS_13:CJNE A,#1,DS_14 JNB SNF,DS_14 MOV P0,#0B7H MOV 32H, #0B7HDS_14:JNZ DS_NE ;通行時(shí)間沒有結(jié)束轉(zhuǎn)向改變東西方向的數(shù)碼管 CPL SNF ;如果通行時(shí)間結(jié)束則對標(biāo)志位取反 JNB SNF,DS_1 ;判斷是否南北通行 MOV 30H,40H ;是,點(diǎn)亮相應(yīng)的交通燈 MOV P0,#0B3H MO

40、V 32H,#0B3H ;存儲交通燈狀態(tài) MOV P2,#0ABH MOV 33H, #0ABH ;存儲交通燈狀態(tài)DS_NE:DEC 31H ;東西方向通行時(shí)間減一 MOV A,31H ;把通行剩余時(shí)間送入顯示存儲單元4.3.7 東西方向通行時(shí)間剩余4秒鐘黃燈閃爍DS_20:CJNE A,#4,DS_21 EWF,DS_21 MOV P0,#0AEH MOV 32H, #0AEHDS_21:CJNE A,#3,DS_22 EWF,DS_22 MOV P0,#0BEH MOV 32H, #0BEHDS_22:CJNE A,#2,DS_23 EWF,DS_23 MOV P0,#0AEH MOV 3

41、2H, #0AEHDS_23:CJNE A,#1,DS_24 EWF,DS_24 MOV P0,#0BEH MOV 32H, #0BEHDS_24:JNZ DS_R ;東西方向時(shí)間沒有結(jié)束,返回 CPL EWF ;對通行狀態(tài)取反 JNB EWF,DS_2 ;東西方向通行時(shí)間到來,跳轉(zhuǎn) MOV 31H,#30 ;東西方向通行結(jié)束,重新顯示時(shí)間 MOV P0,#76H ;點(diǎn)亮相應(yīng)的交通燈 MOV 32H, #76H MOV P2,#0B5H MOV 33H, #0B5H AJMP DS_R DS_1: MOV 30H,#30 ;南北通行時(shí)間結(jié)束,重新對顯示存儲單元賦值 MOV P0,#76H ;執(zhí)

42、行轉(zhuǎn)彎狀態(tài)1 MOV 32H, #76H MOV P2,#0CDH MOV 33H, #0CDH AJMP DS_NE DS_2: MOV 31H,41H ;東西方向開始通行,賦值予顯示存儲單元 MOV P0,#9EH ;點(diǎn)亮相應(yīng)的交通燈 MOV 32H, #9EH MOV P2,#0ABH MOV 33H, #0ABHDS_R: SETB TR0 POP PSW ;恢復(fù)現(xiàn)場 POP ACC RETI4.3.8 緊急中斷處理程序URZD: PUSH ACC ;保護(hù)現(xiàn)場 PUSH PSW CLR IE0 ;清除中斷標(biāo)志位 CLR TR0 ;關(guān)定時(shí)器 CPL URF ;緊急事件標(biāo)志位 URF,UR_CON ;緊急結(jié)束;跳轉(zhuǎn) MOV P0,#0B6H ;各路口燈全顯示紅燈亮 MOV P2,#0ABH AJMP UR_RUR_CON:SETB TR0 ;恢復(fù)正常交通 MOV A,32H MOV P0,A MOV A,33H MOV P2,AUR_R: POP PSW ;恢復(fù)現(xiàn)場 POP ACC

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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

提交評論