畢業(yè)設計(論文)基于單片機的交通信號燈控制電路設計_第1頁
畢業(yè)設計(論文)基于單片機的交通信號燈控制電路設計_第2頁
畢業(yè)設計(論文)基于單片機的交通信號燈控制電路設計_第3頁
畢業(yè)設計(論文)基于單片機的交通信號燈控制電路設計_第4頁
畢業(yè)設計(論文)基于單片機的交通信號燈控制電路設計_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、江西航空職業(yè)技術學院畢業(yè)設計說明書(論文)課題名稱:交通信號燈控制電路設計(單片機)航空電子設備維修 專業(yè) 081331班學生姓名 學號 27指導老師 技術職稱_2011年 03 月 16 日江西航空職業(yè)技術學院畢業(yè)設計(論文)任務書學生姓名: 班級:0813311.畢業(yè)設計(論文)題目:交通信號燈控制電路設計(單片機)2.畢業(yè)設計(論文)使用的原始資料數據及設計技術要求:1、單憑微型計算機原理及接口技術2、單片機原理及應用技術3、數字電子技術采用msc-51系列單片機8051和可編程并行i/o接口芯片8255a為中心器件來設計交通燈控制器,實現了車流控制通行系統(tǒng)3.畢業(yè)設計(論文)工作內容及

2、完成時間:東西方向通行時間為80秒,南北方向通行時間為60秒,黃燈閃爍5秒。硬件采用8051單片機一片,8255并行通用接口芯片一片,74ls07兩片,共陰極的雙位七段數碼管4個, 7805三端穩(wěn)壓電源一個,紅、黃、綠交通燈各3個,軟件采用匯編編程實現。日期:自2010年12月15日至2011年3月16日指導老師評語:_ 指導老師:賀國燦 系主任:姚衛(wèi)華目錄摘要4關鍵詞.41、引言52、單片機概述53、芯片簡介53.1、msc-51芯片簡介53.2、8255芯片簡介93.3、74ls373簡介104 系統(tǒng)硬件設計104.1、交通管理的方案論證104.2、系統(tǒng)硬件設計114.2.1、系統(tǒng)總框圖如

3、下:114.2.2、交通燈硬件線路圖114.2.3、系統(tǒng)工作原理115、控制器的軟件設計125.1、每秒鐘的設定125.2、計數器硬件延時125.2.1、計數器初值計算125.2.2、計算公式125.2.3、秒的方法125.2.4、相應程序代碼135.3、軟件延時135.4、時間及信號燈的顯示145.4.1、8051并行口的擴展145.4.2、顯示原理:145.4.3、8255 pa口輸出信號接信號燈:145.4.4、8255輸出信號與數碼管的連接:145.4.5、8255與8051的連接:155.5、程序設計165.5.1、流程圖如圖所示165.5.2、程序源代17原件清單23總結24參考文

4、獻25摘要近年來隨著科技的飛速發(fā)展,單片機的應用正在不斷深入,同時帶動傳統(tǒng)控制檢測技術日益更新。在實時檢測和自動控制的單片機應用系統(tǒng)中,單片機往往作為一個核心部件來使用,僅單片機方面知識是不夠的,還應根據具體硬件結構軟硬件結合,加以完善。十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現這井然秩序呢?靠的就是交通信號燈的自動指揮系統(tǒng)。交通信號燈控制方式很多。本系統(tǒng)采用msc-51系列單片機8051和可編程并行i/o接口芯片8255a為中心器件來設計交通燈控制器,實現了車流控制通行系統(tǒng)。通過8051芯片的p1口設置紅、綠燈燃亮時間的功能;紅綠燈循環(huán)點亮,倒計時剩5秒時黃燈

5、閃爍警示(交通燈信號通過pa口輸出,顯示時間直接通過8255的pc口輸出至雙位數碼管); 關鍵詞:單片機 8051 8255 交通燈 1、引言當今,紅綠燈安裝在各個道口上,已經成為疏導交通車輛最常見和最有效的手段。但這一技術在19世紀就已出現了。1858年,在英國倫敦主要街頭安裝了以燃煤氣為光源的紅,藍兩色的機械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消

6、。電氣啟動的紅綠燈出現在美國,這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。1918年,又出現了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴音器來啟動紅綠燈,司機遇紅燈時按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當行人踏上對壓力敏感的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。信號燈的出現,使交通得以有效管制,對于疏導交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯合國道

