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

下載本文檔

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

文檔簡介

1、河南科技學(xué)院新科學(xué)院單片機(jī)課程設(shè)計(jì)報(bào)告題目:交通燈控制器設(shè)計(jì)專業(yè)班級:電氣工程及其自動(dòng)化101姓名:馬 佳 佳 時(shí) 間:2012.12.3 2012.12.21指導(dǎo)教師:徐君鵬 邵 鋒 苗青林 完成日期:2012年12月21 日交通燈控制器設(shè)計(jì)任務(wù)書1設(shè)計(jì)目的與要求設(shè)計(jì)一個(gè)交通燈控制器,要認(rèn)真并準(zhǔn)確地理解有關(guān)要求,獨(dú)立完成系統(tǒng)設(shè)計(jì),在雙干線的路口上,交通信號燈的變化按照下面假定進(jìn)行計(jì)時(shí):(1)放行線,綠燈亮放行25秒,黃燈亮警告5秒,然后紅燈亮禁止。(2)禁止線,紅燈亮禁止30秒,然后綠燈亮放行。使兩條路線交替的成為放行線和禁止線,便可實(shí)現(xiàn)交通控制。(3)特殊情況下能實(shí)現(xiàn)手動(dòng)操作。2設(shè)計(jì)內(nèi)容(

2、1)畫出電路原理圖,正確使用邏輯關(guān)系;(2)確定元器件及元件參數(shù);(3)進(jìn)行電路模擬仿真;(4)SCH文件生成與打印輸出;(5)PCB文件生成與打印輸出。3編寫設(shè)計(jì)報(bào)告寫出設(shè)計(jì)的全過程,附上有關(guān)資料和圖紙,有總結(jié)體會(huì)。4答辯在規(guī)定時(shí)間內(nèi),完成敘述并回答問題。目錄摘要31 引言42 總體設(shè)計(jì)方案42.1 設(shè)計(jì)思路52.2 設(shè)計(jì)滿足的基本功能52.3 主程序模塊的設(shè)計(jì)52.4 功能實(shí)現(xiàn)模塊的設(shè)計(jì)72.5 延時(shí)程序模塊的設(shè)計(jì)83 總結(jié)與體會(huì)9參考文獻(xiàn)9附1: 源程序代碼10附2: 系統(tǒng)原理圖20附3: 系統(tǒng)PCB圖20交通燈控制器摘要:本設(shè)計(jì)是關(guān)于單片機(jī)控制的交通燈模擬系統(tǒng)的設(shè)計(jì)。主要內(nèi)容有交通燈模

3、擬系統(tǒng)設(shè)計(jì)方案,主要功能,各功能模塊的介紹,電路設(shè)計(jì),硬件部分設(shè)計(jì),軟件部分設(shè)計(jì),模擬系統(tǒng)的仿真調(diào)試,設(shè)計(jì)方法以及課程設(shè)計(jì)的心得體會(huì)等等。該設(shè)計(jì)中用光二極管來模擬信號燈,緊急車的優(yōu)先通過請求信號由外部中斷技術(shù)來模擬。要求使AT89C52定時(shí)/計(jì)數(shù)器0作為定時(shí)器,要求對通行時(shí)間進(jìn)行倒計(jì)時(shí),從P0 口輸出,在LED上顯示并進(jìn)行遞減,以此來實(shí)現(xiàn)十字路口交通燈的指示功能。為了節(jié)省元件,復(fù)位部分采用加電直接復(fù)位。根據(jù)交通燈系統(tǒng)所需要實(shí)現(xiàn)的功能要求,先畫出中斷程序部分的流程圖和主程序流程圖,然后根據(jù)流程圖寫出其子程序。從而通過模擬系統(tǒng)的仿真來實(shí)現(xiàn)該設(shè)計(jì)所要求的功能。本系統(tǒng)由單片機(jī)系統(tǒng)、鍵盤、LED 顯示、

