交通信號(hào)燈控制器單片機(jī)課程設(shè)計(jì)_第1頁(yè)
交通信號(hào)燈控制器單片機(jī)課程設(shè)計(jì)_第2頁(yè)
交通信號(hào)燈控制器單片機(jī)課程設(shè)計(jì)_第3頁(yè)
交通信號(hào)燈控制器單片機(jī)課程設(shè)計(jì)_第4頁(yè)
交通信號(hào)燈控制器單片機(jī)課程設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩22頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

燕山大學(xué)課程設(shè)計(jì)(論文)任務(wù)書院(系):電氣工程學(xué)院基層教學(xué)單位:儀器科學(xué)與工程系學(xué)號(hào)學(xué)生姓名專業(yè)(班級(jí))設(shè)計(jì)題目交通信號(hào)燈控制器設(shè)計(jì)技術(shù)參數(shù)設(shè)計(jì)一個(gè)十字路口紅綠燈控制器,能夠控制十二盞交通信號(hào)燈的系統(tǒng),并顯示倒計(jì)時(shí)時(shí)間。有急救車通過(guò)時(shí),東西南北方向均為紅燈,持續(xù)時(shí)間為10S設(shè)計(jì)要求利用單片機(jī)的定時(shí)器定時(shí),令十字路口的紅綠燈交替點(diǎn)亮,并用LED數(shù)碼管顯示電路顯示倒計(jì)時(shí)時(shí)間;編制相應(yīng)的程序。工作量設(shè)計(jì)的內(nèi)容滿足課程設(shè)計(jì)的教學(xué)目的和要求,設(shè)計(jì)題目的難度和工作量適合學(xué)生的知識(shí)和能力狀況,工作量飽滿。工作計(jì)劃查閱資料進(jìn)行設(shè)計(jì)準(zhǔn)備,設(shè)計(jì)硬件電路,編制程序;編制程序,驗(yàn)證設(shè)計(jì),撰寫任務(wù)書。參考資料單片機(jī)微型計(jì)算機(jī)接口技術(shù)及應(yīng)用張淑清國(guó)防工業(yè)出版社單片機(jī)原理及應(yīng)用技術(shù)張淑清國(guó)防工業(yè)出版社單片機(jī)應(yīng)用技術(shù)匯編指導(dǎo)教師簽字基層教學(xué)單位主任簽字說(shuō)明:此表一式四份,學(xué)生、指導(dǎo)教師、基層教學(xué)單位、系部各一份。2013年7月1日目錄摘要……………3第一章引言…………………4第二章單片機(jī)交通控制系統(tǒng)的總體設(shè)計(jì)…………………42.1單片機(jī)交通控制系統(tǒng)的功能要求………42.2設(shè)計(jì)的基本思路…………5…………………5第三章智能交通燈控制系統(tǒng)的硬件設(shè)計(jì)……………………73.1AT89C51單片簡(jiǎn)介………………………73.1.1AT89C51單片機(jī)的主要特性…………73.1.2主要引腳功能…………83.1.3MCS-51的中斷源……………………103.2數(shù)碼管…………………11第四章交通燈各部分功能分析……………124.1時(shí)鐘定時(shí)控制部分…………………124.2紅黃綠燈顯示電路…………………134.3LED數(shù)字顯示電路…………………144.480c51單片機(jī)芯片……………………14第五章系統(tǒng)軟件程序的設(shè)計(jì)……………155.1定時(shí)器原理………………155.1.1定時(shí)器的理論知識(shí)……………………155.1.2定時(shí)1秒的方法………………………155.1.3相應(yīng)的程序……………155.2軟件延時(shí)原理……………165.3中斷原理…………………16…………185.4.1狀態(tài)等顯示及判斷……………………185.4.2LED倒計(jì)時(shí)顯示………………………19第六章系統(tǒng)程序流程圖……………………215.1紅綠黃燈流程圖……………………21………………………22第七章系統(tǒng)原理圖…………23第八章系統(tǒng)調(diào)試……………24第九章心得體會(huì)……………25參考文獻(xiàn)……………………25程序……………26摘要近年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷地走向深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)日新月異更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往是作為一個(gè)核心部件來(lái)使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu),以及針對(duì)具體應(yīng)用對(duì)象特點(diǎn)的軟件結(jié)合,加以完善。利用單片機(jī)的優(yōu)點(diǎn),應(yīng)用到十字路口上,使得交通信號(hào)有條不紊的工作,本模擬交通燈系統(tǒng)利用單片機(jī)AT89C51作為核心元件,實(shí)現(xiàn)了通過(guò)信號(hào)燈對(duì)路面狀況的智能控制。從一定程度上解決了交通路口堵塞、車輛停車等待時(shí)間不合理、急車強(qiáng)通等問(wèn)題。系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、可靠性高、成本低、實(shí)時(shí)性好、安裝維護(hù)方便等優(yōu)點(diǎn),有廣泛的應(yīng)用前景。本模擬系統(tǒng)由單片機(jī)硬/軟件系統(tǒng),7段數(shù)碼管和LED燈顯示系統(tǒng)等組成,較好的模擬了交通路面的控制。關(guān)鍵字:?jiǎn)纹瑱C(jī),交通信號(hào)燈數(shù)碼管第一章引言在今天,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見(jiàn)和最有效的手段。信號(hào)燈的出現(xiàn),使交通得以有效管制,對(duì)于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國(guó)《道路交通和道路標(biāo)志信號(hào)協(xié)定》對(duì)各種信號(hào)燈的含義作了規(guī)定。綠燈是通行信號(hào),面對(duì)綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過(guò)人行橫道的行人優(yōu)先通行。紅燈是禁行信號(hào),面對(duì)紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號(hào),面對(duì)黃燈的車輛不能越過(guò)停車線,但車輛已十分接近停車線而不能安全停車時(shí)可以進(jìn)入交叉路口。第二章單片機(jī)交通控制系統(tǒng)總體設(shè)計(jì)2.1單片機(jī)交通控制系統(tǒng)的功能要求該控制器能實(shí)現(xiàn)城市“十字”路口正常情況下以及特殊情況和緊急情況下交通信號(hào)燈的模擬控制。1、在十字路口東西南北各設(shè)置紅、黃、綠三種信號(hào)燈,正常情況下,東西、南北方向輪流放行。當(dāng)東西方向放行、南北方向禁行時(shí),東西方向綠燈亮23秒,閃4秒,然后黃燈亮3秒,南北方向紅燈亮30秒;當(dāng)南北方向放行、東西方向禁行時(shí),南北方向綠燈亮23秒,閃4秒,然后黃燈亮3秒,東西方向紅燈亮30秒。如此循環(huán),實(shí)現(xiàn)交通燈定時(shí)控制。2、有急救車優(yōu)先通過(guò)功能。當(dāng)有急救車到達(dá)時(shí),路口的信號(hào)燈全部變紅燈,以便急救車通過(guò),急救車的通行時(shí)間為10秒,急救車過(guò)后,交通燈恢復(fù)先前狀態(tài)。3、交通燈在紅、綠燈交替點(diǎn)亮中,用4個(gè)數(shù)碼管顯示東西方向和南北方向倒計(jì)時(shí)時(shí)間。2.2設(shè)計(jì)的基本思路利用80c51單片機(jī)控制交通燈系統(tǒng)工作。信號(hào)燈的控制由單片機(jī)的P1.0~P1.5控制,6只信號(hào)燈以共陰極方式連接,當(dāng)P1口輸出為高電平時(shí),信號(hào)燈點(diǎn)亮。數(shù)碼顯示與接片選段,這樣就可以實(shí)現(xiàn)時(shí)間的動(dòng)態(tài)顯示。當(dāng)遇到緊急情況時(shí),利用外部中斷INT1申請(qǐng)中斷。當(dāng)有外部中斷的時(shí)候,單片機(jī)的PC指向INT1的中斷入口地址,從而轉(zhuǎn)向中斷服務(wù)程序,此時(shí),東西南北方向的都為紅燈亮,倒計(jì)時(shí)10s,實(shí)現(xiàn)緊急情況下禁止通行。然后退出中斷服務(wù)程序,繼續(xù)執(zhí)行主程序。系統(tǒng)設(shè)計(jì)總框圖如下單片機(jī)單片機(jī)時(shí)鐘控制電路LED數(shù)碼管顯示紅黃綠信號(hào)燈按鍵控制電路圖2.1系統(tǒng)的總體框圖單片機(jī)交通控制系統(tǒng)的通行方案設(shè)計(jì)在十字路口,分為東西向和南北向,在任一時(shí)刻只有一個(gè)方向通行,另一方向禁行,持續(xù)一定時(shí)間,經(jīng)過(guò)短暫的過(guò)渡時(shí)間,將通行禁行方向?qū)Q。其具體狀態(tài)如下圖所示。說(shuō)明:黑色表示亮,白色表示滅。交通狀態(tài)從狀態(tài)1開(kāi)始變換,直至狀態(tài)6然后循環(huán)至狀態(tài)1,周而復(fù)始,即如圖2.2所示:圖2.2交通狀態(tài)狀態(tài)南北道東西道時(shí)間0綠燈亮,允許通行紅燈亮,禁止通行23秒1綠燈閃,允許通行紅燈亮,禁止通行4秒2黃燈亮,停車紅燈亮,禁止通行3秒3紅燈亮,禁止通行綠燈亮,允許通行23秒4紅燈亮,禁止通行綠燈閃,允許通行4秒5紅燈亮,禁止通行黃燈亮,停車3秒表2.1交通燈控制系統(tǒng)狀態(tài)表第三章智能交通燈控制系統(tǒng)的硬件設(shè)計(jì)AT89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低電壓,高性能CMOS8位微處理器,俗稱單片機(jī)。AT89C2051是一種帶2K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)器的單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除100次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡(jiǎn)版本。AT89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。3.1.1AT89C51單片機(jī)的主要特性與MCS-51兼容,4K字節(jié)可編程閃爍存儲(chǔ)器,壽命:1000寫/擦循環(huán),數(shù)據(jù)保留時(shí)間:10年,全靜態(tài)工作:0Hz-24Hz,三級(jí)程序存儲(chǔ)器鎖定,128*8位內(nèi)部RAM,32可編程I/O線,兩個(gè)16位定時(shí)器/計(jì)數(shù)器,5個(gè)中斷源(兩個(gè)外部中斷源和3個(gè)內(nèi)部中斷源),可編程串行通道,低功耗的閑置和掉電模式,片內(nèi)振蕩器和時(shí)鐘電路?!r(shí)鐘電路:時(shí)鐘電路的作用是產(chǎn)生單片機(jī)工作所需要的時(shí)鐘脈沖序列?!ぶ袛嘞到y(tǒng):中斷系統(tǒng)的作用主要是對(duì)外部或內(nèi)部的終端請(qǐng)求進(jìn)行管理與處理。AT89S51共有5個(gè)中斷源,其中又2個(gè)外部中斷源和3個(gè)內(nèi)部中斷源。圖3.1AT89C51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖3.1.2主要引腳功能圖3.2AT89C51引腳圖·VCC:電源電壓·GND:接地·P0口:P0口是一組8位雙向I/0口。P0口即可作地址/數(shù)據(jù)總線使用,又可以作為通用的I/O口使用。當(dāng)CPU訪問(wèn)片外存儲(chǔ)器時(shí),P0口分時(shí)先作低8位地址總線,后作雙向數(shù)據(jù)總線,此時(shí),P0口就不能再作I/O口使用了。在訪問(wèn)期間激活要使用上拉電阻?!1口:Pl是一個(gè)帶內(nèi)部上拉電阻的8準(zhǔn)位雙向I/O口,P1作為通用的I/O口使用?!2口:P2是一個(gè)帶有內(nèi)部上拉電阻的8位準(zhǔn)雙向I/O口,P2即可作為通用的I/O口使用,也可以作為片外存儲(chǔ)器的高8位地址總線,與P0口配合,組成16位片外存儲(chǔ)器單元地址?!3口:P3口是一組帶有內(nèi)部上拉電阻的8位準(zhǔn)雙向I/0口。P3口除了作為通用的I/O口使用之外,每個(gè)引腳還具有第二功能,具體分配如下表端口引腳第二功能:RXD(串行輸入口)TXD(串行輸出口)/INT0(外中斷0)/INT1(外中斷1)T0(定時(shí)/計(jì)數(shù)器0外部輸入)T1(定時(shí)/計(jì)數(shù)器1外部輸入)/WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)/RD外部數(shù)據(jù)存儲(chǔ)器讀選通)表3.1具有第二功能的P3口引腳·RST:復(fù)位輸入。當(dāng)振蕩器工作時(shí),RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上高電平將使單片機(jī)復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFRAUXR的DISRT0位(地址8EH)可打開(kāi)或關(guān)閉該功能。DISRT0位缺省為RESET輸出高電平打開(kāi)狀態(tài)?!LE/:當(dāng)訪問(wèn)外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問(wèn)外部存儲(chǔ)器,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定的正脈沖信號(hào),因此它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。要注意的是:每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過(guò)一個(gè)ALE脈沖。對(duì)F1ash存儲(chǔ)器編程期間,該引腳還用于輸入編程脈沖(PROG)。如有必要,可通過(guò)對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條M0VX和M0VC指令A(yù)LE才會(huì)被激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE無(wú)效?!こ绦騼?chǔ)存允許()輸出是外部程序存儲(chǔ)器的讀選通信號(hào),當(dāng)AT89S51由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)機(jī)器周期兩次有效,即輸出兩個(gè)脈沖。當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器,沒(méi)有兩次有效的信號(hào)。·/VPP:外部訪問(wèn)允許。欲使CPU僅訪問(wèn)外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。如EA端為高電平(接VCC端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器中的指令。F1ash存儲(chǔ)器編程時(shí),該引腳加上+12V的編程電壓Vcc?!TAL1:振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生器的輸入端。MCS—51的中斷源8051有5個(gè)中斷源,它們是兩個(gè)外中斷INT0(P3.2)和INT1(P3.3)、兩個(gè)片內(nèi)定時(shí)/計(jì)數(shù)器溢出中斷TF0和TF1,一個(gè)是片內(nèi)串行口中斷TI或RI,這幾個(gè)中斷源由TCON和SCON兩個(gè)特殊功能寄存器進(jìn)行控制,其中5個(gè)中斷源的程序入口地址如下表所示:中斷源的服務(wù)程序入口地址中斷源入口地址外中斷00003H定時(shí)/計(jì)數(shù)器0000BH外中斷10013H定時(shí)/計(jì)數(shù)器0001BH串行口中斷0023H3.2數(shù)碼管LED顯示屏作為大型顯示設(shè)備的一種,具有亮度高、價(jià)格低、壽命長(zhǎng)、維護(hù)簡(jiǎn)便等優(yōu)點(diǎn)。LED數(shù)碼管的結(jié)構(gòu)簡(jiǎn)單,分為七段和八段兩種形式,也有共陽(yáng)和共陰之分。以八段共陽(yáng)管為例,它有8個(gè)發(fā)光二極管(比七段多一個(gè)發(fā)光二極管,用來(lái)顯示dP,即點(diǎn)),每個(gè)發(fā)光二極管的陽(yáng)極連在一起,如圖3.3所示。這樣,一個(gè)LED數(shù)碼管就有I根位選線和8根段選線,要想顯示一個(gè)數(shù)值,就要分別對(duì)它們的高低電平來(lái)加以控制。為方便起見(jiàn),本文主要討論共陽(yáng)八段LED數(shù)碼顯示管,其他類形的顯示管與其類似。圖3.3LED數(shù)碼管LED燈的顯示原理:通過(guò)同名管腳上所加電平的高低來(lái)控制發(fā)光二極管是否點(diǎn)亮而顯示不同的字形,如dp,g,f,e,d,c,b,a全亮顯示為8,采用共陰極連接驅(qū)動(dòng)代碼,代碼表如下表所示。驅(qū)動(dòng)代碼表顯示數(shù)值dp,g,f,e,d,c,b,a驅(qū)動(dòng)代碼0110100003FH11111100106H2101001005BH3101100004FH41001100166H5100100106DH6100000107DH71111100007H8100000007FH9100100006FH相應(yīng)在程序軟件上,可以通過(guò)調(diào)用程序給定的秒值經(jīng)過(guò)特定計(jì)算算出需要顯示的個(gè)位和十位,然后有DPTR調(diào)取LEDMAP的代碼。第四章交通燈各部分功能分析4.1時(shí)鐘定時(shí)控制部分由于80C51單片機(jī)內(nèi)部有一個(gè)用于構(gòu)成振蕩器的高增益反向放大器,此放大器的輸入和輸出端分別是引腳XTAL1和XTAL2,在XTAL1和XTAL2上外接時(shí)鐘源即可構(gòu)成時(shí)鐘電路,該電路采用的是內(nèi)部方式,如圖所示:圖時(shí)鐘定時(shí)控制電路4.2紅黃綠燈顯示電路圖紅黃綠燈顯示電路二極管的負(fù)極共陰極連接,正極分別通過(guò)上拉電阻接80C51單片機(jī)的外部接口P1.0、P1.1、P1.2、P1.3、P1.4、P1.5口,我們可以通過(guò)控制單片機(jī)P1口的數(shù)據(jù)輸出來(lái)控制二極管的亮滅。4.3LED數(shù)字顯示電路圖4.3LED數(shù)字顯示電路4.480c51單片機(jī)芯片80c51芯片第五章系統(tǒng)軟件程序的設(shè)計(jì)定時(shí)器原理5.1.1定時(shí)器理論知識(shí)定時(shí)器工作的基本原理其實(shí)就是給初值,讓它不斷加1直至減完為模值,這個(gè)初值是送到TH和TL中的。它是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值,即所要求的計(jì)數(shù)值設(shè)定為C,把計(jì)數(shù)初值設(shè)定為TC可得到如下計(jì)算通式:TC=M-C式中,M為計(jì)數(shù)器模值。計(jì)數(shù)值并不是目的,目的是時(shí)間值,設(shè)計(jì)1次的時(shí)間,即定時(shí)器計(jì)數(shù)脈沖的周期為T0,它是單片機(jī)系統(tǒng)主頻周期的12倍,設(shè)要求的時(shí)間值為T,則有C=T/T0。計(jì)算通式變?yōu)椋篢=(M-TC)T0模值和計(jì)數(shù)器/定時(shí)器工作方式有關(guān)。在方式0時(shí)M為8192;在方式1時(shí)M的值為65536;在方式2和3為256。就此可以算出各種方式的最大延時(shí)。如單片機(jī)的主脈沖頻率為12MHZ,經(jīng)過(guò)12分頻后,若采用方式0,采用方式1最大延時(shí)也只有65.536毫秒。5.1.2定時(shí)1秒的方法本設(shè)計(jì)要求1秒倒計(jì)時(shí),我們采用在主程序中設(shè)定TH0為58H,TL0為9EH,則定時(shí)時(shí)間為0,04285s,到定時(shí)時(shí)間后進(jìn)入中斷服務(wù)程序,在中斷服務(wù)程序中設(shè)定定時(shí)次數(shù)為20次,共定時(shí)0.857s(執(zhí)行前面程序會(huì)耽誤一段時(shí)間,因此設(shè)定定時(shí)時(shí)間小于一秒)。5.相應(yīng)程序(1)主程序MOVTMOD,#01H;定時(shí)器T0工作方式為1MOVTL0,#9EHMOVTH0,#58HSETBEASETBET0;開(kāi)內(nèi)部T0中斷SETBTR0;開(kāi)啟定時(shí)(2)中斷服務(wù)子程序TIME0INT:INCR5CJNER5,#20,LOOP11INCR0DECR2DECR3MOVR5,#0LOOP11:MOVTH0,#9EHMOVTL0,#58HRETI軟件延時(shí)原理MCS-51的工作頻率為12MHZ,機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/12MHZ)=1us。我們可以知道具體每條指令的周期數(shù),這樣我們就可以通過(guò)指令的執(zhí)行條數(shù)來(lái)確定延時(shí)的時(shí)間,但同時(shí)由于單片機(jī)的運(yùn)行速度很快其他的指令執(zhí)行時(shí)間可以忽略不計(jì)。相應(yīng)的程序(延時(shí)1ms):DELAY:MOVR7,#02HDL1:MOVR6,#0FFHDL2:DJNZR6,DL2DJNZR7,DL1RET5.3中斷原理本系統(tǒng)主要使用了外部中斷,中斷信號(hào)有引腳INT0和INT1輸入,低電平有效,CPU每個(gè)時(shí)鐘周期都會(huì)檢測(cè)INT0和INT1上的信號(hào),在優(yōu)先級(jí)的允許下,一旦有外部中斷信號(hào)產(chǎn)生,單片機(jī)CPU首先保護(hù)斷點(diǎn),PC值進(jìn)棧,然后執(zhí)行相應(yīng)的中斷服務(wù)子程序,執(zhí)行完后,用RETI指令返回,此時(shí)CPU會(huì)從堆棧中取保存的斷點(diǎn)地址,送回PC,程序再正常執(zhí)行。相應(yīng)的程序INT1:CLRTR0PUSHPSWPUSHAPUSH00HPUSH01HPUSH02HPUSH03HPUSH04HPUSH05HPUSH06HPUSH07H;入棧保護(hù)MOV30H,TH0MOV31H,TL0MOV32H,P1MOVP1,#09HMOVR2,#10MOVR3,#10MOVR0,#0L33:MOVR5,#05FHL11:LCALLDELAYLCALLDISPDJNZR5,L11INCR0DECR2DECR3CJNER0,#10,L33MOVP1,32HMOVTH0,30HMOVTL0,31HPOP07HPOP06HPOP05HPOP04HPOP03HPOP02HPOP01HPOP00HPOPAPOPPSW;恢復(fù)現(xiàn)場(chǎng)SETBTR0RETI5.4子程序模塊設(shè)計(jì)5.4.1狀態(tài)燈顯示及判斷在本設(shè)計(jì)中,實(shí)際控制的燈只有6個(gè),即:東西紅燈,東西綠燈,東西黃燈,南北紅燈,南北綠燈,南北黃燈。定義IO端口如下,其中均是高電平有效。P1.0代表南北紅燈,P1.1代表南北黃燈,P1.2代表南北綠燈,P1.3代表東西紅燈,P1.4代表東西黃燈,P1.5代表東西綠燈,共有6種狀態(tài):東西紅燈亮,南北綠燈亮(0CH);東西紅燈亮,南北綠燈滅(08H);東西紅燈亮,南北黃燈亮(0AH);東西綠燈亮,南北紅燈亮(21H);東西綠燈滅,南北紅燈亮(01H);東西黃燈亮,南北紅燈亮(11H)。5.LED倒計(jì)時(shí)顯示LED計(jì)時(shí)每1秒都要刷新1次,采用的是動(dòng)態(tài)顯示,首先將R2除以10,整數(shù)即十位放在70H中,余數(shù)即個(gè)位放在71H中,設(shè)置7段LED顯示數(shù)據(jù)的數(shù)據(jù)表,用數(shù)據(jù)指針寄存器DPTR指向數(shù)據(jù)表的首地址,再加上A中的偏移量,就可以指向十位數(shù)字,然后送顯即可,個(gè)位顯示同理。具體程序如下:DISP:MOVR4,#20H;位選碼MOVR1,#70HLOOP9:MOVA,R2MOVB,#0AHDIVABMOV70H,A;顯示十位放到70H中MOVA,BMOV71h,A;顯示個(gè)位放到71H中MOVA,R3MOVB,#0AHDIVABMOV72H,A;另一方向顯示的十位放到72H中MOVA,BMOV73H,A;另一方向顯示的個(gè)位放到73H中MOVA,R4JBACC.1,LOOP10;位選碼循環(huán)移位4次MOVDPTR,#8002HMOVX@DPTR,ARRAMOVR4,AMOVA,@R1MOVDPTR,#TABMOVCA,@A+DPTRMOVDPTR,#8004HMOVX@DPTR,A;顯示數(shù)據(jù)LCALLDELAYINCR1MOVDPTR,#8004HMOVA,#0MOVX@DPTR,AAJMPLOOP9LOOP10:RET第六章系統(tǒng)程序流程圖6.1紅綠黃燈流程圖開(kāi)始開(kāi)始系統(tǒng)初始化東西紅燈亮,南北綠燈亮調(diào)顯示子程序(動(dòng)態(tài)顯示)東西,南北方向換向東西紅燈亮,南北綠燈閃爍東西紅燈亮,南北黃燈亮圖6.1紅黃綠燈工作流程圖6.2中斷系統(tǒng)流程圖外部中斷入口外部中斷入口保護(hù)現(xiàn)場(chǎng)保護(hù)現(xiàn)場(chǎng)東西南北都亮紅燈東西南北都亮紅燈延時(shí)10秒延時(shí)10秒恢復(fù)現(xiàn)場(chǎng)恢復(fù)現(xiàn)場(chǎng)中斷返回中斷返回圖中斷流程圖如上圖所示,該流程圖為中斷程序的流程圖,在交通燈程序正常運(yùn)行的任何時(shí)刻,都可以隨時(shí)按下終端按鈕,即按鍵開(kāi)關(guān)K1。按下按鍵開(kāi)關(guān)后即可實(shí)現(xiàn)如上所述的中斷,先將當(dāng)前狀態(tài)保存起來(lái),然后所有路口的交通燈紅燈亮起,數(shù)碼管開(kāi)始顯示10秒的倒計(jì)時(shí),倒計(jì)時(shí)結(jié)束后,程序自動(dòng)返回原來(lái)中斷的狀態(tài),并且繼續(xù)運(yùn)行原來(lái)的程序。主程序?yàn)橐粋€(gè)反復(fù)循環(huán)的程序。每40秒一個(gè)周期。按下復(fù)位鍵K1可以使程序返回初始狀態(tài),東西紅燈南北綠燈,然后重復(fù)運(yùn)行主程序。單片機(jī)的優(yōu)點(diǎn)就在于它可以用一個(gè)單個(gè)的芯片來(lái)獨(dú)立的實(shí)現(xiàn)一個(gè)完整的功能而不受其他外界干擾影響。這種獨(dú)立化使得單片機(jī)得以流行起來(lái),并且迅速的應(yīng)用到各個(gè)行業(yè),各個(gè)領(lǐng)域。單片機(jī)的優(yōu)勢(shì)之處還在于他十分穩(wěn)定,不會(huì)輕易發(fā)生意外情況,即使出現(xiàn)意外情況,其程序也可以非常方便的進(jìn)行調(diào)試。實(shí)用性、可靠性很強(qiáng)。第七章系統(tǒng)原理圖第八章系統(tǒng)的調(diào)試程序編好以后,先自己檢查是否有邏輯錯(cuò)誤,保證正確后利用wave6000仿真軟件對(duì)所編寫的程序進(jìn)行編譯,檢查是否有語(yǔ)法錯(cuò)誤,出現(xiàn)錯(cuò)誤時(shí)偉福系統(tǒng)會(huì)自動(dòng)提示有錯(cuò)誤產(chǎn)生,并會(huì)指定錯(cuò)誤的語(yǔ)句,這時(shí)我們需要認(rèn)真檢查程序,修改編譯中出現(xiàn)的錯(cuò)誤。程序無(wú)誤后,連接試驗(yàn)箱,觀察現(xiàn)象,試驗(yàn)箱接線如下表中斷接線接線接線孔1接線孔21INT1()單次脈沖二極管接線接線接線孔1接線孔21L12L23L34L45L56L6數(shù)碼管接線接線接線孔1接線孔21KEY/LED_CSCS0表8.1試驗(yàn)線接線 第九章心得體會(huì)通過(guò)這次單片機(jī)課程設(shè)計(jì),使我學(xué)到了很多專業(yè)知識(shí),WAVE6000的基礎(chǔ)使用方法,8051單片機(jī)的基本指令,基礎(chǔ)的編程方法,以及交通信號(hào)燈的工作方式和原理。在這一周的大部分時(shí)間都在設(shè)計(jì)硬件電路,編制程序和調(diào)試程序,讓我把以前學(xué)習(xí)到的知識(shí)得到鞏固和進(jìn)一步的提高認(rèn)識(shí),對(duì)已有知識(shí)有了更進(jìn)一步的理解和認(rèn)識(shí)。鞏固了單片機(jī)和數(shù)字邏輯電路的理論知識(shí),并對(duì)芯片有了新的認(rèn)識(shí),懂得它的功能和與其它芯片替換的方法等,更重要的是如何將邏輯電路靈活運(yùn)用到實(shí)際生活電路設(shè)計(jì)。在設(shè)計(jì)過(guò)程中,對(duì)我來(lái)說(shuō),學(xué)到的不僅是那些知識(shí),更是學(xué)會(huì)了自己獨(dú)立思考問(wèn)題的能力,不懂時(shí)查閱資料,請(qǐng)教老師同學(xué)。本次課程設(shè)計(jì)的過(guò)程是艱辛的,不過(guò)收獲卻是很大的。在此,忠心感謝老師,同學(xué)們一周以來(lái),辛苦耐心的指導(dǎo)和幫助!參考文獻(xiàn)1張淑清單片微型計(jì)算機(jī)接口技術(shù)及其應(yīng)用國(guó)防工業(yè)出版社2張淑清單片機(jī)原理及應(yīng)用技術(shù)國(guó)防工業(yè)出版社3姜武中單片機(jī)原理與接口技術(shù)大連理工大學(xué)出版社4單片機(jī)應(yīng)用技術(shù)匯編程序:ORG0000HLJMPSTARTORG000BH;定時(shí)器T0中斷入口地址LJMPTIME0INTORG0013H;外部中斷INT1入口地址LJMPINT1ORG0100HSTART:MOVSP,#50HMOVTMOD,#01H;定時(shí)器T0工作方式為1MOVTL0,#9EH;設(shè)定定時(shí)器初值MOVTH0,#58HSETBEA;開(kāi)總中斷SETBET0;允許T0中斷SETBTR0;啟動(dòng)定時(shí)SETBEX1;開(kāi)外部中斷INT1L1:MOVP1,#0ch;東西紅燈亮,南北綠燈亮MOVR2,#27MOVR3,#30LOOP1:LCALLDISP;顯示數(shù)據(jù)CJNER0,#23,LOOP1;南北綠燈亮23秒MOV60H,#0LOOP2:MOVR0,#0;南北綠燈取反LOOP3:LCALLDISPCJNER0,#1,LOOP3INC60HMOVA,60HCJNEA,#4,LOOP2;南北綠燈閃爍4秒MOV60H,#0MOVA,#0MOVR0,#0MOVP1,#0aHMOVR2,#3LOOP4:LCALLDISPCJNER0,#3,LOOP4;南北黃燈亮3秒MOVR0,#0MOVP1,#21H;東西綠燈亮,南北紅燈亮MOVR2,#30MOVR3,#27LOOP5:LCALLDISPCJNER0,#23,LOOP5;東西綠燈亮23秒LOOP6:MOVR0,#0;東西綠燈取反LOOP7:LCALLDISPCJNER0,#1,LOOP7INC60HMOVA,60HCJNEA,#4,LOOP6;東西綠燈閃爍4秒MOV60H,#0MOVA,#0MOVR0,#0MOVP1,#11HMOVR3,#3LOOP8:LCALLDISPCJNER0,#3,LOOP8;東西黃燈亮3秒MOVR0,#0LJMPL1;循環(huán)DISP:MOVR4,#20H;位選碼MOVR1,#70H;存放顯示數(shù)據(jù)起始地址LOOP9:MOVA,R2MOVB,#0AHDIVABMOV70H,A;一個(gè)方向顯示的十位數(shù)據(jù)存放在70H中MOVA,BMOV71h,A;一個(gè)方向顯示的個(gè)位數(shù)據(jù)存放在71H中MOVA,R3MOVB,#0AHDIVABMOV72H,A;另一方向顯示的十位數(shù)據(jù)存放在72H中MOVA,BMOV73H,A;另一方向顯示的個(gè)位數(shù)據(jù)存放在73H中MOVA,R4JBACC.1,LOOP10;位選碼控制動(dòng)態(tài)顯示四位數(shù)字MOVDPTR,#8002HMOVX@DPTR,A;位選碼送到8002HRRA;位選碼循環(huán)移位,動(dòng)態(tài)顯示四位數(shù)字MOVR4,AMOVA,@R1MOVDPTR,#TAB;表首地址給DPTRMOVCA,@A+DPTR;段選碼給AMOVDPTR,#8004HMOVX@DPTR,A;顯示數(shù)據(jù)送到8004HLCALLDELAYINCR1MOVDPTR,#8004HMOVA,#0MOVX@DPTR,AAJMPLOOP9LOOP10:RETTIME0INT:INCR5;定時(shí)中斷CJNER5,#20,LOOP11;循環(huán)20次,1秒定時(shí)INCR0DECR2;顯示數(shù)據(jù)倒計(jì)時(shí)DECR3MOVR5,#0LOOP11:MOVTH0,#9EH;重新賦初值MOVTL0,#58HRETI;中斷返回TAB:DB3fH,06H,5bH,4fH,66H,6dH,7dH,07H,7fH,6fHDELAY:MOVR7,#02HDL1:MOVR6,#0FFHDL2:DJNZR6,DL2DJNZR7,DL1RET;延時(shí)子程序,延時(shí)1msINT1:CLRTR0

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論