7、路交通和道路標志信號協定對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉彎和右轉彎,除非另一種標志禁止某一種轉向。左右轉彎車輛都必須讓合法地正在路口內行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。2、單片機概述 單片機微型計算機是微型計算機的一個重要分支,也是頗具生命力的機種。單片機微型計算機簡稱單片機,特別適用于控制領域,故又稱為微控制器。 通常,單片機由單塊集成電路芯片構成,內部包含有計算機的基本功能部件:中央處理

8、器、存儲器和i/o接口電路等。因此,單片機只需要和適當的軟件及外部設備相結合,便可成為一個單片機控制系統(tǒng)。 單片機經過1、2、3、3代的發(fā)展,目前單片機正朝著高性能和多品種方向發(fā)展,它們的cpu功能在增強,內部資源在增多,引角的多功能化,以及低電壓底功耗。3、芯片簡介3.1、msc-51芯片簡介mcs-51單片機內部結構8051是mcs-51系列單片機的典型產品,我們以這一代表性的機型進行系統(tǒng)的講解。 8051單片機包含中央處理器、程序存儲器(rom)、數據存儲器(ram)、定時/計數器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數據總線、地址總線和控制總線等三大總線,現在我們分別加以說明:中央

9、處理器:中央處理器(cpu)是整個單片機的核心部件,是8位數據寬度的處理器,能處理8位二進制數據或代碼,cpu負責控制、指揮和調度整個單元系統(tǒng)協調的工作,完成運算和控制輸入輸出功能等操作。數據存儲器(ram)8051內部有128個8位用戶數據存儲單元和128個專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數據,用戶只能訪問,而不能用于存放用戶數據,所以,用戶能使用的ram只有128個,可存放讀寫的數據,運算的中間結果或用戶定義的字型表。圖1程序存儲器(rom):8051共有4096個8位掩膜rom,用于存放用戶程序,原始數據或表格。定時/計數器(rom):8051有兩個16位

10、的可編程定時/計數器,以實現定時或計數產生中斷用于控制程序轉向。并行輸入輸出(i/o)口:8051共有4組8位i/o口(p0、 p1、p2或p3),用于對外部數據的傳輸。全雙工串行口:8051內置一個全雙工串行通信口,用于與其它設備間的串行數據傳送,該串行口既可以用作異步通信收發(fā)器,也可以當同步移位器使用。中斷系統(tǒng):8051具備較完善的中斷功能,有兩個外中斷、兩個定時/計數器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。時鐘電路:8051內置最高頻率達12mhz的時鐘電路,用于產生整個單片機運行的脈沖時序,但8051單片機需外置振蕩電容。單片機的結構有兩種類型,一種是程序

11、存儲器和數據存儲器分開的形式,即哈佛(harvard)結構,另一種是采用通用計算機廣泛使用的程序存儲器與數據存儲器合二為一的結構,即普林斯頓(princeton)結構。intel的mcs-51系列單片機采用的是哈佛結構的形式,而后續(xù)產品16位的mcs-96系列單片機則采用普林斯頓結構。下圖是mcs-51系列單片機的內部結構示意圖2。圖2mcs-51的引腳說明:mcs-51系列單片機中的8031、8051及8751均采用40pin封裝的雙列直插dip結構,右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個i/o口,中斷口線與p3口線復用。現在我們對

12、這些引腳的功能加以說明:mcs-51的引腳說明:mcs-51系列單片機中的8031、8051及8751均采用40pin封裝的雙列直接dip結構,右圖是它們的引腳配置,40個引腳中,正電源和地線兩根,外置石英振蕩器的時鐘線兩根,4組8位共32個i/o口,中斷口線與p3口線復用。現在我們對這些引腳的功能加以說明:如圖3 圖3pin9:reset/vpd復位信號復用腳,當8051通電,時鐘電路開始工作,在reset引腳上出現24個時鐘周期以上的高電平,系統(tǒng)即初始復位。初始化后,程序計數器pc指向0000h,p0-p3輸出口全部為高電平,堆棧指針寫入07h,其它專用寄存器被清“0”。reset由高電平