4、交通燈演示系統(tǒng)組成。最后,系統(tǒng)要求實(shí)現(xiàn)如下的交通燈的功能:1)南北方向(主干道)車道和東西方向(支干道)車道兩條交叉道路上的車輛交替運(yùn)行,主干道每次通行時(shí)間都設(shè)為30秒、支干道每次通行間為20秒,時(shí)間可設(shè)置修改。2)在綠燈轉(zhuǎn)為紅燈時(shí),要求黃燈先亮5秒鐘,才能變換運(yùn)行車道;3)黃燈亮?xí)r,要求每秒閃亮一次4)東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時(shí)間都用顯示器進(jìn)行顯示(采用計(jì)時(shí)的方法)。5)一道有車而另一道無車(實(shí)驗(yàn)時(shí)用開關(guān) K0 和 K1 控制),交通燈控制系統(tǒng)能立即讓有車道放行。 6)有緊急車輛要求通過時(shí),系統(tǒng)要能禁止普通車輛通行,A、B道均為紅燈,緊急車由K2 開關(guān)模擬

5、。 關(guān)鍵字 : 單片機(jī) 交通燈系統(tǒng) LED顯示 1 引言交通的發(fā)達(dá),標(biāo)志著城市的發(fā)達(dá),相對交通的管理則顯得越來越重要。交通燈是城市交通中的重要指揮系統(tǒng),它與人們?nèi)粘I蠲芮邢嚓P(guān)隨著人們生活水平的提高,對交通管制也提出了更高的要求,因此提供一個(gè)可靠、安全、便捷的多功能交通燈控制系統(tǒng)有著現(xiàn)實(shí)的必要性。考慮到單片機(jī)具有物美價(jià)廉、功能強(qiáng)、使用方便靈活、可靠性高等特點(diǎn),擬采用MCS - 51系列的單片機(jī)來實(shí)現(xiàn)十字路口交通信號燈的控制。 正常情況下,十字路口的紅綠燈應(yīng)交替變換,考慮緊急情況下,如有救護(hù)車或警車到來時(shí),應(yīng)優(yōu)先讓其通過。交通燈模擬系統(tǒng)的課程設(shè)計(jì)既讓學(xué)生鞏固了課本學(xué)到的理論,還讓學(xué)生學(xué)習(xí)了單片機(jī)

6、硬件電路設(shè)計(jì)和用戶程序設(shè)計(jì)的整個(gè)過程,同時(shí)學(xué)習(xí)了查閱資料、參考資料的方法。單片機(jī)的課程設(shè)計(jì)主要是通過學(xué)生獨(dú)立設(shè)計(jì)方案并自己動(dòng)手用計(jì)算機(jī)電路設(shè)計(jì)軟件,編寫和調(diào)試用戶程序,來加深對單片機(jī)的認(rèn)識,充分發(fā)揮學(xué)生的個(gè)體創(chuàng)新能力。2 總體設(shè)計(jì)方案交通燈在安全行車過程中起著十分重要的作用,現(xiàn)在交通燈一般設(shè)在十字路口,在醒目位置用紅、綠、黃三種顏色的指示燈, 加上一個(gè)倒計(jì)時(shí)的顯示計(jì)時(shí)器來控制行車, 對于一般情況下的安全行車、車輛分流發(fā)揮著作用, 但根據(jù)實(shí)際行車過程中出現(xiàn)的情況, 如何全面有效地利用交通燈指示交通情況,我們嘗試用單片機(jī)來控制交通燈,在軟、硬件方面采取一些改進(jìn)措施,,使交通燈在控制中靈活而有效。硬

7、件系統(tǒng)是指構(gòu)成單片機(jī)系統(tǒng)的實(shí)體和裝置,通常由運(yùn)算器、控制器、存儲器、輸入接口電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。單片機(jī)實(shí)質(zhì)上是一個(gè)硬件的芯片,在實(shí)際應(yīng)用中,通常很難直接和被控對象進(jìn)行電氣連接,必須外加各種擴(kuò)展接口電路、外部設(shè)備、被控對象等硬件和軟件,才能構(gòu)成一個(gè)單片機(jī)應(yīng)用系統(tǒng)。該交通燈擬系統(tǒng)的硬件部分主要由鍵盤、顯示和運(yùn)算部分組成。按照題目的設(shè)計(jì)要求,本課題需要使用LED數(shù)碼管顯示和擴(kuò)展 鍵盤。在該交通燈系統(tǒng)的設(shè)計(jì)中采用AT89C52單片機(jī)。2.1 設(shè)計(jì)思路該設(shè)計(jì)在熟練掌握單片機(jī)及其仿真系統(tǒng)的使用方法基礎(chǔ)上,綜合應(yīng)用單片機(jī)原理、微機(jī)原理、微機(jī)接口技術(shù)等課程方面的知識,設(shè)計(jì)一個(gè)采用AT

