基于單片機(jī)的智能交通燈控制系統(tǒng)設(shè)計(jì)_第1頁(yè)
基于單片機(jī)的智能交通燈控制系統(tǒng)設(shè)計(jì)_第2頁(yè)
基于單片機(jī)的智能交通燈控制系統(tǒng)設(shè)計(jì)_第3頁(yè)
基于單片機(jī)的智能交通燈控制系統(tǒng)設(shè)計(jì)_第4頁(yè)
基于單片機(jī)的智能交通燈控制系統(tǒng)設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩30頁(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)介

本文格式為Word版,下載可任意編輯——基于單片機(jī)的智能交通燈控制系統(tǒng)設(shè)計(jì)

基于單片機(jī)的智能交通燈控制系統(tǒng)設(shè)計(jì)

與實(shí)現(xiàn)

XXXXXX畢業(yè)設(shè)計(jì)

基于單片機(jī)的智能交通燈控制系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)

摘要

近年來(lái)隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)技術(shù)日益更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來(lái)使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。

十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來(lái)實(shí)現(xiàn)這井然秩序呢?靠的就是交通信號(hào)燈的自動(dòng)指揮系統(tǒng)。交通信號(hào)燈控制方式好多。本系統(tǒng)采用STC89C52RC單片機(jī)以及單片機(jī)最小系統(tǒng)和74HC245電路以及外圍的按鍵和數(shù)碼管顯示等部件,設(shè)計(jì)一個(gè)基于單片機(jī)的交通燈設(shè)計(jì)。設(shè)計(jì)通過(guò)兩位一體共陰極數(shù)碼管顯示,并能通過(guò)按鍵對(duì)定時(shí)進(jìn)行設(shè)置。本系統(tǒng)實(shí)用性強(qiáng)、操作簡(jiǎn)單、擴(kuò)展功能強(qiáng)。

XXXXXX畢業(yè)設(shè)計(jì)

東西綠燈南北紅燈南北綠燈南北黃燈0010000111000100東西南北四個(gè)交通口都含有紅綠燈以及數(shù)碼管,無(wú)論是哪一個(gè)交通口,凡是看到紅燈的應(yīng)當(dāng)阻止通行,看見(jiàn)轉(zhuǎn)了綠燈就可以通過(guò),假使黃燈亮了表示紅綠燈狀態(tài)即將發(fā)生變化。各方向的狀態(tài)以及紅綠燈狀態(tài)如上表2.1。(說(shuō)明:0表示滅,1表示亮)

3硬件設(shè)計(jì)

3.1系統(tǒng)硬件總電路構(gòu)成:

為了滿足這次的交通燈設(shè)計(jì)所需要實(shí)現(xiàn)的功能,本人選用了STC89C52RC芯片和外圍設(shè)備組成的最小系統(tǒng),代表紅、綠、黃三種顏色的led交通燈總共14個(gè),4個(gè)2位LED數(shù)碼管和包括復(fù)位鍵、緊急控制按鍵等,紅外線接受器,驅(qū)動(dòng)電路模塊,若干導(dǎo)線、電阻和電容。構(gòu)成了此次設(shè)計(jì)的各個(gè)模塊。其具體的硬件電路總圖如圖2.3所示。

本系統(tǒng)把單片機(jī)最小系統(tǒng)作為關(guān)鍵核心,由各個(gè)硬件模塊軟件為控制主體組成一個(gè)處理、智能控制為一體的封閉操控系統(tǒng)。

其中P0用來(lái)送顯LED數(shù)碼管的段選和位選,P1用來(lái)操控紅綠燈的亮暗,12MHz晶振接在單片機(jī)芯片引腳的XTAL1和XTAL2上,REST引腳接連接復(fù)位電路,P3端口用來(lái)實(shí)現(xiàn)按鈕的控制。

3.2單片機(jī)系統(tǒng)及其歷史

單片機(jī)是一塊集成在芯片上的微型計(jì)算機(jī),它的內(nèi)部包括有CPU、存儲(chǔ)器,定時(shí)/計(jì)數(shù)器以及中斷系統(tǒng),基本輸入/輸出(簡(jiǎn)稱I/O)接口電路等。由于它的結(jié)構(gòu)與指令功能都是依照工業(yè)控制要求設(shè)計(jì)的,所以又稱作微控制器(簡(jiǎn)稱MCU)。它在各方面都有良好的優(yōu)勢(shì),例如結(jié)構(gòu)簡(jiǎn)單,控制效果好,可靠性高、體積小、價(jià)格低,單片機(jī)技術(shù)作為計(jì)算機(jī)技術(shù)的一個(gè)十分重要的分支,廣泛地應(yīng)用于工業(yè)控制、智能化儀器儀表、家用電器、電子玩具等各個(gè)不同的領(lǐng)域。

單片機(jī)誕生于上世紀(jì)70年代,經(jīng)歷了三個(gè)階段:SCM、MCU、SOC。一開(kāi)始的SCM單片機(jī)都是8位或4位的。其中英特爾公司的8051發(fā)展迅速。之后的MCS51系列的MCU單片機(jī)得到了廣泛的應(yīng)用。現(xiàn)在高端的32位SOC單片機(jī)性能已經(jīng)達(dá)到了上世紀(jì)90年代中期專用處理器的水平,且價(jià)格低廉。所以越來(lái)越多的制作業(yè)、工業(yè)離不開(kāi)單片機(jī)。

單片機(jī)的應(yīng)用系統(tǒng)必需包含硬件部分和軟件部分,只有這樣才是完整的單片機(jī)應(yīng)用系統(tǒng)。軟件部分是指導(dǎo)硬件工作的指令集。沒(méi)有軟件部分,系統(tǒng)將無(wú)法正常工作。硬件

7

XXXXXX畢業(yè)設(shè)計(jì)

部分則是交通燈系統(tǒng)的基礎(chǔ)。沒(méi)有硬件系統(tǒng)則沒(méi)有所謂的交通燈系統(tǒng)。只有將兩者結(jié)合,才能實(shí)現(xiàn)功能齊全的及交通燈系統(tǒng)。

3.3單片機(jī)內(nèi)部組成以及引腳介紹

8052是MCS-52系列單片機(jī)的典型芯片,不同型號(hào)一般程序存儲(chǔ)器結(jié)構(gòu)不同,其余內(nèi)部結(jié)構(gòu)都是完全一致,引腳也全部兼容。Atmel公司的89系列發(fā)展很快,應(yīng)用也最為廣泛,和8052引腳也完全一致,插座也相互兼容。所以用89C52代替8051時(shí),只要封裝一致就可以直接代換。

