課程設(shè)計(jì)(論文)基于51單片機(jī)的交通燈控制設(shè)計(jì)_第1頁(yè)
課程設(shè)計(jì)(論文)基于51單片機(jī)的交通燈控制設(shè)計(jì)_第2頁(yè)
課程設(shè)計(jì)(論文)基于51單片機(jī)的交通燈控制設(shè)計(jì)_第3頁(yè)
課程設(shè)計(jì)(論文)基于51單片機(jī)的交通燈控制設(shè)計(jì)_第4頁(yè)
課程設(shè)計(jì)(論文)基于51單片機(jī)的交通燈控制設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(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)介

1、皖 西 學(xué) 院課程設(shè)計(jì)報(bào)告系 別: 機(jī)電學(xué)院 專 業(yè): 學(xué) 生 姓 名 : 學(xué)號(hào): 課程設(shè)計(jì)題目: 基于51單片機(jī)的交通燈控制設(shè)計(jì) 起 止 日 期 : 06月13日06月25日 課程設(shè)計(jì)地點(diǎn): 指 導(dǎo) 教 師 : 目錄1 概述31.1 設(shè)計(jì)的意義31.2 設(shè)計(jì)的思想31.3 設(shè)計(jì)滿足的基本功能42 系統(tǒng)方案及硬件設(shè)計(jì)42.1 系統(tǒng)方案的確定42.2 顯示部分電路設(shè)計(jì)42.3 時(shí)鐘部分電路設(shè)計(jì)52.4 復(fù)位部分電路設(shè)計(jì)63 軟件設(shè)計(jì)73.1 應(yīng)用系統(tǒng)軟件設(shè)計(jì)要求73.2 主程序模塊的設(shè)計(jì)73.3 功能實(shí)現(xiàn)模塊的設(shè)計(jì)83.4 延時(shí)程序模塊的設(shè)計(jì)84 proteus軟件仿真84.1 具體仿真結(jié)果顯示

2、85 課程設(shè)計(jì)體會(huì)9參考文獻(xiàn)9附1: 源程序代碼10附2: 系統(tǒng)原理圖15摘要:本設(shè)計(jì)是關(guān)于單片機(jī)控制的交通燈模擬系統(tǒng)的設(shè)計(jì)。主要內(nèi)容有交通燈模擬系統(tǒng)設(shè)計(jì)方案,主要功能,各功能模塊的介紹,電路設(shè)計(jì),硬件部分設(shè)計(jì),軟件部分設(shè)計(jì),模擬系統(tǒng)的仿真調(diào)試,設(shè)計(jì)方法以及課程設(shè)計(jì)的心得體會(huì)等等。該設(shè)計(jì)中用光二極管來(lái)模擬信號(hào)燈。要求使at89s51定時(shí)/計(jì)數(shù)器0作為定時(shí)器,要求對(duì)通行時(shí)間進(jìn)行倒計(jì)時(shí),從p0 口輸出,在led上顯示并進(jìn)行遞減,以此來(lái)實(shí)現(xiàn)十字路口交通燈的指示功能。為了節(jié)省元件,使仿真圖看起來(lái)一目了然,復(fù)位部分采用加電直接復(fù)位。根據(jù)交通燈系統(tǒng)所需要實(shí)現(xiàn)的功能要求,先畫出程序部分的流程圖和主程序流程圖

3、,然后根據(jù)流程圖寫出其子程序。從而通過(guò)模擬系統(tǒng)的仿真來(lái)實(shí)現(xiàn)該設(shè)計(jì)所要求的功能。本系統(tǒng)由單片機(jī)系統(tǒng)、鍵盤、led 顯示、交通燈演示系統(tǒng)組成。最后,系統(tǒng)要求實(shí)現(xiàn)如下的交通燈的功能:1)東西方向(主干道)車道和南北方向(支干道)車道兩條交叉道路上的車輛交替運(yùn)行,主干道每次通行時(shí)間都設(shè)為80秒、支干道每次通行間為60秒,時(shí)間可設(shè)置修改。2)在綠燈轉(zhuǎn)為紅燈時(shí),要求黃燈先亮3秒鐘,才能變換運(yùn)行車道;關(guān)鍵字 : 單片機(jī) 交通燈系統(tǒng) led顯示 1概述1.1設(shè)計(jì)意義交通的發(fā)達(dá),標(biāo)志著城市的發(fā)達(dá),相對(duì)交通的管理則顯得越來(lái)越重要。交通燈是城市交通中的重要指揮系統(tǒng),它與人們?nèi)粘I蠲芮邢嚓P(guān)隨著人們生活水平的提高,對(duì)

