畢業(yè)設(shè)計(jì)基于單片機(jī)的智能交通燈控制系統(tǒng)的設(shè)計(jì)_第1頁
畢業(yè)設(shè)計(jì)基于單片機(jī)的智能交通燈控制系統(tǒng)的設(shè)計(jì)_第2頁
畢業(yè)設(shè)計(jì)基于單片機(jī)的智能交通燈控制系統(tǒng)的設(shè)計(jì)_第3頁
畢業(yè)設(shè)計(jì)基于單片機(jī)的智能交通燈控制系統(tǒng)的設(shè)計(jì)_第4頁
畢業(yè)設(shè)計(jì)基于單片機(jī)的智能交通燈控制系統(tǒng)的設(shè)計(jì)_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、東莞職業(yè)技術(shù)學(xué)院畢 業(yè) 論 文 學(xué)生姓名:楊偉寧學(xué) 號(hào):200902010413年級(jí)專業(yè):2009級(jí)電子信息工程技術(shù)指導(dǎo)老師:張依群系 部:電子系廣東·東莞提交日期:2012年3月 目 錄第一章 引言 (1) 1.1 傳統(tǒng)交通燈控制系統(tǒng)的發(fā)展現(xiàn)狀簡介 (2) 1.2 智能交通燈控制系統(tǒng)設(shè)計(jì)的意義(3) 1.3智能交通燈控制系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)的功能 1.4智能交通燈控制系統(tǒng)設(shè)計(jì)原理 1.5本論文主要工作 第7) 2.1 智能交通燈的方案設(shè)計(jì) (13) 2.2 智能交通燈的技術(shù)指標(biāo) (13)第三章 智能交通燈控制系統(tǒng)的硬件設(shè)計(jì) 3.1 AT89S51單片機(jī)的簡介 (15) 3.1.1 主要性能

2、參數(shù)簡介 (15) 3.1.2 主要內(nèi)部結(jié)構(gòu)簡介 3.1.3 主要引腳功能簡介 (15) 3.2 系統(tǒng)硬件總結(jié)構(gòu)圖 3.3 各模塊電路圖 3.3.1信號(hào)燈電路(22) 3.3.2時(shí)間顯示電路(23) 3.3.3緊急轉(zhuǎn)換電路(25)第四章 智能交通燈控制系統(tǒng)的軟件設(shè)計(jì) 4.1 智能交通燈的軟件設(shè)計(jì)流程圖(27) 4.2 控制器的軟件設(shè)計(jì)第五章 智能交通燈的仿真 (30)第六章 系統(tǒng)分析及改進(jìn)措施 第七章 結(jié)束語(32)參考文獻(xiàn)(35) 致謝(38) 第一章 引 言1.1:傳統(tǒng)交通燈的簡介在今天,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。18

3、58年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號(hào)燈,用以指揮馬車通行。這是世界上最早的交通信號(hào)燈。1868年,英國機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會(huì)大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。1914年,電氣啟動(dòng)的紅綠燈出現(xiàn)在美國。這種紅綠燈由紅綠黃三色圓形的投光器組成,安裝在紐約市5號(hào)大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。而中國最早的馬路交通燈卻是誕生 目前,國內(nèi)的交通燈一般設(shè)在十字路門,在醒目位置用紅、綠、黃三種

4、顏色的指示燈。加上一個(gè)倒計(jì)時(shí)的顯示計(jì)時(shí)器來控制行車。對(duì)于一般情況下的安全行車,車輛分流尚能發(fā)揮作用,但根據(jù)實(shí)際行車過程中出現(xiàn)的情況,還存在以下缺點(diǎn):1兩車道的車輛輪流放行時(shí)間相同且固定, 在十字路口,經(jīng)常一個(gè)車道為主干道,車輛較多,放行時(shí)間應(yīng)該長些;另一車道為副干道,車輛較少,放行時(shí)間應(yīng)該短些。2沒有考慮緊急車通過時(shí),兩車道應(yīng)采取的措施,臂如,消防車執(zhí)行緊急任務(wù)通過時(shí),兩車道的車都應(yīng)停止,讓緊急車通過。 針對(duì)道路交通擁擠,交叉路口經(jīng)常出現(xiàn)擁堵的情況。利用單片機(jī)控制技術(shù)提出了軟件和硬件設(shè)計(jì)方案及兩點(diǎn)改進(jìn)措施:1、根據(jù)各道路路口車流量的大小自動(dòng)調(diào)節(jié)通行時(shí)間。2、考慮特殊車輛通行情況,設(shè)計(jì)緊急切換開

5、關(guān) 智能的交通信號(hào)燈指揮著人和各種車輛的安全運(yùn)行,實(shí)現(xiàn)紅、黃、綠燈的自動(dòng)指揮是城鄉(xiāng)交通管理現(xiàn)代化的重要課題.在城鄉(xiāng)街道的十字交叉路口,為了保證交通秩序和行人安全,一般在每條道路上各有一組紅、黃、綠交通信號(hào)燈,其中紅燈亮,表示該條道路禁止通行; 黃燈亮,表示該條道路上未過停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行; 綠燈亮,表示該條道路允許通行.交通燈控制電路自動(dòng)控制十字路口兩組紅、黃、綠交通燈的狀態(tài)轉(zhuǎn)換,指揮各種車輛和行人安全通行,實(shí)現(xiàn)十字路口城鄉(xiāng)交通管理自動(dòng)化。1.4 本論文主要工作 本文為了實(shí)現(xiàn)交通道路的管理,力求交通管理先進(jìn)性、科學(xué)化. 分析應(yīng)用了單片機(jī)實(shí)現(xiàn)智能交通燈管制的控制系統(tǒng),