中央處理器(CPU):

交通燈系統(tǒng)的控制核心是單片機(jī),而單片機(jī)的控制核心是中央處理器。它與計(jì)算機(jī)的處理器一樣分為4字長(zhǎng)、8字長(zhǎng)、16字長(zhǎng)和32字長(zhǎng)等處理器,它與單片機(jī)的處理數(shù)據(jù)能力、控制功能、運(yùn)算速度等性能等性能有關(guān),因此,字長(zhǎng)是衡量CPU功能的主要指標(biāo)。CPU由運(yùn)算器和控制器組成。各一個(gè)8位的算術(shù)規(guī)律單元(簡(jiǎn)稱ALU)、累加器(簡(jiǎn)稱ACC)、暫存器B和程序狀態(tài)寄放器(簡(jiǎn)稱PSW)構(gòu)成了CPU的運(yùn)算器。所述控制器包括程序計(jì)數(shù)器(PC),指令寄放器(IR),指令譯碼器(ID)和一個(gè)控制電路等。

內(nèi)存數(shù)據(jù)存儲(chǔ)器RAM:

單片機(jī)89C52芯片內(nèi)部數(shù)據(jù)存儲(chǔ)器尋常是指低128個(gè)單位,可以讀也可以寫(xiě),是分派給用戶使用的,在斷電后數(shù)據(jù)會(huì)消失。高128個(gè)單位則是內(nèi)部專用寄放器使用的存儲(chǔ)單位,用戶無(wú)法對(duì)其進(jìn)行操作,所以芯片內(nèi)部一共包含256個(gè)RAM單元。

內(nèi)部程序存儲(chǔ)器ROM:

89C52芯片的內(nèi)部程序存儲(chǔ)器使用的是只讀存儲(chǔ)器,這樣有利于系統(tǒng)的可靠及穩(wěn)定性且能節(jié)省成本。它有4KB掩摸ROM,只能讀不能寫(xiě)程序?qū)⒉粫?huì)在斷電后丟失。這樣則不會(huì)改變程序的原始數(shù)據(jù),尋常稱為只讀程序存儲(chǔ)器并行I/O端口:

89C52芯片內(nèi)部有4個(gè)8位并行I/O端口(P0口、P1口、P2口和P3口),通過(guò)I/O端口實(shí)現(xiàn)數(shù)據(jù)并行輸入輸出,是人機(jī)交互的接口。串行口:

89C52芯片內(nèi)部串行實(shí)現(xiàn)單片機(jī)與外圍設(shè)備之間的數(shù)據(jù)通信是通過(guò)一個(gè)全雙工異步串行口。該串行口既可以作為同步移位器使用,擴(kuò)展外部I/O端口,又可以作為全雙工異步通信收發(fā)器使用。

定時(shí)/計(jì)數(shù)器:

89C52芯片內(nèi)部的2個(gè)16位定時(shí)/計(jì)數(shù)器可以控制單片機(jī)的內(nèi)部時(shí)鐘,使單片機(jī)依照一定的機(jī)器時(shí)鐘進(jìn)行狀態(tài)控制。還可以進(jìn)行外部定時(shí)或計(jì)數(shù)功能,是芯片的重要組成部分。

中斷系統(tǒng):

8

XXXXXX畢業(yè)設(shè)計(jì)

8052內(nèi)部共有5個(gè)中斷源,2個(gè)優(yōu)先級(jí)別分別是高優(yōu)先級(jí)和低優(yōu)先級(jí),在同級(jí)的狀況下,外部中斷0大于定時(shí)器T0中斷大于外部中斷1大于定時(shí)器中斷T1大于串行口中斷。

時(shí)鐘電路:

89C51芯片單片機(jī)內(nèi)部具有時(shí)鐘電路,只需要在XTAL1和XTAL2引腳之間接上石英晶體和微調(diào)電容就能構(gòu)成完整的時(shí)鐘電路。此系統(tǒng)選用的晶振頻率為12MHz。相應(yīng)的機(jī)器周期是1us。

引腳介紹:

VCC:STC89C52電源接入端,接+5V。GND:電源接地端。

XTAL1和XTAL2:當(dāng)需要使用外部時(shí)鐘時(shí),則連接外部的時(shí)鐘電路;若要使用內(nèi)部時(shí)鐘則連接電容和晶振。本系統(tǒng)所使用的是內(nèi)部時(shí)鐘,所以在兩引腳間連接了電容和12MHz的晶振。

RESET:STC89C52芯片的重置引腳,當(dāng)連續(xù)輸入這個(gè)引腳2個(gè)機(jī)器周期以上的高電平即有效電平日,芯片將進(jìn)行系統(tǒng)的復(fù)位操作,各個(gè)寄放器都恢復(fù)到最初的狀態(tài)重新運(yùn)行程序。

EA:EA的E的英文是External,A的英文是Access,合在一起是外部程序存儲(chǔ)器的意思。上面的橫線則代表低電平有效。所以這個(gè)引腳接高電平則使用內(nèi)部程序存儲(chǔ)器,低電平則使用外部的程序存儲(chǔ)器。在此系統(tǒng)中,由于程序下載到內(nèi)部程序存儲(chǔ)器中,因此該引腳與+5V電源相連接。

ALE:ALE是編程脈沖的輸入端。它以晶振頻率的1/6的固定頻率輸出,所以也可以作為時(shí)鐘電路使用。同時(shí)這個(gè)引腳也是P0口低8位的地址鎖存器,將低8位數(shù)據(jù)與地址相互隔離,用于系統(tǒng)擴(kuò)展。

PSEN:此為\的縮寫(xiě),其意為程序儲(chǔ)存啟用。低電平有效,當(dāng)引腳輸入低電平日實(shí)現(xiàn)對(duì)外部ROM單元的讀操作。在執(zhí)行指令的取指階段和從程序存儲(chǔ)器中取數(shù)據(jù)時(shí)有效。