8、89C52單片機(jī)控制的交通燈控制電路。分別分析各部分電路的元器件的功能以及選擇合適的元件。具體設(shè)計(jì)思路如下:收集并整理資料,硬件設(shè)計(jì),軟件設(shè)計(jì),Proteus仿真,設(shè)計(jì)體會(huì)與總結(jié)。2.2 設(shè)計(jì)滿足的基本功能 1)南北方向(主干道)車道和東西方向(支干道)車道兩條交叉道路上的車輛交替運(yùn)行,主干道每次通行時(shí)間都設(shè)為30秒、支干道每次通行間為20秒,時(shí)間可設(shè)置修改。2)在綠燈轉(zhuǎn)為紅燈時(shí),要求黃燈先亮5秒鐘,才能變換運(yùn)行車道;3)黃燈亮?xí)r,要求每秒閃亮一次4)東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時(shí)間都用顯示器進(jìn)行顯示(采用計(jì)時(shí)的方法)。5)一道有車而另一道無車(實(shí)驗(yàn)時(shí)用開關(guān) K

9、0 和 K1 控制),交通燈控制系統(tǒng)能立即讓有車道放行。 6)有緊急車輛要求通過時(shí),系統(tǒng)要能禁止普通車輛通行,A、B道均為紅燈,緊急車由K2 開關(guān)模擬。 2.3 主程序模塊的設(shè)計(jì)主程序流程圖如下圖A所示:該交通信號燈控制系統(tǒng)的四中工作狀態(tài)(南北方向的交通燈為例):(1)南北方向A車道紅燈亮,東西方向B車道綠燈亮。表示南北方向A車道上的車輛禁止通行,東西方向B車道允許通行。綠燈亮足規(guī)定的時(shí)間隔時(shí),控制器發(fā)出狀態(tài)信號,轉(zhuǎn)到下一工作狀態(tài)。    (2)南北方向A車道紅燈亮,東西方向B車道黃燈亮。表示東西方向B車道上未過停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行,南北

10、方向A車道禁止通行。黃燈亮足規(guī)定時(shí)間間隔時(shí),控制器發(fā)出狀態(tài)轉(zhuǎn)換信號,轉(zhuǎn)到下一工作狀態(tài)。    (3)南北方向A車道綠燈亮,東西方向B車道紅燈亮。表示南北方向A車道允許通行,東西方向B車道上的車輛禁止通行,綠燈亮足規(guī)定的時(shí)間間隔時(shí),控制器發(fā)出狀態(tài)轉(zhuǎn)換信號,轉(zhuǎn)到下一工作狀態(tài)。    (4)南北方向A車道黃燈亮,東西方向B車道紅燈亮。表示東西方向B車道禁止通行,南北方向A車道上位過限停車線的車輛停止通行,已過停車線的車輛繼續(xù)通行。黃燈亮足規(guī)定的時(shí)間間隔時(shí),控制器發(fā)出狀態(tài)轉(zhuǎn)換信號,系統(tǒng)又轉(zhuǎn)換到第(1)種工作狀態(tài)??刂茻舫绦蛄鞒虉D如下:置A道放

11、行標(biāo)志0F0A到放行時(shí)間送 R4A道有車?A道亮綠燈,B道亮紅燈B道有車?YN開始允許中斷B道亮黃燈,A道亮紅燈延時(shí)5秒A道亮黃燈,B道亮紅燈R4-1=0?A道有車?B到放行時(shí)間送 R5B道亮綠燈,A道亮紅燈延時(shí)0.5秒延時(shí)0.5秒置B道放行標(biāo)志0F0延時(shí)5秒B道有車?R5-1=0?YNYYYN 圖A 交通燈控制流程圖 2.4 功能實(shí)現(xiàn)模塊的設(shè)計(jì)功能實(shí)現(xiàn)模塊主要由中斷處理子程序,鍵盤處理子程序和顯示子程序等組成。下面僅對T0中斷服務(wù)程序部分進(jìn)行簡單介紹。T0與K2連接,K2與地連接。按下K2,東西南北四個(gè)方向全紅,也就是說,東西南北四個(gè)通道都不能通車。 K1與AT89C52的35管腳相連。在按