6、以及該系統(tǒng)軟、硬件設(shè)計(jì)方法,實(shí)驗(yàn)證明該系統(tǒng)實(shí)現(xiàn)簡單、經(jīng)濟(jì),能夠有效地疏導(dǎo)交通,提高交通路口的通行能力. 第2.1 智能交通燈的選擇方案 目前設(shè)計(jì)交通燈的方案有很多,有應(yīng)用CPLD設(shè)計(jì)實(shí)現(xiàn)交通信號(hào)燈控制器方法;有應(yīng)用PLC實(shí)現(xiàn)對(duì)交通燈控制系統(tǒng)的設(shè)計(jì);有應(yīng)用單片機(jī)實(shí)現(xiàn)對(duì)交通信號(hào)燈設(shè)計(jì)的方法。目前,國內(nèi)的交通燈一般設(shè)在十字路門,在醒目位置用紅、綠、黃三種顏色的指示燈。加上一個(gè)倒計(jì)時(shí)的顯示計(jì)時(shí)器來控制行車。對(duì)于一般情況下的安全行車,車輛分流尚能發(fā)揮作用,但根據(jù)實(shí)際行車過程中出現(xiàn)的情況,還存在以下缺點(diǎn):1兩車道的車輛輪流放行時(shí)間相同且固定, 在十字路口,經(jīng)常一個(gè)車道為主干道,車輛較多,放行時(shí)間應(yīng)該長些;

7、另一車道為副干道,車輛較少,放行時(shí)間應(yīng)該短些。2沒有考慮緊急車通過時(shí),兩車道應(yīng)采取的措施,臂如,消防車執(zhí)行緊急任務(wù)通過時(shí),兩車道的車都應(yīng)停止,讓緊急車通過。2.3. 智能交通燈的技術(shù)指標(biāo) 1) 設(shè)計(jì)一個(gè)十字路口的交通燈控制電路,要求南北方向和東西方向兩個(gè)交叉路口的車輛交替運(yùn)行,兩個(gè)方向能根據(jù)車流量大小自動(dòng)調(diào)節(jié)通行時(shí)間,車流量大,通行時(shí)間長,車流量小,通行時(shí)間短 2) 每次綠燈變紅燈時(shí),要求黃燈先亮5S,才能變換運(yùn)行車輛.3) 東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時(shí)間都用數(shù) 碼管顯示器進(jìn)行顯示(采用倒計(jì)時(shí)的方法)。4) 同步設(shè)置人行橫道紅、綠燈指示。5) 考慮到特殊車輛情

8、況,設(shè)置緊急轉(zhuǎn)換開頭。智能交通燈控制系統(tǒng)的硬件設(shè)計(jì)3.1 AT89S51單片機(jī)簡介 AT89S51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲(chǔ)器 既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強(qiáng)大,低價(jià)位AT89S51單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。 3.1.1 AT89S51單片機(jī)的主要性能參數(shù) ·中央處理器:中央處

9、理器(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ù)存儲(chǔ)器(內(nèi)部RAM):數(shù)據(jù)存儲(chǔ)器用于存放變化的數(shù)據(jù)。AT89S51中數(shù)據(jù)存儲(chǔ)器的地址空間為256個(gè)RAM單元,但其中能作為數(shù)據(jù)存儲(chǔ)器供用戶使用的僅有前面128個(gè),后128個(gè)被專用寄存器占用。·程序存儲(chǔ)器(內(nèi)部ROM):程序存儲(chǔ)器用于存放程序和固定不變的常數(shù)等。通常采用只讀存儲(chǔ)器,且其又多種類型,在89系列單片機(jī)中全部采用閃存。AT89S51內(nèi)部配置了4KB閃存。·定時(shí)/計(jì)數(shù)器(ROM):

10、 定時(shí)/計(jì)數(shù)器用于實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。AT89S51共有2個(gè)16位定時(shí)/計(jì)數(shù)器。 ·并行輸入輸出(I/O)口: 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。每個(gè)口都由1個(gè)鎖存器和一個(gè)驅(qū)動(dòng)器組成。它們主要用于實(shí)現(xiàn)與外部設(shè)備中數(shù)據(jù)的并行輸入與輸出,有些I/O口還有其他功能。 ·全雙工串行口:A89S51內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。 ·時(shí)鐘電路:時(shí)鐘電路的作用是產(chǎn)生單片機(jī)工作所需要的時(shí)鐘脈沖序列。 ·中斷系統(tǒng):中斷系統(tǒng)的作用主要是對(duì)外部或

11、內(nèi)部的終端請(qǐng)求進(jìn)行管理與處理。AT89S51共有5個(gè)中斷源,其中又2個(gè)外部中斷源和3個(gè)內(nèi)部中斷源。 圖一 AT89S51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖·VCC:電源電壓·GND:地·P0口:P0口是一組8位漏極開路型雙向I0口,也即地址數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對(duì)端口寫“l(fā)”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲(chǔ)器或程序存儲(chǔ)器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。·P1口:Pl 是一個(gè)帶內(nèi)部上拉電阻的8位雙向IO口,Pl的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對(duì)

12、端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。Flash編程和程序校驗(yàn)期間,Pl接收低8位地址。表1 具有第二功能的P1口引腳端口引腳第二功能:P1.5MOSI(用于ISP編程)P1.6MOSI(用于ISP編程)P1.7MOSI(用于ISP編程)·P2 口:P2 是一個(gè)帶有內(nèi)部上拉電阻的8 位雙向IO 口,P2 的輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL邏輯門電路。對(duì)端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口,作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某

13、個(gè)引腳被外部信號(hào)拉低時(shí)會(huì)輸出一個(gè)電流(IIL)。在訪問外部程序存儲(chǔ)器或16位地址的外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVXDPTR指令)時(shí),P2口送出高8位地址數(shù)據(jù)。在訪問8 位地址的外部數(shù)據(jù)存儲(chǔ)器(如執(zhí)行MOVXRi 指令)時(shí),P2 口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個(gè)訪問期間不改變。Flash編程或校驗(yàn)時(shí),P2亦接收高位地址和其它控制信號(hào)。·P3 口:P3 口是一組帶有內(nèi)部上拉電阻的8 位雙向I0 口。P3 口輸出緩沖級(jí)可驅(qū)動(dòng)(吸收或輸出電流)4 個(gè)TTL邏輯門電路。對(duì)P3口寫入“l(fā)”時(shí),它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時(shí),被外部拉低的