P0口(P0.0~P0.7):端口0可以作為通用I/O端口使用和地址/數(shù)據(jù)線使用。共有8個(gè)位,P0.0表示位0,P0.1表示位1,依此類推。一個(gè)數(shù)據(jù)輸出D鎖存器、兩個(gè)三態(tài)數(shù)據(jù)輸入緩沖器、一個(gè)輸出控制電路和一個(gè)數(shù)據(jù)輸出的驅(qū)動(dòng)電路共同構(gòu)成了P0口的規(guī)律電路。假使EA引腳的電平為低時(shí)(即取用片外RAM擴(kuò)展或數(shù)據(jù)存儲(chǔ)器),P0就以雙向口的工作方式提供地址總線(A0~A7)及數(shù)據(jù)總線(D0~D7)。在此設(shè)計(jì)中,P0口是作為通用I/O口將各個(gè)共陰極數(shù)碼管相應(yīng)的段選控制端并聯(lián)在一起,用驅(qū)動(dòng)器74HC245驅(qū)動(dòng)。

P1口(P1.0~P1.7):是89C51單片機(jī)唯一的單功能端口,僅僅能用作通用的數(shù)據(jù)

9

——

XXXXXX畢業(yè)設(shè)計(jì)

輸入/輸出口。P1口的規(guī)律電路與P2口相像,但其內(nèi)部沒(méi)有輸出控制電路,而且具有上拉電阻。所以其只能作為通用I/O端口使用。在此系統(tǒng)中,P1口是用來(lái)控制數(shù)碼管的公共端,也稱作為“位選端〞。

P2口(P2.0~P2.7):端口2也具有2個(gè)功能:一個(gè)是具有內(nèi)部提升電路的雙向I/O端口,與P0口相像;另一功能也跟P0口相像,P0口的第2功能是作為地址/數(shù)據(jù)線使用,而P2口是單一的地址線使用。系統(tǒng)擴(kuò)展時(shí)作為高8位的數(shù)據(jù)線使用。當(dāng)沒(méi)有在89C51單片機(jī)芯片外擴(kuò)展ROM和RAM,且P2口高8位地址總線沒(méi)有全部用到時(shí),P2口的口線就可以全部作為通用I/O口線使用。P2口屬于準(zhǔn)雙向口。在本系統(tǒng)中,P2口用于控制LED信號(hào)燈的亮滅。

P3口(P3.0~P3.7):作為通用I/O口,作為輸出時(shí),鎖存器的狀態(tài)端(Q)與輸出引腳的狀態(tài)一致;作為輸入端口時(shí),為使引腳處于高阻輸入狀態(tài),需向鎖存器輸入程序數(shù)據(jù)“1〞。輸入的數(shù)據(jù)在“讀引腳〞信號(hào)的作用下,進(jìn)入內(nèi)部數(shù)據(jù)總線。所以,P3口在作為通用I/O口時(shí),也屬于準(zhǔn)雙向口。在本系統(tǒng),P3口作為其次功能使用,主要利用按鍵模塊實(shí)現(xiàn)系統(tǒng)的中斷跳轉(zhuǎn)。

P3端口使用其次功能時(shí):其引腳分派如下:

P3.0:RXD,串行通信數(shù)據(jù)的接收。P3.1:TXD,串行通信數(shù)據(jù)的發(fā)送P3.2:INT0,外部中斷0申請(qǐng)。P3.3:INT1,外部中斷1申請(qǐng)。P3.4:定時(shí)/計(jì)時(shí)計(jì)數(shù)器0的外部輸入。P3.5:定時(shí)/計(jì)時(shí)計(jì)數(shù)器1的外部輸入。P3.6:WR:外部數(shù)據(jù)存儲(chǔ)器的寫(xiě)入信號(hào)。P3.7:RD,外部數(shù)據(jù)存儲(chǔ)器的讀取信號(hào)。單片機(jī)引腳圖如圖3.1所示:

————

3.4單片機(jī)最小系統(tǒng)

上面提到單片機(jī)的應(yīng)用系統(tǒng)可以分為硬件部分和軟件部分。軟件部分指揮各個(gè)硬件執(zhí)行燒錄進(jìn)單片機(jī)內(nèi)的程序,假使沒(méi)有程序那么它顯然是無(wú)法工作的的。但假使它僅僅只是燒錄了程序,它還是同樣無(wú)法工作。原因是除了單片機(jī)和軟件部分外,要使單片機(jī)能夠正常工作,還需要時(shí)鐘電路和復(fù)位電路。芯片加上時(shí)鐘和復(fù)位電路,這樣才是完整的最小單片機(jī)系統(tǒng)。在XTAL1引腳和XTAL2引腳間跨接一定頻率的晶振構(gòu)成時(shí)鐘電路為單片機(jī)的正常工作提供基本時(shí)鐘,機(jī)器周期則由晶振頻率決定。復(fù)位電路則將系統(tǒng)恢復(fù)初始化。就宛如此系統(tǒng)中,將系統(tǒng)恢復(fù)至東西通行,南北阻止的剛啟動(dòng)系統(tǒng)的狀態(tài)。

10

XXXXXX畢業(yè)設(shè)計(jì)

圖3.1單片機(jī)電路引腳圖

為了實(shí)現(xiàn)單片機(jī)的同步工作,系統(tǒng)必需有唯一的時(shí)鐘信號(hào),并在這個(gè)時(shí)鐘信號(hào)下嚴(yán)格的按時(shí)序進(jìn)行狀態(tài)轉(zhuǎn)換和工作。這個(gè)時(shí)鐘信號(hào)可以外部時(shí)鐘也可以芯片自帶的時(shí)鐘信號(hào)。這種時(shí)鐘信號(hào)由時(shí)鐘電路提供。在本系統(tǒng)中,在STC89C51單片機(jī)XTAL1和XTAL2之間接的是晶振頻率為12MHz的晶振。機(jī)器周期是晶振頻率的十二分頻,所以機(jī)器周期為1us。適當(dāng)編寫(xiě)程序,則可以定時(shí)1ms或者1s的時(shí)間。

單片機(jī)與計(jì)算機(jī)一致,都有可能會(huì)出現(xiàn)故障死機(jī)或斷電的狀況,這時(shí)候則需要和計(jì)算機(jī)一樣有一個(gè)復(fù)位鍵將系統(tǒng)重啟,單片機(jī)的復(fù)位電路也是使CPU和系統(tǒng)中的其他功能部件都恢復(fù)到一個(gè)確定的初始狀態(tài)。實(shí)現(xiàn)復(fù)位的條件就是RST引腳輸入持續(xù)2次機(jī)器周期的高電平。復(fù)位后PC=0000H,即是從新從程序存儲(chǔ)器的第1個(gè)單元取指令進(jìn)行譯碼。若持續(xù)高電平則會(huì)循環(huán)復(fù)位。