12、下K3的前提下,按下K1,此時(shí)顯示的是東西的總時(shí)間,并可對其調(diào)節(jié)。調(diào)節(jié)以后,若長按K3鍵,則交通燈恢復(fù)正常。先按K3鍵,再按K0和K1可分別對它們進(jìn)行加一和減一操作。其中中斷服務(wù)程序流程圖下圖B所示:A道亮黃燈,B道亮紅燈B道亮綠燈,A道亮紅燈A道亮綠燈,B道亮紅燈開始延時(shí)5秒A道亮黃燈,B道亮紅燈B道亮黃燈,A道亮紅燈緊急車通過A道放行返回YNYNN原道A放行圖B 交通燈控制中的中斷控制流程2.5 延時(shí)程序模塊的設(shè)計(jì)延遲程序塊是要生成一定的是時(shí)間延時(shí),這在數(shù)碼管顯示模塊中會(huì)用到延遲程序,以滿足足動(dòng)態(tài)掃描時(shí)數(shù)碼管的閃亮能產(chǎn)生視覺效果。3 Proteus軟件仿真一個(gè)單片機(jī)系統(tǒng)經(jīng)過總體設(shè)計(jì),完成了

13、硬件和軟件開發(fā)。元器件安裝后在系統(tǒng)存儲器中放入編制好的應(yīng)用程序,系統(tǒng)即可運(yùn)行。一般來說,仿真開發(fā)系統(tǒng)應(yīng)具有如下的功能:1)用戶樣機(jī)硬件電路的診斷與檢查;2)用戶樣機(jī)程序的輸入與修改; 3)程序的運(yùn)行、調(diào)試(單步運(yùn)行、設(shè)置斷點(diǎn))、排錯(cuò)、狀態(tài)查詢功能; 4)將程序固化到EPROM芯片中。仿真結(jié)果如下圖C所示:圖C 仿真圖3 總結(jié)與體會(huì) 通過這次單片機(jī)課程設(shè)計(jì),不僅加深了我對單片機(jī)理論的理解,將理論應(yīng)用到實(shí)際中去,而且我還學(xué)會(huì)了如何培養(yǎng)創(chuàng)新精神。這次設(shè)計(jì)過程中與到了很多困難,比如對protus軟件的理解不透徹,對DXP制版的不熟悉等等,但我通過查資料,問同學(xué),都一一的將它們化解在春風(fēng)中。其實(shí)設(shè)計(jì)過程

14、就好像我們的人生歷程一樣,不如意之事十之八九,但我們依然要迎著風(fēng),冒著雨,一步步走出我們璀璨的人生參考文獻(xiàn) 1 蔡美琴等-2版.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用.北京:高等教育出版社,2004.1-4 2 張毅剛,劉杰. MCS-51系列單片機(jī)原理及應(yīng)用.哈爾濱:哈爾濱工業(yè)大學(xué)出版社,2004.256-270 3 蔡美琴,張為民等.MCS-51系列單片機(jī)系統(tǒng)及其應(yīng)用.北京:高等教育出版社,1992.68-96 4 蔣廷彪等.單片機(jī)原理及應(yīng)用(MCS-51).重慶:重慶大學(xué)出版社,2003.56-89 5 余發(fā)山,王福忠.單片機(jī)原理及應(yīng)用技術(shù).徐州:中國礦業(yè)大學(xué)出版社,2003.98-120附

15、1 源程序代碼 ORG 0000H AJMP MAIN ORG 0003H LJMP INTERRUPT0 ; 跳到設(shè)定時(shí)間中斷服務(wù)程序 ORG 000BH LJMP INTERRUPT1 ; 跳到跳到特種車輛自動(dòng)服務(wù)程序 ORG 0013H LJMP INT2 ; 跳到南北有車東西無車中斷服務(wù)程序 ORG 001BH LJMP INT3 ; 跳到東西有車南北無車中斷服務(wù)程序 ORG 0100H TAB: DB 3FH,6H,5BH,4FH,66H,6DH,7DH,7H,7FH,6FH ORG 0300H MAIN: MOV 25H,#30 ; 南北通行時(shí)間初始值,存到25H單元 MOV 26