4、交通管制也提出了更高的要求,因此提供一個(gè)可靠、安全、便捷的多功能交通燈控制系統(tǒng)有著現(xiàn)實(shí)的必要性。對(duì)于復(fù)雜的城市交通系統(tǒng),為了確保安全,保證正常的交通秩序,十字路口的信號(hào)控制必需按照一定的規(guī)律變化,以便于車輛行人能順利地通過(guò)十字路口。單片機(jī)自問(wèn)世以來(lái),性能不斷提高和完善,其資源又能滿足很多場(chǎng)合的應(yīng)用,加之單片機(jī)具有集成度高、功能強(qiáng)、速度快、體積小、功耗低、使用方便、性能可靠、價(jià)格低廉,其易于產(chǎn)品化、抗干擾能力強(qiáng)、可在各種惡劣環(huán)境下可靠的工作等特點(diǎn)。特別是它強(qiáng)大的面向控制能力,使它在工業(yè)控制領(lǐng)域,智能儀表、外設(shè)控制、家用電器、機(jī)器人、軍事裝置等方面得到了廣泛的應(yīng)用??紤]到單片機(jī)具有物美價(jià)廉、功能強(qiáng)

5、、使用方便靈活、可靠性高等特點(diǎn),擬采用mcs - 51系列的單片機(jī)來(lái)實(shí)現(xiàn)十字路口交通信號(hào)燈的控制。 正常情況下,十字路口的紅綠燈應(yīng)交替變換,考慮緊急情況下,如有救護(hù)車或警車到來(lái)時(shí),應(yīng)優(yōu)先讓其通過(guò)。另外,單片機(jī)課程設(shè)計(jì)是電氣自動(dòng)化本科學(xué)生的必修課程。通過(guò)交通燈模擬系統(tǒng)的設(shè)計(jì)可以進(jìn)一步認(rèn)識(shí)單片機(jī)在控制系統(tǒng)中的重要性。在完成理論學(xué)習(xí)和必要的實(shí)驗(yàn)后,學(xué)生掌握了單片機(jī)的基本原理和各種基本功能的應(yīng)用,但對(duì)單片機(jī)的硬件實(shí)際應(yīng)用設(shè)計(jì)和單片機(jī)完整的用戶程序設(shè)計(jì)還不清楚,實(shí)際動(dòng)手能力不夠,因此對(duì)該課程進(jìn)行一次課程設(shè)計(jì)是有必要的。交通燈模擬系統(tǒng)的課程設(shè)計(jì)既讓學(xué)生鞏固了課本學(xué)到的理論,還讓學(xué)生學(xué)習(xí)了單片機(jī)硬件電路設(shè)計(jì)

6、和用戶程序設(shè)計(jì)的整個(gè)過(guò)程,同時(shí)學(xué)習(xí)了查閱資料、參考資料的方法。單片機(jī)的課程設(shè)計(jì)主要是通過(guò)學(xué)生獨(dú)立設(shè)計(jì)方案并自己動(dòng)手用計(jì)算機(jī)電路設(shè)計(jì)軟件,編寫和調(diào)試用戶程序,來(lái)加深對(duì)單片機(jī)的認(rèn)識(shí),充分發(fā)揮學(xué)生的個(gè)體創(chuàng)新能力。1.2 設(shè)計(jì)的思想該設(shè)計(jì)在熟練掌握單片機(jī)及其仿真系統(tǒng)的使用方法基礎(chǔ)上,綜合應(yīng)用單片機(jī)原理、微機(jī)原理、微機(jī)接口技術(shù)等課程方面的知識(shí),設(shè)計(jì)一個(gè)采用at89s51單片機(jī)控制的交通燈控制電路。根據(jù)設(shè)計(jì)功能及要求,我們可得系統(tǒng)的原理框圖如圖所示。上電復(fù)位電路89s51數(shù)據(jù)信號(hào)led數(shù)碼管段碼調(diào)時(shí)電路振蕩電路片選交通燈根據(jù)系統(tǒng)的原理框圖,分別分析各部分電路的元器件的功能以及選擇合適的元件。具體設(shè)計(jì)思路如