14、P3口將用上拉電阻輸出電流(IIL)。P3口除了作為一般的I0口線外,更重要的用途是它的第二功能,如下表所示:表2 具有第二功能的P1口引腳端口引腳第二功能:P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外中斷0)P3.3/ INT1(外中斷1)P3.4T0(定時(shí)計(jì)數(shù)器0外部輸入)P3.5T1(定時(shí)計(jì)數(shù)器1外部輸入)P3.6/ WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7/ RD外部數(shù)據(jù)存儲(chǔ)器讀選通)P3口還接收一些用于Flash閃速存儲(chǔ)器編程和程序校驗(yàn)的控制信號(hào)。·RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。WDT 溢

15、出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRT0 位(地址8EH)可打開或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開狀態(tài)。·ALE:當(dāng)訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲(chǔ)器,ALE 仍以時(shí)鐘振蕩頻率的16 輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。對(duì)F1ash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH 單元的D0 位置位,可禁止ALE 操作。該位置位后

16、,只有一條M0VX和M0VC指令A(yù)LE才會(huì)被激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE無效。·程序儲(chǔ)存允許()輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S51 由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次有效,即輸出兩個(gè)脈沖。當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,沒有兩次有效的信號(hào)。·VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲(chǔ)器(地址為0000HFFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。F1ash存儲(chǔ)器編程時(shí),該引腳

17、加上+12V的編程電壓Vpp。·XTAL1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。 3.2 控制器的原理框圖 按任務(wù)和要求,可畫出該控制器的原理框圖, 為確保十字路口的交通安全,往往都采用交通燈自動(dòng)控制系統(tǒng)來控制交通信號(hào)。其中紅燈(R)亮,表示禁止通行;黃燈(Y)亮表示暫停;綠燈(G)亮表示允許通行。1) 控制器的系統(tǒng)框圖如圖三所示。 圖三 交通燈控制器系統(tǒng)框圖4.1 電路圖智能交通燈電路圖如圖3所示。圖四 智能交通燈電路圖 大家都明白,綠燈的放行時(shí)間與車輛通過數(shù)量不成正比。比如說20秒內(nèi)每車道可以通過20輛車,40秒內(nèi)每車道卻可以通過45輛車。因?yàn)檫@有一個(gè)起步的問題,還有一個(gè)黃

18、燈等待問題。也就是說,綠燈放行時(shí)間越長,單位時(shí)間通過車輛的數(shù)量就越多。我們來計(jì)算一下,每車道通行20秒內(nèi)可以通過20輛車,一個(gè)紅綠燈循環(huán)是40秒(單交叉路口),加上每次狀態(tài)轉(zhuǎn)換的黃燈5秒(一個(gè)循環(huán)要兩次轉(zhuǎn)換),即一個(gè)紅綠黃燈循環(huán)要50秒,即50秒內(nèi)通行的車輛為40輛。通過一輛車的平均時(shí)間是1.25秒。如果每次車輛通行的時(shí)間改為40秒,40秒內(nèi)每車道可以通過45輛,一個(gè)紅綠燈循環(huán)是80秒(單交叉路口),加上每次狀態(tài)轉(zhuǎn)換的黃燈5秒(一個(gè)循環(huán)要兩次轉(zhuǎn)換),即一個(gè)紅綠黃燈循環(huán)要90秒,即90秒內(nèi)通行的車輛為90輛。通過一輛車的平均時(shí)間只需1秒。顯然在車輛擁擠的情況下綠燈的通行時(shí)間越長,單位時(shí)間內(nèi)通行的

19、車輛越多,可以有效緩解車輛擁堵問題。當(dāng)然綠燈時(shí)間也不可能無限長,要考慮到讓另一路口的等待時(shí)間不能過長。人們總是希望在交通燈前等候的時(shí)間越短越好。所以筆者設(shè)定了綠燈通行時(shí)間的上限為40秒。在非擁擠時(shí)段綠燈的通行時(shí)間的下限為20秒,當(dāng)交叉路口雙方車輛較少時(shí)通行時(shí)間設(shè)為20秒,這樣可以大大縮短車輛在紅燈面前的等待時(shí)間。當(dāng)交叉路口雙方車輛較多時(shí)通行時(shí)間設(shè)為40秒。 3.3 各模塊控制電路交通燈系統(tǒng)由四部分組成:信號(hào)燈電路,時(shí)間顯示電路,緊急轉(zhuǎn)換開關(guān)。3.3.1 信號(hào)燈電路信號(hào)燈用來顯示車輛通行狀況,下面以一個(gè)十字路口為例,說明一個(gè)交通燈的四種狀態(tài)見圖5。每個(gè)路口的信號(hào)的的轉(zhuǎn)換順序?yàn)椋壕G>黃>

20、;紅 綠燈表示允許通行,黃燈表示禁止通行,但已經(jīng)駛過安全線的車輛可以繼續(xù)通行,是綠燈過渡到紅燈提示燈。紅燈表示禁止通行。綠燈的最短時(shí)間為20秒,最長時(shí)間為40秒,紅紅最短時(shí)間為25秒,最長時(shí)間為45秒,黃燈時(shí)間為5秒。紅黃綠綠黃紅紅黃綠綠黃紅綠黃紅紅黃綠紅黃綠紅黃綠紅黃綠綠黃紅綠黃紅紅黃綠綠黃紅綠黃紅紅黃綠紅黃綠圖六 交通信號(hào)燈運(yùn)行狀態(tài) 3.3.2 時(shí)間顯示電路在交通信號(hào)燈的正上方安裝一個(gè)可以顯示綠燈通行時(shí)間,紅燈等待時(shí)間的顯示電路,采用數(shù)碼管顯示電路是一種很好的方法。由于東往西方向和西往東方向顯示的時(shí)間相同,南往北方向和北往南方向顯示的時(shí)間也相同,所以只需要考慮四位數(shù)碼管顯示電路,其中東西方