16、H,#20 ; 東西通行時(shí)間初始值,存到26H單元 MOV SP,#40H ; 堆棧選址 CLR P3.0 ; MOV TMOD,#66H ; T0、T1都計(jì)數(shù)方式,工作模式2 ,啟動(dòng)方式TRi確定 MOV TL0,#255 ; 計(jì)數(shù)器0初值 低8位 MOV TH0,#0 ; 計(jì)數(shù)器0初值高8位 MOV TL1,#255 ; 計(jì)數(shù)器1初值 低8位 MOV TH1,#0 ; 計(jì)數(shù)器1初值高8位 SETB IT0 ; 外部中斷一邊沿觸發(fā) SETB IT1 ; 外部中斷二邊沿觸發(fā) MOV IE,#8FH ; 開中斷 SETB TR0 ; T0開始計(jì)數(shù) SETB TR1 ; T1 開始計(jì)數(shù) NBLD:

17、 CLR P3.0 ; MOV R1,25H ; 南北通行時(shí)間30秒(25h)=30,(NBLD即東西綠燈) NBLD1: MOV P2,#1EH ; 點(diǎn)亮南北綠燈東西紅燈 MOV 20H,R1 ; 為南北方向顯示時(shí)間做準(zhǔn)備 MOV A,R1 ; ADD A,#5 ; MOV 21H,A ; 為東西方向顯示時(shí)間做準(zhǔn)備 LCALL DISP1 ; 顯示通行所剩時(shí)間,其中有0.5秒延時(shí) LCALL DISP1 ; 再次顯示以便數(shù)碼管不閃,且再延時(shí)0.4秒以便湊夠一秒 DJNZ R1,NBLD1 ; 判斷30秒是否已完,若未完則從新顯示、延時(shí)ShanHD: MOV R2,#5 ; 黃燈閃亮5秒 HD

18、: MOV P2,#1DH ; 點(diǎn)亮黃燈 MOV 22H,R2 ; 為顯示時(shí)間做準(zhǔn)備 LCALL DISP2 ; 黃燈閃亮剩時(shí)顯示 ,其中延時(shí)0.5秒 MOV P2,#1FH ; 熄滅黃燈 LCALL DISP2 ; 顯時(shí),且再延時(shí)0.5秒以便湊夠1秒 DJNZ R2,HD ; 判斷5秒是否已完,若未完則從新閃滅、延時(shí)和顯示 DXLD: CLR P3.0 ; MOV R3,26H ; 東西通行20秒 (26H)=20, (DXLD即東西綠燈) DXLD1: MOV P2,#33H ; 點(diǎn)亮南北紅燈東西綠燈 MOV 24H,R3 ; 為東西方向顯示時(shí)間做準(zhǔn)備 MOV A,R3 ; ADD A,#

19、5 ; MOV 23H,A ; 為南北方向顯示時(shí)間做準(zhǔn)備 LCALL DISP3 ; 時(shí)間顯示 ,其中有0.5秒延時(shí) LCALL DISP3 ; 湊夠1秒時(shí)間 DJNZ R3,DXLD1 ; 判斷20秒是否已完ShanHD1: MOV R2,#5 ; 轉(zhuǎn)入黃燈閃亮5秒 HD1: MOV 22H,R2 ; 為顯示做準(zhǔn)備 MOV P2,#2BH ; 點(diǎn)亮南北紅燈東西黃燈 LCALL DISP2 ; 顯示時(shí)間,并延時(shí)0.5秒 MOV P2,#3BH ; 點(diǎn)亮南北紅燈關(guān)閉東西黃燈 LCALL DISP2 ; 顯時(shí),且再延時(shí)0.5秒以便湊夠1秒 DJNZ R2,HD1 ; 判斷5秒是否到,若未到繼續(xù)閃滅