按鍵復(fù)位和上電自動(dòng)復(fù)位是復(fù)位電路經(jīng)常采用的兩種不同的方式。本系統(tǒng)所使用的是按鍵復(fù)位。按鍵在其余4個(gè)按鍵的中間,接芯片的RST引腳。按鍵瞬間RST引腳端電位與Vcc一致,隨著電容C1的充電,充電電流的減少,導(dǎo)致RST引腳的高電位下降。只要RST引腳的高電位能夠保證在2個(gè)機(jī)器周期以上,單片機(jī)就會(huì)進(jìn)行復(fù)位操作,使系統(tǒng)復(fù)位。上電復(fù)位則要求接上電源之后能夠自動(dòng)實(shí)現(xiàn)系統(tǒng)的復(fù)位,原理一致,不再贅述。單片機(jī)最小系統(tǒng)原理圖如圖3.2所示:

11

XXXXXX畢業(yè)設(shè)計(jì)

圖3.2單片機(jī)最小系統(tǒng)原理圖

3.5LED顯示

發(fā)光二極管簡(jiǎn)稱為L(zhǎng)ED。它是一種半導(dǎo)體二極管。它的可見(jiàn)光是由空穴和電子結(jié)合時(shí)輻射而出的,因此它可以把電能轉(zhuǎn)化為光能。主要由鎵(Ga)與砷(As)、磷(P)、氮(N)、銦(In)等化合物制成這種半導(dǎo)體二極管。三極管具有2個(gè)PN結(jié),而發(fā)光二極管是由一個(gè)PN結(jié)組成的,它具有單向?qū)щ娦浴U驂航档?,反向壓降則要相對(duì)高得多。它改變了白熾燈鎢絲發(fā)光與節(jié)能燈三基色粉發(fā)光的原理,而采用電場(chǎng)發(fā)光。因此它也是十分有發(fā)展前景的綠色照明光源。它的功耗低,壽命長(zhǎng),輻射低的特點(diǎn)使其得到了廣泛的應(yīng)用。不僅如此,它的光效率高,亮度大,同時(shí)可以回收利用的優(yōu)點(diǎn)也使它成為十分受矚目的新一代光源。它的運(yùn)用簡(jiǎn)單,信號(hào)穩(wěn)定,所以選擇發(fā)光二極管作為我們

12

XXXXXX畢業(yè)設(shè)計(jì)

系統(tǒng)十分關(guān)鍵的模擬交通燈燈源。本系統(tǒng)所選用的是普通單色發(fā)光二極管。它具有體積小、工作電壓低、工作電流小、發(fā)光均勻穩(wěn)定、響應(yīng)速度快、壽命長(zhǎng)且價(jià)格低廉等優(yōu)點(diǎn),十分適合單片機(jī)交通燈系統(tǒng)的模擬交通燈。連接時(shí)也要注意LED燈的單相導(dǎo)電性,接反將會(huì)導(dǎo)致交通燈無(wú)法正常使用。模擬交通燈利用發(fā)光二極管來(lái)顯示不同顏色的信號(hào)指示燈。LED燈如圖3.3所示:

圖3.3LED燈顯示電路

3.6數(shù)碼管顯示

數(shù)碼管是一種半導(dǎo)體發(fā)光器件,在單片機(jī)系統(tǒng)中運(yùn)用廣泛,可以顯示單片機(jī)的工作狀態(tài)。就宛如本系統(tǒng)中的數(shù)碼管用來(lái)顯示紅綠黃燈狀態(tài)的持續(xù)時(shí)間和跳轉(zhuǎn)時(shí)間,是人機(jī)對(duì)話十分重要的輸出設(shè)備。其基本單元是發(fā)光二極管。

數(shù)碼管顯示是分段實(shí)現(xiàn)的,通過(guò)點(diǎn)亮不同段來(lái)顯示不同的數(shù)字。其中按段數(shù)分為七段LED數(shù)碼管和八段LED數(shù)碼管,其中八段LED數(shù)碼管比七段LED數(shù)碼管多了一個(gè)LED燈在右下角作為數(shù)字的小數(shù)點(diǎn)。

數(shù)碼管按結(jié)構(gòu)還可分為共陰極數(shù)碼管和共陽(yáng)極數(shù)碼管。在此系統(tǒng)中所采用的則是八段共陽(yáng)極數(shù)碼管結(jié)構(gòu)。八個(gè)LED燈構(gòu)成的共陽(yáng)極數(shù)碼管是將所有LED燈的陽(yáng)極連接在一起接在高電平上作為公共控制端。陰極作為“段〞的控制端,當(dāng)其中一“段〞的控制端接低電平日,該段對(duì)應(yīng)的發(fā)光二極管就會(huì)點(diǎn)亮。通過(guò)點(diǎn)亮不同的段從而顯示出各種數(shù)字。本系統(tǒng)的共陽(yáng)極數(shù)碼管的公共控制端接到+5V高電平上。共陰數(shù)碼管是指將LED燈的陰

13

XXXXXX畢業(yè)設(shè)計(jì)

極接到一起形成公共陰極(COM)的數(shù)碼管,與陽(yáng)極不同的是要接在低電平陰極上。而陽(yáng)極作為段選端,要點(diǎn)亮某段時(shí)則需要輸入高電平。

LED數(shù)碼管的顯示方式可以分為靜、動(dòng)態(tài)顯示兩種。雖然靜態(tài)顯示相對(duì)于動(dòng)態(tài)顯示用較小的電流就能使數(shù)碼管的亮度加強(qiáng)、CPU運(yùn)算時(shí)間少,編程也更簡(jiǎn)便,節(jié)省存儲(chǔ)空間且顯示便于檢測(cè)和控制。但其占用的I/O口太多,只適合少位數(shù)碼管使用。不適合此系統(tǒng),所以選用動(dòng)態(tài)顯示,下面重點(diǎn)介紹數(shù)碼管的動(dòng)態(tài)顯示。

此系統(tǒng)用動(dòng)態(tài)顯示方式點(diǎn)亮4個(gè)2位數(shù)碼管,各個(gè)共陽(yáng)極數(shù)碼管相應(yīng)的段選控制端并聯(lián)在一起由P0口控制,并用驅(qū)動(dòng)器驅(qū)動(dòng)。各位數(shù)碼管的公共端,也稱為“位選端〞由單片機(jī)的P1口控制。數(shù)碼管顯示如圖3.4所示:

圖3.4數(shù)碼管顯示

