基于單片機(jī)的交通燈設(shè)計(jì)論文.doc
《基于單片機(jī)的交通燈設(shè)計(jì)論文.doc》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于單片機(jī)的交通燈設(shè)計(jì)論文.doc(22頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 現(xiàn)代電子技術(shù)綜合實(shí)驗(yàn)論文 基于單片機(jī)交通燈的設(shè)計(jì)系別:電子工程系專 業(yè) 名 稱:07電子信息工程班 級(jí) 分 組:第一組學(xué) 生 學(xué) 號(hào):學(xué) 生 姓 名:27010202003陳建榕(組長(zhǎng))27010202 陳高揚(yáng)270102020 許 強(qiáng)指 導(dǎo) 教 師 姓 名:李飛鵬(完成日期 2010年 5 月 14 日)II 基于單片機(jī)的交通設(shè)計(jì)摘 要近年來隨著科技的飛速發(fā)展,單片機(jī)的應(yīng)用正在不斷深入,同時(shí)帶動(dòng)傳統(tǒng)控制檢測(cè)技術(shù)日益更新。在實(shí)時(shí)檢測(cè)和自動(dòng)控制的單片機(jī)應(yīng)用系統(tǒng)中,單片機(jī)往往作為一個(gè)核心部件來使用,僅單片機(jī)方面知識(shí)是不夠的,還應(yīng)根據(jù)具體硬件結(jié)構(gòu)軟硬件結(jié)合,加以完善。本設(shè)計(jì)是介紹一種基于基于單片機(jī)
2、的交通燈控制系統(tǒng)。系統(tǒng)采用單片機(jī)和七段LED數(shù)碼管作為交通燈的控制和顯示核心,并通過單片機(jī)實(shí)現(xiàn)對(duì)交通燈各狀態(tài)持續(xù)時(shí)間的控制。系統(tǒng)采用上電自動(dòng)復(fù)位,利用二個(gè)數(shù)碼管和蜂鳴器來顯示和告知各狀態(tài)的剩余時(shí)間,時(shí)間顯示采用倒計(jì)時(shí)的方式,四組紅、黃、綠、藍(lán)四色燈用發(fā)光二極管作為模擬交通信號(hào)燈,呈四種狀態(tài)交替出現(xiàn)。系統(tǒng)通過USB接頭提供+5V的直流電源。該交通系統(tǒng)控制方便,禁行通行時(shí)間可通過改變程序才調(diào)整,有一定的實(shí)用價(jià)值,而且還能體現(xiàn)一定的人性關(guān)懷,體現(xiàn)為在你通過人行道的時(shí)候,沒有車從兩邊轉(zhuǎn)過來,更能保證你的生命安全。 關(guān)鍵詞: 時(shí)鐘頻率 單片機(jī) LED數(shù)碼顯示目 錄摘 要11、設(shè)計(jì)目標(biāo)32、系統(tǒng)方案與實(shí)現(xiàn)
3、321單片機(jī)概述322芯片簡(jiǎn)介43、系統(tǒng)硬件設(shè)計(jì)73、1交通管理的方案論證73、2系統(tǒng)硬件設(shè)計(jì)94、系統(tǒng)工作原理105、控制器的軟件設(shè)計(jì)105.1每秒鐘的設(shè)定105.2計(jì)數(shù)器硬件延時(shí)105.2.1 計(jì)數(shù)器初值計(jì)算105.2.2 計(jì)算公式105.2.3 秒的方法105.2.4相應(yīng)程序代碼115.3 軟件延時(shí)135.4 時(shí)間及信號(hào)燈的顯示原理135.4.1顯示原理135.4.2 P0口、P1口輸出信號(hào)接信號(hào)燈135.4.3 P3口數(shù)碼管的連接136、程序源代碼以實(shí)物圖146.1程序源代碼146.2實(shí)物圖196.2.1實(shí)物正面196.2.2實(shí)物反面207、結(jié)論218、實(shí)驗(yàn)體會(huì)21參考文獻(xiàn)211、設(shè)計(jì)
4、目標(biāo)當(dāng)今,紅綠燈安裝在各個(gè)道口上,已經(jīng)成為疏導(dǎo)交通車輛最常見和最有效的手段。但這一技術(shù)在19世紀(jì)就已出現(xiàn)了。1858年,在英國(guó)倫敦主要街頭安裝了以燃煤氣為光源的紅,藍(lán)兩色的機(jī)械扳手式信號(hào)燈,用以指揮馬車通行。這是世界上最早的交通信號(hào)燈。1868年,英國(guó)機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會(huì)大廈前的廣場(chǎng)上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。電氣啟動(dòng)的紅綠燈出現(xiàn)在美國(guó),這種紅綠燈由紅綠黃三色圓形的投光器組成,1914年始安裝于紐約市5號(hào)大街的一座高塔上。紅燈亮表示“停止”,綠
5、燈亮表示“通行”。1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測(cè)器安在地下,車輛一接近紅燈便變?yōu)榫G燈;另一種是用擴(kuò)音器來啟動(dòng)紅綠燈,司機(jī)遇紅燈時(shí)按一下嗽叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對(duì)壓力敏感的路面時(shí),它就能察覺到有人要過馬路。紅外光束能把信號(hào)燈的紅燈延長(zhǎng)一段時(shí)間,推遲汽車放行,以免發(fā)生交通事故。信號(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)向。
6、左右轉(zhuǎn)彎車輛都必須讓合法地正在路口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號(hào),面對(duì)紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號(hào),面對(duì)黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時(shí)可以進(jìn)入交叉路口。本設(shè)計(jì)的主要設(shè)計(jì)工作如下:(1)介紹顯示系統(tǒng)的各個(gè)組成部分,各個(gè)元器件的工作原理。(2)介紹交通燈電路的原理。(3)介紹硬件原理圖的設(shè)計(jì)。(4)給出顯示系統(tǒng)的軟件設(shè)計(jì)。2、系統(tǒng)方案與實(shí)現(xiàn)本章圍繞系統(tǒng)的總體設(shè)計(jì),介紹系統(tǒng)組成框圖、主控芯片單片機(jī)的內(nèi)部硬件資源和接口設(shè)置,以及整個(gè)顯示控制系統(tǒng)所用到的其它元器件的介紹。21單片機(jī)概述 單片機(jī)微型計(jì)算機(jī)是微型計(jì)算機(jī)的一個(gè)
7、重要分支,也是頗具生命力的機(jī)種。單片機(jī)微型計(jì)算機(jī)簡(jiǎn)稱單片機(jī),特別適用于控制領(lǐng)域,故又稱為微控制器。 通常,單片機(jī)由單塊集成電路芯片構(gòu)成,內(nèi)部包含有計(jì)算機(jī)的基本功能部件:中央處理器、存儲(chǔ)器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個(gè)單片機(jī)控制系統(tǒng)。 單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引角的多功能化,以及低電壓底功耗。22芯片簡(jiǎn)介 8051是MCS-51系列單片機(jī)的典型產(chǎn)品,我們以這一代表性的機(jī)型進(jìn)行系統(tǒng)的講解。8051單片機(jī)包含中央處理器、程序存儲(chǔ)器(ROM)、數(shù)據(jù)存儲(chǔ)器(RAM)
8、、定時(shí)/計(jì)數(shù)器、并行接口、串行接口和中斷系統(tǒng)等幾大單元及數(shù)據(jù)總線、地址總線和控制總線等三大總線,現(xiàn)在我們分別加以說明:中央處理器:中央處理器(CPU)是整個(gè)單片機(jī)的核心部件,是8位數(shù)據(jù)寬度的處理器,能處理8位二進(jìn)制數(shù)據(jù)或代碼,CPU負(fù)責(zé)控制、指揮和調(diào)度整個(gè)單元系統(tǒng)協(xié)調(diào)的工作,完成運(yùn)算和控制輸入輸出功能等操作。數(shù)據(jù)存儲(chǔ)器(RAM)8051內(nèi)部有128個(gè)8位用戶數(shù)據(jù)存儲(chǔ)單元和128個(gè)專用寄存器單元,它們是統(tǒng)一編址的,專用寄存器只能用于存放控制指令數(shù)據(jù),用戶只能訪問,而不能用于存放用戶數(shù)據(jù),所以,用戶能使用的RAM只有128個(gè),可存放讀寫的數(shù)據(jù),運(yùn)算的中間結(jié)果或用戶定義的字型表。圖1程序存儲(chǔ)器(RO
9、M):8051共有4096個(gè)8位掩膜ROM,用于存放用戶程序,原始數(shù)據(jù)或表格。定時(shí)/計(jì)數(shù)器(ROM):8051有兩個(gè)16位的可編程定時(shí)/計(jì)數(shù)器,以實(shí)現(xiàn)定時(shí)或計(jì)數(shù)產(chǎn)生中斷用于控制程序轉(zhuǎn)向。并行輸入輸出(I/O)口:8051共有4組8位I/O口(P0、 P1、P2或P3),用于對(duì)外部數(shù)據(jù)的傳輸。全雙工串行口:8051內(nèi)置一個(gè)全雙工串行通信口,用于與其它設(shè)備間的串行數(shù)據(jù)傳送,該串行口既可以用作異步通信收發(fā)器,也可以當(dāng)同步移位器使用。中斷系統(tǒng):8051具備較完善的中斷功能,有兩個(gè)外中斷、兩個(gè)定時(shí)/計(jì)數(shù)器中斷和一個(gè)串行中斷,可滿足不同的控制要求,并具有2級(jí)的優(yōu)先級(jí)別選擇。時(shí)鐘電路:8051內(nèi)置最高頻率達(dá)
10、12MHz的時(shí)鐘電路,用于產(chǎn)生整個(gè)單片機(jī)運(yùn)行的脈沖時(shí)序,但8051單片機(jī)需外置振蕩電容。單片機(jī)的結(jié)構(gòu): 單片機(jī)的結(jié)構(gòu)有兩種類型,一種是程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器分開的形式,即哈佛(Harvard)結(jié)構(gòu),另一種是采用通用計(jì)算機(jī)廣泛使用的程序存儲(chǔ)器與數(shù)據(jù)存儲(chǔ)器合二為一的結(jié)構(gòu),即普林斯頓(Princeton)結(jié)構(gòu)。INTEL的MCS-51系列單片機(jī)采用的是哈佛結(jié)構(gòu)的形式,而后續(xù)產(chǎn)品16位的MCS-96系列單片機(jī)則采用普林斯頓結(jié)構(gòu)。下圖是MCS-51系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖2。 圖2 MCS-51的引腳說明:MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),
11、右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用。現(xiàn)在我們對(duì)這些引腳的功能加以說明:MCS-51系列單片機(jī)中的8031、8051及8751均采用40Pin封裝的雙列直接DIP結(jié)構(gòu),右圖是它們的引腳配置,40個(gè)引腳中,正電源和地線兩根,外置石英振蕩器的時(shí)鐘線兩根,4組8位共32個(gè)I/O口,中斷口線與P3口線復(fù)用?,F(xiàn)在我們對(duì)這些引腳的功能加以說明:如圖3 圖3Pin9:RESET/Vpd復(fù)位信號(hào)復(fù)用腳,當(dāng)8051通電,時(shí)鐘電路開始工作,在RESET引腳上出現(xiàn)24個(gè)時(shí)鐘周期以上的高電平,系統(tǒng)即初始復(fù)位。初始化后,程序計(jì)
12、數(shù)器PC指向0000H,P0-P3輸出口全部為高電平,堆棧指針寫入07H,其它專用寄存器被清“0”。RESET由高電平下降為低電平后,系統(tǒng)即從0000H地址開始執(zhí)行程序。然而,初始復(fù)位不改變RAM(包括工作寄存器R0-R7)的狀態(tài),8051的初始態(tài)。8051的復(fù)位方式可以是自動(dòng)復(fù)位,也可以是手動(dòng)復(fù)位,見下圖4。此外,RESET/Vpd還是一復(fù)用腳,Vcc掉電其間,此腳可接上備用電源,以保證單片機(jī)內(nèi)部RAM的數(shù)據(jù)不丟失。圖4Pin30:ALE/當(dāng)訪問外部程序器時(shí),ALE(地址鎖存)的輸出用于鎖存地址的低位字節(jié)。而訪問內(nèi)部程序存儲(chǔ)器時(shí),ALE端將有一個(gè)1/6時(shí)鐘頻率的正脈沖信號(hào),這個(gè)信號(hào)可以用于識(shí)
13、別單片機(jī)是否工作,也可以當(dāng)作一個(gè)時(shí)鐘向外輸出。更有一個(gè)特點(diǎn),當(dāng)訪問外部程序存儲(chǔ)器,ALE會(huì)跳過一個(gè)脈沖。如果單片機(jī)是EPROM,在編程其間,將用于輸入編程脈沖。Pin29:當(dāng)訪問外部程序存儲(chǔ)器時(shí),此腳輸出負(fù)脈沖選通信號(hào),PC的16位地址數(shù)據(jù)將出現(xiàn)在P0和P2口上,外部程序存儲(chǔ)器則把指令數(shù)據(jù)放到P0口上,由CPU讀入并執(zhí)行。Pin31:EA/Vpp程序存儲(chǔ)器的內(nèi)外部選通線,8051和8751單片機(jī),內(nèi)置有4kB的程序存儲(chǔ)器,當(dāng)EA為高電平并且程序地址小于4kB時(shí),讀取內(nèi)部程序存儲(chǔ)器指令數(shù)據(jù),而超過4kB地址則讀取外部指令數(shù)據(jù)。如EA為低電平,則不管地址大小,一律讀取外部程序存儲(chǔ)器指令。顯然,對(duì)內(nèi)
14、部無程序存儲(chǔ)器的8031,EA端必須接地。在編程時(shí),EA/Vpp腳還需加上21V的編程電壓。3、系統(tǒng)硬件設(shè)計(jì)3、1交通管理的方案論證 圖5東西、南北兩干道交于一個(gè)十字路口,各干道有一組紅、黃、綠、藍(lán)四色的指示燈,指揮車輛和行人安全通行。紅燈亮禁止通行,綠燈亮允許通行,藍(lán)燈亮允許轉(zhuǎn)彎。黃燈亮提示人們注意紅、綠、藍(lán)燈的狀態(tài)即將切換,且黃燈燃亮?xí)r間為東西、南北兩干道的公共停車時(shí)間。示意圖如上圖圖5,指示燈燃亮的方案如表2。表2 車道 燈亮?xí)r間東、西南、北25s綠燈亮紅燈亮5s黃燈亮黃燈亮25紅燈亮綠燈亮5s黃燈亮黃燈亮15s東車道紅燈、西車道綠燈北車道左轉(zhuǎn)、南車道右轉(zhuǎn)5s黃燈亮黃燈亮15s東車道綠燈
15、、西車道紅燈北車道右轉(zhuǎn)、南車道左轉(zhuǎn)5s黃燈亮黃燈亮15s西車道右轉(zhuǎn)、東車道左轉(zhuǎn)北車道綠燈、南車道紅燈5s黃燈亮黃燈亮15s西車道左轉(zhuǎn)、東車道右轉(zhuǎn)北車道紅燈、南車道綠燈5s黃燈亮黃燈亮表2說明:(1)、當(dāng)東、西車道綠燈時(shí),南、北車道紅燈;東、西車道直走,南、北車道停止通行,人行道南、北通行,數(shù)碼管倒數(shù)25秒;(2)、第一步延時(shí)25秒后,東、西、南、北車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;(3)、當(dāng)東、西車道紅燈時(shí),南、北車道綠燈;東、西車道停止通行,南、北車道直走,人行道東、西通行,數(shù)碼管倒數(shù)25秒;(4)、第三步延時(shí)25秒后,東、西、南、北車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;
16、(5)、西車道綠燈時(shí),東車道紅燈,南、北車道藍(lán)燈,西車道直走,南車道左轉(zhuǎn),北車道右轉(zhuǎn),東車道停止通行,數(shù)碼管倒數(shù)15秒;(6)、第五步延時(shí)15秒后,東、西、南、北車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;(7)、東車道綠燈時(shí),西車道紅燈,南、北車道藍(lán)燈,東車道直走,南車道右轉(zhuǎn),北車道左轉(zhuǎn),西車道停止通行,數(shù)碼管倒數(shù)15秒;(8)、第七步延時(shí)15秒后,東、西、南、北車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;(9)、南車道綠燈時(shí),北車道紅燈,東、西車道藍(lán)燈,南車道直走,西車道右轉(zhuǎn),東車道左轉(zhuǎn),北車道停止通行,數(shù)碼管倒數(shù)15秒;(10)、第九步延時(shí)15秒后,東、西、南、北車道同時(shí)亮黃燈,蜂鳴
17、器響,(滴5聲)倒數(shù)5秒;(11)、北車道綠燈時(shí),南車道紅燈,東、西車道藍(lán)燈,北車道直走,西號(hào)車道左,東車道右轉(zhuǎn),南車道停止通行,數(shù)碼管倒數(shù)15秒;(12)、第十一步延時(shí)15秒后,東、西、南、北車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;(13)、循環(huán)(1)-(13)。3.2系統(tǒng)硬件設(shè)計(jì)選用芯片STC-89C51單片機(jī),兩位共陽極的七段數(shù)碼管,蜂鳴器,USB接頭,12MHz晶振,紅、黃、綠、交通燈若干個(gè),開關(guān)鍵盤、連線若干。交通燈硬件線路圖如下圖圖6。 4、系統(tǒng)工作原理(1)芯片STC-89C51單片機(jī)作為系統(tǒng)控制芯片,通過各個(gè)Port口控制整個(gè)系統(tǒng);(2)通過芯片的第九管腳控制復(fù)位電路,按
18、通輕觸鍵可使系統(tǒng)復(fù)位;(3)由STC-89C51單片機(jī)P0口、P1口控制燈的亮滅,P3口控制兩位共陽極的七段數(shù)碼管,P25控制蜂鳴器的鳴滅;(4)通過USB接口輸入5V電源,驅(qū)動(dòng)芯片和各個(gè)元器件。、控制器的軟件設(shè)計(jì)5.1每秒鐘的設(shè)定 延時(shí)方法可以有兩種一中是利用MCS-51內(nèi)部定時(shí)器才生溢出中斷來確定1秒的時(shí)間,另一種是采用軟延時(shí)的方法。5.2計(jì)數(shù)器硬件延時(shí)5.2.1 計(jì)數(shù)器初值計(jì)算 定時(shí)器工作時(shí)必須給計(jì)數(shù)器送計(jì)數(shù)器初值,這個(gè)值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時(shí)自動(dòng)產(chǎn)生溢出中斷請(qǐng)求。因此,我們可以把計(jì)數(shù)器記滿為零所需的計(jì)數(shù)值設(shè)定為C和計(jì)數(shù)初值設(shè)定為TC 可得到如下計(jì)算通
19、式: TC=M-C式中,M為計(jì)數(shù)器摸值,該值和計(jì)數(shù)器工作方式有關(guān)。在方式0時(shí)M為213 ;在方式1時(shí)M的值為216;在方式2和3為285.2.2 計(jì)算公式 T=(MTC)T計(jì)數(shù) 或T計(jì)數(shù)T計(jì)數(shù)是單片機(jī)時(shí)鐘周期的倍;為定時(shí)初值如單片機(jī)的主脈沖頻率為,經(jīng)過分頻方式213微秒毫秒方式216微秒毫秒顯然秒鐘已經(jīng)超過了計(jì)數(shù)器的最大定時(shí)間,所以我們只有采用定時(shí)器和軟件相結(jié)合的辦法才能解決這個(gè)問題5.2.3 秒的方法我們采用在主程序中設(shè)定一個(gè)初值為的軟件計(jì)數(shù)器和使定時(shí)毫秒這樣每當(dāng)?shù)胶撩霑r(shí)就響應(yīng)它的溢出中斷請(qǐng)求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,先使軟件計(jì)數(shù)器減,然后判斷它是否為零。為零表示秒已到可
20、以返回到輸出時(shí)間顯示程序。5.2.4相應(yīng)程序代碼()主程序#include#define uint unsigned int#define uchar unsigned charsbit dula=P26;sbit wela=P27;uchar code table10= 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x83,0 xf8,0 x80,0 x98;uchar t,t0,shi,ge;void init();void display(uchar shi,uchar ge);void delay(uint x);void main() init(); w
21、hile(1) display(shi,ge); void init()t=25;TMOD=0 x01;TH0=(65536-10000)/256;TL0=(65536-10000)%256;EA=1;ET0=1;TR0=1;void time0() interrupt 1TH0=(65536-10000)/256;TL0=(65536-10000)%256;t0+;if(t0=100)t0=0;if(t!=0)shi=t/10;ge=t%10;t-;elseshi=t/10;ge=t%10;t=25;void display(uchar shi,uchar ge)dula=1;P3=tabl
22、eshi;dula=0;P3=0 xff;wela=1;P3=0 xfe;wela=0;delay(5);dula=1;P3=tablege;dula=0;P3=0 xff;wela=1;P3=0 xfd;wela=0;delay(5);void delay(uint x)uint i,j;for(i=x;i0;i-)for(j=110;j0;j-);5.3 軟件延時(shí) MCS-51的工作頻率為2-12MHZ,我們選用的8031單片機(jī)的工作頻率為6MHZ。機(jī)器周期與主頻有關(guān),機(jī)器周期是主頻的12倍,所以一個(gè)機(jī)器周期的時(shí)間為12*(1/6M)=2us。我們可以知道具體每條指令的周期數(shù),這樣我們就可
23、以通過指令的執(zhí)行條數(shù)來確定1秒的時(shí)間。 具體的延時(shí)程序分析: #include#define uint unsigned int#define uchar unsigned charvoid delay(uint x)uint i,j;for(i=x;i0;i-)for(j=110;j0;j-);5.4 時(shí)間及信號(hào)燈的顯示原理5.4.1顯示原理:當(dāng)程序跳轉(zhuǎn)到時(shí)間顯示及信號(hào)燈顯示子程序,它將依次顯示信號(hào)燈時(shí)間 ,同時(shí)一直顯示信號(hào)燈的顏色,這時(shí)在返回定時(shí)子程序定時(shí)一秒,在顯示黃燈的下一個(gè)時(shí)間,這樣依次把所有的燈色的時(shí)間顯示完后 ,重新進(jìn)入循環(huán)。 5.4.2 P0口、P1口輸出信號(hào)接信號(hào)燈:P0口、
24、P1口控制燈的亮滅,由于發(fā)光二極管為共陽極接法,輸出端口為低電平,對(duì)應(yīng)的二極管發(fā)光,所以可以用置位方法點(diǎn)亮紅,綠,黃,藍(lán)色發(fā)光二極管。5.4.3 P3口數(shù)碼管的連接:LED 燈的顯示原理:通過同名管腳上所加電平的高低來控制發(fā)光二極管是否點(diǎn)量而顯示不同的字形如 dp,g,f,e,d,c,b,a 管角上加上0 x80,dp為高電平,所以全亮則顯示為8,具體見下表表3。采用共陽級(jí)連接:其中 P30-a,P31-b, P32-c,P33-d,P34-e, P35-f,P36-gP37-dp 顯示數(shù)值dp g f e d c b a 驅(qū)動(dòng)代碼(16進(jìn)制)01 1 0 0 0 0 0 00 xc01 1
25、1 1 1 1 0 0 10 xf92 1 0 1 0 0 1 0 00 xa43 1 0 1 1 0 0 0 00 xb04 1 0 0 1 1 0 0 10 x995 1 0 0 1 0 0 1 00 x926 1 0 0 0 0 0 1 10 x837 1 1 1 1 1 0 0 00 xf88 1 0 0 0 0 0 0 00 x809 1 0 0 1 1 0 0 00 x98 表 3 驅(qū)動(dòng)代碼表6、程序源代碼以實(shí)物圖 6.1程序源代碼#include #include #define uchar unsigned char#define uint unsigned intuchar
26、code table= 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x83,0 xf8,0 x80,0 x98;sbit left_1 = P03;/代表道路1的藍(lán)燈,表示可以向左轉(zhuǎn)彎sbit RED_1 = P05;/代表道路1的紅燈sbit GREEN_1 = P04;/代表道路1的綠sbit YELLOW_1 = P06;/ 代表道路1的黃燈sbit right_1 = P07;/代表道路1的藍(lán)燈,表示可以向右轉(zhuǎn)彎sbit left_2 = P17;/代表道路2的藍(lán)燈,表示可以向左轉(zhuǎn)彎sbit RED_2 = P14;/代表道路2的紅燈sbit GREEN
27、_2 = P11;/代表道路2的綠sbit YELLOW_2 = P16;/ 代表道路2的黃燈sbit right_2 = P10;/代表道路2的藍(lán)燈,表示可以向右轉(zhuǎn)彎 sbit left_3 = P12;/代表道路3的藍(lán)燈,表示可以向左轉(zhuǎn)彎sbit RED_3 = P00;/代表道路3的紅燈sbit GREEN_3 = P01;/代表道路3的綠sbit YELLOW_3 = P13;/ 代表道路3的黃燈sbit right_3 = P02;/代表道路3的藍(lán)燈,表示可以向右轉(zhuǎn)彎sbit left_4 = P23;/代表道路4的藍(lán)燈,表示可以向左轉(zhuǎn)彎sbit RED_4 = P20;/代表道路4
28、的紅燈sbit GREEN_4 = P21;/代表道路4的綠sbit YELLOW_4 = P22;/ 代表道路4的黃燈sbit right_4 = P15;/代表道路4的藍(lán)燈,表示可以向右轉(zhuǎn)彎 sbit fmq=P25;sbit smg1=P26;sbit smg2=P27;void delay(uint z) /延時(shí)函數(shù) uint x,y;for(x=z;x0;x-)for(y=110;y0;y-);void xianshi(uint m , w) /倒計(jì)時(shí)函數(shù) uchar n,i,j,k; i=w;j=m; while(1) k-;n=80; while(n) n-; smg1=0;P3
29、=tablei; delay(5);smg1=1; smg2=0;P3=tablej; delay(5);smg2=1; if(i=0 x00) i=0 x0a;j=j-1; i=i-1; if(j=0)&(i=0) break; /* 主函數(shù)第一步:當(dāng)1、2車道綠燈時(shí),3、4車道紅燈;1、2車道直走,3、4車道停止通行,人行道3、4通行,數(shù)碼管倒數(shù)25秒.第二步:第一步延時(shí)25秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;第三步:當(dāng)1、2車道紅燈時(shí),3、4車道綠燈;1、2車道停止通行,3、4車道直走,人行道1、2通行,數(shù)碼管倒數(shù)25秒;第四步:第三步延時(shí)25秒后,1、2、
30、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;第五步:1車道綠燈時(shí),2車道紅燈,3、4車道藍(lán)燈,1車道直走,3車道左轉(zhuǎn),4車道右轉(zhuǎn),2車道停止通行,數(shù)碼管倒數(shù)15秒;第六步:第五步延時(shí)15秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;第七步:2車道綠燈時(shí),1車道紅燈,3、4車道藍(lán)燈,2車道直走,3車道右轉(zhuǎn),4車道左轉(zhuǎn),1車道停止通行,數(shù)碼管倒數(shù)15秒;第八步:第七步延時(shí)15秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;第九步:3車道綠燈時(shí),4車道紅燈,1、2車道藍(lán)燈,3車道直走,1車道右轉(zhuǎn),2車道左轉(zhuǎn),4車道停止通行,數(shù)碼管倒數(shù)15秒;第十步:第九
31、步延時(shí)15秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;第十一步:4車道綠燈時(shí),3車道紅燈,1、2車道藍(lán)燈,4車道直走,1號(hào)車道左,2車道右轉(zhuǎn),3車道停止通行,數(shù)碼管倒數(shù)15秒;第十二步:第十一步延時(shí)15秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒;第十三步:循環(huán)第一步-第十二步。*/void main() while(1)/第十三步:循環(huán)第一步-第十二步 uint k; fmq=1; YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=1; /第一步:當(dāng)1、2車道綠燈時(shí),3、4車道紅燈;1、2車道直走,3、4車道停止通行,人行道3、
32、4通行,數(shù)碼管倒數(shù)25秒. GREEN_1=GREEN_2=0; RED_3=RED_4=0; xianshi(2,5); /數(shù)碼管倒數(shù)25秒 /第二步:第一步延時(shí)25秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒; GREEN_1=GREEN_2= RED_3=RED_4=1; YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=0; for(k=18;k0;k-) fmq=0;delay(100); fmq=1;delay(100); / 延時(shí)5秒 /第三步:當(dāng)1、2車道紅燈時(shí),3、4車道綠燈;1、2車道停止通行,3、4車道直走,人行道1、2通行,數(shù)碼
33、管倒數(shù)25秒; YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=1; RED_1=RED_2=GREEN_3=GREEN_4=0; xianshi(2,5); /數(shù)碼管倒數(shù)25秒 /第四步:第三步延時(shí)25秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒; GREEN_3=GREEN_4= RED_1=RED_2=1; YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=0; for(k=18;k0;k-) fmq=0;delay(100); fmq=1;delay(100); / 延時(shí)5秒 / 第五步:1車道綠燈時(shí),2車道紅燈,3、4
34、車道藍(lán)燈,1車道直走,3車道左轉(zhuǎn),4車道右轉(zhuǎn),2車道停止通行,數(shù)碼管倒數(shù)15秒; YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=1; GREEN_1=RED_2=left_3=right_4=0; xianshi(1,5);/數(shù)碼管倒數(shù)15秒 / 第六步:第五步延時(shí)15秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒; GREEN_1=RED_2=left_3=right_4=1; YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=0; for(k=18;k0;k-) fmq=0;delay(100); fmq=1;delay(1
35、00); / 延時(shí)5秒 /第七步:2車道綠燈時(shí),1車道紅燈,3、4車道藍(lán)燈,2車道直走,3車道右轉(zhuǎn),4車道左轉(zhuǎn),1車道停止通行,數(shù)碼管倒數(shù)15秒 YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=1; GREEN_2=RED_1=right_3=left_4=0; xianshi(1,5);/數(shù)碼管倒數(shù)15秒 /第八步:第七步延時(shí)15秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒 GREEN_2=RED_1=right_3=left_4=1; YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=0; for(k=18;k0;k-) f
36、mq=0;delay(100); fmq=1;delay(100); / 延時(shí)5秒 /第九步:3車道綠燈時(shí),4車道紅燈,1、2車道藍(lán)燈,3車道直走,1車道右轉(zhuǎn),2車道左轉(zhuǎn),4車道停止通行,數(shù)碼管倒數(shù)10秒; YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=1; GREEN_3=RED_4=right_1=left_2=0; xianshi(1,5);/數(shù)碼管倒數(shù)15秒 /第十步:第九步延時(shí)15秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒; GREEN_3=RED_4=right_1=left_2=1; YELLOW_1=YELLOW_2=YELLOW
37、_3=YELLOW_4=0; for(k=18;k0;k-) fmq=0;delay(100); fmq=1;delay(100); / 延時(shí)5秒 /第十一步:4車道綠燈時(shí),3車道紅燈,1、2車道藍(lán)燈,4車道直走,1號(hào)車道左,2車道右轉(zhuǎn),3車道停止通行,數(shù)碼管倒數(shù)15秒; YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=1; GREEN_4=RED_3=left_1=right_2=0; xianshi(1,5);/數(shù)碼管倒數(shù)15秒 /第十二步:第十一步延時(shí)15秒后,1、2、3、4車道同時(shí)亮黃燈,蜂鳴器響,(滴5聲)倒數(shù)5秒; GREEN_4=RED_3=left_1=
38、right_2=1; YELLOW_1=YELLOW_2=YELLOW_3=YELLOW_4=0; for(k=18;k0;k-) fmq=0;delay(100); fmq=1;delay(100); / 延時(shí)5秒 6.2實(shí)物圖6.2.1實(shí)物正面6.2.2實(shí)物反面7、結(jié)論本系統(tǒng)統(tǒng)采用MSC-51系列單片機(jī)STC-89C51來設(shè)計(jì)交通燈控制器,實(shí)現(xiàn)了能根據(jù)實(shí)際車流量通過程序小改動(dòng)就可以設(shè)置紅、綠、黃、藍(lán)燈燃亮?xí)r間的功能;紅綠燈循環(huán)點(diǎn)亮,倒計(jì)時(shí)剩25秒(交通燈信號(hào)通過P0、P2口輸出,顯示時(shí)間通過P3口輸出至雙位數(shù)碼管進(jìn)行顯示);黃燈閃爍警示,蜂鳴器鳴叫;該系統(tǒng)得亮點(diǎn)之處是能控制車的左、右轉(zhuǎn),左
39、右轉(zhuǎn)也根據(jù)實(shí)際車流量通過程序小改動(dòng)就可以設(shè)置藍(lán)燈燃亮?xí)r間。本系統(tǒng)的不足之處在于沒有通過外設(shè)按鍵來調(diào)節(jié)紅、綠、黃、藍(lán)亮滅時(shí)間的功能以及自動(dòng)根據(jù)車流改變紅綠燈時(shí)間等。這是由于自身知識(shí)的不足以及時(shí)間的有限,如果有需要可以設(shè)計(jì)擴(kuò)充原系統(tǒng)來實(shí)現(xiàn) 。8、實(shí)驗(yàn)體會(huì)通過這次現(xiàn)代電子技術(shù)綜合實(shí)驗(yàn),使我得到了一次用專業(yè)知識(shí)、專業(yè)技能分析和解決問題全面系統(tǒng)的鍛煉;使我在單片機(jī)的基本原理、單片機(jī)應(yīng)用系統(tǒng)開發(fā)過程,以及在常用編程設(shè)計(jì)思路技巧(特別是C語言)的掌握方面都能向前邁了一大步,也進(jìn)一步激起我對(duì)電子實(shí)驗(yàn)、學(xué)習(xí)的興趣,為日后成為合格的應(yīng)用型人才打下良好的基礎(chǔ)。參考文獻(xiàn)1、張毅坤. 單片微型計(jì)算機(jī)原理及應(yīng)用,西安電子科技大學(xué)出版社 1998 2、余錫存 曹國(guó)華.單片機(jī)原理及接口技術(shù)M.陜西:西安電子科技大學(xué)出版社2000.73、雷麗文 .微機(jī)原理與接口技術(shù)M.北京:電子工業(yè)出版社 1997.24、張義和 .例說51單片機(jī)(C語言版) 人民郵電出版社 2008 4第 20 頁 共21頁
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 初中生物對(duì)照實(shí)驗(yàn)專題復(fù)習(xí)課件
- 初中物理資源九年級(jí)第十五單元課件串并聯(lián)識(shí)別
- 咯血與嘔血課件
- What's_your_number_課件
- 外研版七下Module3Unit1(教育精品)
- 浙美版三年級(jí)上冊(cè)美術(shù)第15課-剪雪花教學(xué)ppt課件
- 蘇教版六年級(jí)下冊(cè)數(shù)學(xué)正比例和反比例的意義課件
- 蘇教版五下《單式折線統(tǒng)計(jì)圖》教研課件
- 固態(tài)相變概論
- 三角形全等的判定復(fù)習(xí)-課件2
- 太陽能發(fā)展趨勢(shì)課件
- 道路工程監(jiān)理最新規(guī)劃范本課件
- SPC及CPK教程(理論篇)課件
- Travel-Plan旅行計(jì)劃-PPT
- 新冠肺炎疫情期間醫(yī)務(wù)人員防護(hù)技術(shù)指南