20、東西黃燈 AJMP NBLDTezhong: MOV P2,#1BH ; 點(diǎn)亮東西南北紅燈 SETB P3.0 ; MOV R4,#15 ; 特殊車輛通過時(shí)間15秒 QHD: MOV 27H,R4 ; 為顯示做準(zhǔn)備 LCALL DISP4 ; 顯示時(shí)間 DJNZ R4,QHD ; 判斷15秒是否到,若不到繼續(xù)顯示時(shí)間 CLR p3.0 ; AJMP NBLD DELAY: ACALL DELAY1 ; 10ms延時(shí) ACALL DELAY1 RET DELAY1: MOV R6,#50 ; 5ms延時(shí) ,(5ms=50*50*2us) DE6: MOV R0,#50 DE7: DJNZ R0,

21、DE7 DJNZ R6,DE6 RET DISP1: MOV P0,#0 ; 熄滅數(shù)碼管 MOV R7,#25 ; 以下調(diào)用四次5毫秒延時(shí)程序,故25*4*5毫秒=0.5秒 RP1: MOV A,20H ; 南北方向要顯示的時(shí)間移到寄存器A MOV DPTR,#TAB ; 要顯示的數(shù)字代碼表首地址 MOV B,#10 DIV AB ; 要顯示的時(shí)間與10相除,求出十位和個(gè)位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001110B; 選擇南北數(shù)碼管十位片 MOV P0,A ; 送出十位顯示代碼 LCALL DELAY1 ; 延時(shí)5ms以點(diǎn)亮數(shù)碼管 MOV A,B

22、; 把個(gè)位數(shù)移到寄存器A MOVC A,A+DPTR ; 找到個(gè)位數(shù)顯示代碼 MOV P1,#00001101B ; 選擇南北數(shù)碼管個(gè)位片 MOV P0,A ; 送出個(gè)位數(shù)顯示代碼 LCALL DELAY1 ; 延時(shí)5ms以點(diǎn)亮數(shù)碼管 MOV A,21H ; 東西方向要顯示的時(shí)間移到寄存器A MOV DPTR,#TAB ; 要顯示的數(shù)字代碼表首地址 MOV B,#10 DIV AB ; 要顯示的時(shí)間與10相除,求出十位和個(gè)位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001011B; 選擇東西數(shù)碼管的十位片 MOV P0,A ; 送出十位顯示代碼 LCALL DE

23、LAY1 ; 延時(shí)5ms以點(diǎn)亮數(shù)碼管 MOV A,B ; 把個(gè)位數(shù)移到寄存器A MOVC A,A+DPTR ; 找到個(gè)位的顯示代碼 MOV P1,#00000111B ; 選擇東西數(shù)碼管的個(gè)位片 MOV P0,A ; 送出個(gè)位顯示碼 LCALL DELAY1 DJNZ R7,RP1 ; 是否已循環(huán)25次?(25次才夠0.5秒) RET DISP2: MOV P0,#0 ; 熄滅數(shù)碼管 MOV R7,#25 ; 以下調(diào)用兩次0.01秒延時(shí)程序,故25*0.02=0.5秒 RP2: MOV A,22H ; 要顯示的時(shí)間移到寄存器A MOV DPTR,#TAB ; 要顯示的數(shù)字代碼表首地址 MOV

24、B,#10 DIV AB ; 要顯示的時(shí)間與10相除,求出十位和個(gè)位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001010B; 選擇南北數(shù)碼管十位片和東西數(shù)碼管十位片 MOV P0,A ; 送出十位顯示代碼 LCALL DELAY ; 延時(shí)10ms以點(diǎn)亮數(shù)碼管 MOV P1,#00000101B ; 選擇南北數(shù)碼管個(gè)位片和東西數(shù)碼管個(gè)位片 MOV A,B ; 把個(gè)位數(shù)移到寄存器A MOVC A,A+DPTR ; 找到個(gè)位數(shù)顯示代碼 MOV P0,A ; 送出個(gè)位數(shù)顯示代碼 LCALL DELAY ; 延時(shí)10ms一點(diǎn)亮數(shù)碼管 DJNZ R7,RP2 RET DI