7、下:收集并整理資料,硬件設(shè)計(jì),軟件設(shè)計(jì),proteus仿真,設(shè)計(jì)體會(huì)與總結(jié)。1.3 設(shè)計(jì)滿足的基本功能1)東西方向(主干道)車道和南北方向(支干道)車道兩條交叉道路上的車輛交替運(yùn)行,主干道每次通行時(shí)間都設(shè)為80秒、支干道每次通行間為60秒,時(shí)間可設(shè)置修改。2)在綠燈轉(zhuǎn)為紅燈時(shí),要求黃燈先亮3秒鐘,才能變換運(yùn)行車道;2 系統(tǒng)方案及硬件設(shè)計(jì)2.1 系統(tǒng)方案的確定交通燈在安全行車過(guò)程中起著十分重要的作用,現(xiàn)在交通燈一般設(shè)在十字路口,在醒目位置用紅、綠、黃三種顏色的指示燈, 加上一個(gè)倒計(jì)時(shí)的顯示計(jì)時(shí)器來(lái)控制行車, 對(duì)于一般情況下的安全行車、車輛分流發(fā)揮著作用, 但根據(jù)實(shí)際行車過(guò)程中出現(xiàn)的情況, 如何全

8、面有效地利用交通燈指示交通情況,我們嘗試用單片機(jī)來(lái)控制交通燈,在軟、硬件方面采取一些改進(jìn)措施,,使交通燈在控制中靈活而有效。硬件系統(tǒng)是指構(gòu)成單片機(jī)系統(tǒng)的實(shí)體和裝置,通常由運(yùn)算器、控制器、存儲(chǔ)器、輸入接口電路和輸入設(shè)備、輸出接口電路和輸出設(shè)備等組成。單片機(jī)實(shí)質(zhì)上是一個(gè)硬件的芯片,在實(shí)際應(yīng)用中,通常很難直接和被控對(duì)象進(jìn)行電氣連接,必須外加各種擴(kuò)展接口電路、外部設(shè)備、被控對(duì)象等硬件和軟件,才能構(gòu)成一個(gè)單片機(jī)應(yīng)用系統(tǒng)。該交通燈擬系統(tǒng)的硬件部分主要由鍵盤、顯示和運(yùn)算部分組成。按照題目的設(shè)計(jì)要求,本課題需要使用led數(shù)碼管顯示和擴(kuò)展 鍵盤。在該交通燈系統(tǒng)的設(shè)計(jì)中采用at89s51單片機(jī)。2.2 顯示部分電

9、路設(shè)計(jì)led顯示器有兩中工作方式:靜態(tài)顯示方式和動(dòng)態(tài)顯示方式。靜態(tài)顯示的特點(diǎn)是每個(gè)數(shù)碼管必須接一個(gè)8位鎖存器用來(lái)鎖存待顯示的字型碼。送入一次字型碼顯示自行一直保持,直到送入新字型碼為止。這種方法的優(yōu)點(diǎn)是占用cpu時(shí)間少,顯示便于監(jiān)測(cè)和控制。缺點(diǎn)是硬件電路比較復(fù)雜,成本較高。各數(shù)碼管在顯示過(guò)程中持續(xù)得到顯示信號(hào),與各數(shù)碼管接口的i/o口是專用的。動(dòng)態(tài)顯示的特點(diǎn)是將所有位數(shù)碼管的段選線并聯(lián)在一起,由位選線控制是哪一位數(shù)碼管有效。這樣一來(lái),就沒(méi)有必要每一位數(shù)碼管配一個(gè)鎖存器,從而大大地簡(jiǎn)化了硬件電路。選亮數(shù)碼管采用動(dòng)態(tài)掃描顯示。所謂動(dòng)態(tài)掃描顯示即輪流向各位數(shù)碼管送出字形碼和相應(yīng)的位選,利用發(fā)光管的余

