版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p> 畢業(yè)設(shè)計(論文)任務(wù)書</p><p> 姓 名: 系(部):應(yīng)用電子與通信技術(shù)系專 業(yè): 應(yīng)用電子技術(shù) 班 號: 任務(wù)起至日: 2010年 3 月 24日至 2010年 月 日</p><p> 畢業(yè)設(shè)計(論文)題目:交通燈控制系統(tǒng)</p><p> 立題的目的
2、和意義:</p><p> 技術(shù)要求與主要內(nèi)容:(1) 利用單片機(jī)、數(shù)碼管及發(fā)光二極管制作成十字路所使用的交通燈,要求A車道和B車道兩條交叉道路上的車輛交替運(yùn)行,A車道車輛行進(jìn)60S,B車道車輛行進(jìn)30S.(2) 當(dāng)還有5秒車輛禁止時,綠燈閃3秒,黃燈亮2秒。(3) 在十字路口設(shè)置時鐘來顯示A,B道停止和行進(jìn)的時間 。(4) 當(dāng)有緊急情況發(fā)生時,A,B道紅燈同時亮,以讓特殊車輛通過。 (5) 并對單片機(jī)的特點(diǎn),
3、各部分的工作原理及功能加以闡述。</p><p><b> 摘 要</b></p><p> 隨著現(xiàn)代科技的發(fā)展,電子技術(shù)已經(jīng)深入了我們的生活,手機(jī)、電視、電腦、霓虹燈等等,單片機(jī)技術(shù)是電子技術(shù)中一個重要部分,例如我們常說的帶電腦的電飯鍋,其實(shí)就是用單片機(jī)來實(shí)現(xiàn)的,電子技術(shù)已經(jīng)深入到了各個領(lǐng)域。</p><p> 人們的生活隨著科技便得
4、發(fā)展,變得更加舒適方便,隨著汽車的誕生,我們過去需要幾個月才能到達(dá)的地方現(xiàn)在只需要幾天甚至幾個小時。人們的生活越來越好了,道路上的汽車也越來越多了。交通燈應(yīng)運(yùn)而生,它負(fù)責(zé)控制疏導(dǎo)交通,保證交通的正常運(yùn)行,不會產(chǎn)生混亂。</p><p> 紅綠燈控制疏導(dǎo)交通這項(xiàng)技術(shù)早在19世紀(jì)就已經(jīng)產(chǎn)生了,正因?yàn)榧t綠控制交通的高效,所以幾乎每個路口都會安裝有紅綠燈來疏導(dǎo)過往車輛,紅綠燈是怎么實(shí)現(xiàn)的呢,實(shí)現(xiàn)交通燈控制的方式有很多,
5、這里我采用是通過atmel公司生產(chǎn)的AT89S51最為中央處理器來控制交通燈。通過P0口來控制紅綠燈轉(zhuǎn)換,P1口來控制輸入,P2、P3作為數(shù)碼倒計時輸出。</p><p> 關(guān)鍵詞:AT89S51;交通燈;控制系統(tǒng)</p><p><b> 目錄</b></p><p><b> 摘 要I</b></p&g
6、t;<p><b> 第1緒論1</b></p><p> 第2章 交通燈設(shè)計方案論證3</p><p><b> 2.1設(shè)計任務(wù)3</b></p><p> 2.2 方案介紹3</p><p> 2.2.1方案一設(shè)計思想4</p><p>
7、 2.2.2方案二設(shè)計思想4</p><p> 2.2.3 方案比較并選擇方案4</p><p> 2.3 實(shí)驗(yàn)平臺5</p><p> 2.4 實(shí)驗(yàn)步驟5</p><p> 2.4.1 編寫程序源代碼5</p><p> 2.4.2 開發(fā)板模擬測試5</p><p>
8、 第3章 交通燈系統(tǒng)硬件設(shè)計7</p><p> 3.1單片機(jī)概述7</p><p> 3.2硬件系統(tǒng)構(gòu)成8</p><p> 3.3 AT89s51芯片介紹8</p><p> 3.4元件列表與電路原理圖11</p><p> 3.4.1 電路原理圖11</p><p>
9、; 3.4.2元件列表12</p><p> 第4章 軟件系統(tǒng)設(shè)計13</p><p> 4.1 軟件設(shè)計流程圖13</p><p> 4..2定時器初值計算14</p><p> 4.3程序源代碼14</p><p> 第5章 調(diào)試功能說明15</p><p> 5.
10、1 硬件調(diào)試15</p><p> 5.1.1最小系統(tǒng)調(diào)試15</p><p> 5.1.2 故障點(diǎn)分析15</p><p><b> 結(jié)論17</b></p><p><b> 致謝18</b></p><p><b> 參考文獻(xiàn)19<
11、/b></p><p> 附錄一 電路原理圖20</p><p> 附錄二 程序源代碼21</p><p><b> 第1緒論</b></p><p> 紅綠燈這以技術(shù)在十九世紀(jì)時就已經(jīng)出現(xiàn)了,時至今日,用紅綠燈控制交通的手段已經(jīng)是最常見且有效地手段,全世界幾乎都采用這種方式來控制疏導(dǎo)交通了。</
12、p><p> 在1858年英國倫敦,就已經(jīng)再主要街道上安裝了以燃燒煤氣為光源的紅、藍(lán)兩色的機(jī)械扳手式信號燈,用以指揮馬車通行。這是世界上最早的交通信號燈。1868年,英國機(jī)械工程師納伊特在倫敦威斯敏斯特區(qū)的議會大廈前的廣場上,安裝了世界上最早的煤氣紅綠燈。它由紅綠兩塊以旋轉(zhuǎn)式方形玻璃提燈組成,紅色表示“停止”,綠色表示“注意”。1869年1月2日,煤氣燈爆炸,使警察受傷,遂被取消。</p><p
13、> 1914年,電氣啟動的紅綠燈出現(xiàn)在美國。這種紅綠燈由紅綠黃三色圓形的投光器組成,安裝在紐約市5號大街的一座高塔上。紅燈亮表示“停止”,綠燈亮表示“通行”。</p><p> 1918年,又出現(xiàn)了帶控制的紅綠燈和紅外線紅綠燈。帶控制的紅綠燈,一種是把壓力探測器安在地下,當(dāng)車輛接近時,紅燈便變?yōu)榫G燈;另一種是用擴(kuò)音器來啟動紅綠燈,司機(jī)遇紅燈時按一下喇叭,就使紅燈變?yōu)榫G燈。紅外線紅綠燈當(dāng)行人踏上對壓力敏感
14、的路面時,它就能察覺到有人要過馬路。紅外光束能把信號燈的紅燈延長一段時間,推遲汽車放行,以免發(fā)生交通事故。</p><p> 信號燈的出現(xiàn),使交通得以有效管制,對于疏導(dǎo)交通流量、提高道路通行能力,減少交通事故有明顯效果。1968年,聯(lián)合國《道路交通和道路標(biāo)志信號協(xié)定》對各種信號燈的含義作了規(guī)定。綠燈是通行信號,面對綠燈的車輛可以直行,左轉(zhuǎn)彎和右轉(zhuǎn)彎,除非另一種標(biāo)志禁止某一種轉(zhuǎn)向。左右轉(zhuǎn)彎車輛都必須讓合法地正在路
15、口內(nèi)行駛的車輛和過人行橫道的行人優(yōu)先通行。紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進(jìn)入交叉路口。</p><p> 隨著經(jīng)濟(jì)的發(fā)展,交通運(yùn)輸中出現(xiàn)了一些傳統(tǒng)方法難以解決的問題。道路擁擠現(xiàn)象日趨嚴(yán)重,造成的經(jīng)濟(jì)損失越來越大,并一直保持大比例的增長?,F(xiàn)在交通系統(tǒng)已不能滿足經(jīng)濟(jì)發(fā)展的需求。由于生活水平的提高,人
16、們對交通運(yùn)輸?shù)陌踩约胺?wù)水平提出了更高的要求。在交通中管理引入單片機(jī)交通燈控制代替交管人員在交叉路口服務(wù),有助于提高交通運(yùn)輸?shù)陌踩浴⑻岣呓煌ü芾淼姆?wù)質(zhì)量,并在一定程度上盡可能的降低由道路擁擠造成的經(jīng)濟(jì)損失,同時也減小了工作人員的勞動強(qiáng)度。 </p><p> 中國車輛數(shù)量不斷增加,交通控制在未來的交通管理中起著越來越重要的作用。智能交通燈的管
17、理無論在經(jīng)濟(jì)、交通運(yùn)行速率上都有很好的效益,更加節(jié)約資源,會使交管人員有更多的精力投入到管理整個城市交通控制,帶來更大的經(jīng)濟(jì)和社會效益,為創(chuàng)造美好的城市交通形象發(fā)揮更多的作用。</p><p> 十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實(shí)現(xiàn)交通的井然秩序呢?靠的是交通信號燈的自動指揮系統(tǒng),來實(shí)現(xiàn)交通的井然有序。交通信號燈控制方式很多,本系統(tǒng)采用美國ATMEL公司生產(chǎn)的單片機(jī)AT89
18、S51,作為中央處理器制作控制系統(tǒng)。實(shí)現(xiàn)了通過AT89S51芯片的P0口設(shè)置紅、綠燈點(diǎn)亮的功能,通過AT89S51芯片的P1口進(jìn)行輸入控制,P2、P3口輸出倒計時。交通燈的點(diǎn)亮采用發(fā)光二極管實(shí)現(xiàn),時間的顯示采用七段數(shù)碼管實(shí)現(xiàn)。單片機(jī)系統(tǒng)采用的直流供電。系統(tǒng)實(shí)用性強(qiáng)、操作簡單、擴(kuò)展性好。</p><p> 第2章 交通燈設(shè)計方案論證</p><p><b> 2.1設(shè)計任務(wù)&l
19、t;/b></p><p> A車道與B車道相交于一個十字路口,道路交叉中央點(diǎn)設(shè)置紅綠控制交通,市A車道通行60秒B車道通行30秒,并設(shè)置數(shù)碼管顯示倒計時。A車道綠燈55秒閃爍3秒黃燈亮2秒,切換到紅燈。B車道綠燈25秒閃爍3秒黃燈亮2秒切換至紅燈。同時設(shè)置一個控制開關(guān),當(dāng)特殊車輛通過時,交警閉合開關(guān)A、B車道紅燈同時亮,直到開關(guān)斷開,重新開始循環(huán)。</p><p><b&g
20、t; 2.2 方案介紹</b></p><p> 將紅綠等的轉(zhuǎn)換過程分割為幾個模式之間的轉(zhuǎn)換。模式一:A車道綠燈亮55S綠燈閃爍3S黃燈亮2S;模式二:B車道綠燈亮25S綠燈閃爍3S 黃燈亮2S;模式三:控制開關(guān)閉合 A、B車道紅燈同時亮。當(dāng)午特殊情況時模式一和模式二不斷循環(huán)轉(zhuǎn)換,實(shí)現(xiàn)紅綠燈交通控制。</p><p> 圖2-1 模式轉(zhuǎn)示意圖</p><
21、;p> 2.2.1方案一設(shè)計思想</p><p> 采用程序延時的方法來計時,在一個較小的時間基數(shù)下進(jìn)行倒計時送數(shù),采用動態(tài)送數(shù)的方法,由P1口的兩個輸出端控制控制選擇的數(shù)碼管送數(shù)因?yàn)闀r間短,所以肉眼看上去就是一直亮著的。</p><p> 紅綠燈也采用程序的延時的方法進(jìn)行控制,P0口需要使用6個輸出端,來控制Led紅綠燈,在程序需要插入開是否閉合的查詢出語句。</p&g
22、t;<p> 2.2.2方案二設(shè)計思想</p><p> 采用定時器中斷方式來計時,讓定時每50ms中斷一次,計數(shù)變量加一,計數(shù)滿20次為一秒,另一變量加一。設(shè)置一個模式變量,來控制顯示那個模式,在模式變量等于0的時候?yàn)槟J揭?,模式變量等?的時候?yàn)槟J蕉J阶兞康扔?的時候?yàn)槟J饺?。?shù)碼管用P2、P3口分別控制個位和十位。每一秒種送數(shù)一次,根據(jù)計數(shù)變量的數(shù)值控制輸出Led紅綠燈變化信息。在主
23、程序中設(shè)置開關(guān)的查詢語句并循環(huán)查詢,當(dāng)開關(guān)閉合將模式變量設(shè)置為2,同時鎖定清零計數(shù)變量,AB紅燈同時亮。</p><p> 2.2.3 方案比較并選擇方案</p><p> 方案一,節(jié)省P口,只需使用少量P口就可以達(dá)到目標(biāo),但程序復(fù)雜計時不準(zhǔn)確,容易出現(xiàn)故障,或燈的變化與倒計時不一致。</p><p> 方案二,占用P口資源多,但是計時準(zhǔn)確,程序代碼較少,維護(hù)
24、方便,運(yùn)行穩(wěn)定不會出現(xiàn)燈與實(shí)踐變化不同步的問題。</p><p> 比較以上兩種方案,決定選擇方案二,P口資源足夠使用所以無需擔(dān)心P口不夠用,且其運(yùn)行穩(wěn)定維護(hù)簡單,擴(kuò)展性相對較差,但硬件連線 簡單,出現(xiàn)故障維修方便。</p><p> 圖2-2 方案二方框圖</p><p><b> 2.3 實(shí)驗(yàn)平臺</b></p><
25、;p> 我采用的是Wave 6000 for windows編寫程序,并對程序進(jìn)行編譯。</p><p> 采用RZ-51開發(fā)板,進(jìn)行模擬仿真測試。</p><p><b> 2.4 實(shí)驗(yàn)步驟</b></p><p> 2.4.1 編寫程序源代碼</p><p> 程序分為兩個模塊,循環(huán)、中斷。分析程序所
26、需完成的任務(wù),并根據(jù)方案二進(jìn)行簡單編寫。</p><p> 2.4.2 開發(fā)板模擬測試</p><p> 在開發(fā)板中斷開,不需要的模塊,將Isp下載線接到電腦上,將編寫的好程序,燒寫進(jìn)單片機(jī)中。單功能逐個測試。</p><p><b> 燒錄步驟:</b></p><p> 打開偉福編譯器,寫入源代碼。</
27、p><p> 編譯程序生成2.hex文件</p><p> 打開燒錄程序,選擇調(diào)入Flash,選擇2.hex文件。選擇芯片型號AT89s51,點(diǎn)擊自動將程序燒寫進(jìn)單片機(jī)中。</p><p> 觀察led模塊紅綠燈轉(zhuǎn)換是否正常。</p><p> 將程序更改,測試倒計時是否正常</p><p> 整合測試,將線路連
28、接好對程序完整測試。</p><p> 第3章 交通燈系統(tǒng)硬件設(shè)計</p><p><b> 3.1單片機(jī)概述</b></p><p> 單片機(jī)是由運(yùn)算器、控制器、存儲器、輸入設(shè)備以及輸出設(shè)備共五個基本部分組成的。單片機(jī)是把包括運(yùn)算器、控制器、少量的存儲器、最基本的輸入輸出口電路、串行口電路、中斷和定時電路等都集成在一個尺寸有限的芯片上。
29、</p><p> 通常,單片機(jī)由單個集成電路芯片構(gòu)成,內(nèi)部包含有計算機(jī)的基本功能部件:中央處理器、存儲器和I/O接口電路等。因此,單片機(jī)只需要和適當(dāng)?shù)能浖巴獠吭O(shè)備相結(jié)合,便可成為一個單片機(jī)控制系統(tǒng)。</p><p> 單片機(jī)經(jīng)過1、2、3、3代的發(fā)展,目前單片機(jī)正朝著高性能和多品種方向發(fā)展,它們的CPU功能在增強(qiáng),內(nèi)部資源在增多,引腳的多功能化,以及低電壓、低功耗。</p&g
30、t;<p> 可以說,二十世紀(jì)跨越了三個“電”的時代,即電氣時代、電子時代和現(xiàn)已進(jìn)入的電腦時代。不過,這種電腦,通常是指個人計算機(jī),簡稱PC機(jī)。它由主機(jī)、鍵盤、顯示器等組成。還有一類計算機(jī),大多數(shù)人卻不怎么熟悉。這種計算機(jī)就是把智能賦予各種機(jī)械的單片機(jī)。顧名思義,這種計算機(jī)的最小系統(tǒng)只用了一片集成電路,即可進(jìn)行簡單運(yùn)算和控制。因?yàn)樗w積小,通常都藏在被控機(jī)械的“肚子”里。它在整個裝置中,起著有如人類頭腦的作用,它出了毛病
31、,整個裝置就癱瘓了?,F(xiàn)在,這種單片機(jī)的使用領(lǐng)域已十分廣泛,如智能儀表、實(shí)時工控、通訊設(shè)備、導(dǎo)航系統(tǒng)、家用電器等。各種產(chǎn)品一旦用上了單片機(jī),就能起到使產(chǎn)品升級換代的功效,常在產(chǎn)品名稱前冠以形容詞——“智能型”,如智能型洗衣機(jī)等?,F(xiàn)在有些工廠的技術(shù)人員或其它業(yè)余電子開發(fā)者搞出來的某些產(chǎn)品,不是電路太復(fù)雜,就是功能太簡單且極易被仿制。究其原因,可能就卡在產(chǎn)品未使用單片機(jī)或其它可編程邏輯器件上。 </p><p> 目
32、前單片機(jī)滲透到我們生活的各個領(lǐng)域,幾乎很難找到哪個領(lǐng)域沒有單片機(jī)的蹤跡。導(dǎo)彈的導(dǎo)航裝置,飛機(jī)上各種儀表的控制,計算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,工業(yè)自動化過程的實(shí)時控制和數(shù)據(jù)處理,廣泛使用的各種智能IC卡,民用豪華轎車的安全保障系統(tǒng),錄像機(jī)、攝像機(jī)、全自動洗衣機(jī)的控制,以及程控玩具、電子寵物等等,這些都離不開單片機(jī)。更不用說自動控制領(lǐng)域的機(jī)器人、智能儀表、醫(yī)療器械了。它主要是作為控制部分的核心部件。因此,單片機(jī)的學(xué)習(xí)、開發(fā)與應(yīng)用將造就一批計算
33、機(jī)應(yīng)用與智能化控制的科學(xué)家、工程師。</p><p><b> 3.2硬件系統(tǒng)構(gòu)成</b></p><p> 電路板兩塊、排線一板(30根)、AT89s51一片、共陽數(shù)碼管4個、Led紅黃綠燈各兩個(led綠燈1個電源指示)。Usb母口一個,Usb線(A對A)一根、開關(guān)一個等等。</p><p> 硬件系統(tǒng)結(jié)構(gòu)方框圖如下:</p&g
34、t;<p> 圖3-1硬件結(jié)構(gòu)方框圖</p><p> 系統(tǒng)由單片機(jī)直接控制,P0口控制紅綠燈轉(zhuǎn)換,P1口開關(guān)信號輸入,P2、P3口輸出數(shù)碼顯示信號。如此對整個系統(tǒng)進(jìn)行控制。</p><p> 3.3 AT89s51芯片介紹</p><p> 選用的AT89S51與同系列的AT89C51在功能上有明顯的提高,最突出是的可以實(shí)現(xiàn)在線的編程。用于
35、實(shí)現(xiàn)系統(tǒng)的總的控制。其主要功能列舉如下:</p><p> 1.為一般控制應(yīng)用的 8 位單片機(jī);</p><p> 2.晶片內(nèi)部具有時鐘振蕩器(傳統(tǒng)最高工作頻率可至33MHz);</p><p> 3.內(nèi)部程式存儲器(ROM)為 4KB;</p><p> 4.內(nèi)部數(shù)據(jù)存儲器(RAM)為 128B;</p><p&
36、gt; 5.外部程序存儲器可擴(kuò)充至 64KB;</p><p> 6.外部數(shù)據(jù)存儲器可擴(kuò)充至 64KB;</p><p> 7.32條雙向輸入輸出線,且每條均可以單獨(dú)做I/O的控制;</p><p> 8.5個中斷向量源;</p><p> 9.2組獨(dú)立的16位定時器;</p><p> 10.1個全雙工串
37、行通信端口;</p><p> 11.8751及8752單芯片具有數(shù)據(jù)保密的功能;</p><p> 12.單芯片提供位邏輯運(yùn)算指令。</p><p> 圖3-2 AT89S51管腳圖</p><p> AT89S51各引腳功能介紹:</p><p> VCC:ATAT89S51 電源正端輸入,接+5V。&
38、lt;/p><p><b> VSS:電源地端。</b></p><p> XTAL1:單芯片系統(tǒng)時鐘的反向放大器輸入端。</p><p> XTAL2:系統(tǒng)時鐘的反向放大器輸出端,一般在設(shè)計上只要在 XTAL1和XTAL2上接上一只石英振蕩晶體系統(tǒng)就可以動作了,此外可以在兩個引腳與地之間加入一個20PF的小電容,可以使系統(tǒng)更穩(wěn)定,避免噪聲干
39、擾而死機(jī)。 </p><p> RESET:AT89S51的重置引腳,高電平動作,當(dāng)要對晶片重置時,只要對此引腳電平提升至高電平并保持兩個機(jī)器周期以上的時間,AT89S51便能完成系統(tǒng)重置的各項(xiàng)動作,使得內(nèi)部特殊功能寄存器之內(nèi)容均被設(shè)成已知狀態(tài),并且至地址0000H處開始讀入程序代碼而執(zhí)行程序。</p><p> EA/Vpp:&
40、quot;EA"為英文"External Access"的縮寫,表示存取外部程序代碼之意,低電平動作,也就是說當(dāng)此引腳接低電平后,系統(tǒng)會取用外部的程序代碼(存于外部EPROM中)來執(zhí)行程序。因此在8031及8032中,EA引腳必須接低電平,因?yàn)槠鋬?nèi)部無程序存儲器空間。如果是使用 8751 內(nèi)部程序空間時,此引腳要接成高電平。此外,在將程序代碼燒錄至8751內(nèi)部EPROM時,可以利用此引腳來輸入21V的燒錄高
41、壓(Vpp)。</p><p> ALE/PROG:ALE是英文"Address Latch Enable"的縮寫,表示地址鎖存器啟用信號。AT89S51可以利用這個引腳來觸發(fā)外部的8位鎖存器(如74LS373),將端口0的地址總線(A0~A7)鎖進(jìn)鎖存器中,因?yàn)锳T89S51是以多工的方式送出地址及數(shù)據(jù)。平時在程序執(zhí)行時ALE引腳的輸出頻率約是系統(tǒng)工作頻率的1/6,因此可以用來驅(qū)動其他周邊
42、晶片的時基輸入。此外在燒錄8751程序代碼時,此引腳會被當(dāng)成程序規(guī)劃的特殊功能來使用。</p><p> PSEN:此為"Program Store Enable"的縮寫,其意為程序儲存啟用,當(dāng)8051被設(shè)成為讀取外部程序代碼工作模式時(EA=0),會送出此信號以便取得程序代碼,通常這支腳是接到EPROM的OE腳。AT89S51可以利用PSEN及RD引腳分別啟用存在外部的RAM與EPROM,
43、使得數(shù)據(jù)存儲器與程序存儲器可以合并在一起而共用64K的定址范圍。</p><p> PORT0(P0.0~P0.7):端口0是一個8位寬的開路電極(Open Drain)雙向輸出入端口,共有8個位,P0.0表示位0,P0.1表示位1,依此類推。其他三個I/O端口(P1、P2、P3)則不具有此電路組態(tài),而是內(nèi)部有一提升電路,P0在當(dāng)作I/O用時可以推動8個LS的TTL負(fù)載。如果當(dāng)EA引腳為低電平時(即取用外部程序
44、代碼或數(shù)據(jù)存儲器),P0就以多工方式提供地址總線(A0~A7)及數(shù)據(jù)總線(D0~D7)。設(shè)計者必須外加一個鎖存器將端口0送出的地址鎖住成為A0~A7,再配合端口2所送出的A8~A15合成一組完整的16位地址總線,而定位地址到64K的外部存儲器空間。</p><p> PORT2(P2.0~P2.7):端口2是具有內(nèi)部提升電路的雙向I/O端口,每一個引腳可以推動4個LS的TTL負(fù)載,若將端口2的輸出設(shè)為高電平時,
45、此端口便能當(dāng)成輸入端口來使用。P2除了當(dāng)作一般I/O端口使用外,若是在ATAT89S51擴(kuò)充外接程序存儲器或數(shù)據(jù)存儲器時,也提供地址總線的高字節(jié)A8~A15,這個時候P2便不能當(dāng)作I/O來使用了。</p><p> PORT1(P1.0~P1.7):端口1也是具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個LS TTL負(fù)載,同樣地,若將端口1的輸出設(shè)為高電平,便是由此端口來輸入數(shù)據(jù)。如果是使用8052
46、或是8032的話,P1.0又當(dāng)作定時器2的外部脈沖輸入腳,而P1.1可以有T2EX功能,可以做外部中斷輸入的觸發(fā)引腳。</p><p> PORT3(P3.0~P3.7):端口3也具有內(nèi)部提升電路的雙向I/O端口,其輸出緩沖器可以推動4個TTL負(fù)載,同時還多工具有其他的額外特殊功能,包括串行通信、外部中斷控制、計時計數(shù)控制及外部數(shù)據(jù)存儲器內(nèi)容的讀取或?qū)懭肟刂频裙δ堋?lt;/p><p>&l
47、t;b> 其引腳分配如下:</b></p><p> P3.0:RXD,串行通信輸入;</p><p> P3.1:TXD,串行通信輸出;</p><p> P3.2:INT0,外部中斷0輸入;</p><p> P3.3:INT1,外部中斷1輸入;</p><p> P3.4:T0,計時
48、計數(shù)器0輸入;</p><p> P3.5:T1,計時計數(shù)器1輸入;</p><p> P3.6:WR,外部數(shù)據(jù)存儲器的寫入信號;</p><p> P3.7:RD,外部數(shù)據(jù)存儲器的讀取信號。</p><p> 3.4元件列表與電路原理圖</p><p> 3.4.1 電路原理圖</p><
49、;p> 電路原理圖采用Protel99se繪制,以截圖的方式保存為圖片。電路原理圖見附錄一</p><p><b> 3.4.2元件列表</b></p><p> 將設(shè)備所需要的電子元件,列出見表3-1元件列表。</p><p><b> 表3-1 元件列表</b></p><p>
50、 第4章 軟件系統(tǒng)設(shè)計</p><p> 4.1 軟件設(shè)計流程圖</p><p> 圖4-1 軟件設(shè)計流程圖</p><p> 4..2定時器初值計算</p><p> 定時器工作時必須給計數(shù)器送計數(shù)器初值,這個值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,我們可以把計數(shù)器記滿為零所需的計數(shù)值
51、設(shè)定為C和計數(shù)初值設(shè)定為TC 可得到如下計算通式:</p><p><b> TC=M-C</b></p><p> 式中,M為計數(shù)器模值,該值和計數(shù)器工作方式有關(guān)。在方式0時M為213 ;在方式1時M的值為216;在方式2和3為28 ; </p><p><b> 算法公式:</b></p><
52、;p> T=(M-TC)T計數(shù) 或TC=M-T/T計數(shù)</p><p> T計數(shù)是單片機(jī)時鐘周期TCLK的12倍;TC為定時初值</p><p> 如單片機(jī)的主脈沖頻率為TCLK12MHZ ,經(jīng)過12分頻</p><p> 方式0 TMAX=213 ×1微秒=8.192毫秒</p><p> 方式1 T
53、MAX=216 ×1微秒=65.536毫秒</p><p> 顯然1秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題。</p><p> 實(shí)現(xiàn)1秒的方法:我們采用在主程序中設(shè)定一個初值為20的軟件計數(shù)器和使T1定時50毫秒。這樣每當(dāng)T1到50毫秒時CPU就響應(yīng)它的溢出中斷請求,進(jìn)入他的中斷服務(wù)子程序。在中斷服務(wù)子程序中,CPU先使軟件
54、計數(shù)器減1,然后判斷它是否為零。為0表示1秒已到可以返回到輸出時間顯示程序。</p><p><b> 4.3程序源代碼</b></p><p> 程序采用C語言編寫,大大的縮減了程序代碼多長度,使得程序代碼更便于閱讀。在C語言中可以用幾行代碼解決的問題,在匯編中可能需要很多很復(fù)雜的代碼進(jìn)行編寫。</p><p> 詳細(xì)程序代碼見附錄二&
55、lt;/p><p> 第5章 調(diào)試功能說明</p><p><b> 5.1 硬件調(diào)試</b></p><p> 5.1.1最小系統(tǒng)調(diào)試</p><p> 首先應(yīng)該確認(rèn)電源電壓是否正常。用電壓表測量接地引腳跟電源引腳之間的電壓,看是否是電源電壓,我們所用的電源電壓是5V。接下來就是檢查復(fù)位引腳電壓是否正常。分別測量按
56、下復(fù)位按鈕和放開復(fù)位按鈕的電壓值,看是否正確。然后再檢查晶振是否起振了,一般用示波器來看晶振引腳的波形,注意應(yīng)該使用示波器探頭的“X10”檔。另一個辦法是測量復(fù)位狀態(tài)下的IO口電平,按住復(fù)位鍵不放,然后測量IO口(沒接外部上拉的P0口除外)的電壓,看是否是高電平,如果不是高電平,則多半是因?yàn)榫д駴]有起振。另外還要注意的地方是,要將EA引腳拉高,因?yàn)槲覀冇玫氖瞧瑑?nèi)ROM,否則會出現(xiàn)程序亂跑的情況。有時用仿真器可以,而燒入片子不行,往往是因
57、為EA引腳沒拉高的緣故(當(dāng)然,晶振沒起振也是原因只一)。經(jīng)過上面幾點(diǎn)的檢查,一般即可排除故障了。如果系統(tǒng)不穩(wěn)定的話,有時是因?yàn)殡娫礊V波不好導(dǎo)致的。在單片機(jī)的電源引腳跟地引腳之間接上一個0.1uF的電容會有所改善。如果電源沒有濾波電容的話,則需要再接一個更大濾波電容,例如220uF的。遇到系統(tǒng)不穩(wěn)定時,就可以并上電容試試。</p><p> 5.1.2 故障點(diǎn)分析</p><p> 檢測
58、故障點(diǎn)的方法如下:</p><p> ①測量電壓法。首先要確認(rèn)的是各芯片電源引腳的電壓是否正常,其次檢查各種參考電壓是否正常,另外還有各點(diǎn)的工作電壓是否正常等。</p><p> ?、谛盘栕⑷敕ā⑿盘栐醇又凛斎攵?,然后依次往后測量各點(diǎn)的波形,看是否正常,以找到故障點(diǎn)。有時我們也會用更簡單的辦法,例如用手握一個鑷子,去碰觸各級的輸入端,看輸出端是否有反應(yīng),</p><
59、p> ③當(dāng)然,還有很多其它的尋找故障點(diǎn)的方法,例如看、聽、聞、摸等。“看”就是看元件有無明顯的機(jī)械損壞,例如破裂、燒黑、變形等;“聽”就是聽工作聲音是否正常,例如一些不該響的東西在響,該響的地方不響或者聲音不正常等;“聞”就是檢查是否有異味,例如燒焦的味道、電容電解液的味道等,對于一個有經(jīng)驗(yàn)的電子維修人員來說,對這些氣味是很敏感的;“摸”就是用手去試探器件的溫度是否正常,例如太熱,或者太涼。一些功率器件,工作起來時會發(fā)熱,如果摸
60、上去是涼的,則基本上可以判斷它沒有工作起來。但如果不該熱的地方熱了或者該熱的地方太熱了,那也是不行的。一般的功率三極管、穩(wěn)壓芯片等,工作在70度以下是完全沒問題的。70度大概是怎樣的一個概念呢?如果你將手壓上去,可以堅持三秒鐘以上,就說明溫度大概在70度以下(注意要先試探性的去摸,千萬別把手燙傷了)。</p><p><b> 結(jié)論</b></p><p> 本系
61、統(tǒng)采用美國ATMEL公司生產(chǎn)的芯片AT89S51,實(shí)現(xiàn)了A車道綠燈燈亮55秒,閃爍3秒黃燈亮2秒,B車道綠燈亮25秒閃爍3秒黃燈亮2秒。AT89S51直接控制紅綠燈,以及數(shù)碼管顯示。</p><p> 系統(tǒng)不足:時間設(shè)定中沒有黃燈的等待閃爍時間,以及自動根據(jù)車流改變紅綠燈時間,此外,還沒有充分考慮的把現(xiàn)代管理、人工智能運(yùn)用到交通的控制中,來計算交通控制點(diǎn)之間的距離,來更合理地安排紅、綠燈的持續(xù)時間,使城市的交通
62、管理更加人性化。</p><p> 通過這次的畢業(yè)設(shè)計使我對單片機(jī)又有了更深的認(rèn)識,讓我對其從硬件和軟件都有了實(shí)質(zhì)性的探究,自己動手設(shè)計,組裝使自己的知識得到了系統(tǒng)化和產(chǎn)品化真正達(dá)到了學(xué)以致用。至此我要特別感謝學(xué)校和老師安排的這項(xiàng)活動使我們脫離了高中只會理論不會實(shí)踐的階段而真正進(jìn)入了實(shí)質(zhì)性的層次。使我們對將來的工作及研發(fā)奠定了一定的基礎(chǔ)。</p><p><b> 致謝<
63、;/b></p><p> 我由衷的感謝我的指導(dǎo)老師**老師對我的學(xué)習(xí)、工作、以及課題的研究和論文撰寫過程中面臨的問題所給的細(xì)心指導(dǎo)和無私幫助,在設(shè)計中及時提出一些問題和幫助改正一些錯誤,使我在設(shè)計過程中獲得了豐富的知識,開闊了視野,培養(yǎng)了我的思考能力,提升了個人解決問題的能力,使自身的素質(zhì)有了極大的提高。也感謝***老師和同學(xué)對我的熱心幫助。</p><p><b>
64、 參考文獻(xiàn)</b></p><p> 1 高洪志.MCS-51單片機(jī)原理及應(yīng)用技術(shù)教程.人民郵電出版社,2009:</p><p><b> 72-169</b></p><p> 2 田淑清.C語言程序設(shè)計.高等教育出版社,2008:31-83</p><p> 3 張毅剛.MCS-51系列單片機(jī)
65、系統(tǒng)及其應(yīng)用.高等教育出版社,2003: </p><p><b> 29-89</b></p><p> 4 謝自美.電子線路設(shè)計、實(shí)驗(yàn)、測試.華中理工大學(xué)出版社,2000: 107-111</p><p> 5 郭培源.電子電路及電子器件.高等教育出版社,2004: 65-6</p><p> 6 潘
66、新民.微型計算機(jī)控制技術(shù).人民郵電出版社,1999.9: 55-70</p><p> 7 余錫存.單片機(jī)原理及接口技術(shù).西安電子科技大學(xué)出版社,2000.7: 65-69</p><p> 8 周立功.增強(qiáng)型80C51單片機(jī)速成與實(shí)戰(zhàn).北京航空航天大學(xué)出版社,2004.5:91-95</p><p><b> 附錄一 電路原理圖</b>
67、</p><p><b> 附錄二 程序源代碼</b></p><p> #include"reg51.h"/*包含51單片機(jī)內(nèi)部資源定義*/</p><p> sbit a_r=P0^0;/*定義可位尋址變量*/</p><p> sbit a_y=P0^1;</p><
68、p> sbit a_g=P0^2;</p><p> sbit b_r=P0^3;</p><p> sbit b_y=P0^4;</p><p> sbit b_g=P0^5;</p><p> sbit keyup=P1^0;</p><p> int num=0,num1=0,ab=0;/*聲明
69、全局變量*/</p><p> unsigned char code LEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF};</p><p> /*數(shù)碼管顯示信息0-9*/</p><p> void teshu(){while(!keyup){a_r=0;a_g=1;a_
70、y=1;b_r=0;b_y=1;b_g=1;ab=3;}ab=0;}</p><p> /*特殊情況發(fā)生 后運(yùn)行*/</p><p> void timer0(void) interrupt 1 using 1</p><p><b> {</b></p><p> if(ab==3) {num=0;num1=0
71、; return; TH0=0x3c; TL0=0xb0;}/*模式3時中斷程序運(yùn)行此部分*/</p><p> if(num<20) {num++;}/*當(dāng)num小于20時每50毫秒num計數(shù)加一*/</p><p> if(num==20){num1++; num=0;}/*每秒鐘num1計數(shù)加一,并將Num清零*/</p><p> if(ab=
72、=0)/*如果為模式零執(zhí)行*/</p><p><b> {</b></p><p> P2=LEDDis[(60-num1)/10];/*數(shù)碼管十位送數(shù)*/</p><p> P3=LEDDis[(60-num1)%10];/*數(shù)碼管個位送數(shù)*/</p><p> if(num1<=55){a_g=0;b
73、_r=0;a_r=1;b_y=1;a_y=1;b_g=1;}/*根據(jù)不同數(shù)值確定Led紅綠燈的亮滅*/</p><p> if(num1>55&&num1<=58){if(num==0||num==10){a_g=!a_g;}}</p><p> if(num1>58&&num1<=60){a_g=1;a_y=0;}</p&
74、gt;<p><b> }</b></p><p> if(ab==1)/*模式2時執(zhí)行*/</p><p><b> {</b></p><p> P2=LEDDis[(30-num1)/10];</p><p> P3=LEDDis[(30-num1)%10];</
75、p><p> if(num1<=25){a_g=1;b_g=0;a_y=1;b_y=1;a_r=0;b_r=1;}</p><p> if(num1>25&&num1<=28){if(num==0||num==10){b_g=!b_g;}}</p><p> if(num1>28&&num1<=30){
76、b_g=1;b_y=0;}</p><p><b> }</b></p><p> if(num1==60&&ab==0){ab=1;num1=0;}</p><p> if(num1==30&&ab==1){ab=0;num1=0;}</p><p> TH0=0x3c;/*定時
77、器重新裝載*/</p><p><b> TL0=0xb0;</b></p><p><b> }</b></p><p> /*中斷程序,大部分功能都再次程序中完成*/</p><p> void main()</p><p><b> {</b&
78、gt;</p><p> TMOD=0x01;/*設(shè)定定時器工作方式*/</p><p><b> TH0=0x3c;</b></p><p><b> TL0=0xb0;</b></p><p> EA=1;/*打開中斷*/</p><p> ET0=1;/*定時
79、中斷0打開*/</p><p> TR0=1;/*定時器0開始運(yùn)行*/</p><p><b> while(1)</b></p><p><b> {</b></p><p> if(keyup!=1){teshu();}</p><p> }/*循環(huán)查詢開關(guān)狀態(tài)
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 交通燈控制系統(tǒng)畢業(yè)設(shè)計
- 交通燈控制系統(tǒng)畢業(yè)設(shè)計論文
- 畢業(yè)設(shè)計----模擬交通燈控制系統(tǒng)
- 畢業(yè)設(shè)計—模擬交通燈控制系統(tǒng)
- 畢業(yè)設(shè)計----交通燈控制系統(tǒng)的設(shè)計
- 交通燈畢業(yè)設(shè)計--基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計
- 交通燈控制系統(tǒng)畢業(yè)設(shè)計開題報告
- 基于plc交通燈控制系統(tǒng)畢業(yè)設(shè)計
- 基于plc交通燈控制系統(tǒng)畢業(yè)設(shè)計
- 基于plc交通燈控制系統(tǒng)畢業(yè)設(shè)計
- 模擬交通燈控制系統(tǒng)的設(shè)計畢業(yè)設(shè)計
- 交通燈課程設(shè)計--交通燈控制系統(tǒng)設(shè)計
- 交通燈控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計(論文)-基于plc交通燈控制系統(tǒng)
- 畢業(yè)設(shè)計-單片機(jī)控制交通燈控制系統(tǒng)設(shè)計
- plc控制交通燈畢業(yè)設(shè)計---基于89s51的交通燈控制系統(tǒng)設(shè)計
- 交通燈自動控制系統(tǒng)設(shè)計畢業(yè)設(shè)計
- 城市交通燈畢業(yè)設(shè)計---基于單片機(jī)的交通燈控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計-----單片機(jī)控制交通燈控制系統(tǒng)設(shè)計
- 畢業(yè)設(shè)計-基于plc的交通燈控制系統(tǒng)設(shè)計
評論
0/150
提交評論