25、SP3: MOV P0,#0 ; 熄滅數(shù)碼管 MOV R7,#25 ; 以下調(diào)用兩次0.01秒延時(shí)程序,故10*0.05=0.5秒 RP3: MOV A,23H ; 要南北方向顯示的時(shí)間移到寄存器A MOV DPTR,#TAB ; 要顯示的數(shù)字代碼表首地址 MOV B,#10 DIV AB ; 要顯示的時(shí)間與10相除,求出十位和個(gè)位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001110B; 選擇南北數(shù)碼管十位片 MOV P0,A ; 送出十位顯示代碼 LCALL DELAY1 ; 延時(shí)5ms以點(diǎn)亮數(shù)碼管 MOV A,B ; 把個(gè)位數(shù)移到寄存器A MOVC A,A

26、+DPTR ; 找到個(gè)位數(shù)顯示代碼 MOV P1,#00001101B; 選擇南北道數(shù)碼管個(gè)位片 MOV P0,A ; 送出個(gè)位數(shù)顯示代碼 LCALL DELAY1 ; 延時(shí)5ms一點(diǎn)亮數(shù)碼管 MOV A,24H ; 要東西方向顯示的時(shí)間移到寄存器A MOV B,#10 DIV AB ; 要顯示的時(shí)間與10相除,求出十位和個(gè)位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001011B ; MOV P0,A ; 送出十位顯示代碼 LCALL DELAY1 ; 延時(shí)5ms以點(diǎn)亮數(shù)碼管 MOV A,B MOVC A,A+DPTR MOV P1,#00000111B ;

27、選擇東西數(shù)碼管個(gè)位片 MOV P0,A ; 送出個(gè)位顯示代碼 LCALL DELAY1 DJNZ R7,RP3 RET DISP4: MOV P0,#0 ; 熄滅數(shù)碼管 MOV R7,#50 ; 以下調(diào)用兩次0.01秒延時(shí)程序,故40*2*0.01=1秒 RP4: MOV A,27H ; 要顯示的時(shí)間移到寄存器A MOV DPTR,#TAB ; 要顯示的數(shù)字代碼表首地址 MOV B,#10 DIV AB ; 要顯示的時(shí)間與10相除,求出十位和個(gè)位 MOVC A,A+DPTR ; 找到十位的顯示代碼 MOV P1,#00001010B; 選擇南北、東西數(shù)碼管十位片 MOV P0,A ; 送出十位

28、顯示代碼 LCALL DELAY ; 延時(shí)10ms以點(diǎn)亮數(shù)碼管 MOV A,B ; 把個(gè)位數(shù)移到寄存器A MOVC A,A+DPTR ; 找到個(gè)位數(shù)顯示代碼 MOV P1,#00000101B; 選擇南北、東西數(shù)碼管的個(gè)位片 MOV P0,A ; 送出個(gè)位數(shù)顯示代碼 LCALL DELAY ; 延時(shí)10ms一點(diǎn)亮數(shù)碼管 DJNZ R7,RP4 RET INTERRUPT0: MOV IE,#0 ; 關(guān)閉中斷允許 MOV A,P2 ; 讀取交通燈狀態(tài) JNB Acc.3,DXSJ ; P2.3,DXSJ ; DXSJ(東西綠燈亮(P2.3=0)則設(shè)定東西通行時(shí)間 ) JNB Acc.0,NBSJ

29、 ; P2.0,NBSJ ; NBSJ (南北綠燈亮(P2.0=0)則設(shè)定南北通行時(shí)間 ) POP 28H ; POP 28H ; MOV DPTR,#NBLD ; 如果不能調(diào)整時(shí)間(沒有綠燈亮)則退出后從狀態(tài)1開始,相當(dāng)于復(fù)位。 PUSH DPL ; PUSH DPH ; EXIT: MOV IE,#8FH ; 恢復(fù)開中斷 RETI NBSJ: POP 28H ; POP 28H ; MOV DPTR,#NBLD ; 此處設(shè)時(shí)為南北通行時(shí)間 PUSH DPL ; 把斷點(diǎn)換成南北綠燈(NBLD)入口 PUSH DPH ; XSSM1: MOV A,25H ; 讀取南北通行時(shí)間 MOV 20H,