21、向兩位,南北方向兩位,兩位數(shù)碼管可以時(shí)間的時(shí)間為0-99秒完全可以滿足系統(tǒng)的要求,數(shù)碼管連接方法如圖七所示圖七 數(shù)碼管連接方法下面我們用這種方法顯示交通燈的時(shí)間,南北方向要顯示20秒,東西方向要顯示25秒,那么我們先給P0口送2的共陰極碼即5BH,讓第一位2要顯示的位碼GND段為低電平,其它三位的控制端都接高電平,那么第一位就顯示2,其它三位不亮。讓其顯示1MS后再給P0口送0的共陰極碼即3FH,讓第二位要顯示0的位碼GND段為低電平,其它三位的控制端都接高電平,那么第二位就顯示0,其它三位不亮。依此類推分別送完第一位2,第二位0,第三位2,第四位5,每一位點(diǎn)亮1MS一個(gè)掃描周期為4MS,一秒

22、時(shí)間就要掃描250次其程序如下:MOV R6,#250;顯掃描次數(shù)LOOP:MOV P0,#5BH ;送2的共陰極碼CLR P2.0;第一位顯示2ACALL D1MS ;延時(shí)1MSSETB P2.0 ;滅第一位MOV P0,#3FH ;送0的共陰極碼CLR P2.1;第二位顯示0ACALL D1MS ;延時(shí)1MSSETB P2.1 ;滅第二位MOV P0,#5BH ;送2的共陰極碼CLR P2.2;第三位顯示2ACALL D1MS ;延時(shí)1MSSETB P2.2 ;滅第三位MOV P0,#6DH ;送5的共陰極碼CLR P2.3;第四位顯示5ACALL D1MS ;延時(shí)1MSSETB P2.3

23、 ;滅第四位DJNZ R7,LOOP;不夠一秒,繼續(xù)掃描NEXTNUMBER;到一秒顯示下一個(gè)數(shù)D1MS: ;1MS延時(shí)程序STAT1:MOV R4,#2MOV R3,#250DJNZ R3,$DJNZ R4,STAT1RET3.3.3 緊急轉(zhuǎn)換電路一般情況下交通燈按照車流量大小合理分配通行時(shí)間,按一定規(guī)律變化,但考慮緊急車通行車況,設(shè)計(jì)緊急通行開關(guān)。     ) Mcs51的中斷源 8051有5個(gè)中斷源,它們是兩個(gè)外中斷INT0(P3.2)和INT1(P3.3)、兩個(gè)片內(nèi)定時(shí)/計(jì)數(shù)器溢出中斷TF0和TF1,一個(gè)是片內(nèi)串行口中斷TI或RI,這幾個(gè)中斷源由

24、TCON和SCON兩個(gè)特殊功能寄存器進(jìn)行控制,其中5個(gè)中斷源的程序入口地址如表4所示:表4中斷源程序入口中斷源的服務(wù)程序入口地址中斷源入口地址外中斷00003H定時(shí)/計(jì)數(shù)器0000BH外中斷10013H定時(shí)/計(jì)數(shù)器0001BH串行口中斷0023H  ) 中斷的處理流程CPU響應(yīng)中斷請(qǐng)求后,就立即轉(zhuǎn)入執(zhí)行中斷服務(wù)程序。不同的中斷源、不同的中斷要求可能有不同的中斷處理方法,但它們的處理流程一般都如下所述:()現(xiàn)場保護(hù)和現(xiàn)場恢復(fù):  中斷是在執(zhí)行其它任務(wù)的過程中轉(zhuǎn)去執(zhí)行臨時(shí)的任務(wù),為了在執(zhí)行完中斷服務(wù)程序后,回頭執(zhí)行原先的程序時(shí),知道程序原來在何處打斷的,各有關(guān)寄存器的

25、內(nèi)容如何,就必須在轉(zhuǎn)入執(zhí)行中斷服務(wù)程序前,將這些內(nèi)容和狀態(tài)進(jìn)行備份即保護(hù)現(xiàn)場。我們舉個(gè)例子,在看書時(shí),電話玲響需傳去接電話時(shí),必須在書本上做個(gè)記號(hào),以便在接完電話后回來看書時(shí),知道從哪些內(nèi)容繼續(xù)往下看。計(jì)算機(jī)的中斷處理方法也如此,中斷開始前需將有關(guān)寄存器的內(nèi)容壓入堆棧進(jìn)行保存,以便在恢復(fù)原來程序時(shí)使用。中斷服務(wù)程序完成后,繼續(xù)執(zhí)行原先的程序,就需把保存的現(xiàn)場內(nèi)容從堆棧中彈出,恢復(fù)積存器和存儲(chǔ)單元的原有內(nèi)容,這就是現(xiàn)場恢復(fù)。 如果在執(zhí)行中斷服務(wù)時(shí)不是按上述方法進(jìn)行現(xiàn)場保護(hù)和恢復(fù)現(xiàn)場,就會(huì)是程序運(yùn)行紊亂,程序跑飛,自然使單片機(jī)不能正常工作。()中斷打開和中斷關(guān)閉:在中斷處理進(jìn)行過程中,可

