版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 緒論</b></p><p><b> 1.1交通燈的背景</b></p><p> 1.1.1 交通燈的歷史</p><p> 19世紀(jì)初,在英國中部的約克城,紅、綠裝分別代表女性的不同身份。其中,著紅裝的女人表示我已結(jié)婚,而著綠裝的女人則是未婚者。后來,英國倫敦議會大廈前經(jīng)常發(fā)生馬車
2、軋人的事故,于是人們受到紅綠裝啟發(fā),1868年12月10日,信號燈家族的第一個(gè)成員就在倫敦議會大廈的廣場上誕生了,由當(dāng)時(shí)英國機(jī)械師德·哈特設(shè)計(jì)、制造的燈柱高7米,身上掛著一盞紅、綠兩色的提燈--煤氣交通信號燈,這是城市街道的第一盞信號燈。在燈的腳下,一名手持長桿的警察隨心所欲地牽動(dòng)皮帶轉(zhuǎn)換提燈的顏色。后來在信號燈的中心裝上煤氣燈罩 ,它的前面有兩塊紅、綠玻璃交替遮擋。不幸的是只面世23天的煤氣燈突然爆炸自滅,使一位正在值勤的警
3、察也因此斷送了性命。 </p><p> 1.1.2交通控制存在的問題</p><p> 我國城市交通運(yùn)輸?shù)默F(xiàn)狀和存在的問題,借鑒國外城市交通管理的先進(jìn)經(jīng)驗(yàn),強(qiáng)調(diào)建立城市交通管理體制的重要性,提出加強(qiáng)城市交通研究的交通規(guī)劃,建立穩(wěn)定的交通基礎(chǔ)設(shè)施建設(shè)的資金出道,實(shí)行公交優(yōu)先政策,建立先進(jìn)的交通信息系統(tǒng)等對策。</p><p> 隨著城市機(jī)動(dòng)車增長速度的加快。1
4、994年臥軌城市機(jī)動(dòng)車保有量已接近500完輛。20世紀(jì)90年代以來,經(jīng)濟(jì)的發(fā)展加快,從1985年到1995年,機(jī)動(dòng)車增長率達(dá)13%左右,近幾年更是增多。</p><p> 然而,在此同時(shí),城市道路建設(shè)規(guī)模也在加大,我國城市普遍存在道路密度,道路面積率偏低的問題,這是我國城市喲其是大城市有機(jī)的一個(gè)重要原因。我國城市道路的密度只有6.8km每平方千米,而在20世紀(jì)80年代,世界發(fā)達(dá)國家就已到達(dá)20km每平方千米。2
5、0世紀(jì)90年代,我國部分城市道路面積率,北京為5.9%,上海為6.4%,而國外東京為13.8%,巴黎為25%,普遍高于我國。近幾年,國家雖不斷加大城市道路建設(shè)的力度,但仍趕不上車輛的增長速度,且與世界其他國家相比,差距仍很大。</p><p> 1.1.3交通燈的功能與作用</p><p> 信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。
6、1968年,聯(lián)合國《道路交通和道路標(biāo)志信號協(xié)定》對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時(shí)可以進(jìn)入交叉路口。</p><p>
7、 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。</p><p> 1.1.4 用單片機(jī)控制交通燈的優(yōu)點(diǎn)</p><p> 優(yōu)點(diǎn): 單片機(jī)價(jià)格適當(dāng),它體積小,運(yùn)算速度快,定時(shí)器通過中斷方式給CPU發(fā)送信號,使CPU可以及時(shí)響應(yīng),減少了系統(tǒng)開銷降低了系
8、統(tǒng)功耗。單片機(jī)通過程序方式控制各種輸入輸出信號,可以方便的設(shè)計(jì)運(yùn)行規(guī)則,而且可以在系統(tǒng)運(yùn)行過程中設(shè)定交通燈亮滅的時(shí)間和選擇規(guī)則,從而實(shí)現(xiàn)多種復(fù)雜功能。</p><p> 2.缺點(diǎn):可靠性差、抗干擾性能差、通用性差、擴(kuò)展能力比較弱、處理能力會弱于PLC(若做大系統(tǒng)復(fù)雜的交通燈控制,估計(jì)有些困難)、通訊不如PLC方便,編程語言復(fù)雜些. </p><p> 綜上述:比如要把整個(gè)城市的交通燈系
9、統(tǒng)接入交通控制指揮中心,單片機(jī)做底層單個(gè)交通燈控制沒有什么問題, 考慮到城市的環(huán)保與節(jié)能等原因,我們應(yīng)該采用單片機(jī)控制交通燈,單片機(jī)不僅僅是成本低廉,并且結(jié)構(gòu)簡單,比較易于控制。如果出現(xiàn)問題也能很快找出問題并且處理。</p><p> 1.1.5 單片機(jī)的概述</p><p> 單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡稱單片機(jī),特別適用于控制
10、領(lǐng)域,故又稱為微控制器。</p><p> 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。</p><p> 單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引角的多功能化,以及低電壓底
11、功耗。</p><p> 第二章 單片機(jī)控制交通燈的總體設(shè)計(jì)</p><p> 2.1單片機(jī)交通控制系統(tǒng)通行方案設(shè)計(jì)</p><p> 2.1.1單片機(jī)控制交通系統(tǒng)通行方案設(shè)計(jì)</p><p> 設(shè)在十字路口,分為東西向和南北向,在任一時(shí)刻只有一個(gè)方向通行,另一方向禁行,持續(xù)一定時(shí)間,經(jīng)過短暫的過渡時(shí)間,將通行禁行方向?qū)Q。其具體狀態(tài)
12、如下圖所示。說明:黑色表示亮,白色表示滅。交通狀態(tài)從狀態(tài)1開始變換,直至狀態(tài)6然后循環(huán)至狀態(tài)1,周而復(fù)始,即如圖2.1所示:</p><p><b> 圖2.1 交通狀態(tài)</b></p><p> 通過具體的路口交通燈狀態(tài)的演示分析我們可以把這四個(gè)狀態(tài)歸納如下:</p><p> ◆東西方向紅燈滅,同時(shí)綠燈亮,南北方向黃燈滅,同時(shí)紅燈亮,
13、倒計(jì)時(shí)20秒。此狀態(tài)下,東西向禁止通行,南北向允許通行。</p><p> ◆東西方向綠燈滅,同時(shí)黃燈亮,南北方向紅燈亮,倒計(jì)時(shí)2秒。此狀態(tài)下,除了已經(jīng)正在通行中的其他所以車輛都需等待狀態(tài)轉(zhuǎn)換。</p><p> ◆南北方向紅燈滅,同時(shí)綠燈亮,東西方向黃燈滅,同時(shí)紅燈亮,倒計(jì)時(shí)20秒。此狀態(tài)下,東西向允許通行,南北向禁止通行。</p><p> ◆南北方向綠燈
14、滅,同時(shí)黃燈亮,東西方向紅燈亮,倒計(jì)時(shí)2秒。此狀態(tài)下,除了已經(jīng)正在通行中的其他所以車輛都需等待狀態(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)將
15、變換。狀態(tài)及紅綠燈狀態(tài)如表2.1所示。說明:0表示滅,1表示亮。</p><p> 2.2 交通燈控制工作原理 </p><p> 總開關(guān)閉合,交通燈開始工作。南北黃燈亮,東西紅燈亮,延遲20秒;然后,南北綠燈亮,東西紅燈亮,延遲4分鐘;南北綠燈閃,亮十秒,滅十秒,循環(huán)3次,再南北綠燈滅,紅燈亮; 南北通行結(jié)束,東西開始運(yùn)行。東西黃燈亮,南北紅燈亮,延遲20秒;
16、160;東西綠燈亮,南北黃燈亮,延遲4分鐘; 東西綠燈閃,亮十秒,滅十秒,循環(huán)3次,東西綠燈滅,紅燈亮; 按上述狀態(tài)從開始依次循環(huán)。 </p><p> 2.2.1 輸入輸出控制信號的配置 </p><p> 1﹑輸入:總開關(guān)S0 P1.0 . 當(dāng)總開關(guān)S0閉合,P1.0=1;反之,開關(guān)S0斷開
17、,P1.0=0 </p><p> 2﹑ 輸出;南北黃燈P1.1,當(dāng)P1.1=1時(shí)南北黃燈亮,P1.1=0時(shí)南北黃燈滅。 </p><p> 南北紅燈P1.2,當(dāng)P1.2=1時(shí)南北紅燈亮,P1.2=0時(shí)南北紅燈滅。 </p><p> 南北綠燈P1.3,當(dāng)P1.3=1時(shí)南北綠燈亮,P1.3=0時(shí)南北綠燈滅。&
18、#160;</p><p> 東西黃燈P1.4,當(dāng)P1.4=1時(shí)東西黃燈亮,P1.4=0時(shí)東西黃燈滅。 </p><p> 東西紅燈P1.5,當(dāng)P1.5=1時(shí)東西紅燈亮,P1.4=0</p><p><b> 時(shí)東西紅燈滅。 </b></p><p> 東西綠燈P1.6,當(dāng)P1.6=1時(shí)東西綠
19、燈亮,P1.6=0時(shí)東西綠燈滅。</p><p> (南北通行,東西禁行)</p><p> ?。媳苯?,東西通行)</p><p> 2.3單片機(jī)交通控制系統(tǒng)的基本構(gòu)成及原理</p><p> 單片機(jī)設(shè)計(jì)交通燈控制系統(tǒng),可用單片機(jī)直接控制信號燈的狀態(tài)變化,基本上可以指揮交通的具體通行,當(dāng)然,接入LED數(shù)碼管就可以顯示倒計(jì)時(shí)以提醒行使
20、者,更具人性化。本系統(tǒng)在此基礎(chǔ)上,加入了違規(guī)檢測電路和車流量檢測電路為單片機(jī)采集數(shù)據(jù),單片機(jī)對此進(jìn)行具體處理,及時(shí)調(diào)整控制指揮,為了超越視覺指揮的局限性,同時(shí)接上蜂鳴器,在聽覺上加強(qiáng)了指揮提醒作用。</p><p> 圖2-2 系統(tǒng)的總體框圖 </p><p> 據(jù)此,本設(shè)計(jì)系統(tǒng)以單片機(jī)為控制核心,連接成最小系統(tǒng),由倒計(jì)時(shí)模塊,違規(guī)檢測模塊和按鍵設(shè)置模塊等產(chǎn)生輸入,信號燈狀態(tài)模塊,LE
21、D倒計(jì)時(shí)模塊和蜂鳴器狀態(tài)模塊接受輸出。系統(tǒng)的總體框圖如上所示。</p><p> 鍵盤設(shè)置模塊對系統(tǒng)輸入模式選擇及具體通行時(shí)間設(shè)置的信號,系統(tǒng)進(jìn)入正常工作狀態(tài),執(zhí)行交通燈狀態(tài)顯示控制,同時(shí)將時(shí)間數(shù)據(jù)倒計(jì)時(shí)輸入到LED數(shù)碼管上實(shí)時(shí)顯示。在此過程中還要實(shí)時(shí)捕捉違規(guī)檢測和緊急按鍵信號,以達(dá)到對異常狀態(tài)進(jìn)行實(shí)時(shí)控制的目的。急停按鍵和違規(guī)檢測隨時(shí)調(diào)用中斷。</p><p> 第三章 系統(tǒng)硬件電路
22、的設(shè)計(jì)</p><p> 3.1系統(tǒng)硬件總電路構(gòu)成及原理</p><p> 實(shí)現(xiàn)本設(shè)計(jì)要求的具體功能,可以選用AT89C52單片機(jī)及外圍器件構(gòu)成最小控制系統(tǒng),12個(gè)發(fā)光二極管分成4組紅綠黃三色燈構(gòu)成信號燈指示模塊,8個(gè)LED東西南北各兩個(gè)構(gòu)成倒計(jì)時(shí)顯示模塊,光敏傳感器捕獲違規(guī)信號,若干按鍵組成時(shí)間設(shè)置和模式選擇按鈕和緊急按鈕等,以及用1個(gè)蜂鳴器進(jìn)行報(bào)警。</p><
23、p> 3.1.1系統(tǒng)硬件電路構(gòu)成</p><p> 圖3.1 總體設(shè)計(jì)電路圖</p><p> 本系統(tǒng)以單片機(jī)為核心,組成一個(gè)集車流量采集、處理、自動(dòng)控制為一身的閉環(huán)控制系統(tǒng)。系統(tǒng)硬件電路由單片機(jī)、違規(guī)檢測電路,狀態(tài)燈,LED顯示,按鍵,蜂鳴器組成。其具體的硬件電路總圖如上圖所示。</p><p> 3.1.2系統(tǒng)工作原理</p><
24、;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)。其實(shí)這個(gè)過程就是將存儲時(shí)間值的寄存器進(jìn)行設(shè)置,以及標(biāo)志是否要進(jìn)行車流量檢測及調(diào)整。</p><p> 接下來,系統(tǒng)必須先顯示狀態(tài)燈及LED數(shù)碼管,將狀態(tài)碼值
25、送顯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)判斷及銜接,并裝入次狀態(tài)的相應(yīng)狀態(tài)碼值以及時(shí)間值,</p><p> 3.1.3 AT89S51芯片內(nèi)部結(jié)構(gòu)簡介 </p><p> AT89S
26、51是美國ATMEL公司生產(chǎn)的低功耗,高性能CMOS8位單片機(jī),片內(nèi)含4k bytes的可系統(tǒng)編程的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)生產(chǎn),兼容標(biāo)準(zhǔn)8051指令系統(tǒng)及引腳。它集Flash程序存儲器 既可在線編程(ISP)也可用傳統(tǒng)方法進(jìn)行編程及通用8位微處理器于單片芯片中,ATMEL公司的功能強(qiáng)大,低價(jià)位AT89S51單片機(jī)可為您提供許多高性價(jià)比的應(yīng)用場合,可靈活應(yīng)用于各種控制領(lǐng)域。</p&
27、gt;<p><b> ·中央處理器:</b></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)算和控制輸入輸出功能等操作。</p><p> ·數(shù)據(jù)存儲器(內(nèi)部RAM):</p><p&
28、gt; 數(shù)據(jù)存儲器用于存放變化的數(shù)據(jù)。AT89S51中數(shù)據(jù)存儲器的地址空間為256個(gè)RAM單元,但其中能作為數(shù)據(jù)存儲器供用戶使用的僅有前面128個(gè),后128個(gè)被專用寄存器占用。</p><p> ·程序存儲器(內(nèi)部ROM):</p><p> 程序存儲器用于存放程序和固定不變的常數(shù)等。通常采用只讀存儲器,且其又多種類型,在89系列單片機(jī)中全部采用閃存。AT89S51內(nèi)部配置
29、了4KB閃存。</p><p> ·定時(shí)/計(jì)數(shù)器(ROM):</p><p> 定時(shí)/計(jì)數(shù)器用于實(shí)現(xiàn)定時(shí)和計(jì)數(shù)功能。AT89S51共有2個(gè)16位定時(shí)/計(jì)數(shù)器。</p><p> ·并行輸入輸出(I/O)口:</p><p> 8051共有4組8位I/O口(P0、 P1、P2或P3),用于對外部數(shù)據(jù)的傳輸。每個(gè)口都由
30、1個(gè)鎖存器和一個(gè)驅(qū)動(dòng)器組成。它們主要用于實(shí)現(xiàn)與外部設(shè)備中數(shù)據(jù)的并行輸入與輸出,有些I/O口還有其他功能。</p><p><b> ·全雙工串行口:</b></p><p> A89S51內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。</p><p><b
31、> ·時(shí)鐘電路:</b></p><p> 時(shí)鐘電路的作用是產(chǎn)生單片機(jī)工作所需要的時(shí)鐘脈沖序列。</p><p><b> ·中斷系統(tǒng):</b></p><p> AT89C51共有5個(gè)中斷源,其中有2個(gè)外部中斷源和3個(gè)內(nèi)部中斷源。中斷系統(tǒng)的作用主要是對外或內(nèi)部的中斷請求進(jìn)行管理與處理。</p
32、><p> 圖3.2 AT89S51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖 </p><p> 3.1.4 主要引腳功能</p><p> AT89S51 引腳圖如下圖 所示:</p><p><b> VCC:電源電壓</b></p><p><b> ·GND:地</b&g
33、t;</p><p> ·P0口:P0口是一組8位漏極開路型雙向I/0口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時(shí),每位能驅(qū)動(dòng)8個(gè)TTL邏輯門電路,對端口寫“l(fā)”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時(shí),這組口線分時(shí)轉(zhuǎn)換地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。</p><p> ·P1口:Pl 是一個(gè)帶內(nèi)部上拉電阻的8位雙向I/O口
34、,Pl的輸出緩沖級可驅(qū)動(dòng)(吸收或輸出電流)4個(gè)TTL邏輯門電路。對端口寫“l(fā)”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時(shí)可作輸入口。作輸入口使用時(shí),因?yàn)閮?nèi)部存在上拉電阻,某個(gè)引腳被外部信號拉低時(shí)會輸出一個(gè)電流(IIL)。Flash編程和程序校驗(yàn)期間,Pl接收低8位地址。</p><p> 3.2交通燈軟件的設(shè)計(jì)</p><p> 3.2.1程序主體設(shè)計(jì)流程</p><
35、;p> 圖4.1 系統(tǒng)總流程圖</p><p> 全部控制程序?qū)嶋H上分為若干模塊:鍵盤設(shè)置處理程序,狀態(tài)燈控制程序,LED顯示程序,消抖動(dòng)延時(shí)程序,次狀態(tài)判斷及處理程序,緊停或違規(guī)判斷程序,中斷服務(wù)子程序,紅綠燈時(shí)間調(diào)整程序等。</p><p> 3.2.2 相應(yīng)程序的代碼 </p><p> 定時(shí)器的原理及設(shè)置 </p><p&g
36、t; 定時(shí)器工作的基本原理其實(shí)就是給初值,讓它不斷加1直至減完為模值,這個(gè)初值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值,即所要求的計(jì)數(shù)值設(shè)定為C,把計(jì)數(shù)初值設(shè)定為TC 可得到如下計(jì)算通式:</p><p><b> TC=M-C</b></p><p> 式中,M為計(jì)數(shù)器模值。計(jì)數(shù)
37、值并不是目的,目的是時(shí)間值,設(shè)計(jì)1次的時(shí)間,即定時(shí)器計(jì)數(shù)脈沖的周期為T0,它是單片機(jī)系統(tǒng)主頻周期的12倍,設(shè)要求的時(shí)間值為T,則有C=T/T0。計(jì)算通式變?yōu)椋?lt;/p><p> T=(M-TC)T0</p><p> 模值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為8192;在方式1時(shí)M的值為65536;在方式2和3為256。就此可以算出各種方式的最大延時(shí)。如單片機(jī)的主脈沖頻率為12MHZ,經(jīng)
38、過12分頻后,若采用方式0最大延時(shí)只有8.129毫秒,采用方式1最大延時(shí)也只有65.536毫秒。這就是為什么掃描周期為50ms的原因,</p><p> 若使用軟件則會耽擱程序流程,顯然不可行。相反,時(shí)間計(jì)時(shí)方面卻不可能只用計(jì)數(shù)器,因?yàn)轱@然1秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,所以我們還必須采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題。</p><p> 定時(shí)器需定時(shí)50毫秒,故T1工作
39、于方式1。 </p><p> 初值計(jì)算: TC=M-T/T計(jì)數(shù)?。?16-50ms/1us=15536=3CBOH</p><p> START: MOV TMOD, #10H ;令TO為定時(shí)器方式1</p><p> MOV TH0, #3CH ;裝入定時(shí)器初值</p><p> MOV TL0,
40、 #0BOH </p><p> SETB EA ; 打開總中斷</p><p> SETB ET1 ;開T1中斷</p><p> SETB ER ;啟動(dòng)T1計(jì)數(shù)器</p><p> CLR FLAG1 </p>
41、<p> CLR FLAG2 </p><p> CLR FLAG3 </p><p> MOV R3, #20H ;軟件計(jì)數(shù)器賦初值</p><p> ?。ǎ玻┫鄳?yīng)中斷服務(wù)子程序</p><p> ORG 001BH</p><p><b&
42、gt; LJMP DSD</b></p><p> ORG 0030H</p><p> DSD: INC R3</p><p> MOV TH0, #3CH ;重裝入定時(shí)器初值</p><p> MOV TL0, #BOH </p><p> CJNE
43、 R3,#20,F(xiàn)H</p><p><b> DEC R0 </b></p><p><b> DEC R1</b></p><p> MOV R3,#00H</p><p> FH: RETI</p><p><b> 程序的軟件延時(shí):</
44、b></p><p> AT89S51的工作頻率為0—33MHZ,我們選用的AT89S51單片機(jī)的工作頻率為12MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/12M)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過指令的執(zhí)行條數(shù)來確定1秒的時(shí)間。</p><p> 具體的延時(shí)程序分析:</p><p>
45、; DELAY: MOV R4,#08H 延時(shí)1秒主程序</p><p> DE2: LCALL DELAY1 </p><p> DJNZ R4, DE2</p><p><b> RET</b></p><p> DELAY1:MOV R4,#00H ;延時(shí)125us 子程序</p>
46、<p> D1: MOV R5,#00H</p><p> D2: DJNE R5,DL2</p><p> DJNE R4,D1</p><p><b> RET </b></p><p> DELAY1為一個(gè)雙重循壞 循環(huán)次數(shù)為256*256=65536 所以延時(shí)時(shí)間=65536*2
47、=131072us 約為125us </p><p> DELAY R4設(shè)置的初值為8 主延時(shí)程序循環(huán)8次,所以125us*8= 1秒</p><p> 3.3 交通控制的程序</p><p><b> (1)主程序</b></p><p> START: MOV SP,#80H</p>&l
48、t;p> MOV R0,#00H</p><p> MOV R7,#8FH</p><p> CLEARDISP: MOV @R0,#00H</p><p><b> INC R0</b></p><p> DJNZ R7,CLEARDISP</p><p> MOV TI
49、MED0,#78H</p><p> MOV TIMED1,#6EH</p><p> MOV TIMED2,#46H</p><p> MOV TIMED3,#3CH</p><p> MOV TIMED4,#0AH</p><p> CLR SNEWFLAG</p><p> M
50、OV TMOD ,#11H</p><p> MOV TL0,#0B0H</p><p> MOV TH0,#3CH</p><p> MOV TL1,#0B0H</p><p> MOV TH1,#3CH</p><p> JB SCAN.7,SSST</p><p><b&g
51、t; 第四章 實(shí)驗(yàn)平臺</b></p><p><b> 4.1實(shí)驗(yàn)平臺</b></p><p> 我們采用的是Keil Software生產(chǎn)的Cx51編譯器。運(yùn)行在Windows XP操作平臺下。 開啟計(jì)算機(jī)進(jìn)入Keil C51編譯器介面。 </p><p> Keil C51編譯器介面</p>&l
52、t;p><b> 4.2 實(shí)驗(yàn)步驟</b></p><p> 4.2.1編寫程序代碼</p><p> 程序代碼分為3個(gè)模塊:中斷模塊、延時(shí)模塊,循環(huán)模塊</p><p><b> 中斷程序</b></p><p> ORG 001BH</p><p>&l
53、t;b> LJMP DSD</b></p><p> ORG 0030H</p><p> DSD: INC R3</p><p> MOV TH0, #3CH ;重裝入定時(shí)器初值</p><p> MOV TL0, #BOH </p><p>
54、CJNE R3,#20,F(xiàn)H</p><p><b> DEC R0 </b></p><p><b> DEC R1</b></p><p> MOV R3,#00H</p><p> FH: RETI</p><p><b> 延時(shí)程序</
55、b></p><p> DELAY: MOV R4,#08H 延時(shí)1秒主程序</p><p> DE2: LCALL DELAY1 </p><p> DJNZ R4, DE2</p><p><b> RET</b></p><p> DELAY1:MOV R4,#00H
56、 ;延時(shí)125us 子程序</p><p> D1: MOV R5,#00H</p><p> D2: DJNE R5,DL2</p><p> DJNE R4,D1</p><p><b> RET </b></p><p><b> 循環(huán)程序</b>
57、;</p><p> DIAOY:;循環(huán)控制子程序</p><p> CJNE R2, #01H, AA;判斷不相等剛跳轉(zhuǎn)</p><p> JB FLAG1, AA;FLAG1為1則跳轉(zhuǎn)</p><p> LJMP SEC ;跳轉(zhuǎn)到SEC</p><p>
58、AA:CJNE R2, #02H, AAA</p><p> JB FLAG2, AAA</p><p><b> SETB F0</b></p><p><b> LJMP THR</b></p><p> AAA:CJNE R2, #03H, BB</p><
59、p> JB FLAG3, BB</p><p><b> LJMP FOU</b></p><p> BB:CJNE R2, #04H, BBB;判斷不相等則跳轉(zhuǎn)</p><p> CLR F0;F0位清0</p><p><b> CLR FLAG1</b><
60、/p><p><b> CLR FLAG2</b></p><p><b> CLR FLAG3</b></p><p><b> LJMP FIR</b></p><p> BBB:CJNE R0, #00H, SGL</p><p> I
61、NC R2;R2加1</p><p> LJMP DIAOY</p><p> 4.2.2 調(diào)試程序</p><p> ?、?打開Keil軟件,新建工程;</p><p><b> ⑵ 選擇芯片;</b></p><p> ⑶ 新建文檔,把編寫好代碼寫入文檔并保存了ASM文件;
62、</p><p> ?、?把保存的文檔加載到Source Group;</p><p><b> ?、删幾g程序;</b></p><p> ?、试O(shè)置轉(zhuǎn)換成16進(jìn)制;</p><p><b> ⑺運(yùn)行程序的結(jié)果;</b></p><p> 2. 把編譯好的16進(jìn)制文件(jt
63、d.hex) 輸入單片機(jī)AT89S51仿真器和對其進(jìn)行初始化。</p><p> 3.給實(shí)驗(yàn)板進(jìn)行通電,觀察運(yùn)行結(jié)果,不一致則跳到第一步進(jìn)行反復(fù)調(diào)試,直到與預(yù)定目的一致。</p><p> 以下是在程序調(diào)試過程中出現(xiàn)在情況:通電以后,把程序裝好,數(shù)碼管是的數(shù)字不變,按復(fù)位鍵后重新開始還是如此。經(jīng)過和同組人的共同分析后,發(fā)現(xiàn)是中斷系統(tǒng)在計(jì)時(shí)到了1秒以后,賦的初值R0,R1沒有減1,修改如
64、下:</p><p> DSD:INC R3</p><p> MOV TH1, #3CH</p><p> MOV TL1, #0B0H</p><p> CJNE R3, #20, FH;判斷是否夠 1秒</p><p><b> DEC R0</b></p>
65、<p><b> DEC R1</b></p><p> MOV R3, #00H;R3清0</p><p> FH:RETI;中斷返回</p><p> 通電以后,東西、南北方向的時(shí)間均遞減,20秒以后,東西方向的20秒用完,變成東西左轉(zhuǎn)、南北各20秒,此后,時(shí)間顯示和紅綠燈不再變化,一直保持這一狀態(tài)。&l
66、t;/p><p> 經(jīng)過老師和同組人的共同努力,終于找到原因,問題出在循環(huán)控制過程中,當(dāng)經(jīng)過第一次20秒判斷后,寄存器R2加1,當(dāng)再次運(yùn)行到循環(huán)控制處時(shí),判斷R2與#01H相同,程序跳到SEC處執(zhí)行,此后一直如此。解決方法如下:</p><p><b> 設(shè)置3個(gè)標(biāo)記位:</b></p><p> FLAG1 BIT 00H;標(biāo)記00H
67、位</p><p> FLAG2 BIT 01H</p><p> FLAG3 BIT 02H</p><p> 在循環(huán)控制中加入判斷如:</p><p> DIAOY:CJNE R2, #01H, AA;判斷不相等剛跳轉(zhuǎn)</p><p> JB FLAG1, AA;FLAG1為1則跳轉(zhuǎn)<
68、;/p><p> LJMP SEC ;跳到SEC</p><p> 在跳到SEC后,在運(yùn)行到該程序后加給FLAG1置數(shù),程序如下:</p><p> SEC:CLR P1.0</p><p><b> SETB P1.1</b></p><p><b>
69、 CLR P1.2</b></p><p><b> CLR P1.3</b></p><p> MOV R0, #20</p><p> MOV R1, #20</p><p> SETB FLAG1</p><p><b> LJMP SGL</b>
70、</p><p> 本系統(tǒng)就是利用了AT89S51芯片的I/O引腳。系統(tǒng)采用美國ATMEL公司生產(chǎn)的單片機(jī)AT89S51,以及其它芯片(如:74HC164、74LS04六位反向器、L7805三端穩(wěn)壓電源)來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了紅燈亮40秒,綠燈和左轉(zhuǎn)綠燈各亮20秒。并通過AT89S51來控制74LS04芯片的輸出口設(shè)置紅、綠燈燃亮的功能和控制74HC164來實(shí)現(xiàn)在七段數(shù)碼管上的時(shí)間顯示;為了系統(tǒng)穩(wěn)定可靠系統(tǒng)
71、內(nèi)集成了“看門狗”芯片,避免了系統(tǒng)因?yàn)樗罊C(jī)而停止工作的情況發(fā)生。系統(tǒng)設(shè)計(jì)簡便、實(shí)用性強(qiáng)、操作簡單、程序設(shè)計(jì)簡便。 </p><p> 系統(tǒng)不足:時(shí)間設(shè)定中沒有黃燈的等待閃爍時(shí)間,以及自動(dòng)根據(jù)車流改變紅綠燈時(shí)間,此外,還沒有充分考慮的把現(xiàn)代管理、人工智能運(yùn)用到交通的控制中,來計(jì)算交通控制點(diǎn)之間的距離,來更合理的安排紅、綠燈的持續(xù)時(shí)間,使城市的交通管理更加人性化。使人們遠(yuǎn)離目前的交通擁塞的現(xiàn)象。</p>
72、<p><b> 致謝</b></p><p> 本論文是在*老師指導(dǎo)下完成的。從論文選題到課題難點(diǎn)的解決,都給予了本人悉心地指導(dǎo)。*老師的治學(xué)態(tài)度、專業(yè)造詣和敬業(yè)精神都使我收益非淺,。在此,我首先向*老師致以衷心的感謝!</p><p> 在課題完成過程中,還得到了舍友及同班同學(xué)的幫助,給我提供了很多思路與經(jīng)驗(yàn),對我深入理解課題的有關(guān)知識與方法起
73、到了重要作用。在此,我對同學(xué)們也表示誠摯的謝意。</p><p> 最后,衷心感謝在百忙之中抽出時(shí)間審閱本論文的老師。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]張毅剛.單片機(jī)原理及應(yīng)用[M].北京:高等教育出版社,2004.</p><p> [2]徐愛均,彭秀華cx51 V7.0單片
74、機(jī)高級語言編程與μVision2應(yīng)用實(shí)踐 北京:電子工業(yè)出版社,2004.</p><p> [3]邊春元,李文濤,等.C51單片機(jī)典型模塊設(shè)計(jì)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008.</p><p> [4]南建輝,熊鳴,等.MCS-51單片機(jī)原理及應(yīng)用實(shí)例[M].北京:清華大學(xué)出版社,2004.</p><p> [5]白駒珩,雷曉平.單片
75、計(jì)算機(jī)及其應(yīng)用[M].成都:電子科技大學(xué)出版社,1997.</p><p> [6]求是科技,勒達(dá).單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航[M].北京:人民郵電出版社,2003.</p><p> [7] 韓學(xué)輝,孫慧蓮.交通信號燈PLC控制的實(shí)現(xiàn)[J].長春理工大學(xué)學(xué)報(bào),2003.4.</p><p> [8] 楊漢祥,劉良福,鄔喜輝.利用單片機(jī)改進(jìn)交通燈控制系統(tǒng)[J]
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單片機(jī)控制交通燈畢業(yè)論文
- 畢業(yè)論文---單片機(jī)交通燈控制應(yīng)用
- 單片機(jī)控制交通燈的畢業(yè)論文
- 單片機(jī)控制交通燈的畢業(yè)論文
- 單片機(jī)控制交通燈的畢業(yè)論文
- 交通燈設(shè)計(jì)畢業(yè)論文--單片機(jī)交通燈設(shè)計(jì)
- 單片機(jī)控制交通燈論文
- 畢業(yè)論文---基于單片機(jī)控制的交通燈設(shè)計(jì)
- 基于單片機(jī)控制的交通燈設(shè)計(jì) 畢業(yè)論文
- 單片機(jī)的交通燈設(shè)計(jì)畢業(yè)論文
- 單片機(jī)控制交通燈畢業(yè)設(shè)計(jì)論文
- 單片機(jī)控制交通燈
- 單片機(jī)控制交通燈
- 單片機(jī)控制交通燈
- 單片機(jī)控制交通燈
- 基于單片機(jī)控制交通燈電路設(shè)計(jì)畢業(yè)論文
- 單片機(jī)畢業(yè)設(shè)計(jì)---單片機(jī)控制交通燈
- 基于單片機(jī)的數(shù)字交通燈畢業(yè)論文
- 基于單片機(jī)的交通燈設(shè)計(jì)畢業(yè)論文
- 基于單片機(jī)的交通燈設(shè)計(jì)畢業(yè)論文
評論
0/150
提交評論