13、下降為低電平后,系統(tǒng)即從0000h地址開始執(zhí)行程序。然而,初始復位不改變ram(包括工作寄存器r0-r7)的狀態(tài),8051的初始態(tài)。8051的復位方式可以是自動復位,也可以是手動復位,見下圖4。此外,reset/vpd還是一復用腳,vcc掉電其間,此腳可接上備用電源,以保證單片機內部ram的數據不丟失。圖4pin30:ale/當訪問外部程序器時,ale(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內部程序存儲器時,ale端將有一個1/6時鐘頻率的正脈沖信號,這個信號可以用于識別單片機是否工作,也可以當作一個時鐘向外輸出。更有一個特點,當訪問外部程序存儲器,ale會跳過一個脈沖。如果單片機是e

14、prom,在編程其間,將用于輸入編程脈沖。pin29:當訪問外部程序存儲器時,此腳輸出負脈沖選通信號,pc的16位地址數據將出現在p0和p2口上,外部程序存儲器則把指令數據放到p0口上,由cpu讀入并執(zhí)行。pin31:ea/vpp程序存儲器的內外部選通線,8051和8751單片機,內置有4kb的程序存儲器,當ea為高電平并且程序地址小于4kb時,讀取內部程序存儲器指令數據,而超過4kb地址則讀取外部指令數據。如ea為低電平,則不管地址大小,一律讀取外部程序存儲器指令。顯然,對內部無程序存儲器的8031,ea端必須接地。在編程時,ea/vpp腳還需加上21v的編程電壓。3.2、8255芯片簡介8

15、255可編程并行接口芯片簡介: 8255可編程并行接口芯片有三個輸入輸出端口,即a口、b口和c口,對應于引腳pa7pa0、pb7pb0和pc7pc0。其內部還有一個控制寄存器,即控制口。通常a口、b口作為輸入輸出的數據端口。c口作為控制或狀態(tài)信息的端口,它在方式字的控制下,可以分成4位的端口,每個端口包含一個4位鎖存器。它們分別與端口a配合使用,可以用作控制信號輸出或作為狀態(tài)信號輸入。8255可編程并行接口芯片方式控制字格式說明:8255有兩種控制命令字;一個是方式選擇控制字;另一個是c口按位置位復位控制字。其中c口按位置位復位控制字方式使用較為繁難,說明也較冗長,故在此不作敘述,需要時用戶可

16、自行查找有關資料。方式控制字格式說明如表1:d7d6d5d4d3d2d1d0表1d7:設定工作方式標志,1有效。 d6、d5:a口方式選擇 0 0 方式0 0 1 方式1 1 方式2 d4:a口功能 (1=輸入,0=輸出) d3:c口高4位功能 (1=輸入,0=輸出) d2:b口方式選擇 (0=方式0,1=方式1) d1:b口功能 (1=輸入,0=輸出)d0:c口低4位功能 (1=輸入,0=輸出)8255可編程并行接口芯片工作方式說明:方式0:基本輸入輸出方式。適用于三個端口中的任何一個。每一個端口都可以用作輸入或輸出。輸出可被鎖存,輸入不能鎖存。 方式1:選通輸入輸出方式。這時a口或b口的8

17、位外設線用作輸入或輸出,c口的4條線中三條用作數據傳輸的聯絡信號和中斷請求信號。 方式2 :雙向總線方式。只有a口具備雙向總線方式,8位外設線用作輸入或輸出,此時c口的5條線用作通訊聯絡信號和中斷請求信號。3.3、74ls373簡介74ls373 是一種帶三態(tài)門的8d鎖存器,其管腳示意圖如下示:其中:1d-8d為8個輸入端。 1q-8q為8個輸出端。 le為數據打入端:當le為“1”時,鎖存器輸出 狀態(tài)同輸入狀態(tài);當le由“1”變“0”時,數據 打入鎖存器 oe為輸出允許端:當oe=0時,三態(tài)門打開; 當oe=1時,三態(tài)門關閉,輸出高阻。4 系統(tǒng)硬件設計4.1、交通管理的方案論證東西、南北兩干

18、道交于一個十字路口,各干道有一組紅、黃、綠三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行。黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換,且黃燈燃亮時間為東西、南北兩干道的公共停車時間。設東西道比南北道的車流量大,指示燈燃亮的方案如表2。60s5s80s5s東西道紅燈亮黃燈亮綠燈亮黃燈亮南北道綠燈亮黃燈亮紅燈亮黃燈亮表2說明:(1)當東西方向為紅燈,此道車輛禁止通行,東西道行人可通過;南北道為綠燈,此道車輛通過,行人禁止通行。時間為60秒。(2)黃燈閃爍5秒,警示車輛和行人紅、綠燈的狀態(tài)即將切換。 (3)當東西方向為綠燈,此道車輛通行;南北方向為紅燈,南北道車輛禁止通過,行人通

19、行。時間為80秒。 東西方向車流大 通行時間長。(4)這樣如上表的時間和紅、綠、黃出現的順序依次出現這樣行人和車輛就能安全暢通的通行。(5)此表可根據車流量動態(tài)設定紅綠燈初始值。4.2、系統(tǒng)硬件設計選用設備:8031單片機一片,8255并行通用接口芯片一片,74ls07兩片,共陰極的七段數碼管兩個,雙向晶閘管若干,7805三端穩(wěn)壓電源一個,紅、黃、綠交通燈各兩個,開關鍵盤、連線若干。4.2.1、系統(tǒng)總框圖如下:圖64.2.2、交通燈硬件線路圖見附錄一 4.2.3、系統(tǒng)工作原理(1)開關鍵盤輸入交通燈初始時間,通過8051單片機p1輸入到系統(tǒng) (2) 由8051單片機的定時器每秒鐘通過p0口向8

20、255的數據口送信息,由8255的pa 口顯示紅、綠、黃燈的燃亮情況;由8255的pc口顯示每個燈的燃亮時間。 (3)8051通過 設置 各個信號等的燃亮時間、通過8031設置,綠、紅時間分別為60秒、80秒循環(huán)由8051的 p0口向8255的數據口輸出。(4) 通過8051單片機的p3.0位來控制系統(tǒng)是工作或設置初值,當.牌位0就對系統(tǒng)進行初始化,為1系統(tǒng)就開始工作。(5)紅燈倒計時時間,當有車輛闖紅燈時,啟動蜂鳴器進行報警,3s后然后恢復正常。(6)增加每次綠燈時間車流量檢測的功能,并且通過查詢p2.0端口的電平是否為低,開關按下為低電平,雙位數碼管顯示車流量,直到下一次綠燈時間重新記入。

21、(7)綠燈時間倒計時完畢,重新循環(huán)。5、控制器的軟件設計5.1、每秒鐘的設定 延時方法可以有兩種一中是利用mcs-51內部定時器才生溢出中斷來確定1秒的時間,另一種是采用軟延時的方法。5.2、計數器硬件延時5.2.1、計數器初值計算 定時器工作時必須給計數器送計數器初值,這個值是送到th和tl中的。他是以加法記數的,并能從全1到全0時自動產生溢出中斷請求。因此,我們可以把計數器記滿為零所需的計數值設定為c和計數初值設定為tc 可得到如下計算通式: tc=mc式中,m為計數器摸值,該值和計數器工作方式有關。在方式0時m為213 ;在方式1時m的值為216;在方式2和3為285.2.2、計算公式

22、t=(mtc)t計數 或t計數 t計數是單片機時鐘周期的倍;為定時初值如單片機的主脈沖頻率為z,經過分頻方式213微秒毫秒方式216微秒毫秒顯然秒鐘已經超過了計數器的最大定時間,所以我們只有采用定時器和軟件相結合的辦法才能解決這個問題5.2.3、秒的方法我們采用在主程序中設定一個初值為的軟件計數器和使0定時毫秒這樣每當0到毫秒時就響應它的溢出中斷請求,進入他的中斷服務子程序。在中斷服務子程序中,先使軟件計數器減,然后判斷它是否為零。為零表示秒已到可以返回到輸出時間顯示程序。5.2.4、相應程序代碼()主程序定時器需定時毫秒,故0工作于方式。初值: t計數ms/1us=15536=3cboh o

23、rg 1000h start: mov tmod, #01h ; 令0為定時器方式 mov th0, #3ch ;裝入定時器初值 mov tl0, #boh; mov ie,#82h ;開0中斷 sebt to;啟動0計數器 mov ro,#14h;軟件計數器賦初值loop:sjmp $;等待中斷()中斷服務子程序 000 0 00:djnz 0,ajmp time ; 跳轉到時間及信號燈顯示子程序 djnz:0,;恢復0值 mov th0, #3ch ;重裝入定時器初值 mov tl0, #boh; mov ie,#82h 5.3、軟件延時 mcs-51的工作頻率為2-12mhz,我們選用的

24、8031單片機的工作頻率為6mhz。機器周期與主頻有關,機器周期是主頻的12倍,所以一個機器周期的時間為12*(1/6m)=2us。我們可以知道具體每條指令的周期數,這樣我們就可以通過指令的執(zhí)行條數來確定1秒的時間。 具體的延時程序分析: delay:mov r4,#08h 延時1秒子程序 de2:lcall delay1 djnz r4,de2 retdelay1:mov r6,#0 延時125ms 子程序 mov r5,#0de1: djnz r5,$ djnz r6,de1 ret mov rn,#data 字節(jié)數數為2 機器周期數為1所以此指令的執(zhí)行時間為2ms delay1 為一個雙

25、重循壞 循環(huán)次數為256*256=65536 所以延時時間=65536*2=131072us 約為125us delay r4設置的初值為8 主延時程序循環(huán)8次,所以125us*8= 1秒 由于單片機的運行速度很快其他的指令執(zhí)行時間可以忽略不計。5.4、時間及信號燈的顯示5.4.1、8051并行口的擴展 8051雖然有4個8位i/o端口,但真正能提供借用的只有p1口,因為p2和p0口通常用于傳送外部傳送地址和數據,p3口也有它的第二功能。因此,8031通常需要擴展。由于我們用外部輸入設定紅綠燈倒計時初值、數碼管的輸出顯示、紅綠黃信號燈的顯示都要用到一個i/o端口,顯然8031的端口是不夠,需要

26、擴展。 擴展的方法有兩種:(1)借用外部ram地址來擴展i/o端口;(2)采用i/o接口新片來擴充。我們用8255并行接口信片來擴展i/o端口。5.4.2、顯示原理:當定時器定時為1秒,時程序跳轉到時間顯示及信號燈顯示子程序,它將依次顯示信號燈時間 ,同時一直顯示信號燈的顏色,這時在返回定時子程序定時一秒,在顯示黃燈的下一個時間,這樣依次把所有的燈色的時間顯示完后在重新給時間計數器賦初值 ,重新進入循環(huán)。 5.4.3、8255 pa口輸出信號接信號燈: 由于發(fā)光二極管為共陽極接法,輸出端口為低電平,對應的二極管發(fā)光,所以可以用置位方法點亮紅,綠,黃發(fā)光二極管。5.4.4、8255輸出信號與數碼

27、管的連接: led 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點量而顯示不同的字形如 sp,g,f,e,d,c,b,a 管角上加上所以上為伏,不亮其余為高電平,全亮則顯示為采用共陰級連接:其中 pc0pb0-a,pc1pb1-b, pc2pb2-c,pc3pb3-d,pc4pb4-e, pc5pb5-f,pc6pb6-gpc7pb7 -sp接地顯示數值dop g f e d c b a 驅動代碼(16進制)00 0 1 1 1 1 1 1 3fh1 0 0 0 0 0 1 1 006h2 0 1 0 1 1 0 1 15bh3 0 1 0 0 1 1 1 14fh4 0 1

28、 1 0 0 1 1 066h5 0 1 1 0 1 1 0 06dh6 0 1 1 1 1 1 0 07dh7 0 0 0 0 0 1 1 107h8 0 1 1 1 1 1 1 17fh 表 3 驅動代碼表5.4.5、8255與8051的連接:用8051的p0 口的 p0.7 連接8255的片選信號cs 我們用8031的地址采用全譯碼方式,當p0.7 =0 時片選有效, 其他無效, p0.1 p0.1 用于選擇8255端口 p0.7 p0.6 p0.5 p0.4 p0.3 p0.2 p0.1 p0.0a7 a6 a5 a4 a3 a2 a1 a01 x x x x x 0 0 00h為82

29、55 的pa口1 x x x x x 0 1 01h 為8255的pb口1 x x x x x 1 0 02h 為8255的pc口1 x x x x x 1 1 03h 為8255的控制口由于8051是分時對8255和儲存器進行訪問所以8051的p0口不會發(fā)生沖突5.5、程序設計5.5.1、流程圖如圖所示 圖9 程序流程圖5.5.2、程序源代 org 0000h ;主程序的入口地址 ljmp main ;跳轉到主程序的開始處 org 0003h ;外部中斷0的中斷程序入口地址 org 000bh ;定時器0的中斷程序入口地址 ljmp t0_int ;跳轉到中斷服務程序處 org 0013h

30、;外部中斷1的中斷程序入口地址 main : mov sp,#50h mov ie,#8eh ;cpu開中斷,允許t0中斷,t1中斷和外部中斷1中斷 mov tmod,#51h ;設置t1為計數方式,t0為定時方式,且都工作于模式1 mov th1,#00h ;t1計數器清零 mov tl1,#00h setb tr1 ;啟動t1計時器 setb ex1 ;允許int1中斷 setb it1 ;選擇邊沿觸發(fā)方式 mov dptr ,#0003h mov a, #80h ;給8255賦初值,8255工作于方式0 movx dptr, aagain: jb p3.1,n0 ;判斷是否要設定東西方向

31、紅綠燈時間的初值,若p3.1為1 則跳轉 mov a,p1 jb p1.7,red ;判斷p1.7是否為1,若為1則設定紅燈時間,否則設定綠燈時間 mov r0,#00h ;r0清零 mov r0,a ;存入東西方向綠燈初始時間 mov r3,a lcall disp1 lcall delay ajmp againred: mov a,p1 anl a,#7fh ;p1.7置0 mov r7,#00h ;r7清零 mov r7,a ;存入東西方向紅燈初始時間 mov r3,a lcall disp1 lcall delay ajmp again;-n0: setb tr0 ;啟動t0計時器 m

32、ov 76h,r7 ;紅燈時間存入76hn00: mov a,76h ;東西方向禁止,南北方向通行 mov r3,a mov dptr,#0000h ;置8255a口,東西方向紅燈亮,南北方向綠燈亮 mov a,#0ddh movx dptr, an01: jb p2.0,b0n02: setb p3.0 cjne r3,#00h,n01 ;比較r3中的值是否為0,不為0轉到當前指令處執(zhí)行;-黃燈閃爍5秒程序-n1: setb p3.0 mov r3,#05h mov dptr,#0000h ;置8255a口,東西,南北方向黃燈亮 mov a,#0d4h movx dptr,an11: mov

33、 r4,#00hn12: cjne r4,#7dh,$ ;黃燈持續(xù)亮0.5秒n13: mov dptr,#0000h ; 置8255a口,南北方向黃燈滅 mov a,#0ddh movx dptr,an14: mov r4,#00h cjne r4,#7dh,$ ;黃燈持續(xù)滅0.5秒 cjne r3,#00h,n1 ;閃爍時間達5秒則退出;-n2: mov r7,#00h mov a,r0 ;東西通行,南北禁止 mov r3,a mov dptr,#0000h ; 置8255a口,東西方向綠燈亮,南北方向紅燈亮 mov a,#0ebh movx dptr,an21: jb p2.0,t03 n

34、22: cjne r3,#00h,n21;-黃燈閃爍5秒程序-n3: mov r3,#05h mov dptr,#0000h ;置8255a口,東西,南北方向黃燈亮 mov a,#0e2h movx dptr,an31: mov r4,#00h cjne r4,#7dh,$ ;黃燈持續(xù)亮0.5秒n32: mov dptr,#0000h ; 置8255a口,南北方向黃燈滅 mov a,#0ebh movx dptr,an33: mov r4,#00h cjne r4,#7dh,$ ;黃燈持續(xù)滅0.5秒 cjne r3,#00h,n3 ;閃爍時間達5秒則退出 sjmp n00;-闖紅燈報警程序-b

35、0: mov r2,#03h ;報警持續(xù)時間3秒b01: mov a,r3 jz n1 ;若倒計時完畢,不再報警 clr p3.0 ;報警 cjne r2,#00h,b01 ;判斷3秒是否結束 sjmp n02;-1秒延時子程序-n7: retit0_int:mov tl0,#9ah ;給定時器t0送定時10ms的初值 mov th0,#0f1h inc r4 inc r5 cjne r5,#0fah,t01 ;判斷延時是否夠一秒,不夠則調用顯示子程序 mov r5,#00h ;r5清零 dec r3 ;倒計時初值減一 dec r2 ;報警初值減一t01: acall disp ;調用顯示子程

36、序 reti ;中斷返回;-顯示子程序-disp: jnb p2.4,t02disp1: mov b,#0ah mov a,r3 ;r3中值二轉十顯示轉換 div ab mov 79h,a mov 7ah,bdis: mov a,79h ;顯示十位 mov dptr,#tab movc a,a+dptr mov dptr,#0002h movx dptr,amov dptr,#0001h mov a,#0f7h movx dptr,a lcall delayds2: mov a,7ah ;顯示個位 mov dptr,#tab movc a,a+dptr mov dptr,#0002h movx dptr,a mov dptr,#0001h mov a,#0fbh movx dptr,a ret;-東西方向車流量檢測程序-t03: mov a,r3 subb a,#00h ;若綠燈倒計時完畢,不再檢測車流量 jz n3 jb p2.0,t03 inc r7 cjne r7,#64h,e1 mov r7,#

溫馨提示

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

評論

0/150

提交評論