26、能又有新的中斷請(qǐng)求到來,這里規(guī)定,現(xiàn)場保護(hù)和現(xiàn)場恢復(fù)的操作是不允許打擾的,否則保護(hù)和恢復(fù)的過程就可能使數(shù)據(jù)出錯(cuò),為此在進(jìn)行現(xiàn)場保護(hù)和現(xiàn)場恢復(fù)的過程中,必須關(guān)閉總中斷,屏蔽其它所有的中斷,待這個(gè)操作完成后再打開總中斷,以便實(shí)現(xiàn)中斷嵌套。 ()中斷服務(wù)程序:  既然有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處理的具體內(nèi)容,一般以子程序的形式出現(xiàn),所有的中斷都要轉(zhuǎn)去執(zhí)行中斷服務(wù)程序,進(jìn)行中斷服務(wù)。 ()中斷返回:  執(zhí)行完中斷服務(wù)程序后,必然要返回,中斷返回就是被程序運(yùn)行從中斷服務(wù)程序轉(zhuǎn)回到原工作程序上來。在MCS-51單片機(jī)中,中斷返

27、回是通過一條專門的指令實(shí)現(xiàn)的,自然這條指令是中斷服務(wù)程序的最后一條指令。) 交通燈中的中斷處理流程()現(xiàn)場保護(hù)和現(xiàn)場恢復(fù):有特殊車輛要通過時(shí)就要進(jìn)行中斷,在中斷之前,先將交通燈中斷前情況保護(hù)好,當(dāng)中斷執(zhí)行后再恢復(fù)現(xiàn)場,包括信號(hào)燈和時(shí)間顯示電路。()中斷打開和中斷關(guān)閉:為了使特殊車輛通行按一下打開中斷開關(guān)就可以打開中斷,關(guān)閉中斷開關(guān)就關(guān)閉中斷。()中斷服務(wù)程序:有中斷產(chǎn)生,就必然有其具體的需執(zhí)行的任務(wù),中斷服務(wù)程序就是執(zhí)行中斷處理的具體內(nèi)容:即如果南北方向有特殊車輛要求通過,南北方向轉(zhuǎn)換為綠燈,東西方向?yàn)榧t燈;如果東西方向有特殊車輛要求通過,東西方向轉(zhuǎn)換為綠燈,南北方向?yàn)榧t燈。() 中

28、斷返回:執(zhí)行完中斷服務(wù)程序后,必然要返回,即回交通燈信號(hào)回到中斷前狀態(tài),顯示時(shí)間也和中斷前一樣。3.2 智能交通燈系統(tǒng)的組成 第四章 智能交通燈控制系統(tǒng)的軟件設(shè)計(jì)4.1智能交通燈的軟件設(shè)計(jì)流程圖如圖7所示:圖八 交通燈的軟件設(shè)計(jì)流程圖控制器的軟件設(shè)計(jì) 5.1.1 每秒鐘的設(shè)定 延時(shí)方法可以有兩種一中是利用MCS-51內(nèi)部定時(shí)器產(chǎn)生溢出中斷來確定1秒的時(shí)間,另一種是采用軟件延時(shí)的方法。計(jì)數(shù)器硬件延時(shí).a計(jì)數(shù)器初值計(jì)算 定時(shí)器工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個(gè)值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)

29、初值設(shè)定為TC 可得到如下計(jì)算通式: TC=M-C式中,M為計(jì)數(shù)器模值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為213 ;在方式1時(shí)M的值為216;在方式2和3為28.b 計(jì)算公式 T=(MTC)T計(jì)數(shù) 或TCM-CT計(jì)數(shù)T計(jì)數(shù)是單片機(jī)時(shí)鐘周期的12倍;TC為定時(shí)初值如單片機(jī)的主脈沖頻率為12MHZ,經(jīng)過12分頻方式0TMAX213微秒8.912毫秒方式1TMAX216微秒65.536毫秒顯然秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題5.1.2 1秒的方法我們采用在主程序中設(shè)定一個(gè)初值為20的軟件計(jì)數(shù)器和使T0定時(shí)50毫秒這樣每當(dāng)T0到50毫秒時(shí)

30、CPU就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件計(jì)數(shù)器減,然后判斷它是否為零。為零表示1秒已到可以返回到輸出時(shí)間顯示程序。相應(yīng)程序代碼()主程序定時(shí)器需定時(shí)50毫秒,故T0工作于方式1。初值:TCM-T T計(jì)數(shù)50ms/1us=15536=3CBOH ORG 1000H START: MOV TMOD, #01H ; 令T0為定時(shí)器方式 MOV TH0, #3CH ;裝入定時(shí)器初值 MOV TL0, #BOH; MOV IE,#82H ;開0中斷 SEBT TRO;啟動(dòng)0計(jì)數(shù)器 MOV RO,#14H;軟件計(jì)數(shù)器賦初值LOOP:SJMP $;等待中斷()

31、中斷服務(wù)子程序 ORG 00BH AJMPBRT0 ORG 00BHBRT0:DJNZ R0,NEXTAJMP TIME ; 跳轉(zhuǎn)到時(shí)間及信號(hào)燈顯示子程序 DJNZ:MOV R0,14H;恢復(fù)R0值 MOV TH0, #3CH ;重裝入定時(shí)器初值 MOV TL0, #BOH; MOV IE, #82H RET1 END5.1.3 軟件延時(shí) MCS-51的工作頻率為2-12MHZ,我們選用的8031單片機(jī)的工作頻率為6MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒

32、的時(shí)間。 具體的延時(shí)程序分析: DELAY:MOV R4,#08H 延時(shí)1秒子程序 DE2:LCALL DELAY1 DJNZ R4,DE2 RETDELAY1:MOV R6,#0 ;延時(shí)125ms 子程序 MOV R5,#0DE1: DJNZ R5,$ DJNZ R6,DE1 RETMOV RN,#DATA ;字節(jié)數(shù)數(shù)為2 ,機(jī)器周期數(shù)為1所以此指令的執(zhí)行時(shí)間為2ms,而DELAY1 為一個(gè)雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時(shí)時(shí)間=65536*2=131072us 約為125us 。DELAY R4設(shè)置的初值為8 主延時(shí)程序循環(huán)8次,所以125us*8= 1秒由于單片機(jī)的