14

XXXXXX畢業(yè)設(shè)計(jì)

3.7信號(hào)顯示驅(qū)動(dòng)電路

74HC245譯碼器可接受3位二進(jìn)制加權(quán)地址輸入(A0,A1和A2),并當(dāng)使能時(shí),提供8個(gè)互斥的低有效輸出(Y0至Y7)。74HC245特有3個(gè)使能輸入端:兩個(gè)低有效(E1和E2)和一個(gè)高有效(E3)。除非E1和E2置低且E3置高,否則74HC138將保持所有輸出為高。利用這種復(fù)合使能特性,僅需4片74HC245芯片和1個(gè)反相器,即可輕松實(shí)現(xiàn)并行擴(kuò)展,組合成為一個(gè)1-32(5線到32線)譯碼器。任選一個(gè)低有效使能輸入端作為數(shù)據(jù)輸入,而把其余的使能輸入端作為選通端,則74HC245亦可充當(dāng)一個(gè)8輸出多路分派器,未使用的使能輸入端必需保持綁定在各自適合的高有效或低有效狀態(tài)。

74HC245作用原理于高性能的存貯譯碼或要求傳輸延遲時(shí)間短的數(shù)據(jù)傳輸系統(tǒng),在高性能存貯器系統(tǒng)中,用這種譯碼器可以提高譯碼系統(tǒng)的效率。將快速賦能電路用于高速存貯器時(shí),譯碼器的延遲時(shí)間和存貯器的賦能時(shí)間尋常小于存貯器的典型存取時(shí)間,這就是說(shuō)由肖特基鉗位的系統(tǒng)譯碼器所引起的有效系統(tǒng)延遲可以忽略不計(jì)。HC138依照三位二進(jìn)制輸入碼和賦能輸入條件,從8個(gè)輸出端中譯出一個(gè)低電平輸出。兩個(gè)低電平有效的賦能輸入端和一個(gè)高電平有效的賦能輸入端減少了擴(kuò)展所需要的外接門(mén)或倒相器,擴(kuò)展成24線譯碼器不需外接門(mén);擴(kuò)展成32線譯碼器,只需要接一個(gè)外接倒相器。在解調(diào)器應(yīng)用中,賦能輸入端可用作數(shù)據(jù)輸入端。74HC245電路圖如圖3.5所示:

圖3.574HC245電路圖

3.8鍵盤(pán)輸入電路

單片機(jī)鍵盤(pán)有獨(dú)立鍵盤(pán)和矩陣式鍵盤(pán)兩種:獨(dú)立鍵盤(pán)每一個(gè)I/O口上只接一個(gè)按鍵,按鍵的另一端接電源或接地(一般接地),這種接法程序比較簡(jiǎn)單且系統(tǒng)更加穩(wěn)定;而矩陣式鍵盤(pán)式接法程序比較繁雜,但是占用的I/O少。根據(jù)本設(shè)計(jì)的需要這里選用了

15

XXXXXX畢業(yè)設(shè)計(jì)

獨(dú)立式鍵盤(pán)接法。

獨(dú)立式鍵盤(pán)的實(shí)現(xiàn)方法是利用單片機(jī)I/O口讀取口的電平高低來(lái)判斷是否有鍵按下。將常開(kāi)按鍵的一端接地,另一端接一個(gè)I/O口,程序開(kāi)始時(shí)將此I/O口置于高電平,平日無(wú)鍵按下時(shí)I/O口保護(hù)高電平。當(dāng)有鍵按下時(shí),此I/O口與地短路迫使I/O口為低電平。按鍵釋放后,單片機(jī)內(nèi)部的上拉電阻使I/O口依舊保持高電平。我們所要做的就是在程序中查尋此I/O口的電平狀態(tài)就可以了解我們是否有按鍵動(dòng)作了。

在用單片機(jī)對(duì)鍵盤(pán)處理的時(shí)候涉及到了一個(gè)重要的過(guò)程,那就是鍵盤(pán)的去抖動(dòng)。這里說(shuō)的抖動(dòng)是機(jī)械的抖動(dòng),是當(dāng)鍵盤(pán)在未按到按下的臨界區(qū)產(chǎn)生的電平不穩(wěn)定正?,F(xiàn)象,并不是我們?cè)诎存I時(shí)通過(guò)注意可以避免的。這種抖動(dòng)一般10~200毫秒之間,這種不穩(wěn)定電平的抖動(dòng)時(shí)間對(duì)于人來(lái)說(shuō)太快了,而對(duì)于時(shí)鐘是微秒的單片機(jī)而言則是慢長(zhǎng)的。硬件去抖動(dòng)就是用部分電路對(duì)抖動(dòng)部分加之處理,軟件去抖動(dòng)不是去掉抖動(dòng),而是避抖動(dòng)部分的時(shí)間,等鍵盤(pán)穩(wěn)定了再對(duì)其處理。所以這里選擇了軟件去抖動(dòng),實(shí)現(xiàn)法是先查尋按鍵當(dāng)有低電平出現(xiàn)時(shí)馬上延時(shí)10~200毫秒以避開(kāi)抖動(dòng)(經(jīng)典值為20毫秒),延時(shí)終止后再讀一次I/O口的值,這一次的值假使為1表示低電平的時(shí)間不到10~200毫秒,視為干擾信號(hào)。當(dāng)讀出的值是0時(shí)則表示有按鍵按下,調(diào)用相應(yīng)的處理程序。鍵盤(pán)控制電路圖如圖3.6所示:

圖3.6鍵盤(pán)控制電路圖

3.9紅外接收原理

紅外線接收頭的運(yùn)作原理:它里面的有一個(gè)接收管,作用是把紅外線發(fā)射裝置所發(fā)射出去的光信號(hào)轉(zhuǎn)變成較弱的電信號(hào),這個(gè)電信號(hào)再通過(guò)IC里面的放大器處理,把信號(hào)增大,緊接著經(jīng)過(guò)一系列的自動(dòng)增益控制、帶通濾波、解調(diào)變、波形整形后轉(zhuǎn)化為遙控器發(fā)射出來(lái)的原始編碼,再經(jīng)過(guò)接收頭的信號(hào)輸出腳輸入到電器上的編碼識(shí)別電路。紅外接收?qǐng)D如圖3.7所示:

16

XXXXXX畢業(yè)設(shè)計(jì)

圖3.8紅外接收電路圖

4軟件設(shè)計(jì)