10、輝和人眼視覺(jué)暫留作用,使人的感覺(jué)好像各位數(shù)碼管同時(shí)都在顯示。動(dòng)態(tài)顯示的亮度比靜態(tài)顯示要差一些,所以在選擇限流電阻時(shí)應(yīng)略小于靜態(tài)顯示電路中的。各數(shù)碼管在顯示過(guò)程中輪流得到顯示信號(hào),與各數(shù)碼管接口的i/o口是共用的。該設(shè)計(jì)采用如下所示的數(shù)碼管,分別顯示南北和東西燈的剩余時(shí)間。片選部分和數(shù)碼段顯示部分,分別接單片機(jī)管腳的p2口和p0口。其中,a到g為碼段控制端口,1,2為片選端口。2.3 時(shí)鐘部分電路設(shè)計(jì) 時(shí)鐘電路用于產(chǎn)生mcs-51單片機(jī)工作時(shí)所必須的時(shí)鐘控制信號(hào)。其內(nèi)部電路在時(shí)鐘信號(hào)控制下,嚴(yán)格地按時(shí)序執(zhí)行指令進(jìn)行工作。在執(zhí)行指令時(shí),cpu首先要到程序存儲(chǔ)器中取出需要執(zhí)行的指令操作碼,然后譯碼,

11、并由時(shí)序電路產(chǎn)生一系列控制信號(hào)去完成指令所規(guī)定操作。本設(shè)計(jì)采用12mhz晶振和兩個(gè)33pf瓷片電容,他們構(gòu)成一個(gè)穩(wěn)定的自激振蕩器。該電容的大小影響振蕩器頻率的高低、振蕩器的穩(wěn)定性和起振的快速性。為單片機(jī)提供標(biāo)準(zhǔn)時(shí)鐘。其中兩個(gè)瓷片電容起微調(diào)作用。 如圖所示:時(shí)鐘電路2.4 復(fù)位部分電路設(shè)計(jì)復(fù)位引腳rst通過(guò)一個(gè)斯密特觸發(fā)器與復(fù)位電路相連,斯密特觸發(fā)器用來(lái)抑制噪聲,在每個(gè)機(jī)器周期的s5p2,斯密特觸發(fā)器的輸出電平由復(fù)位電路采樣一次,然后才能得到內(nèi)部復(fù)位操作所需要的信號(hào)。 復(fù)位電路通常采用上電自動(dòng)復(fù)位和按鈕復(fù)位兩種方式。該設(shè)計(jì)采用加電直接復(fù)位,復(fù)位電容采用10uf,電阻10000歐,為了節(jié)省元件,沒(méi)

12、有采用上電加按鍵模式。加電瞬間,res管腳為高電平。通過(guò)電阻回路放電,使電壓逐漸降為零,從而實(shí)現(xiàn)了復(fù)位功能。其連接圖如下圖所示: 復(fù)位電路3 軟件設(shè)計(jì)3.1 應(yīng)用系統(tǒng)軟件設(shè)計(jì)要求在進(jìn)行應(yīng)用系統(tǒng)的總體設(shè)計(jì)時(shí),軟件設(shè)計(jì)與硬件設(shè)計(jì)應(yīng)統(tǒng)一考慮,相結(jié)合進(jìn)行。當(dāng)系統(tǒng)的電路設(shè)計(jì)定型以后,軟件的任務(wù)也就明確了。一般來(lái)說(shuō),軟件的功能可分為兩大類。一類是執(zhí)行軟件,它能完成各種實(shí)質(zhì)性的功能,如測(cè)量計(jì)算、顯示、打印、輸出控制等;另一類是監(jiān)控軟件,它是專門用來(lái)協(xié)調(diào)各執(zhí)行模塊和操作者的關(guān)系,在系統(tǒng)軟件中充當(dāng)組織協(xié)調(diào)角色。我們?cè)O(shè)計(jì)時(shí),應(yīng)從以下幾個(gè)方面考慮:1)根據(jù)軟件功能的要求,將系統(tǒng)軟件分為若干個(gè)相對(duì)獨(dú)立的部分。設(shè)計(jì)出合

13、理的軟件總體結(jié)構(gòu),使其清晰、簡(jiǎn)捷、流程合理。2)各功能程序?qū)嵭心K化、子程序化。3)在編寫應(yīng)用軟件之前,應(yīng)繪制出程序流程圖。 4)要合理分配系統(tǒng)資源,包括rom、ram、定時(shí)器/計(jì)數(shù)器、中斷源等。 本設(shè)計(jì)采用了模塊化設(shè)計(jì),主要由主程序模塊、功能實(shí)現(xiàn)模塊兩大部分模塊組成。3.2 主程序模塊的設(shè)計(jì)主程序流程圖如下圖a所示:該交通信號(hào)燈控制系統(tǒng)的四中工作狀態(tài)(東西方向的交通燈為例):(1)東西方向a車道綠燈亮,南北方向b車道紅燈亮。表示南北方向b車道上的車輛禁止通行,東西方向a車道允許通行。綠燈亮足規(guī)定的時(shí)間隔時(shí),控制器發(fā)出狀態(tài)信號(hào),轉(zhuǎn)到下一工作狀態(tài)。(2)東西方向a車道黃燈亮,南北方向b車道紅燈亮