33、運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。 第四章 智能交通燈方案的仿真PROTEUS嵌入式系統(tǒng)仿真軟件在設(shè)計(jì)時(shí)已經(jīng)注意到和單片機(jī)各種編譯程序的整合了,如它可以和Keil ,Wave6000等編譯模擬軟件結(jié)合使用。由于Wave6000使用方便,具備強(qiáng)大的軟件仿真和硬件仿真功能。把Proteus和Wave6000結(jié)合起來調(diào)試硬件就方便多了,這里筆者就是采用“Proteus+Wave6000”的仿真方法,具體步驟如下:(1)首先運(yùn)行PROTEUS VSM 的ISIS,選擇SourceDefine Code Generation Tool 菜單項(xiàng),將出現(xiàn)如圖8所示定義代碼生成工具對(duì)話框。圖十一 定

34、義代碼生成工具對(duì)話框在Tool下拉列表框中選擇代碼生成工具,在這一示例中,電路中的微處理器為8051系列單片機(jī),因此選擇ASEM51, 單擊Browse按鈕,選取Wave6000的安裝路徑。單擊OK按鈕,結(jié)束代碼生成工具的定義。選擇SourceAdd/Remove Source File 菜單項(xiàng),將出現(xiàn)Add/Remove Source Code Files對(duì)話框,如圖十二所示:圖十二 添加/刪除源文件對(duì)話框在Code Generation Tool 選項(xiàng)區(qū),單擊下三角按鈕,選擇ASEM51工具。(2) 單擊New按鈕,將出現(xiàn)如圖十三所示對(duì)話框。圖十三 創(chuàng)建源代碼對(duì)話框選擇用Wave6000創(chuàng)

35、建好的AA.ASM文件,即完成了文件的創(chuàng)建。就這樣當(dāng)用Wave6000對(duì)AA.ASM 文件進(jìn)行更改時(shí)每一次運(yùn)行PROTEUS VSM 的ISIS對(duì)電路進(jìn)行仿真時(shí)Wave6000都會(huì)對(duì)AA.ASM進(jìn)行編譯,AA.HEX文件也會(huì)隨時(shí)更新。電路圖繪制完成后, 再添加AT89C51 的應(yīng)用程序。將鼠標(biāo)移至AT89C51 上, 單擊鼠標(biāo)右鍵使之處于選中狀態(tài), 在該器件上單擊左鍵, 打開如圖11所示的對(duì)話框。在 Program File 欄添加編譯好的十六進(jìn)制格式的程序文件AA.hex(可以接受3 種格式的文件) ,給AT89C51輸入晶振頻率,此處默認(rèn)為12MHZ, 單擊OK 按鈕完成程序添加工作, 下

36、面就可以進(jìn)行系統(tǒng)仿真了。單擊主界面下方的按鈕開始系統(tǒng)仿真。PROTEUS VSM 所進(jìn)行的是一種交互式仿真, 在仿真進(jìn)行中可以對(duì)各控制按鈕、開關(guān)等進(jìn)行操作, 系統(tǒng)對(duì)輸入的響應(yīng)會(huì)被真實(shí)的反映出來。仿真結(jié)果如圖十五。在這個(gè)例子里, 開始仿真后,開關(guān),按鈕通過鼠標(biāo)單擊來改變狀態(tài),所改變狀態(tài)的狀態(tài)會(huì)在LED和數(shù)碼管顯示出來。由于篇幅所限, 以上僅舉一例簡單介紹了PROTEUS VSM 的使用, 但其強(qiáng)大的系統(tǒng)仿真功能已經(jīng)得到體現(xiàn), 用在單片機(jī)系統(tǒng)設(shè)計(jì)的教學(xué)方面, 能起到良好的教學(xué)效果。圖十四 AT89C51添加程序文件圖十五 交通燈仿真界面 該系統(tǒng)應(yīng)用了單片機(jī)實(shí)現(xiàn)智能交通燈管制的控制系統(tǒng),以及該系統(tǒng)軟

37、、硬件設(shè)計(jì)方法,實(shí)驗(yàn)證明該系統(tǒng)實(shí)現(xiàn)簡單、經(jīng)濟(jì),能夠有效地疏導(dǎo)交通,提高交通路口的通行能力. 智能控制交通系統(tǒng)實(shí)現(xiàn)是目前研究的方向,也已經(jīng)取得不少成果,但傳統(tǒng)的定時(shí)交通燈控制仍然在一些地方廣泛應(yīng)用,那是車流量不大,而且交通道路相對(duì)好的地方,傳統(tǒng)的定時(shí)交通燈控制還是起到了一定的作用。但隨著社會(huì)的高速發(fā)展,城市化日益完善,車的數(shù)量必然增多,給交通的壓力也增大,這時(shí)候,智能交通燈控制將會(huì)起到疏導(dǎo)交通,改善城市交通環(huán)境,推動(dòng)城市化日益完善!基于Proteus智能交通燈控制系統(tǒng)軟件設(shè)計(jì)上有兩個(gè)主要特點(diǎn),一方面是本設(shè)計(jì)采用模糊控制方法實(shí)現(xiàn)交通的控制,由于模糊控制不需要建立被控對(duì)象精確的數(shù)學(xué)模型,特別適用于隨

38、機(jī)的復(fù)雜的城市交通控制,因此以多變少為例子,在通行時(shí)間方面控制設(shè)置為20s25s40s45s20s 為一個(gè)循環(huán),根據(jù)車流量,合理分配了通行時(shí)間。另一方面,設(shè)計(jì)應(yīng)急轉(zhuǎn)換開關(guān),考慮緊急車通過時(shí),譬如,急救車或消防車執(zhí)行緊急任務(wù)通過時(shí),兩車道的車都應(yīng)停止,讓緊急車通過。PIC單片機(jī) 參考文獻(xiàn)1陳大欽. 電子技術(shù)基礎(chǔ)實(shí)驗(yàn) M. 北京:高等教育出版社 2004年2陳梓城. 電子技術(shù)實(shí)訓(xùn) M. 北京: 機(jī)械工業(yè)出版社 2003年3吳黎明. 單片機(jī)原理及應(yīng)用技術(shù) M. 北京: 科學(xué)出版社 2003年4李學(xué)海. 標(biāo)準(zhǔn)80C51單片機(jī)基礎(chǔ)教程 M. 北京航空航天大學(xué)出版社 2006年5劉樂善. 微型計(jì)算機(jī)接口技