跟C語(yǔ)言比起來(lái),匯編語(yǔ)言所編寫(xiě)的代碼生成的速率很快,但是程序看起來(lái)會(huì)十分繁雜,很難讀懂,然后用C語(yǔ)言所編寫(xiě)的代碼在速率方面跟匯編語(yǔ)言差不多,但是卻比匯編簡(jiǎn)單更簡(jiǎn)單讀懂,可移植性也很強(qiáng),不僅如此,在編寫(xiě)高時(shí)效性的代碼的時(shí)候,C語(yǔ)言還能夠嵌入?yún)R編語(yǔ)言來(lái)完成。在開(kāi)發(fā)周期的方面,假使一般中大型的軟件,編寫(xiě)都是用C語(yǔ)言來(lái)實(shí)現(xiàn),由于它的開(kāi)發(fā)周期比匯編語(yǔ)言的要少大量。綜上所述,本人在這次的畢業(yè)設(shè)計(jì)當(dāng)中選了C語(yǔ)言作為程序編程語(yǔ)言。

而這次的畢業(yè)設(shè)計(jì)的程序用KeilμVision2.0這款軟件進(jìn)行編寫(xiě)。由于這個(gè)編程軟件不但支持各種公司的芯片,還具有編譯、編輯以及仿真等功能,不僅是C語(yǔ)言,它還支持PLM、匯編這兩種語(yǔ)言的編寫(xiě)和設(shè)計(jì),界面十分簡(jiǎn)單,讓人簡(jiǎn)單上手。在程序的調(diào)試和軟件的仿真這兩個(gè)方面都很優(yōu)秀。所以這次的編程的軟件本人選的是KeilμVision。系統(tǒng)總的流程圖如圖4.1所示:

宏定義I/O初始化定義共陰極字型編碼表定義函數(shù)變量并初始化定時(shí)器0初始化調(diào)用Buzzer()函數(shù)進(jìn)入主函數(shù)main()定義狀態(tài)數(shù)組初始化外部中斷設(shè)置字型碼和字位碼,完成顯示定義字位碼函數(shù)進(jìn)入while(1)循環(huán)返回while(1)函數(shù)調(diào)用顯示控制函數(shù)voiddisplay()圖4.1系統(tǒng)總的流程圖17

XXXXXX畢業(yè)設(shè)計(jì)

4.1定時(shí)器的設(shè)置

定時(shí)器的工作方式可以分為4種,工作方式0是13位的定時(shí)計(jì)數(shù)器;16位的定時(shí)計(jì)數(shù)器可以用工作方式1來(lái)實(shí)現(xiàn);工作方式2是8位的定時(shí)計(jì)數(shù)器;工作方式3狀況較繁雜,定時(shí)計(jì)數(shù)器T0才可以在此工作方式下工作,T0被分解成獨(dú)立的兩個(gè)8位定時(shí)計(jì)數(shù)器。而在此系統(tǒng)的程序,所采用的是工作方式1。具體用代碼TMOD=0x11來(lái)設(shè)置2個(gè)定時(shí)計(jì)數(shù)器T0,T1都工作在工作方式1下。

4.2中斷程序的設(shè)置

在中斷狀況下,本系統(tǒng)的程序中斷思路流程圖如圖4.2所示,采用外部中斷0進(jìn)入只允許東西通行的特別狀況;采用外部中斷1進(jìn)入只允許南北通行的特別狀況;在自然狀況下,外部中斷0的優(yōu)先級(jí)高于外部中斷1,系統(tǒng)無(wú)特別要求可不設(shè)置外部中斷的優(yōu)先級(jí)。

圖4.2程序中斷思路流程圖

本系統(tǒng)的設(shè)計(jì)所用的定時(shí)中斷程序是十分重要的,定時(shí)計(jì)數(shù)器啟動(dòng)之后,它就開(kāi)始在初始值上的加1計(jì)數(shù),程序設(shè)定給TL0和TH0裝載適合的初值,假設(shè)需要設(shè)定系統(tǒng)定時(shí)50ms,計(jì)50000個(gè)數(shù)后,定時(shí)計(jì)數(shù)器將會(huì)溢出,此時(shí)的時(shí)間就是50ms并且會(huì)進(jìn)入中斷系統(tǒng),當(dāng)需要設(shè)定系統(tǒng)時(shí)間1s時(shí),程序設(shè)計(jì)時(shí)只要設(shè)置20次50ms的定時(shí)中斷就是1s,這樣便可確切控制定時(shí)時(shí)間同時(shí)利用中斷系統(tǒng)完成數(shù)碼管輸出數(shù)據(jù)刷新和處理不同狀態(tài)的切換。定時(shí)中斷系統(tǒng)的程序流程圖具體狀況如圖4.3所示。

中斷返回特別狀況(緊急狀況)中斷響應(yīng)關(guān)定時(shí)器5調(diào)試

5.1斷電調(diào)試

以保安全,避免硬件被燒壞,本人一開(kāi)始先進(jìn)行的是斷電測(cè)試。首先用萬(wàn)能表檢查

18

XXXXXX畢業(yè)設(shè)計(jì)

啟動(dòng)定時(shí)器中斷設(shè)置字型碼和字位碼,完成數(shù)碼管倒計(jì)時(shí)顯示定時(shí)中斷入口定義1s初始化定時(shí)器0關(guān)閉定時(shí)器0

計(jì)數(shù)變量自加1

圖4.3定時(shí)中斷流程圖

電路是不是有短路的狀況出現(xiàn),然后看看設(shè)計(jì)的原理是不是對(duì)的,每一個(gè)線路電壓有沒(méi)有出現(xiàn)錯(cuò)誤。經(jīng)過(guò)檢查,斷電測(cè)試沒(méi)有問(wèn)題。

5.2通電調(diào)試

A、插入電源后,按了開(kāi)關(guān),發(fā)現(xiàn)電路沒(méi)有反應(yīng),經(jīng)過(guò)一系列的測(cè)試排除后發(fā)現(xiàn)輸入電壓最少應(yīng)當(dāng)為6.5V,經(jīng)過(guò)處理,換了一個(gè)9V的電源,問(wèn)題終究得到了解決。

B、測(cè)試系統(tǒng)的時(shí)鐘是不是正確的,本人的方法是用萬(wàn)能表來(lái)測(cè)試。把萬(wàn)能表調(diào)到直流電壓檔這個(gè)檔位,然后把兩線分別接在XTAL1與AXTAL2之間,顯示出來(lái)的數(shù)字是2.4,沒(méi)有問(wèn)題。