14、。表示東西方向a車道上未過(guò)停車線的車輛停止通行,已過(guò)停車線的車輛繼續(xù)通行,南北方向b車道禁止通行。黃燈亮足規(guī)定時(shí)間間隔時(shí),控制器發(fā)出狀態(tài)轉(zhuǎn)換信號(hào),轉(zhuǎn)到下一工作狀態(tài)。(3)東西方向a車道紅燈亮,南北方向b車道綠燈亮。表示東西方向a車道上的車輛禁止通行,南北方向b車道允許通行,綠燈亮足規(guī)定的時(shí)間間隔時(shí),控制器發(fā)出狀態(tài)轉(zhuǎn)換信號(hào),轉(zhuǎn)到下一工作狀態(tài)。(4)東西方向a車道紅燈亮,南北方向b車道黃燈亮。表示東西方向a車道禁止通行,南北方向b車道上未過(guò)限停車線的車輛停止通行,已過(guò)停車線的車輛繼續(xù)通行。黃燈亮足規(guī)定的時(shí)間間隔時(shí),控制器發(fā)出狀態(tài)轉(zhuǎn)換信號(hào),系統(tǒng)又轉(zhuǎn)換到第(1)種工作狀態(tài)。控制燈程序流程圖如下:置a道

15、放行標(biāo)志0f0a道放行時(shí)間送 r4緩沖3?a道亮綠燈,b道亮紅燈a道黃燈b道紅燈b道亮綠燈a道亮紅燈b道黃燈a道紅燈b時(shí)間已走完?a已走完?緩沖3?3.3 延時(shí)程序模塊的設(shè)計(jì)延遲程序塊是要生成一定的是時(shí)間延時(shí),這在數(shù)碼管顯示模塊中會(huì)用到延遲程序,以滿足足動(dòng)態(tài)掃描時(shí)數(shù)碼管的閃亮能產(chǎn)生視覺(jué)效果。4 proteus軟件仿真4.1 proteus軟件系統(tǒng)仿真如硬件系統(tǒng)圖所示接線,圖中,在十字路口的紅,黃,綠交通燈中a道的兩組同色燈連在起,b上的也互聯(lián),受mcs-51的p1.0-p 1.5控制。打開(kāi)keil軟件調(diào)試環(huán)境,把已經(jīng)編好的程序輸入,保存為“.asm”格式的,然后編譯,系統(tǒng)自動(dòng)生成“.hex”文

16、件。設(shè)置好仿真器后,編譯程序無(wú)誤后調(diào)試執(zhí)行程序,結(jié)果顯示符合要求。具體仿真結(jié)果見(jiàn)protues里仿真圖形。5 課程設(shè)計(jì)體會(huì)這次課程設(shè)計(jì)經(jīng)過(guò)一個(gè)假期的反復(fù)琢磨與修改,終于完成了。從查資料,整理資料到讀程序,寫程序,改程序,仿真直至通過(guò)老師的驗(yàn)收,一切都充滿了刻苦與艱辛,其間充滿了挫折可是同時(shí)又伴隨著歡樂(lè)。令我感觸最深的就是同學(xué)們傾心的幫助,由于我的單片機(jī)原理與應(yīng)用技術(shù)學(xué)的并不是很好,所以對(duì)某些知識(shí)點(diǎn)并不是很清楚,可是同學(xué)們總是不厭其煩的給我一遍又一遍的講解,直到我弄清楚為止!他們的知識(shí)閱歷另我打開(kāi)眼界,他們的無(wú)私精神更另我感動(dòng)不已!另外,在重復(fù)修改與設(shè)計(jì)的過(guò)程中,我又重新把單片機(jī)原理與應(yīng)用技術(shù)這