39、術(shù)及應(yīng)用 M. 華中科技大學(xué)出版社 2004年 6陳炳權(quán) 曾慶六. EDA技術(shù)實(shí)用教程 M. 湘潭: 湘潭大學(xué)出版社 2010年 7 先鋒工作室. 單片機(jī)程序?qū)嵗齅.北京:清華大學(xué)出版社,2002. 8 李伯成.基于MCS-51單片機(jī)的嵌入式系統(tǒng)的設(shè)計(jì)M.北京:電子工業(yè)出版社,2004. 9 吳洪潭,肖艷萍,趙偉國.單片機(jī)原理及應(yīng)用系統(tǒng)設(shè)計(jì)M.北京:國防工業(yè)出版社,2005 10 Rockw ell A u tomat ioa. A llenB radley M icroLogixTM 1500. 用戶參考手冊(cè)Z . 美國:1999.第七章 致謝本課題的工作是在張依群老師的親切關(guān)懷和精心指導(dǎo)下

40、完成的,在此對(duì)他的關(guān)心、指導(dǎo)和教誨表示衷心的感謝!作者在此期間的工作自始至終都是在張老師全面、具體的指導(dǎo)下進(jìn)行的,張老師在論文選題方面的遠(yuǎn)見卓識(shí)以及在完成課題和論文期間富有啟發(fā)性的建議是本文工作得以順利完成的根本保證。他高尚的品德、嚴(yán)謹(jǐn)?shù)膶W(xué)風(fēng)、一絲不茍的工作態(tài)度、孜孜不倦的工作精神和對(duì)科學(xué)真理的執(zhí)著追求使我終生受益,這將為我今后的學(xué)習(xí)和工作打下堅(jiān)實(shí)的基礎(chǔ)。感謝我的學(xué)友葉家榮等人對(duì)我的關(guān)心和幫助。他們的關(guān)懷是我克服困難,勇往直前的巨大動(dòng)力。最后,感謝評(píng)閱專家在百忙中評(píng)閱本論文,并提出寶貴意見!附智能交通燈控制程序:ORG 0000HA_BIT EQU 20H ;用于存放南北十位數(shù)B_BIT EQ

41、U 21H ;用于存放南北十位數(shù)C_BIT EQU 22H ;用于存放東西十位數(shù)D_BIT EQU 23H ; 用于存放東西位數(shù)TEMP1 EQU 24H ;用于存放第一二南北狀態(tài)要顯示的時(shí)間TEMP2 EQU 25H ;用于存放第一二東西狀態(tài)要顯示的時(shí)間TEMP3 EQU 26H ;用于存放第三第四南北狀態(tài)要顯示的時(shí)間TEMP4 EQU 27H;用于存放第三第四南北狀態(tài)要顯示的時(shí)間LJMP MAINORG 0003H ;外部中斷0入口LJMP INT0 ;跳轉(zhuǎn)到外部0中斷ORG 0013H ;外部中斷1入口LJMP INT1 ;跳轉(zhuǎn)到外部1中斷INT0: MOV A,P1 ;外部0中斷 PU

42、SH ACC MOV A,P2 ;中斷保護(hù) PUSH ACCMOV P1,#0FFH ;清除先前狀態(tài)MOV P2,#0FFHCLR P1.0CLR P1.4 ;南北通行,東西禁止通行CLR P1.6CLR P2.3JNB P3.2 ,$ ;判斷是否還在中斷狀態(tài)POP ACCMOV P2,A ;返回中斷前狀態(tài)POP ACCMOV P1,ACCRETI ;中斷返回INT1:MOV A,P1 ;外部1中斷 PUSH ACC ;中斷保護(hù) MOV A,P2 PUSH ACCMOV P1,#0FFH ;清除先前狀態(tài)MOV P2,#0FFHCLR P1.2CLR P2.1CLR P1.3 ;東西通行,南北禁

43、止通行CLR P1.5JNB P3.3 ,$ ;判斷是否還在中斷狀態(tài)POP ACCMOV P2,A ;返回中斷前狀態(tài)POP ACCMOV P1,ARETI ;中斷返回MAIN:ORG 0100H ;初始情況MOV P1,#0FFHMOV P2,#0FFH ;滅所有燈MOV TMOD,#55H ;計(jì)數(shù)方式方式1MOV IE,#85H ;開中斷MOV TEMP1,#20 ;MOV TEMP2,#25MOV TEMP3,#25MOV TEMP4,#20STAR:MOV P1,#0FFHMOV P2,#0FFH ;滅所有燈MOV A,24H ;將顯示時(shí)間送ACJNE A,#20,T40T ;判斷時(shí)間,

44、選初始值T20T: ;南北通行要顯示的時(shí)間為20的計(jì)數(shù)器初始值CLR TF0 ;清TF0CLR TF1 ;清TF1MOV TH1 ,#0FFH ;送20秒時(shí)的初始值MOV TL1 ,#0FCH ;在些設(shè)計(jì)20秒6輛為多車MOV TH0 ,#0FFHMOV TL0 ,#0FCHLJMP TEMP20 ;跳到20秒T40T: ;南北通行要顯示的時(shí)間為40的計(jì)數(shù)器初始值CLR TF0 ;清TF0CLR TF1 ;清TF1MOV TH1,#0FFH ;送40秒時(shí)的初始值MOV TL1 ,#0F8H ;在些設(shè)計(jì)40秒8輛為多車MOV TH0 ,#0FFHMOV TL0 ,#0F8HLJMP TEMP40