C、復(fù)位電路經(jīng)過(guò)檢測(cè)沒(méi)有出現(xiàn)問(wèn)題。

D、數(shù)碼管顯示有時(shí)顯示不正常,經(jīng)過(guò)一系列排查處理之后,恢復(fù)正常。LED燈表現(xiàn)也正常。

5.3功能部分的測(cè)試

A、接上電源后,交通燈開(kāi)始運(yùn)作,運(yùn)作正常。運(yùn)行1分鐘,按復(fù)位鍵,恢復(fù)到了開(kāi)始狀態(tài),表現(xiàn)正常。

B、按緊急中止按鍵,四個(gè)紅燈一起亮了,再按一次,退出該模式,表現(xiàn)正常。C、按顯示車流量按鍵,數(shù)碼管顯示倒計(jì)時(shí)中止,紅外線每檢測(cè)到一個(gè)信號(hào),計(jì)數(shù)加1,再按一次,退出該模式,表現(xiàn)正常。

D、按單向通行按鍵,按一次為東西通行,按兩次為南北通行,按第三次退出該模式,表現(xiàn)正常。

E、按夜間模式按鍵,按一次路口全為黃燈,按其次次退出該模式,表現(xiàn)正常。F、按調(diào)時(shí)按鍵,調(diào)理東西方向的紅燈和綠燈時(shí)長(zhǎng),按一次為調(diào)理紅燈時(shí)長(zhǎng),按兩

19

XXXXXX畢業(yè)設(shè)計(jì)

次為調(diào)理綠燈時(shí)長(zhǎng),再按時(shí)間加減兩個(gè)按鍵,時(shí)間依照按鍵的次數(shù)加減,再按一次,退出該模式,表現(xiàn)正常。

6結(jié)論

通過(guò)這次畢業(yè)設(shè)計(jì),我學(xué)到了許多的東西??偨Y(jié)有以下幾條:

(1)首先,學(xué)習(xí)到最明顯的就是word的運(yùn)用。在這次畢業(yè)設(shè)計(jì)以前,除了幾次基本的文字編輯之外,其它的功能根本就沒(méi)有用過(guò)。通過(guò)這篇論文的修改,我學(xué)會(huì)了好多功能的運(yùn)用,包括段落、頁(yè)面、頁(yè)眉、等各種編輯功能。雖然我知道word的功能遠(yuǎn)遠(yuǎn)不止這些,但是這次起碼讓我學(xué)習(xí)到了我以前不會(huì)的東西,這就是一種進(jìn)步的表現(xiàn)。

(2)通過(guò)復(fù)習(xí)大學(xué)期間學(xué)過(guò)的有關(guān)知識(shí),我將此充分運(yùn)用到了這次的畢業(yè)設(shè)計(jì)當(dāng)中,跟實(shí)踐相聯(lián)合。同時(shí),我也發(fā)現(xiàn)自己有好多知識(shí)不明白,都是通過(guò)問(wèn)老師,查資料自學(xué)來(lái)把握,我相信經(jīng)過(guò)我的努力,可以完美的完成這次畢業(yè)設(shè)計(jì)。

(3)在這次畢業(yè)設(shè)計(jì)中,我對(duì)單片機(jī)有了更深的理解,學(xué)習(xí)到了更多關(guān)于單片機(jī)的知識(shí)。通過(guò)深入的研究和思考,在程序編寫(xiě)方面也有自己獨(dú)特的一套思路,編寫(xiě)的時(shí)候更加熟練,靈敏。

(4)加強(qiáng)了查閱資料和自學(xué)的能力。在這次畢業(yè)設(shè)計(jì)當(dāng)中,我遇到了好多不會(huì)的問(wèn)題,然后我就開(kāi)始自己上網(wǎng)探尋,查找或者翻閱書(shū)本查找,經(jīng)過(guò)自學(xué)之后,假使還是不懂,我就會(huì)問(wèn)同學(xué)和老師,最終通過(guò)自己的理解逐漸的把問(wèn)題解決了。這讓我體會(huì)到了什么叫學(xué)無(wú)止境,知識(shí)是無(wú)限的,我們只有通過(guò)不斷的學(xué)習(xí),提升自己的知識(shí)面,才能更好的運(yùn)用到實(shí)際當(dāng)中,使生活更加美好,思想境界更加廣闊。

20

XXXXXX畢業(yè)設(shè)計(jì)

XXXXXX畢業(yè)設(shè)計(jì)

謝辭

在即將終止本文,完成畢業(yè)設(shè)計(jì)的時(shí)刻,我要向所有在我畢業(yè)設(shè)計(jì)階段乃至我大學(xué)幫助過(guò)我的老師和同學(xué)致以深深的謝意,感謝他們?cè)趯W(xué)習(xí)和生活上給我的幫助。.

通過(guò)本次畢業(yè)設(shè)計(jì),我在指導(dǎo)老師的精心指導(dǎo)和嚴(yán)格要求下,獲得了豐富的理論知識(shí),極大地提高了實(shí)踐能力,并對(duì)當(dāng)前電子領(lǐng)域的研究狀況和發(fā)展方向有了一定的了解,單片機(jī)領(lǐng)域這對(duì)我今后進(jìn)一步學(xué)習(xí)計(jì)算機(jī)方面的知識(shí)有極大的幫助。在設(shè)計(jì)中遇到了好多編程問(wèn)題,最終在老師的辛勤指導(dǎo)下,在同學(xué)的熱心幫助下,終究迎刃而解。同時(shí),在老師的身上我學(xué)到好多實(shí)用的知識(shí),在此我表示感謝!最終,對(duì)給過(guò)我?guī)椭乃型瑢W(xué)和各位指導(dǎo)老師再次表示忠心的感謝!

還有許多給予我學(xué)業(yè)上勉勵(lì)和幫助的朋友,在此無(wú)法一一列舉,在此也一并表示忠心地感謝!

22

XXXXXX畢業(yè)設(shè)計(jì)

附錄

附錄1

程序源代碼

#include\#include\#include\

#defineSMG_DATAP0

sbitbotton1=P1^6;sbitbotton2=P1^7;sbitbotton3=P3^4;sbitbotton4=P3^5;sbitbotton5=P3^6;sbitbotton6=P3^7;

sbitS1=P2^7;

u8timebreak0=0;

u8i=0;//定時(shí)器計(jì)數(shù)變量