17、本書仔細(xì)的看了一下,弄懂了一些以前一知半解的東西,進(jìn)一次加強(qiáng)和鞏固了我的理論知識(shí)。在此次課程設(shè)計(jì)過(guò)程中,我把單片機(jī)的理論知識(shí)用于實(shí)踐中,使理論與實(shí)踐相結(jié)合,使我的理論知識(shí)的到了鞏固,在查資料翻閱資料的過(guò)程中也豐富了我的知識(shí)跟閱歷。參考文獻(xiàn) 1 張毅剛.新編mcs-51單片機(jī)應(yīng)用設(shè)計(jì)(第3版).哈爾濱工業(yè)大學(xué)出版社,2006 2 馬家辰.mcs-51單片機(jī)原理及接口技術(shù)(修訂版)哈爾濱工業(yè)大學(xué)出版社民2001 3 何立民.mcs-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì). 北京:北京航空航天大學(xué)出版社1990 4侯玉寶,基于protues的51系列單片機(jī)設(shè)計(jì)與仿真. 北京:電子工業(yè)出版社 2009附1 源程序

18、代碼 ;.數(shù)字顯示代碼. org 0100h tab: db 3fh,6h,5bh,4fh,66h,6dh,7dh,7h,7fh,6fh;主程序 org 0300h main: mov 26h,#80 ; 東西通行時(shí)間初始值,存到26h單元 mov 25h,#60 ; 南北通行時(shí)間初始值,存到25h單元 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

19、位 mov th1,#0 ; 計(jì)數(shù)器1初值高8位 setb it0 ; 外部中斷一邊沿觸發(fā) setb it1 ; 外部中斷二邊沿觸發(fā) mov ie,#8fh ; 開(kāi)中斷 setb tr0 ; t0開(kāi)始計(jì)數(shù) setb tr1 ; t1 開(kāi)始計(jì)數(shù);.東西綠燈南北紅燈 . dxld: clr p3.0 ; mov r3,26h ; 東西通行80秒 (26h)=80, (dxld即東西綠燈) dxld1: mov p2,#33h ; 點(diǎn)亮東西綠燈南北紅燈 mov 24h,r3 ; 為東西方向顯示時(shí)間做準(zhǔn)備 mov a,r3 ; add a,#3 ; 黃燈的時(shí)間差 mov 23h,a ; 為南北方向顯示

20、時(shí)間做準(zhǔn)備 lcall disp3 ; 時(shí)間顯示 ,其中有0.5秒延時(shí) lcall disp3 ; 湊夠1秒時(shí)間 djnz r3,dxld1 ; 判斷80秒是否已完;.南北紅燈東西黃燈閃.shanhd1: mov r2,#3 ; 轉(zhuǎn)入黃燈閃亮3秒 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ù)閃滅東西黃燈 ajmp n

21、bld; .南北綠燈東西紅燈. nbld: clr p3.0 ; mov r1,25h ; 南北通行時(shí)間60秒(25h)=60,(nbld即東西綠燈) nbld1: mov p2,#1eh ; 點(diǎn)亮南北綠燈東西紅燈 mov 20h,r1 ; 為南北方向顯示時(shí)間做準(zhǔn)備 mov a,r1 ; add a,#3 ; mov 21h,a ; 為東西方向顯示時(shí)間做準(zhǔn)備 lcall disp1 ; 顯示通行所剩時(shí)間,其中有0.5秒延時(shí) lcall disp1 ; 再次顯示以便數(shù)碼管不閃,且再延時(shí)0.4秒以便湊夠一秒 djnz r1,nbld1 ; 判斷30秒是否已完,若未完則從新顯示、延時(shí);.南北黃燈閃東

22、西紅燈.shanhd: mov r2,#3 ; 黃燈閃亮3秒 hd: 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í)和顯示 ; 主程序到此完 */ ;.延時(shí)程序. . delay: acall delay1 ; 10ms延時(shí) acall delay1 ret delay1: mov r6,#50 ; 5ms延時(shí) ,(5ms=50

23、*50*2us) de6: mov r0,#50 de7: djnz r0,de7 djnz r6,de6 ret;.南北通行的時(shí)間顯示子程序.(其中有0.5秒延時(shí)). 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; 選