45、 ;跳到40秒TEMP20: ;TEMP1=20情況SETB TR0 ;開始計(jì)數(shù)SETB TR1CLR P1.2CLR P2.1 ;南北通行,東西禁止通行CLR P1.3CLR P1.5MOV TEMP1,#20 ;南北要顯示的時(shí)間,MOV TEMP2,#25 ;東西要顯示的時(shí)間STLOP:ACALL DISPLAY1 ;調(diào)用顯示DEC TEMP1 ;時(shí)間夠一秒顯示時(shí)間減1DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)LJMP STAR2 ;若顯示時(shí)間為 0跳到第二狀態(tài)NEXT: LJMP STLOPSTAR2: ;狀態(tài)1SETB P1.2

46、CLR P1.1 ;南北黃燈,東西禁止通行SETB P1.3CLR P1.4MOV TEMP1,#05 ;南北要顯示的時(shí)間,MOV TEMP2,#05 ;東西要顯示的時(shí)間,STLOP2:ACALL DISPLAY1 ;調(diào)用顯示DEC TEMP1 ;時(shí)間夠一秒顯示時(shí)間減1DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT2 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)JB TF1 ,T40 ;判斷南北是否多車JB TF0 ,T40 ;判斷北南是否多車MOV TEMP1,#20 ;少車下次顯示時(shí)間為20秒LJMP STAR3 ;跳到狀態(tài)3T40:MOV TEMP1,#40 ; 多車下次顯示時(shí)間

47、為40秒LJMP STAR3 ;若顯示時(shí)間為 0跳到第三狀態(tài)NEXT2:LJMP STLOP2TEMP40:;TEM=40 程序SETB TR0 ; 開始計(jì)數(shù)SETB TR1CLR P1.2CLR P2.1 ;南北通行,東西禁止通行CLR P1.3CLR P1.5MOV TEMP1,#40 ;南北要顯示的時(shí)間,MOV TEMP2,#45 ;東西要顯示的時(shí)間STLOP11:ACALL DISPLAY1 ;調(diào)用顯示DEC TEMP1 ;時(shí)間夠一秒顯示時(shí)間減1DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT11 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)LJMP STAR22 ;若顯示時(shí)間為

48、 0跳到第二狀態(tài)NEXT11: LJMP STLOP11STAR22: ;狀態(tài)1SETB P1.2CLR P1.1 ;南北黃燈,東西禁止通行SETB P1.3CLR P1.4MOV TEMP1,#05 ;南北要顯示的時(shí)間,MOV TEMP2,#05 ;東西要顯示的時(shí)間,STLOP22:ACALL DISPLAY1 ;調(diào)用顯示DEC TEMP1 ;時(shí)間夠一秒顯示時(shí)間減1DEC TEMP2MOV A,TEMP1CJNE A,#0,NEXT22 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)JB TF1 ,T401 ; 判斷是否多車JB TF0 ,T401MOV TEMP1,#20 ;少車下次顯示時(shí)間為20秒LJM

49、P STAR3T401:MOV TEMP1,#40 ;多車下次顯示時(shí)間為40秒LJMP STAR3 ;若顯示時(shí)間為 0跳到第三狀態(tài)NEXT22:LJMP STLOP22STAR3:MOV A,26HCJNE A,#25,T40T1 ;判斷時(shí)間,選初始值T20T1: ;南北通行要顯示的時(shí)間為20的計(jì)數(shù)器初始值CLR TF0 ; 清溢出位CLR TF1MOV TH1 ,#0FFH ; 給初值MOV TL1 ,#0FCHMOV TH0 ,#0FFHMOV TL0 ,#0FCHLJMP TEMP320T40T1: ;南北通行要顯示的時(shí)間為40的計(jì)數(shù)器初始值CLR TF0 ;CLR TF1MOV TH1

50、,#0FFH ;給初值MOV TL1 ,#0F8HMOV TH0 ,#0FFHMOV TL0 ,#0F8HLJMP TEMP340TEMP320:;狀態(tài)三SETB TR1 ;南北停止計(jì)數(shù)SETB TR0 ;東西開始計(jì)數(shù)SETB P1.1 ;東西通行,南北禁止通行CLR P1.0SETB P1.1CLR P1.0SETB P1.5CLR P1.6SETB P2.1CLR P2.3MOV TEMP3,#25 ;南北要顯示的時(shí)間,MOV TEMP4,#20 ;東西要顯示的時(shí)間,STLOP33:ACALL DISPLAY ;調(diào)用顯示DEC TEMP3 ;時(shí)間夠一秒顯示時(shí)間減1DEC TEMP4MOV

51、A,TEMP4CJNE A,#0,NEXT33 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)LJMP STAR34 ;若顯示時(shí)間為 0跳到第四狀態(tài)NEXT33:LJMP STLOP33STAR34: ;狀態(tài)四SETB P2.3CLR P2.2SETB P1.6 ;東西黃燈,南北禁止通行CLR P1.5MOV TEMP3,#05 ;南北要顯示的時(shí)間,MOV TEMP4,#05 ;東西要顯示的時(shí)間,STLOP34:ACALL DISPLAY ;調(diào)用顯示DEC TEMP3 ;時(shí)間夠一秒顯示時(shí)間減1DEC TEMP4MOV A,TEMP4CJNE A,#0,NEXT34 ;若顯示時(shí)間不為0保持現(xiàn)在狀態(tài)JB TF1 ,T402JB TF0 ,T402MOV TEMP3,#25LJMP START402:MOV TEMP3,#45LJMP STARNEXT34: LJMP STLOP34TEMP340 :SETB TR1 ;南北停止計(jì)數(shù)SETB TR0 ;東西開始計(jì)數(shù)SETB P1.1

溫馨提示

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

評(píng)論

0/150

提交評(píng)論