u16dx_redtime=14,dx_gretime=20,nb_redtime,nb_gretime,yeltime=5;//紅綠燈時(shí)間設(shè)置

s16count_time=0;//時(shí)間調(diào)理量u16num_stop=0,flag_stop=0;//是否需要緊急暫停u8count_settime=0;//調(diào)時(shí)鍵模式計(jì)數(shù)u8count_oneway=0;//單向通行鍵模式計(jì)數(shù)u8breakflag=0;//是否有異常狀況的出現(xiàn)u16break_count=0;//計(jì)數(shù)變量u8car_time=0;//車流量計(jì)時(shí)u8car_number=0;

voidinitled();//初始化交通燈ledvoidinitnumber();//初始化數(shù)碼管voidinitcross();//初始化路口交通燈voidstop();//緊急中斷路口為紅燈voiddisplaycount();//顯示車流量voidautsettime();//自動(dòng)調(diào)時(shí)voidoneway();//單向通行

23

XXXXXX畢業(yè)設(shè)計(jì)

voidnight();//夜間模式voidaddtime();//時(shí)間加voidcuttime();//時(shí)間減voidsettime();//路口調(diào)時(shí)

voidbreakfunction();//異常狀況處理

/*第一排左邊第一個(gè)按鍵為復(fù)位按鍵,

其次個(gè)按鍵為緊急中止按鍵,按一次為路口紅燈四方向中止通行,按兩次退出該模式;

其次排左邊第一個(gè)按鍵為顯示車流量按鍵,按一次顯示車流量,按兩次退出;

其次個(gè)按鍵為單向通行按鍵,按一次為東西通行,按兩次為南北通行,按三次退出;第三個(gè)按鍵為夜間模式按鍵,按一次路口全為黃燈,按兩次退出夜間模式;

第四個(gè)按鍵為調(diào)時(shí)按鍵,調(diào)理東西方向的紅燈和綠燈時(shí)長(zhǎng),按一次為調(diào)理紅燈時(shí)長(zhǎng),按兩次為調(diào)理綠燈時(shí)長(zhǎng);

第五個(gè)按鍵為加時(shí)按鍵,按一下時(shí)間增加一秒;第六個(gè)按鍵為減時(shí)按鍵,按一下時(shí)間減少一秒*/voidmain(){

S1=0;

//初始化時(shí)間

nb_redtime=dx_gretime+yeltime;nb_gretime=dx_redtime-yeltime;

//設(shè)置中斷TMOD=0X01;

TH0=(65536-50000)/256;TH0=(65536-50000)%6;EA=1;EX0=1;EX1=1;IT0=1;IT1=1;ET0=1;TR0=1;

while(1){

initcross();

i=dx_redtime;while(i>0){

24

XXXXXX畢業(yè)設(shè)計(jì)

breakfunction();//異常狀況的處理

if(breakflag)//假使有異常狀況,恢復(fù)時(shí)重新啟動(dòng){

breakflag=0;i=dx_redtime;}

//正常路口通行(東西紅燈)

dx_red=0;//東西紅燈display_2(DONG,i-1);display_2(XI,i-1);

if(i>yeltime+3)//南北綠燈{

nb_gre=0;

display_2(NAN,i-yeltime-1);display_2(BEI,i-yeltime-1);}

elseif(i>yeltime)//南北綠燈閃爍{

display_2(NAN,i-yeltime-1);display_2(BEI,i-yeltime-1);if(timebreak00){

25

XXXXXX畢業(yè)設(shè)計(jì)}

}

breakfunction();if(breakflag){

breakflag=0;i=nb_redtime;}

//正常路口通行(南北紅燈)

nb_red=0;//南北紅燈display_2(NAN,i-1);display_2(BEI,i-1);

if(i>yeltime+3)//東西綠燈{

dx_gre=0;

display_2(DONG,i-yeltime-1);display_2(XI,i-yeltime-1);}

elseif(i>yeltime)//東西綠燈閃爍{

display_2(DONG,i-yeltime-1);display_2(XI,i-yeltime-1);if(timebreak0XXXXXX畢業(yè)設(shè)計(jì)

//定時(shí)器中斷

voidtime0()interrupt1{

TH0=(65536-50000)/256;TL0=(65536-50000)%6;timebreak0++;

if(timebreak0==20)//一秒定時(shí){

i--;

car_time++;timebreak0=0;}

if(car_time==300)//5分鐘記錄一次車流量{

car_number=break_count;break_count=0;car_time=0;}}

//緊急中斷

voidExit_0()interrupt0{

initcross();num_stop++;

if(num_stop%2){

flag_stop=1;//第一次中斷為阻止通行TR0=0;

timebreak0=0;breakflag=1;}

else//其次次中斷為恢復(fù)正常通行{

flag_stop=0;TR0=1;dx_red=1;nb_red=1;}}

//緊急中斷路口為紅燈voidstop()

27

XXXXXX畢業(yè)設(shè)計(jì)

{

if(flag_stop){

initled();}

while(flag_stop){

dx_red=0;nb_red=0;initnumber();}}

//計(jì)數(shù)器

voidcountfunction()interrupt2{

break_count++;}

//顯示車流量

voiddisplaycount(){

if(botton1==0){

delay_ms(10);if(botton1==0){

u8flag=1;while(!botton1);TR0=0;

break_count=break_count%100;while(flag){

display_2(DONG,break_count);display_2(XI,break_count);display_2(NAN,break_count);display_2(BEI,break_count);

if(botton1==0){

delay_ms(10);if(botton1==0){

28

XXXXXX畢業(yè)設(shè)計(jì)

flag=0;

while(!botton1);}}}

initcross();TR0=1;

breakflag=1;}}}

//根據(jù)車流量自動(dòng)調(diào)時(shí)voidautsettime(){

TR0=0;

if(car_number>=0

dx_gretime=20;

nb_redtime=dx_gretime+yeltime;nb_gretime=dx_redtime-yeltime;}

elseif(car_number>20

dx_gretime=50;

nb_redtime=dx_gretime+yeltime;nb_gretime=dx_redtime-yeltime;}else{

dx_redtime=20;

dx_gretime=70;

nb_redtime=dx_gretime+yeltime;nb_gretime=dx_redtime-yeltime;}

TR0=1;}

//初始化交通燈ledvoidinitled()

29

分鐘內(nèi)車流量不同,時(shí)//5XXXXXX畢業(yè)設(shè)計(jì)

{

dx_red=1;dx_

溫馨提示

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