24、擇南北數(shù)碼管十位片 mov p0,a ; 送出十位顯示代碼 lcall delay1 ; 延時(shí)5ms以點(diǎn)亮數(shù)碼管 mov a,b ; 把個(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 ; 找到十位

25、的顯示代碼 mov p1,#00001011b; 選擇東西數(shù)碼管的十位片 mov p0,a ; 送出十位顯示代碼 lcall delay1 ; 延時(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 ;.黃燈的時(shí)間顯示子程序. disp2: mov p0,#0 ; 熄滅數(shù)碼管 mov r7,#25 ; 以下調(diào)用兩次0.01秒延時(shí)程

26、序,故25*0.02=0.5秒 rp2: mov a,22h ; 要顯示的時(shí)間移到寄存器a mov dptr,#tab ; 要顯示的數(shù)字代碼表首地址 mov 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

27、 ; 找到個(gè)位數(shù)顯示代碼 mov p0,a ; 送出個(gè)位數(shù)顯示代碼 lcall delay ; 延時(shí)10ms一點(diǎn)亮數(shù)碼管 djnz r7,rp2 ret ;.東西通行的時(shí)間顯示子程序. disp3: 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,#000

28、01110b; 選擇南北數(shù)碼管十位片 mov p0,a ; 送出十位顯示代碼 lcall delay1 ; 延時(shí)5ms以點(diǎn)亮數(shù)碼管 mov a,b ; 把個(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,24h ; 要東西方向顯示的時(shí)間移到寄存器a mov b,#10 div ab ; 要顯示的時(shí)間與10相除,求出十位和個(gè)位 movc a,a+dptr ; 找到十位的顯示代碼 mov p1,#000010

29、11b ; mov p0,a ; 送出十位顯示代碼 lcall delay1 ; 延時(shí)5ms以點(diǎn)亮數(shù)碼管 mov a,b movc a,a+dptr mov p1,#00000111b ; 選擇東西數(shù)碼管個(gè)位片 mov p0,a ; 送出個(gè)位顯示代碼 lcall delay1 djnz r7,rp3 ret;.設(shè)定時(shí)間子程序.;根據(jù)哪個(gè)方向亮綠燈設(shè)定那個(gè)方向的通行時(shí)間,沒(méi)有綠燈亮不能設(shè)定時(shí)間,中斷;直接退出。; ./* int0: mov ie,#0 ; 關(guān)閉中斷允許*/ mov a,p2 ; 讀取交通燈狀態(tài) jnb acc.3,dxsj ; p2.3,dxsj ; dxsj(東西綠燈亮(p2

30、.3=0)則設(shè)定東西通行時(shí)間 ) jnb acc.0,nbsj ; p2.0,nbsj ; nbsj (南北綠燈亮(p2.0=0)則設(shè)定南北通行時(shí)間 ) pop 28h ; pop 28h ; mov dptr,#nbld ; 如果不能調(diào)整時(shí)間(沒(méi)有綠燈亮)則退出后從狀態(tài)1開(kāi)始,相當(dāng)于復(fù)位。 push dpl ; push dph ; exit: mov ie,#8fh ; 恢復(fù)開(kāi)中斷 reti ; - - - - -南北通行時(shí)間設(shè)定 - - - - - nbsj: pop 28h ; pop 28h ; mov dptr,#nbld ; 此處設(shè)時(shí)為南北通行時(shí)間 push dpl ; 把斷點(diǎn)換

31、成南北綠燈(nbld)入口 push dph ; xssm1: mov a,25h ; 讀取南北通行時(shí)間 mov 20h,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í)確定按鈕,若有則退出,若無(wú)接著判斷加時(shí)和減時(shí)信號(hào) jnb p3.3,jx ; 判斷有否加時(shí)信號(hào)(p3.3所接按鈕是否按下)若有跳轉(zhuǎn)處理,無(wú)則掃描減時(shí)信號(hào) jnb p3.5,jx1 ; 判斷有否減時(shí)信號(hào) ajmp xssm1 ; 從循環(huán)顯示時(shí)間和掃描按鍵情況 jx: mov a,25h ; 讀出之前設(shè)定的時(shí)間值(存儲(chǔ)在25h單元) add a,#1 ; 在之前值基礎(chǔ)上加1處理 mov 25h,a ; 回存到25h單元 mov 20h,a ; 為南北顯示時(shí)間做準(zhǔn)備 add a,#3 ; 黃燈時(shí)間 mov 21h,a ; 為東西方向顯示時(shí)間做準(zhǔn)備 lcall disp1 ; 顯示處理后的時(shí)間值 ajmp xssm1 ; 從循環(huán)顯示時(shí)間和掃描按鍵情況 jx1: mov a,25h ; 讀出之前設(shè)定的時(shí)

溫馨提示

  • 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)論