![畢業(yè)設(shè)計(論文)單片機(jī)控制的交通燈控制系統(tǒng)設(shè)計_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/7/598aaa6d-b090-4061-98e5-7125aacce840/598aaa6d-b090-4061-98e5-7125aacce8401.gif)
![畢業(yè)設(shè)計(論文)單片機(jī)控制的交通燈控制系統(tǒng)設(shè)計_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/7/598aaa6d-b090-4061-98e5-7125aacce840/598aaa6d-b090-4061-98e5-7125aacce8402.gif)
![畢業(yè)設(shè)計(論文)單片機(jī)控制的交通燈控制系統(tǒng)設(shè)計_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/7/598aaa6d-b090-4061-98e5-7125aacce840/598aaa6d-b090-4061-98e5-7125aacce8403.gif)
![畢業(yè)設(shè)計(論文)單片機(jī)控制的交通燈控制系統(tǒng)設(shè)計_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/7/598aaa6d-b090-4061-98e5-7125aacce840/598aaa6d-b090-4061-98e5-7125aacce8404.gif)
![畢業(yè)設(shè)計(論文)單片機(jī)控制的交通燈控制系統(tǒng)設(shè)計_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/7/598aaa6d-b090-4061-98e5-7125aacce840/598aaa6d-b090-4061-98e5-7125aacce8405.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、杭州科技職業(yè)技術(shù)學(xué)院畢業(yè)設(shè)計報告單片機(jī)控制的交通燈控制系統(tǒng)設(shè)計題 目 單片機(jī)控制的交通燈 控制系統(tǒng)設(shè)計 專 業(yè) 應(yīng)用電子 班 級 0802 學(xué) 號 k2008610236 姓 名 指導(dǎo)教師 2011年 01 月 13 日 摘要本設(shè)計是單片機(jī)控制的交通燈控制系統(tǒng)設(shè)計。由單片機(jī)系統(tǒng)、led顯示、交通燈演示系統(tǒng)、鍵盤電路及其控制電路組成。該系統(tǒng)除基本交通燈功能外,還具有倒計時、緊急情況處理、調(diào)整通行時間以及根據(jù)具體情況手動控制等功能。十字路口的交通燈在工作時應(yīng)具有如下特點:紅燈表示該條道路禁止通性;黃燈表示該條道路上未過停車線的車輛禁止通行,已過停車線的車輛繼續(xù)通性;綠燈亮表示該條道路允許通行。該系
2、統(tǒng)使用12mhz晶振與單片機(jī)at89s52相連接,通過軟件編程的方法實現(xiàn)十字路口的交通燈控制,輸入裝置是鍵盤開關(guān),用于控制交通燈的運行模式以及設(shè)置通行時間,顯示裝置是兩位的led七段數(shù)碼管。該系統(tǒng)是由at89s52單片機(jī)控制的,可以實現(xiàn)以下功能:1. 南北方向(主干道)車道和東西方向(支干道)兩條交叉道路上的車輛交替運行,主干道每次通行時間都設(shè)為30秒、支干道每次通行間為20秒,時間可設(shè)置修改。2. 在綠燈轉(zhuǎn)為紅燈時,要求黃燈先亮5秒鐘,才能變換運行車道。3. 黃燈亮?xí)r,要求每秒閃亮一次。4. 東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用顯示器進(jìn)行顯示(采用計時的方法)
3、。5. 一道有車而另一道無車(實驗時用開關(guān) k0 和 k1 控制),交通燈控制系統(tǒng)能立即讓有車道放行。6. 有緊急車輛要求通過時,系統(tǒng)要能禁止普通車輛通行,a、b道均為紅燈。關(guān)鍵字:at89s52單片機(jī),交通燈,led顯示,鍵盤開關(guān)電路。目 錄1概述-3-1.1設(shè)計背景 -3-1.2設(shè)計目的 -3-1.3設(shè)計要求 -3-2 系統(tǒng)總體方案及硬件設(shè)計 -4-2.1 設(shè)計原理-4-2.2 各功能模塊設(shè)計-4-2.2.1單片機(jī)at89s52介紹 -4-2.2.2總體方案 -5-2.2.3時鐘電路模塊 -6-2.2.4復(fù)位電路模塊 -6-2.2.5交通燈演示模塊 -7-2.2.6 led顯示模塊 -7-
4、2.2.7鍵盤開關(guān)模塊 -8-3 軟件設(shè)計 -10-3.1程序流程圖-10-3.2系統(tǒng)軟件設(shè)計-11-3.2.1 led的編程-11-3.2.2交通燈模塊的編程設(shè)計-12-3.2.3定時器程序-12-3.2.4鍵盤程序-13-3.2.4.1通行時間設(shè)置程序-13-3.2.4.2緊急情況處理程序-14-3.2.4.3狀態(tài)調(diào)整程序-14-4 proreus仿真 -15-4.1正常工作狀態(tài)-15-4.2時間調(diào)整-17-4.3緊急狀況-19-4.4狀態(tài)調(diào)整-20-5課程設(shè)計體會 -22-參考文獻(xiàn)-23-附1:源程序代碼 -24-附2:系統(tǒng)原理圖 -32-1 概述1.1 設(shè)計背景人們越來越關(guān)注城市交通問
5、題,而交通燈在安全行車過程中起十分重要的作用, 現(xiàn)在交通燈一般設(shè)在十字路口,在醒目位置用紅、綠、黃三種顏色的指示燈, 加上一個倒計時的顯示計時器來控制行車, 對于一般情況下的安全行車、車輛分流發(fā)揮著作用, 但根據(jù)實際行車過程中出現(xiàn)的情況, 主要有如下幾個缺點: 1、車道讓車輪流放行時間相同且固定, 在十字路口, 經(jīng)常出現(xiàn)有些車道車輛較多, 放行時間應(yīng)該長些;而有些車道車輛較少,放行時間應(yīng)短些。2、 沒有考慮緊急車通過時, 兩車道應(yīng)采取的措施, 譬如, 有消防車通過執(zhí)行緊急任務(wù)時, 兩車道的車都應(yīng)停止, 讓緊急車輛通過。根據(jù)行車過程中出現(xiàn)的實際情況, 如何合理高效地利用交通燈指示交通情況,這是一
6、個迫切需要解決的問題。1.2 設(shè)計目的1. 進(jìn)一步熟悉和掌握單片機(jī)的結(jié)構(gòu)及工作原理。2. 掌握單片機(jī)的接口技術(shù)及相關(guān)外圍芯片的外特性,控制方法。3. 通過課程設(shè)計,掌握以單片機(jī)核心的電路設(shè)計的基本方法和技術(shù)。4. 通過實際程序設(shè)計和調(diào)試,逐步掌握模塊化程序設(shè)計方法和調(diào)試技術(shù)。5. 了解開發(fā)單片機(jī)應(yīng)用系統(tǒng)的全過程,為今后從事相關(guān)事業(yè)打下基礎(chǔ)。1.3 設(shè)計要求1. 設(shè)計一個十字路口的交通燈控制電路,要求南北方向(主干道)車道和東西方向(支干道)車道兩條交叉道路上的車輛交替運行,主干道每次通行時間都設(shè)為30秒、支干道每次通行時間為20秒,時間可設(shè)置修改。2. 在綠燈轉(zhuǎn)為紅燈時,要求黃燈先亮5秒鐘,才
7、能變換運行車道;3. 黃燈亮?xí)r,要求每秒閃亮一次。4. 東西方向、南北方向車道除了有紅、黃、綠燈指示外,每一種燈亮的時間都用顯示器進(jìn)行顯示(采用計時的方法)。5. 一道有車而另一道無車(實驗時用開關(guān) k0 和 k1 控制),交通燈控制系統(tǒng)能立即讓有車道放行。 6. 有緊急車輛要求通過時,系統(tǒng)要能禁止普通車輛通行,a、b道均為紅燈。2 系統(tǒng)總體方案及硬件設(shè)計2.1 設(shè)計原理本設(shè)計使用的是單片機(jī)作為核心的控制元件,使得電路的可靠性比較高,功能也比較強(qiáng)大,而且可以隨時更新系統(tǒng),根據(jù)道路情況適時調(diào)整交通燈的狀態(tài),全面有效地利用交通燈指示交通情況。該設(shè)計是以單片機(jī)at89s52為核心完成的,在硬件電路中
8、采用p1口點亮交通指示燈,采用p0口和p2口作為2位led數(shù)碼管的驅(qū)動接口,可顯示各個方向的交通燈的持續(xù)時間,單片機(jī)外圍接有按鍵開關(guān)電路,可以響應(yīng)外部中斷及鍵盤程序,實現(xiàn)緊急情況處理、調(diào)整交通燈的點亮?xí)r間等功能。芯片選用at89c51 單片機(jī),電路由下列部分組成:時鐘電路、復(fù)位電路、鍵盤電路、交通燈演示電路、led顯示電路。at89s52 復(fù)位電路交通燈演示電路led顯示電路鍵盤電路時鐘電路圖01 原理框圖2.2 各功能模塊設(shè)計2.2.1 單片機(jī)at89s52介紹at89s52是一個低電壓,高性能cmos型 8位單片機(jī),片內(nèi)含8kb的可反復(fù)擦寫的flash只讀程序存儲器(rom)和256 b的
9、隨機(jī)存取數(shù)據(jù)存儲器(ram)。at89s52是一個低功耗高性能單片機(jī),40個引腳,32個外部雙向輸入/輸出(i/o)端口,同時內(nèi)含2個外中斷口,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,at89s52可以按照常規(guī)方法進(jìn)行編程,也可以在線編程。其將通用的微處理器和flash存儲器結(jié)合在一起,特別是可反復(fù)擦寫的flash存儲器可有效地降低開發(fā)成本。引腳使用說明:i/o端口的編程實際上就是根據(jù)應(yīng)用電路的具體功能和要求對i/o寄存器進(jìn)行編程。具體步驟如下:l. 根據(jù)實際電路的要求,選擇要使用哪些i/o端口。2. 初始化端口的數(shù)據(jù)輸出寄存器,應(yīng)避免端口作為輸出時的開始階段出現(xiàn)不確定狀態(tài),影響外圍
10、電路正常工作。3. 根據(jù)外圍電路功能,確定po端口的方向,初始化端口的數(shù)據(jù)方向寄存器。對于用作輸入的端口可以不考慮方向初始化,因為po的復(fù)位缺省值為輸入。4. 用作輸入的po管腳,需上拉電阻。5. 最后對i/o端口進(jìn)行輸出(寫數(shù)據(jù)輸出寄存器)和輸入(讀端口)編程,完成對外圍電路的相應(yīng)功能。幾個特殊管腳:xtal1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 xtal2:來自反向振蕩器的輸出。rst: 復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持rst腳兩個機(jī)器周期的高電平。2.2.2 總體方案 此交通燈系統(tǒng)位于一個十字路口,此路口為東南西北走向。南北方向為主干道,東西方向為支干道。各干道有一組紅、
11、綠、黃三色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行,黃燈亮提示人們注意紅、綠燈的狀態(tài)即將切換。此交通燈系統(tǒng)工作過程分為4個狀態(tài)。狀態(tài)0南北方向綠燈亮,東西方向紅燈亮。過25秒后轉(zhuǎn)為狀態(tài)1,南北方向綠燈滅,黃燈每秒閃亮一次,東西方向還是紅燈亮。歷時5秒鐘再轉(zhuǎn)為狀態(tài)2,南北方向紅燈亮,東西方向綠燈亮。過15秒后轉(zhuǎn)為狀態(tài)3,南北方向還是紅燈亮,東西方向綠燈滅,黃燈每秒閃亮一次。歷時5秒鐘又循環(huán)至狀態(tài)0。交通燈的狀態(tài)表如下:狀態(tài)(時間)主干道sn支干道we紅r綠g黃y紅r綠g黃y00101001001/010021000103100001/0表01 交通燈的狀態(tài)表注: 1:sn
12、:南北方向。we:東西方向。 2:狀態(tài):0:熄。1:亮。1/0:閃。2.2.3 時鐘電路模塊時鐘電路模塊給單片機(jī)提供特定的時鐘周期,以備單片機(jī)工作使用。單片機(jī)的機(jī)器周期有6mhz和12mhz的兩種。這里采用的是12mhz的晶振,以給單片機(jī)提供12mhz的機(jī)器周期。另外有兩個30p的電容,兩晶振引腳分別連到xtal1和xtal2振蕩脈沖輸入引腳。其電路圖如圖02所示: 圖02 時鐘電路模塊2.2.4 復(fù)位電路模塊單片機(jī)系統(tǒng)的復(fù)位電路采用的是上電+按鈕復(fù)位電路形式,其中電阻r采用10k的阻值,電容采用電容值為10f的電解電容。其具體連接電路如圖03所示:圖03 復(fù)位電路模塊2.2.5 交通燈演示模
13、塊此交通燈演示模塊由單片機(jī)的p1口作信號輸出端來控制12個交通燈的亮滅,交通燈采用的是發(fā)光二極管。因為單片機(jī)的輸出電流非常小,為了使發(fā)光二極管能夠發(fā)光或者更亮,二極管采用共陽極接法。即陽極通過470電阻接+5v直流電源,陰極接單片機(jī)p1口。同時南北方向同色燈連同上拉電阻一起并聯(lián),東西方向也是一樣,以保證同一干道上的同色燈同時點亮或熄滅,并且流過二極管的電流不會因并聯(lián)而減半。其具體連接電路如圖04所示: 圖04交通燈演示電路2.2.6 led顯示模塊由于同一干道上的兩個方向的紅燈,綠燈,黃燈點亮?xí)r間相同,所以南北方向只需一個數(shù)碼管顯示相應(yīng)的時間即可,同理東西方向也只需一個。本次交通燈設(shè)計采用兩位
14、一體的共陰極數(shù)碼管來顯示相應(yīng)的時間。由單片機(jī)的p0口輸出字型碼,p2口的前四位p2.0p2.3作位選端。 位選端接led的共陰極,故低電位有效。因為單片機(jī)i/o口的驅(qū)動電流很小,一般只有幾個毫安。為了增加驅(qū)動能力,每個led上都加上一個上拉電阻,接入+5v電源,本次設(shè)計采用的是排阻。當(dāng)p0口輸出低電平時,led不導(dǎo)通,上拉電阻電流灌進(jìn)單片機(jī),而當(dāng)p0口輸出高電平時,led導(dǎo)通。而且上拉電阻的電流也通過led,這自然就增加了led的發(fā)光亮度。 其具體連接電路如圖05所示:圖05 led顯示電路2.2.7 鍵盤開關(guān)模塊此系統(tǒng)通過5個開關(guān)實現(xiàn)所有的要求,開關(guān)一端接地,另一端接單片機(jī)的p3口。k0接p
15、37,當(dāng)主干道有車而支干道無車時,按一下k0鍵,可以實現(xiàn)主干道通行。k1接p36,當(dāng)支干道有車而主干道無車時,按一下k1鍵,可以實現(xiàn)支干道通行。k2接p33,利用中斷1的方式對緊急情況進(jìn)行處理,即使東南西北四個方向都亮紅燈停車。k4接p32,利用中斷0的方式對各個干道的通行時間進(jìn)行設(shè)置。在相應(yīng)中斷0期間,k0,k1起調(diào)整時間的作用。每按一下k0,主干道通行時間加一,每按一下k0,主干道通行時間加一。k3接p35,按一下k3,可以使系統(tǒng)退出中斷,回到主程序。其具體連接電路如06圖示: 圖06 鍵盤開關(guān)電路3 軟件設(shè)計3.1 系統(tǒng)流程圖nynyynnynynyynnynynynynyynynnyn
16、y開始k=0,sn=25中斷按k0按k1sn=0倒計時響應(yīng)中斷k=1,sn=5k=3,we=5k=2,we=15倒計時倒計時倒計時中斷按k0按k1we=000按k1sn=0按k0中斷中斷we=-0按k1按k0響應(yīng)中斷響應(yīng)中斷響應(yīng)中斷圖07 系統(tǒng)流程圖- 33 -3.2 系統(tǒng)軟件設(shè)計本次單片機(jī)課程設(shè)計軟件部分利用c語言編程,采用模塊化程序設(shè)計。程序部分由主程序、定時器程序、t0/t1中斷服務(wù)程序、鍵盤掃描程序、交通燈點亮程序、led數(shù)碼管掃描顯示程序和延時程序構(gòu)成。3.2.1 led的編程本次交通燈設(shè)計采用兩位一體的共陰極數(shù)碼管來顯示相應(yīng)的時間。數(shù)碼管為七段數(shù)碼管,由8個發(fā)光二極管構(gòu)成,通過不同
17、的組合可用來顯示數(shù)字0-9,字符a-f、h、l、p、r、u、y、符號“-”及小數(shù)點“.”。本設(shè)計只需要顯示數(shù)字0-9,來表示相應(yīng)的時間。共陰極數(shù)碼管的8個發(fā)光二極管的陰極連接在一起接位選端。兩個兩位一體的共陰極數(shù)碼管共有4個位選端,分別接在p2o-p23,低電平有效。數(shù)碼管各個陽極管腳接各段的驅(qū)動電路輸出端,既p0口。p00接a,p01接b,p06接g,p07接dp,高電平有效。本設(shè)計采用逐位掃描的方式實現(xiàn)相應(yīng)時間的動態(tài)顯示。先將p21置低電平,p20、p22、p23置高電平,來選中南北方向數(shù)碼管的個位,此時p0口的數(shù)據(jù)接傳送給它顯示。經(jīng)延時一段時間,將p21置低電位選中南北方向數(shù)碼管的十位,
18、此時p0口的數(shù)據(jù)接傳送給它顯示。再用同樣的方法依次驅(qū)動?xùn)|西方向數(shù)碼管。通過不斷改變p0口、p2口的輸出,用循環(huán)掃描的方式,即可實現(xiàn)led的動態(tài)顯示。led動態(tài)顯示的流程圖如圖08:顯示南北方向個位開始顯示南北方向十位顯示東西方向個位顯示東西方向十位圖08 led顯示3.2.2交通燈模塊的編寫設(shè)計本次設(shè)計的交通燈演示模塊由單片機(jī)的p1口作信號輸出端來控制12個交通燈的亮滅。p11-p16依次連接南北的紅燈、綠燈、黃燈,東西的紅燈、綠燈,黃燈。所以4種狀態(tài)依次為0x6a,0x66,0x5c,0x3c。當(dāng)交通燈的剩余時間為零時,改變p1口的輸出,進(jìn)而改變交通燈的點亮狀態(tài)。交通燈依次循環(huán)上面的4個狀態(tài)
19、,就可以實現(xiàn)指揮交通的作用。3.2.3 定時器程序本次設(shè)計用定時計數(shù)器t1,tmod是定時計算器的工作方式控制寄存器,通過對該寄存器的操作可以改變t1的工作方式。t1有4種工作方式,由tmod寄存器中間的m1、m0這兩位來決定。本次設(shè)計的定時計數(shù)器工作在工作方式1,m1、m0設(shè)定為01。定時計算器采用加1計數(shù)的方式,當(dāng)接收到一個驅(qū)動事件時計數(shù)器加1。工作方式1的內(nèi)部計數(shù)器寬度為16位,由th1的8位和tl1的8位組成。當(dāng)tl1溢出時將向th1進(jìn)位,當(dāng)th1溢出后會產(chǎn)生相應(yīng)的溢出中斷。驅(qū)動事件之間的時間間隔即為定時計數(shù)器的定時寬度。在定時的工作方式下,定時寬度是單片機(jī)的機(jī)械周期,也是外部時鐘頻率
20、的1/12。本次設(shè)計的外部時鐘頻率為12mhz??芍?,接收106個驅(qū)動事件的時間為1s。定是1s的流程圖如圖09所示:nyyn定時器初始化開始count=0溢出中斷sn-.we-結(jié)束圖09 定時器流程圖計數(shù)conut+count=203.2.4 鍵盤程序為了實現(xiàn)設(shè)置通行時間、緊急情況處理、有車放行等功能,本次設(shè)計中有鍵盤電路。通行時間設(shè)置由外部中斷0實現(xiàn),緊急情況由外部中斷1處理,有車放行是用普通的鍵盤程序?qū)崿F(xiàn)的。按鍵實際是一種常用的按鈕,按鍵未按下時,鍵的兩個觸點處于斷開狀態(tài),按鍵按下時,兩個觸點閉合。按鍵是利用機(jī)械觸點來實現(xiàn)鍵的閉合和釋放,由于彈性作用的影響,機(jī)械觸點在閉合及斷開瞬間均有抖
21、動過程,從而使鍵輸入也出現(xiàn)抖動。抖動時間一般為510ms。本次設(shè)計采用軟件的辦法消抖。在第一次檢測到有鍵按下時不動作,延時10ms,再次檢測按鍵的狀態(tài),如果仍保持閉合狀態(tài),則確定真的有鍵按下。當(dāng)按鍵釋放后,轉(zhuǎn)入按鍵的處理程序延時程序如下:/*延時t毫秒*/void delay(uchar t) uchar i; /*定義無符號字符常量*/ for(t;t0;t-) /*執(zhí)行t次循環(huán)*/ for(i=2000;i0;i-) /*由于時鐘脈沖是12mhz,執(zhí)行2000次循環(huán)的時間為1ms*/ 3.2.4.1 通行時間設(shè)置程序本次設(shè)計通過外部中斷0設(shè)置各個干道的通行時間。外部中斷0的請求信號由p32
22、引腳輸入,采用低電平有效的方式響應(yīng)中斷,即it0=1。響應(yīng)中斷0期間,cpu禁止響應(yīng)其他中斷,按鍵k0,k1起調(diào)整時間的作用。采用加1的方式,每按一下k0,主干道通行時間加1,每按一下k1,支干道通行時間加1。通行時間可以直接在數(shù)碼管上顯示出來。按一下k3,可以使系統(tǒng)退出中斷,回到主程序斷點處,從下一個狀態(tài)開始執(zhí)行新設(shè)置的通行時間。cpu再開放總中斷。由于本次設(shè)計使用兩位一體的共陰極數(shù)碼管顯示時間,故設(shè)置各個干道的通行時間的范圍為0100s??紤]道路通車的實際情況,時間太短無法通過交通路口,所以本設(shè)計中通行時間下限為6s(綠燈1s,黃燈5s)。在699s之間可以任意設(shè)置通行時間,更合理高效的指
23、揮交通。3.2.4.2 緊急情況處理程序本次設(shè)計通過外部中斷1實現(xiàn)對緊急情況的處理。與外部中斷0相仿。外部中斷1的請求信號有p33引腳輸入,采用低電平有效的方式相應(yīng)中斷,即it0=1。響應(yīng)中斷1期間,cpu禁止響應(yīng)其他中斷,東南西北四個方向均亮紅燈,各個干道都禁止通行。由于不確定要持續(xù)多久,不采用倒計時的方式顯示時間,數(shù)碼管顯示00。緊急情況結(jié)束時,按一下k3,可以使系統(tǒng)退出中斷,回到主程序斷點處,cpu再開放總中斷。3.2.4.3 狀態(tài)調(diào)整程序在實際交通系統(tǒng)中,很有可能會不時的出現(xiàn)一道有車而另一道無車的情況,為了更合理高效的指揮交通,本次設(shè)計的交通燈控制系統(tǒng)能立即讓有車道放。由開關(guān) k0 和
24、 k1 控制。采用查詢的方式不斷掃描k0、k1,看有沒有鍵按下。按一下k0鍵,可以實現(xiàn)主干道通行,按一下k1鍵,可以實現(xiàn)支干道通行。此時交通狀態(tài)的改變是因為另一路無車,所以不需要設(shè)置返回,直接按主程序循環(huán)指揮。也有可能較長時間出現(xiàn)一道有車另一道無車的情況,只需多次按k0或k1鍵即可。4 proteus仿真4.1 正常工作狀態(tài)本次設(shè)計的交通燈控制系統(tǒng)共有四個工作狀態(tài),分別是狀態(tài)0、狀態(tài)1、狀態(tài)2和狀態(tài)3。開始時先執(zhí)行狀態(tài)0,南北方向綠燈亮,東西方向紅燈亮。歷時25秒。如圖10所示:圖10 狀態(tài)025秒后轉(zhuǎn)為狀態(tài)1,南北方向綠燈滅,黃燈每秒閃亮一次,東西方向還是紅燈亮。歷時5秒。如圖11所示:圖1
25、1 狀態(tài)15秒后再轉(zhuǎn)狀態(tài)2,南北方向紅燈亮,東西方向綠燈亮。歷時15秒。如圖12所示:圖12 狀態(tài)215秒后轉(zhuǎn)狀態(tài)3,南北方向還是紅燈亮,東西方向綠燈滅,黃燈每秒閃亮一次。歷時5秒。如圖13所示:圖13 狀態(tài)3此狀態(tài)結(jié)束后再回到狀態(tài)0,如此循環(huán)進(jìn)行。4.2 時間調(diào)整 按一下開關(guān)k4,系統(tǒng)響應(yīng)外部中斷0,進(jìn)入通行時間調(diào)整程序。各個干道的通行時間有數(shù)碼管顯示。如圖14所示:圖14 時間調(diào)整按鍵k0,k1起調(diào)整時間的作用,每按一下k0,主干道通行時間加1,每按一下k1,支干道通行時間加1。多次按鍵即可調(diào)整到合理的通行時間。如圖15所示:圖15 通行時間+1按一下k3,可以使系統(tǒng)退出中斷,回到主程序斷
26、點處,從下一個狀態(tài)開始執(zhí)行新設(shè)置的通行時間。如圖16、17所示:圖16 主干道按新設(shè)置的時間執(zhí)行圖17 支干道按新設(shè)置的時間執(zhí)行4.3 緊急情況 當(dāng)出現(xiàn)緊急情況時,按一下開關(guān)k2,系統(tǒng)響應(yīng)外部中斷1,各個方向均亮紅燈禁止通行,數(shù)碼管均顯示0。按一下k3,可以使系統(tǒng)退出中斷,回到主程序斷點處。如圖18所示圖18 緊急情況4.4 狀態(tài)調(diào)整為了更合理高效的指揮交通,當(dāng)南北方向有車而東西方向無車時,按k0,系統(tǒng)會自動跳轉(zhuǎn)到狀態(tài)0,實現(xiàn)南北方向通行。如圖19所示: 圖19 南北方向有車而東西方向無車時,南北放行當(dāng)東西方向有車而南北方向無車時,按k1,系統(tǒng)會自動跳轉(zhuǎn)到狀態(tài)2,實現(xiàn)東西方向通行。如圖20所示
27、:圖20 東西方向有車而南北方向無車時,東西放行5 課程設(shè)計體會很榮幸有這次課程設(shè)計的機(jī)會,我可以把理論的學(xué)習(xí)與實踐有機(jī)的結(jié)合起來。在設(shè)計過程中,首先要分析課題,根據(jù)所學(xué)知識繪制出系統(tǒng)總體設(shè)計框圖。然后按照自己的設(shè)計思路,利用所給的元器件繪制出設(shè)計圖。在繪制設(shè)計圖連接各個元器件的時候,要盡量使布線合適,從而使所作設(shè)計圖清晰易看。繪制完設(shè)計圖后,接下來就是要根據(jù)設(shè)計所要求的功能和已完成的設(shè)計圖編寫程序,在編程時,首先應(yīng)該繪制出主程序流程圖,然后采用模塊化程序設(shè)計的方式,編寫實現(xiàn)各個功能的子程序,再將各個子程序與主程序連接起來。在設(shè)計程序時要不斷對程序進(jìn)行修改,同時在設(shè)計程序的過程中要養(yǎng)成注釋程序
28、的習(xí)慣,在對程序進(jìn)行修改的時候,可以通過注釋很容易的看出各句程序的功能,清晰明朗。當(dāng)程序設(shè)計出來之后,就可以通過仿真軟件對其進(jìn)行編譯,生成仿真所需要的hex文件。 將生成的文件加載到系統(tǒng)圖的單片機(jī)上,就可以進(jìn)行系統(tǒng)仿真。通過仿真,檢測所作設(shè)計是否能實現(xiàn)預(yù)期功能。本次課程設(shè)計使我對單片機(jī)的工作原理有了更深刻的認(rèn)識,掌握了許多在以前學(xué)習(xí)中混淆不清的知識點。在翻閱相關(guān)書籍和查詢相關(guān)資料過程中學(xué)到了豐富的單片機(jī)知識,開闊了眼界,增廣了知識面。在編輯程序中,對c語言又有了新的認(rèn)識和理解。實物焊接中不僅鍛煉了自己的動手能力,而且真正作到了理論聯(lián)系實際的重要性,收益匪淺。 本次課程設(shè)計我參考的三本書。一本是
29、余發(fā)山教授的單片機(jī)原理及其應(yīng)用技術(shù),一本是在圖書館借的王為青老師編寫的單片機(jī)keil cx51應(yīng)用開發(fā)技術(shù),還有一本就是賈宗璞老師的c語言程序設(shè)計。在此向編者表示誠摯的謝意。本次設(shè)計中,我曾多次向沈國泉老師請教各個模塊設(shè)計的細(xì)節(jié)問題,得到了老師的大力幫助,在此深表感謝!參考文獻(xiàn)1 余發(fā)山,王福忠.單片機(jī)原理及應(yīng)用技術(shù) 徐州:中國礦業(yè)大學(xué)出版社,2008 2 賈宗璞,許合利.c語言程序設(shè)計 徐州:中國礦業(yè)大學(xué)出版社,2007 3 王為青,程國剛.單片機(jī)keil cx51應(yīng)用開發(fā)技術(shù) 北京:人民郵電出版社,2007 附1 源程序代碼#include /*對單片機(jī)的口進(jìn)行了定義*/#define u
30、char unsigned char /*定義字符串類型為無符號型*/uchar code a10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/*段碼組合,p0口,高有效*/uchar code b4=0x0d,0x0e,0x07,0x0b; /*p2口,低有效*/uchar code c4=0x6a,0x66,0x5c,0x3c; /*p1口.低有效*/char sn=25,we=30; /*sn表示南北方向主干道,we表示東西方向支干道*/char sn_g=25,we_g=15,y=5; /*sn_g表示南北方向的綠燈,we_g表
31、示東西方向的綠燈,y表示黃燈*/uchar i,k=0,count=0; /*定義無符號字符串變量*/void delay(uchar t);/*定義函數(shù)*/void light();/*定義函數(shù)*/void led(); /*定義函數(shù)*/void ledthrough();/*定義函數(shù)*/void leddrive(); /*定義函數(shù)*/sbit k0=p37;/*開關(guān)k0接p37管腳*/sbit k1=p36;/*開關(guān)k1接p36管腳*/sbit k2=p33;/*開關(guān)k2接p33管腳*/sbit k3=p35;/*開關(guān)k3接p35管腳*/sbit k4=p32;/*開關(guān)k4接p32管腳*
32、/*程序初始化*/void init(void) /*12mhz */ tmod=0x01; /*計數(shù)器用模式1,為16位計數(shù)器*/ th1=(65536-50000)/256; /*0x3c*/ tl1=(65536-50000)%256; /*0xb0*/*計50000個數(shù),用時50ms*/ it0=1;/*外部中斷為低電平觸發(fā)方式*/ et0=1;/*允許t0中斷*/ tr0=1;/*啟動計數(shù)器*/ ea=1;/*cpu開放總中斷*/ ex0=1;/*允許外部中斷0中斷,即允許響應(yīng)端口p32(k4)中斷*/ ex1=1;/*允許外部中斷1中斷,即允許響應(yīng)端口p33(k2)中斷*/*中斷0
33、處理程序*/void int0(void) interrupt 0 ea=0;/*cpu禁止響應(yīng)一切中斷*/ p1=0x6c;/*東西南北方向均紅燈亮*/tr0=!tr0;/*計數(shù)器停止工作*/ for(;)/*無條件循環(huán)*/ ledthrough(); /*調(diào)用通行時間顯示函數(shù)*/ /*設(shè)置南北方向通行時間*/ if(k0=0) /*p37=0*/ delay(10);/*延時,把抖動的時間拋掉*/ if(k0=0) while(!k0)/*當(dāng)松開k0開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/ ledthrough(); /*調(diào)用通行時間顯示函數(shù)*/ sn_g+;/*南北方向綠燈時間+1*/ if
34、(sn_g+y)=100)/*南北方向通行時間(綠燈加黃燈時間)為100s*/ sn_g=1;/*由于使用的是兩位數(shù)碼管,當(dāng)南北方向通行時間加到100后綠燈時間歸1*/ /*設(shè)置東西方向通行時間*/ if(k1=0) /*p36=0*/ delay(10);/*延時,把抖動的時間拋掉*/ if(k1=0) while(!k1)/*當(dāng)松開k1開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/ ledthrough(); /*調(diào)用通行時間顯示函數(shù)*/ we_g+;/*東西方向綠燈時間+1*/ if(we_g+y)=100)/*東西方向通行時間(綠燈加黃燈時間)為100s*/ we_g=1;/*由于使用的是兩位數(shù)
35、碼管,當(dāng)東西方向通行時間加到100后綠燈時間歸1*/ /*返回*/ if(k3=0) /*p35=0*/ delay(10);/*延時,把抖動的時間拋掉*/ if(k3=0) while(!k3)/*當(dāng)松開k3開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/ ledthrough(); /*調(diào)用通行時間顯示函數(shù)*/ tr0=!tr0;/*啟動計數(shù)器*/ ea=1; /*cpu開放總中斷*/ break;/*跳出*/ /*中斷1處理程序*/void int1(void) interrupt 2p1=0x6c,p0=a0;/*東西南北方向均紅燈亮,p0口輸出0*/ ea=0;/*cpu禁止響應(yīng)一切中斷*/tr
36、0=!tr0;/*計數(shù)器停止工作*/ for(;)/*無條件循環(huán)*/ leddrive(); /*數(shù)碼管驅(qū)動程序*/ /*返回*/ if(k3=0) /*p35=0*/ delay(10);/*延時,把抖動的時間拋掉*/ if(k3=0) while(!k3)/*當(dāng)松開k3開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/ leddrive(); /*數(shù)碼管驅(qū)動程序*/ ea=1;/*cpu開放總中斷*/tr0=!tr0;/*啟動計數(shù)器*/ break;/*跳出*/ /*鍵盤程序*/void key()/*南北有車而東西無車*/ if(k0=0) /*k0=0*/ delay(10);/*延時,把抖動的時間
37、拋掉*/ if(k0=0) while(!k0)/*當(dāng)松開k0開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/ light();/*調(diào)用交通燈函數(shù)*/led(); /*調(diào)用數(shù)碼管函數(shù)*/ count=0;/*清零*/ k=0;/*南北方向通車,東西方向不通車*/ sn=sn_g,we=sn_g+y;/*南北方向顯示時間為南北方向綠燈通行時間,東西方向顯示時間為南北方向綠燈通行時間加黃燈閃亮?xí)r間*/ /*南北無車而東西有車*/ if(k1=0) /*k1=0*/ delay(10);/*延時,把抖動的時間拋掉*/ if(k1=0) while(!k1)/*當(dāng)松開k1開關(guān)時,跳出循環(huán),執(zhí)行后面的程序*/ li
38、ght();/*調(diào)用交通燈函數(shù)*/led(); /*調(diào)用數(shù)碼管函數(shù)*/ count=0;/*清零*/ k=2;/*南北方向不通車,東西方向通車*/ sn=we_g+y,we=we_g;/*南北方向顯示時間為東西方向綠燈通行時間加黃燈閃亮?xí)r間,東西方向顯示時間為東西方向綠燈通行時間*/ /*定時函數(shù)*/void time1(void) interrupt 1th0=0x3c;tl0=0xb0;/*計50000個數(shù),用時50ms*/count+; /*自增運算*/if(count=20)/*當(dāng)count大于或等于20時,歷時1s,執(zhí)行程序*/ sn-;/*自減運算*/ we-;/*自減運算*/ count=0;/*清零*/ if(sn=0|we=0)/*當(dāng)sn=0或者we=0時,執(zhí)行程序*/ k+;/*自增運算*/ if(k3)/*當(dāng)k3時,執(zhí)行程序*/ k=0;/*清零*/ switch(k)/*switch語句*/ case 0:sn=sn_g,we=sn_g+y;break;/*南北方向顯示時間為南北方向綠燈通行時間,東西方向顯示時間為南北方向綠燈通行時間加黃燈閃亮?xí)r間*/ case 1:sn=y,we=y;break; /*東西南北方向顯示時間均為黃燈閃亮?xí)r間*/ case 2:sn=we_g+y,we=we
溫馨提示
- 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. 人人文庫網(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年電子產(chǎn)品互借策劃協(xié)議
- 2025年臨時職位策劃錄用合同模板
- 2025年專業(yè)市場物業(yè)購買合同
- 2025年個人薪金合同樣本
- 2025年度二房東租賃協(xié)議樣板
- 2025年關(guān)鍵信息策劃保護(hù)協(xié)議
- 2025年自籌編制人員勞動代理合同標(biāo)準(zhǔn)文本
- 2025年企業(yè)并購秘密協(xié)議
- 2025年家電定制購銷合同年
- 2025年儲罐維護(hù)工程合同樣本
- 公司財務(wù)制度及流程
- 高支模專項施工方案(專家論證)
- 《物流與供應(yīng)鏈管理-新商業(yè)、新鏈接、新物流》配套教學(xué)課件
- 房地產(chǎn)標(biāo)準(zhǔn)踩盤表格模板
- 物聯(lián)網(wǎng)項目實施進(jìn)度計劃表
- 學(xué)校校園安全巡邏情況登記表
- 光纜線路工程段終版施工圖
- 畢業(yè)論文-基于Java Web的模擬駕??荚囅到y(tǒng)設(shè)計與實現(xiàn)
- MDD指令附錄一 基本要求檢查表2013版
- 新部編人教版四年級下冊道德與法治全冊教案(教學(xué)設(shè)計)
- 人美版高中美術(shù)選修:《繪畫》全冊課件【優(yōu)質(zhì)課件】
評論
0/150
提交評論