30、A ; 為南北方向顯示時(shí)間做準(zhǔn)備 ADD A,#5 ; MOV 21H,A ; 為東西方向顯示時(shí)間做準(zhǔn)備 LCALL DISP1 ; 顯示時(shí)間 LCALL DELAY1 MOV A,P3 JNB P3.2,EXIT ; 判斷有否按下設(shè)時(shí)確定按鈕,若有則退出,若無接著判斷加時(shí)和減時(shí)信號 JNB P3.3,JX ; 判斷有否加時(shí)信號(p3.3所接按鈕是否按下)若有跳轉(zhuǎn)處理,無則掃描減時(shí)信號 JNB P3.5,JX1 ; 判斷有否減時(shí)信號 AJMP XSSM1 ; 從循環(huán)顯示時(shí)間和掃描按鍵情況 JX: MOV A,25H ; 讀出之前設(shè)定的時(shí)間值(存儲在25H單元) ADD A,#1 ; 在之前值基

31、礎(chǔ)上加1處理 MOV 25H,A ; 回存到25H單元 MOV 20H,A ; 為南北顯示時(shí)間做準(zhǔn)備 ADD A,#5 ; MOV 21H,A ; 為東西方向顯示時(shí)間做準(zhǔn)備 LCALL DISP1 ; 顯示處理后的時(shí)間值 AJMP XSSM1 ; 從循環(huán)顯示時(shí)間和掃描按鍵情況 JX1: MOV A,25H ; 讀出之前設(shè)定的時(shí)間值(存儲在25H單元) SUBB A,#1 ; 在之前值基礎(chǔ)上減1處理 MOV 25H,A ; 回存到25H單元 MOV 20H,A ; 為南北方向顯示時(shí)間做準(zhǔn)備 ADD A,#5 ; MOV 21H,A ; 為東西方向顯示時(shí)間做準(zhǔn)備 LCALL DISP1 ; 顯示處

32、理后的時(shí)間值 AJMP XSSM1 ; 從循環(huán)顯示時(shí)間和掃描按鍵情況 DXSJ: POP 28H ; POP 28H ; MOV DPTR,#DXLD ; 此處設(shè)時(shí)為東西通行時(shí)間,故若此步處理后返回則應(yīng)讓東西通行故 PUSH DPL ; 把斷點(diǎn)換成東西綠燈(DXLD)入口 PUSH DPH ; XSSM2: MOV A,26H ; 讀取東西通行時(shí)間值 MOV 24H,A ; 為東西方向顯示時(shí)間做準(zhǔn)備 ADD A,#5 ; MOV 23H,A ; 為南北方向顯示時(shí)間做準(zhǔn)備 LCALL DISP3 ; 顯示時(shí)間 MOV A,P3 JNB P3.2,EXIT1 ; 判斷有否按下設(shè)時(shí)確定按鈕,若有則退

33、出,若無接著判斷加時(shí)和減時(shí)信號 JNB P3.3,JX2 ; 判斷有否加時(shí)信號(p3.3所接按鈕是否按下)若有跳轉(zhuǎn)處理,無則掃描減時(shí)信號 JNB P3.5,JX3 ; 判斷有否減時(shí)信號 AJMP XSSM2 ; 從循環(huán)顯示時(shí)間和掃描按鍵情況 EXIT1: LJMP EXIT ; 因?yàn)槿绻嫌沃噶睿↗NB P3.2,EXIT1)為直接JNB p3.2,EXIT則跳出范圍 JX2: MOV A,26H ; 讀出之前設(shè)定的時(shí)間值(存儲在26H單元) ADD A,#1 ; 在之前值基礎(chǔ)上加1處理 MOV 26H,A ; 回存到26H單元 MOV 24H,A ; 為東西方向顯時(shí)間示做準(zhǔn)備 ADD A,#5 ; MOV 23H,A ; 為南北方向顯示時(shí)間做準(zhǔn)備 LCALL DISP3 ; 顯示處理后的時(shí)間值 AJMP XSSM2 ; 從循環(huán)顯示時(shí)間和掃描按鍵情況 JX3: MOV A,26H ; 讀出之前設(shè)定的時(shí)間值(存儲在26H單元) SUBB A,#1 ; 在之前值基礎(chǔ)上減1

溫馨提示

  • 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

提交評論