版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、<p><b> 目錄</b></p><p><b> 摘要</b></p><p><b> 關鍵詞</b></p><p><b> Abstract</b></p><p><b> Keywords</
2、b></p><p><b> 引言:</b></p><p> 1. 交通信號燈硬件電路的設計1</p><p> 1.1交通燈國內(nèi)外發(fā)展概況1</p><p> 1.2交通信號燈的作用及工作原理1</p><p> 1.2.1道路交通控制的作用主要表現(xiàn)為以下幾個方面
3、1</p><p> 1.2.2 道路交通信號燈的工作原理如下2</p><p> 2. 系統(tǒng)組成3</p><p> 2.1 硬件控制線路圖3</p><p> 2.2 器件和原理4</p><p> 2.2.1什么是單片機4</p><p> 2.2.2 什么是
4、單片機系統(tǒng)5</p><p> 2.3 部分電路功能7</p><p> 2.3.1 晶振電路7</p><p> 2.3.3 信號燈控制電路,LED及顯示接口7</p><p> 2.4 設計流程圖9</p><p> 3. 交通信號燈軟件的系統(tǒng)編程10</p><p>
5、; 3.1 信號燈亮滅的定時功能10</p><p> 3.1.1 單片機的定時器10</p><p> 3.1.2 定時器數(shù)值的設置應該注意的事項10</p><p> 3.2 51單片機的中斷系統(tǒng)11</p><p> 3.2.1 中斷系統(tǒng)的概念11</p><p> 3.2.2 單片機的中
6、斷系統(tǒng)的作用12</p><p> 3.2.3 如何實現(xiàn)單片機的中斷12</p><p> 3.3軟件流程圖12</p><p> 4. 系統(tǒng)仿真17</p><p> 4.1 proteus軟件介紹17</p><p> 5.調(diào)試功能說明23</p><p> 5.
7、1 硬件調(diào)試23</p><p> 5.1.1最小系統(tǒng)調(diào)試23</p><p> 5.1.2 故障點分析23</p><p> 5.2軟件調(diào)試問題及解決24</p><p><b> 5.3拓展25</b></p><p><b> 結(jié)束語26</b>&
8、lt;/p><p><b> 文總結(jié)26</b></p><p><b> 工作展望26</b></p><p><b> 參考文獻27</b></p><p><b> 致 謝28</b></p><p> 單片機
9、交通控制燈的設計與實現(xiàn)</p><p> 電子工程專業(yè)學生 宋克勇</p><p><b> 指導教師 曾實現(xiàn)</b></p><p><b> 摘要</b></p><p> 本系統(tǒng)采用MCS-51系列單片機Intel8031和可編程并行I/O接口芯片8255A為中心器件來設計交通燈控
10、制器,實現(xiàn)了能根據(jù)實際車流量通過8031芯片的PI口設置紅、綠燈燃亮時間的功能:為了系統(tǒng)穩(wěn)定可靠采用了MAX629“看門狗”芯片,避免系統(tǒng)因為死機而停止工作的情況發(fā)生;顯示時間直接通過8255的PA、PB口輸出;交通燈信號通過PC口輸出;交通燈的點亮采用VT雙向晶閘管來控制、直接采用220V交流電源驅(qū)動,系統(tǒng)使用性強、操作簡單、擴展性強。</p><p> 關鍵詞:單片機,交通燈,控制器,設計,實現(xiàn)</p
11、><p> Traffic control chip design and realization of the lamp</p><p> Electronic engineering students:Song Ke Kong </p><p> Teachers: ChenWanPing ZengShiXian </p><p>
12、<b> Abstract</b></p><p> This system adopts MSC-51 series only that machine Intel8031 with but programming parallel interface chip 8255A of I/O is central device the design controller of traffi
13、c lights, have realized can measure according to actual wagon flow the PI installation bonus and green light that passes through 8031 chips burn to light the function of time ;For system stabilize reliable have adopted M
14、AX629 the chip “dog looks after the house”, have avoided that system stops working condition because of halting </p><p> Keywords: Only flat machine, Traffic light , Controller , Design , Realize </p>
15、<p><b> 引言</b></p><p> 該設計是單片機控制交通燈,運用s51單片機實現(xiàn)交通燈的控制?,F(xiàn)今世界單片機作為微型計算機一個重要部分,由于它具有抗干擾能力強、靈活性好、環(huán)境要求不高、價格低廉、開放容易等優(yōu)點,在我國一 廣泛的應用在工業(yè)自動化控制、自動檢測、智能儀器儀表、家用電器、電力電子、機電一體化設備等</p><p> 交通信
16、號燈硬件電路的設計</p><p> 1.1交通燈國內(nèi)外發(fā)展概況</p><p> 隨著經(jīng)濟的發(fā)展,城市現(xiàn)代化程度不斷提高,交通需求和交通迅速增長,城市交通網(wǎng)絡中交通擁擠日益嚴重,道路運輸所帶來的交通擁堵、交通事故和環(huán)境污染等負面效應日益突出。逐步成為經(jīng)濟和社會發(fā)展中的全球性共同問題。交通問題已經(jīng)日益成為世界性的難題,城市交通事故、交通堵塞和交通污染問題愈加突出。為了解決車和路的矛盾
17、,常用的兩種方法:一是控制需求,最直接的辦法就是限制車輛的增長:二是增加供給,也就是修路。但是這兩個辦法都有其局限性。交通是社會發(fā)展和人民生活水平提高的基本條件,經(jīng)濟的發(fā)展必然帶來出行的增加而且在我國汽車工業(yè)正處在起步階段的時期。因此限制車輛的增長不是解決問題的好辦法。而采取增加供給,即大量修筑道路基礎設施的方法,在自愿、環(huán)境矛盾越來越突出的今天。面對越來越擁擠的交通,有限的財力是很難支持的!所以在道路管理方面就要加強交通安全,而在道路
18、管理中最長見的就是交通燈。因此交通燈是目前道路最為常見,也是最為廣泛的交通規(guī)范工具!</p><p> 1.2交通信號燈的作用及工作原理</p><p> 1.2.1道路交通控制的作用主要表現(xiàn)為以下幾個方面: </p><p> 改善交通秩序,增加交通安全。 </p><p> 減少交通延誤,提高經(jīng)濟效益。 </p>
19、;<p> 降低污染程度,保護生態(tài)環(huán)境。</p><p> 節(jié)省能源和土地消耗。</p><p> 交通信號燈由紅燈、綠燈、黃燈組成。紅燈表示禁止通行,綠燈表示準許通行,黃燈表示警示。交通信號燈分為機動車信號燈、非機動車信號燈、人行橫道信號燈、車道信號燈、方向指示信號燈、閃光警告信號燈、道路與鐵路平面交叉道口信號燈。交通信號燈用于道路平面交叉路口,通過對車輛、行人發(fā)出行
20、進或停止的指令,使各同時到達的人、車交通流盡可能減少相互干擾,從而提高路口的通行能力,保障路口暢通和安全。</p><p> ?。?)機動車信號燈。由綠黃紅三種顏色的燈組成,綠燈亮時,準許車輛通行,但轉(zhuǎn)彎車輛不得妨礙被放行的直行車輛、行人通行;黃燈亮時,已越過停止線的車輛可繼續(xù)通行;紅燈亮時,禁止車輛通行。</p><p> ?。?)車道信號燈。車道信號燈由綠色箭頭燈和紅色叉形燈或紅色箭頭
21、燈組成,綠色箭頭燈亮時,準許本車道車輛按指示方向通行;紅色叉形燈或紅色箭頭燈亮時,禁止本車道車輛通行。</p><p> ?。?)人行橫道信號燈。人行橫道信號燈由綠燈和紅燈組成,綠燈亮時,準許行人通過人行橫道;紅燈亮時,禁止行人進入人行橫道,但是已經(jīng)進入人行橫道的,可以繼續(xù)通過或者在道路中心線處停留等候第一章 交通信號燈硬件電路的設計</p><p> 1.2.2 道路交通信號燈的工
22、作原理如下:</p><p> 設計一個十字路口交通燈自動控制電路。</p><p><b> 設:</b></p><p> a--------南北方向綠燈接通; </p><p> b--------東西方向綠燈接通; </p><p> c--------南北方向紅燈接通; <
23、;/p><p> d--------東西方向紅燈接通;</p><p> e--------南北方向黃燈接通;</p><p> f--------東西方向黃燈接通。 </p><p> 工作順序為A→B→C→D→A, 要求各狀態(tài)的工作時間如下圖所示。 </p><p> 綠燈-(25s)-黃燈--(5s)-紅燈
24、--(30s)--綠燈--(循環(huán))</p><p><b> 2 系統(tǒng)組成</b></p><p> 2.1 硬件控制線路圖</p><p> 2.2 器件和原理</p><p> 2.2.1什么是單片機</p><p> 單片機是指一個集成在一塊芯片上的完整計算機系統(tǒng)。盡管他的大
25、部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU、內(nèi)存、內(nèi)部和外部總線系統(tǒng),目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設備。而現(xiàn)在最強大的單片機系統(tǒng)甚至可以將聲音、圖像、網(wǎng)絡、復雜的輸入輸出系統(tǒng)集成在一塊芯片上。</p><p> 單片機也被稱為微控制器(Microcontroler),是因為它最早被用在工業(yè)控制領域。單片機由芯片內(nèi)僅有CPU的專用處理器發(fā)
26、展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統(tǒng)更小,更容易集成進復雜的而對提及要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以后,單片機和專用處理器的發(fā)展便分道揚鑣。</p><p> 早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列單片機系統(tǒng)?;?/p>
27、這一系統(tǒng)的單片機系統(tǒng)直到現(xiàn)在還在廣泛使用。隨著工業(yè)控制領域要求的提高,開始出現(xiàn)了16位單片機,但因為性價比不理想并未得到很廣泛的應用。90年代后隨著消費電子產(chǎn)品大發(fā)展,單片機技術得到了巨大的提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統(tǒng)的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數(shù)百倍。目前,高端的32位單片機主頻已</p&
28、gt;<p> 經(jīng)超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當代單片機系統(tǒng)已經(jīng)不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統(tǒng)被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統(tǒng)。</p><p> 單片機比專用處理器最適合應用于嵌入式系統(tǒng),因
29、此它得到了最多的應用。事實上單片機是世界上數(shù)量最多的計算機。現(xiàn)代人類生活中所用的幾乎每件電子和機械產(chǎn)品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數(shù)不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業(yè)控制系統(tǒng)上甚至可能有數(shù)百臺單片機在同時工作!單片機的數(shù)量不僅遠超過PC機和其他計算的綜合,甚至比人類的數(shù)量還要多。</p><
30、p> 2.2.2 什么是單片機系統(tǒng)</p><p> 單片機最小系統(tǒng),或者稱為最小應用系統(tǒng),是指用最少的元件組成的單片機可以工作的系統(tǒng).</p><p> 對51系列單片機來說,最小系統(tǒng)一般應該包括:單片機、晶振電路、復位電路.</p><p> 下面給出一個51單片機的最小系統(tǒng)電路圖.</p><p><b> 圖
31、3-1</b></p><p> 復位電路:由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合"電容電壓不能突變"的性質(zhì),可以知道,當系統(tǒng)一上電,RST腳將會出現(xiàn)高電平,并且,這個高電平持續(xù)的時間由電路的RC值來決定.典型的51單片機當RST腳的高電平持續(xù)兩個機器周期以上就將復位,所以,適當組合RC的取值就可以保證可靠的復位.一般教科書推薦C 取10u,R取8.2K.當然也有其他取法的,原
32、則就是要讓RC組合可以在RST腳上產(chǎn)生不少于2個機周期的高電平.至于如何具體定量計算,可以參考電路分析相關書籍.</p><p> 晶振電路:典型的晶振取11.0592MHz(因為可以準確地得到9600波特率和19200波特率,用于有串口通訊的場合)/12MHz(產(chǎn)生精確的uS級時歇,方便定時操作)</p><p> 2.3 部分電路功能</p><p>
33、2.3.1 晶振電路</p><p> 2.3.2 復位電路</p><p> 2.3.3 信號燈控制電路,LED及顯示接口</p><p><b> 1</b></p><p> 發(fā)光二極管簡稱LED,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內(nèi)部結(jié)構(gòu)為一個PN結(jié),具有單向?qū)щ娦?</p><
34、;p> 當在發(fā)光二極管PN結(jié)上加正向電壓時,PN結(jié)勢壘降低,載流子的擴散運動大于漂移運動,致使P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這樣相互注入的空穴與電子相遇后會產(chǎn)生復合,復合時產(chǎn)生的能量大部分以光的形式出現(xiàn),因此而發(fā)光。 當所有二極管都發(fā)出光時,大多數(shù)都不是很有效的。在普通二極管里,半導體材料本身吸引大量的光能而結(jié)束。發(fā)光二極管是由一個塑性燈泡覆蓋集中燈光在一個特定方向。由于不同材料的禁帶寬度不同,所以由不同材料制
35、成的發(fā)光二極管可發(fā)出不同波長的光。另外,有些材料由于組分和摻雜不同,例如,有的具有很復雜的能帶結(jié)構(gòu),相應的還有間接躍遷輻射等,因此有各種各樣的發(fā)光二極管。</p><p> 發(fā)光二極管在制作時,使用的材料有所不同,那么就可以發(fā)出不同顏色的光。 </p><p> 發(fā)光二極管的發(fā)光顏色有:紅色光、黃色光、綠色光、紅外光等。 </p><p> 發(fā)光二極管的外形有
36、:圓形、長方形、三角形、正方形、組合形、特殊形等。 </p><p> 常用的發(fā)光二極管應用電路有四種,即直流驅(qū)動電路、交流驅(qū)動電路、脈沖驅(qū)動電路、變色發(fā)光驅(qū)動電路。 </p><p> 使用LED作指示電路時,應該串接限流電阻,該電阻的阻值大小應根據(jù)不同的使用電壓和LED所需工作電流來選擇。發(fā)光二極管的壓降一LED的光學參數(shù)與pn結(jié)結(jié)溫有很大的關系。一般工作在小電流IF<10mA,或
37、者10~20 mA長時間連續(xù)點亮LED溫升不明顯。</p><p> 因此我們選的二極管顏色為紅色,黃色。</p><p> 綠燈是通行信號,面對綠燈的車輛可以直行紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告,信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。</p><p><b>
38、 2.4 設計流程圖</b></p><p><b> 圖2.4.1</b></p><p> 3 交通信號燈軟件的系統(tǒng)編程</p><p> 3.1 信號燈亮滅的定時功能</p><p> 3.1.1 單片機的定時器</p><p> 在單片機應用系統(tǒng)中,實現(xiàn)定時的方法一
39、般有以下三種:</p><p> 1:軟件定時:讓計算機執(zhí)行一段程序來進行事件延時。這個程序段本身份沒有安排其他的執(zhí)行目的,只是利用該程序段的執(zhí)行花費的一個固定時間。通過適當?shù)倪x擇指令和安排循環(huán)次數(shù),可調(diào)節(jié)這段程序執(zhí)行所需花費的時間的長短。其特點是定時時間精確,不需外加硬件電路,但占用CPU時間。因此軟件定時的時間不宜過長。</p><p> ?。玻河布〞r:利用硬件電路實現(xiàn)定時。其特點
40、是不占用CPU時間,通過改變電路元器件參數(shù)調(diào)來節(jié)定時,但使用不夠靈活方便。對于時間較長的定時,常用硬件電路來實現(xiàn)。</p><p> 3:可編程定時器:通過專用的定時計數(shù)器芯片來實現(xiàn)。其特點是通過對系統(tǒng)時鐘脈沖進行計數(shù)實現(xiàn)定時,定時的時間可通過程序的設定的方法改變,使用靈活方便。也可實現(xiàn)對外部脈沖的計數(shù)功能。單片機交通控制器的設計</p><p> 當定時計數(shù)器設置為計數(shù)工作方式時,技
41、術器對來自輸入引腳T0和T1的外部信號計數(shù),</p><p> 外部信號的下降沿將觸發(fā)計數(shù)。最高檢測頻率為振蕩頻率的二十四分之一。計數(shù)器對外部輸入信號的占空比沒有特別的限制,但必須保證輸入信號的高電平與低電平的持續(xù)時間在一個機器周期以上。</p><p> 當設置了定時器的工作方式并啟動定時器工作后,定時器就安倍設定的工作方式獨立工作,不在占用CPU的操作時間,只有在計數(shù)器計滿溢出時才
42、能中斷CPU當前的操作。</p><p> 3.1.2 定時器數(shù)值的設置應該注意的事項</p><p> 延時方法可以有兩種一中是利用MCS-51內(nèi)部定時器才生溢出中斷來確定1秒的時間,另一種是采用軟延時的方法。</p><p> 定時器工作時必須給計數(shù)器送計數(shù)器初值,這個值是送到TH和TL中的。他是以加法記數(shù)的,并能從全1到全0時自動產(chǎn)生溢出中斷請求。因此,
43、我們可以把計數(shù)器記滿為零所需的計數(shù)值設定為C和計數(shù)初值設定為TC 可得到如下計算通式:</p><p><b> TC=M-C</b></p><p> 式中,M為計數(shù)器摸值,該值和計數(shù)器工作方式有關。在方式0時M為8196 ;在方式1時M的值為65536;在方式2和3為256。</p><p> T=(M-TC)T計數(shù)</p>
44、;<p> 或TC=M-T/T計數(shù)</p><p> T計數(shù)是單片機時鐘周期TCLK的12倍;TC為定時初值</p><p> 如單片機的主脈沖頻率為TCLK12MHZ ,經(jīng)過12分頻</p><p> 方式0 TMAX=213?。蔽⒚耄剑福保梗埠撩?lt;/p><p> 方式1 ?。裕停粒兀?16 *1微秒
45、=65.536毫秒</p><p> 我們在這里采用的是方式1,則初始值TC=65536-50000</p><p> THO=(65536-50000)%256 TL0=(65536-50000)/256</p><p> 顯然1秒鐘已經(jīng)超過了計數(shù)器的最大定時間,所以我們只有采用定時器和軟件相結(jié)合的辦法才能解決這個問題.</p><
46、;p> 我們采用在主程序中設定一個初值為0的軟件計數(shù)器和使T0定時50毫秒.這樣每當T0到50毫秒時CPU就響應它的溢出中斷請求,進入他的中斷服務子程序。在中斷服務子程序中,CPU先使軟件計數(shù)器加1,然后判斷它是否為20。為20表示1秒已到可以返回到輸出時間顯示程序</p><p> 3.1.3 定時1ms的程序代碼</p><p> void delay(unsigned i
47、nt z)</p><p> {unsigned int x,y;</p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);</p><p><b> }</b></p><p> 3.2 51單片機的中斷系統(tǒng) </
48、p><p> 3.2.1 中斷系統(tǒng)的概念</p><p> 計算機在執(zhí)行正常程序時,如果系統(tǒng)出現(xiàn)某些急需處理的異常情況和特殊請求,CPU會暫時中止正在執(zhí)行的指令,轉(zhuǎn)去對隨機發(fā)生的更緊迫事件進行處理;處理完后,CPU會自動返回原來的程序繼續(xù)執(zhí)行。</p><p> 3.2.2 單片機的中斷系統(tǒng)的作用</p><p> CPU響應中斷申請時,
49、首先使先級有效位置位,以阻止同級或低級的終端申請;然后把程序計數(shù)器PC的內(nèi)容壓入堆餞,再把與中斷服務程序入口地址送到程序計數(shù)器PC;同時清除某些中斷標志。以上過程均由端系統(tǒng)自動完成。</p><p> 3.2.3 如何實現(xiàn)單片機的中斷</p><p> 8052具備較完善的中斷功能,有兩個外中斷、兩個定時/計數(shù)器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級別選擇。&l
50、t;/p><p><b> 中斷源</b></p><p> MCS-51單片機的中斷源共有5個,分為3類:外部中斷源,片內(nèi)溢出中斷源,串行口中斷源。外部中斷源可以分為由片內(nèi)P3.2引腳輸入的INT0中斷,以及由P3.3引腳輸入的INT1中斷。片內(nèi)溢出中斷分為定時器T0中斷和定時器T1中斷。串行口中斷只有一個,片內(nèi)串行數(shù)據(jù)的接收和發(fā)送中斷。這5個中斷源在程序存儲器中各
51、有中斷服務程序的入口地址,這個地址也稱為矢量地址。在CPU響應中斷時,硬件自動形成各自的入口地址,由此進入中斷服務程序,從而實現(xiàn)了正確的轉(zhuǎn)移。這些中斷源的符號,名稱,產(chǎn)生的條件和中斷服務入口地址如圖所</p><p><b> 3.3軟件流程圖</b></p><p> #include<reg52.h></p><p> u
52、nsigned int i=0,num=0,time=60;</p><p> unsigned char ge,shi;</p><p> unsigned int code table[10]={0x3f,0xXXX,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};</p><p> void delay(unsigned
53、 int);</p><p> void display();</p><p><b> main()</b></p><p> {TMOD=0X01;</p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;<
54、/p><p><b> EA=1;</b></p><p><b> ET0=1;</b></p><p><b> TR0=1;</b></p><p><b> EX0=1;</b></p><p><b> I
55、T0=1;</b></p><p><b> while(1)</b></p><p> {while(time!=5)</p><p> { P1=0XF3;</p><p> if(num==20)</p><p><b> {time--;</b>
56、</p><p><b> num=0;</b></p><p><b> }</b></p><p> display();</p><p><b> }</b></p><p> while(time!=2)</p><
57、p> {if(num==10)</p><p><b> P1=0XF7;</b></p><p> if(num==20)</p><p><b> {P1=0XF3;</b></p><p><b> num=0;</b></p><p&
58、gt;<b> time--;</b></p><p><b> }</b></p><p> display();</p><p><b> }</b></p><p> while(time!=0)</p><p> { P1=0XF5;
59、</p><p> if(num==20)</p><p><b> {num=0;</b></p><p><b> time--;</b></p><p><b> }</b></p><p> display();</p>
60、<p><b> }</b></p><p><b> time=30;</b></p><p> while(time!=5)</p><p><b> {P1=0XDE;</b></p><p> if(num==20)</p><p
61、><b> {num=0;</b></p><p><b> time--;</b></p><p><b> }</b></p><p> display();</p><p><b> }</b></p><p>
62、; while(time!=2)</p><p> {if(num==10)</p><p><b> P1=0XFE;</b></p><p> if(num==20)</p><p><b> {P1=0XDE;</b></p><p><b> n
63、um=0;</b></p><p><b> time--;</b></p><p><b> }</b></p><p> display();</p><p><b> }</b></p><p> while(time!=0)
64、</p><p><b> {P1=0XEE;</b></p><p> if(num==20)</p><p><b> {num=0;</b></p><p><b> time--;</b></p><p><b> }<
65、/b></p><p> display();</p><p><b> }</b></p><p><b> time=60;</b></p><p><b> }</b></p><p><b> }</b>&l
66、t;/p><p> void display()</p><p> { shi=time/10;</p><p> ge=time%10;</p><p><b> P2=0XFE;</b></p><p> P0=table[ge];</p><p><b&g
67、t; delay(5);</b></p><p><b> P2=0XFD;</b></p><p> P0=table[shi];</p><p><b> delay(5);</b></p><p><b> P2=0XFB;</b></p>
68、;<p> P0=table[ge];</p><p><b> delay(5);</b></p><p><b> P2=0XF7;</b></p><p> P0=table[shi];</p><p><b> delay(5);</b><
69、/p><p><b> }</b></p><p> void delay(unsigned int z)</p><p> {unsigned int x,y;</p><p> for(x=z;x>0;x--)</p><p> for(y=110;y>0;y--);<
70、/p><p><b> }</b></p><p> void exter0() interrupt 0</p><p><b> { num=0;</b></p><p> time=20;/*數(shù)碼管計時顯示*/</p><p><b> P1=0XF6;&
71、lt;/b></p><p> While(time!=0)</p><p><b> {</b></p><p> If(num=20)</p><p><b> {num=0;</b></p><p><b> time--}</b>
72、</p><p> disply();}}</p><p> void time0() interrupt 1</p><p><b> {num++;</b></p><p> TH0=(65536-50000)/256;</p><p> TL0=(65536-50000)%256;
73、</p><p><b> }</b></p><p> 4 系統(tǒng)仿真 </p><p> 4.1 proteus軟件介紹</p><p> Proteus軟件是Labcenter Electronics公司的一款電路設計與仿真軟件,它包括ISIS、ARES等軟件模塊,ARE
74、S模塊主要用來完成PCB的設計,而ISIS模塊用來完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術,它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機芯片,比如MCS-51系列、PIC系列等等,以及單片機外圍電路,比如鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實用方便的單片機實驗室。</p><p> 本文中由于我們主要使用Proteus
75、軟件在單片機方面的仿真功能,所以我們重點研究ISIS模塊的用法,在下面的內(nèi)容中,如不特別說明,我們所說的Proteus軟件特指其ISIS模塊。</p><p> 在進行下面的操作前,我先說明一點:我的Proteus版本是7.1,如果你使用的是6.9以前的版本,可能你發(fā)現(xiàn)在鼠標操作上會略有不同。這主要表現(xiàn)在6.9以前的版本鼠標左右鍵的作用與一般軟件剛好相反,而7.0以后已經(jīng)完全改過。</p><
76、;p> 下面我們首先來熟悉一下Proteus的界面。Proteus是一個標準的Windows窗口程序,和大多數(shù)程序一樣,沒有太大區(qū)別,其啟動界面如下圖所示:</p><p><b> 圖</b></p><p><b> 4-1</b></p><p> 如圖中所示,區(qū)域①為菜單及工具欄,區(qū)域②為預覽區(qū),區(qū)域
77、③為元器件瀏覽區(qū),區(qū)域④為編輯窗口,區(qū)域⑤為對象拾取區(qū),區(qū)域⑥為元器件調(diào)整工具欄,區(qū)域⑦為運行工具條。</p><p> 下面我們就以建立一個和我們在Keil簡介中所講的工程項目相配套的Proteus工程為例來詳細講述Proteus的操作方法以及注意事項。</p><p> 首先點擊啟動界面區(qū)域③中的“P”按鈕(Pick Devices,拾取元器件)來打開“Pick Devices”(
78、拾取元器件)對話框從元件庫中拾取所需的元器件。對話框如下圖所示:</p><p><b> 圖4-2</b></p><p> 在對話框中的“Keywords”里面輸入我們要檢索的元器件的關鍵詞,比如我們要選擇項目中使用的AT89C51,就可以直接輸入。輸入以后我們能夠在中間的“Results”結(jié)果欄里面看到我們搜索的元器件的結(jié)果。在對話框的右側(cè),我們還能夠看到我
79、們選擇的元器件的仿真模型、引腳以及PCB參數(shù)。</p><p> 這里有一點需要注意,可能有時候我們選擇的元器件并沒有仿真模型,對話框?qū)⒃诜抡婺P秃鸵_一欄中顯示“No Simulator Model”(無仿真模型)。那么我們就不能夠用該元器件進行仿真了,或者我們只能做它的PCB板,或者我們選擇其他的與其功能類似而且具有仿真模型的元器件。</p><p> 搜索到所需的元器件以后,我們
80、可以雙擊元器件名來將相應的元器件加入到我們的文檔中,那么接著我們還可以用相同的方法來搜索并加入其他的元器件。當我們已經(jīng)將所需的元器件全部加入到文檔中時,我們可以點擊“OK”按鈕來完成元器件的添加。</p><p> 添加好元器件以后,下面我們所需要做的就是將元器件按照我們的需要連接成電路。首先在元器件瀏覽區(qū)中點擊我們需要添加到文檔中的元器件,這時我們就可以在瀏覽區(qū)看到我們所選擇的元器件的形狀與方向,如果其方向不
81、符合你的要求,你可以通過點擊元器件調(diào)整工具欄中的工具來任意進行調(diào)整,調(diào)整完成之后在文檔中單擊并選定好需要放置的位置即可。接著按相同的操作即可完成所有元器件的布置,接下來是連線。事實上Proteus的自動布線功能是如此的完美以至于我們在做布線時從來都不會覺得這是一項任務,而通常像是在享受布線的樂趣。布線時我們只需要單擊選擇起點,然后在需要轉(zhuǎn)彎的地方單擊一下,按照你所需走線的方向移動鼠標到線的終點單擊即可。本例我們布線的結(jié)果如下圖所示(仿真
82、我們在上面的Keil操作介紹中的簡單例子)。</p><p><b> 圖4-3</b></p><p> 因為該工程十分簡單,我們沒有必要加上復位電路,所以這點在圖中予以忽略,請大家注意。除此以外,你可能還發(fā)現(xiàn),單片機系統(tǒng)沒有晶振,這一點你需注意。事實上在Proteus中單片機的晶振可以省略,系統(tǒng)默認為12MHz,而且很多時候,當然也為了方便,我們只需要取默認值
83、就可以了。</p><p> 下面我們來添加電源。先說明一點,Proteus中單片機芯片默認已經(jīng)添加電源與地,所以我們可以省略。然后在添加電源與地以前,我們先來看一下上面第一個圖中區(qū)域⑤的對象拾取區(qū),我們在這里只說明本文中可能會用得到的以及比較重要的工具。</p><p> l:(Selection Mode)。選擇模式,通常情況下我們都需要選中它,比如布局時和布線時。</p&g
84、t;<p> l :(Component Mode)。組件模式,點擊該按鈕,能夠顯示出區(qū)域③中的元器件,以便我們選擇。</p><p> l :(Wire Label Mode)。線路標簽模式,選中它并單擊文檔區(qū)電路連線能夠為連線添加標簽。經(jīng)常與總線配合使用。</p><p> l :(Text Script
85、Mode)。文本模式,選中它能夠為文檔添加文本。</p><p> l :(Buses Mode)??偩€模式,選中它能夠在電路中畫總線。關于總線畫法的詳細步驟與注意事項我們在下面會進行專門講解。</p><p> l :(Terminals Mode)。終端模式,選中它能夠為電路添加各種終端,比如輸入、輸出、電源、地等等。</p>&l
86、t;p> l :(Virtual Instruments Mode)。虛擬儀器模式,選中它我們能夠在區(qū)域③中看到很多虛擬儀器,比如示波器、電壓表、電流表等等。關于它們的用法我們會在后面的相應章節(jié)中詳細講述。</p><p> 好了,下面我們就來添加電源。首先點擊,選擇終端模式,然后在元器件瀏覽區(qū)中點擊POWER(電源)來選中電源,通過區(qū)域⑥中的元器件調(diào)整工具進行適當?shù)恼{(diào)整,然后就可以在文檔區(qū)中單擊放置電
87、源了。放置并連接好線路的電路圖一部分如下圖:</p><p><b> 圖4-4</b></p><p> 連接好電路圖以后我們還需要做一些修改。由上圖我們可以看出,圖中的R1電阻值為10k,這個電阻作為限流電阻顯然太大,將使發(fā)光二極管D1亮度很低或者根本就不亮,影響我們的仿真結(jié)果。所以我們要進行修改。修改方法如下:首先我們雙擊電阻圖標,這時軟件將彈出“Edit
88、Component”對話框(見下圖所示的對話框),對話框中的“Component Referer”是組件標簽之意,可以隨便填寫,也可以取默認,但要注意在同一文檔中不能有兩個組件標簽相同;“Resistance”就是電阻值了,我們可以在其后的框中根據(jù)需要填入相應的電阻值。填寫時需注意其格式,如果直接填寫數(shù)字,則單位默認為Ω;如果在數(shù)字后面加上K或者k,則表示kΩ之意。這里我們填入270,表示270Ω。</p><p&g
89、t; 修改好各組件屬性以后就要將程序(HEX文件)載入單片機了。首先雙擊單片機圖標,系統(tǒng)同樣會彈出“Edit Component”對話框,如下圖。在這個對話框中我們點擊“Program files”框右側(cè)的,來打開選擇程序代碼窗口,選中相應的HEX文件后返回,這時,按鈕左側(cè)的框中就填入了相應的HEX文件,我們點擊對話框的“OK”按鈕,回到文檔,程序文件就添加完畢了。</p><p><b> 圖4-
90、5</b></p><p> 裝載好程序,我們就可以進行仿真了。</p><p><b> 5調(diào)試功能說明</b></p><p><b> 5.1 硬件調(diào)試</b></p><p> 5.1.1最小系統(tǒng)調(diào)試</p><p> 首先應該確認電源電壓是否正
91、常。用電壓表測量接地引腳跟電源引腳之間的電壓,看是否是電源電壓,我們所用的電源電壓是5V。接下來就是檢查復位引腳電壓是否正常。分別測量按下復位按鈕和放開復位按鈕的電壓值,看是否正確。然后再檢查晶振是否起振了,一般用示波器來看晶振引腳的波形,注意應該使用示波器探頭的“X10”檔。另一個辦法是測量復位狀態(tài)下的IO口電平,按住復位鍵不放,然后測量IO口(沒接外部上拉的P0口除外)的電壓,看是否是高電平,如果不是高電平,則多半是因為晶振沒有起振
92、。另外還要注意的地方是,要將EA引腳拉高,因為我們用的是片內(nèi)ROM,否則會出現(xiàn)程序亂跑的情況。有時用仿真器可以,而燒入片子不行,往往是因為EA引腳沒拉高的緣故(當然,晶振沒起振也是原因只一)。經(jīng)過上面幾點的檢查,一般即可排除故障了。如果系統(tǒng)不穩(wěn)定的話,有時是因為電源濾波不好導致的。在單片機的電源引腳跟地引腳之間接上一個0.1uF的電容會有所改善。如果電源沒有濾波電容的話,則需要再接一個更大濾波電容,例如220uF的。遇到系統(tǒng)不穩(wěn)定時,就
93、可以并上電容試試。</p><p> 5.1.2 故障點分析</p><p> 檢測故障點的方法如下:</p><p> ?、贉y量電壓法。首先要確認的是各芯片電源引腳的電壓是否正常,其次檢查各種參考電壓是否正常,另外還有各點的工作電壓是否正常等。</p><p> ?、谛盘栕⑷敕?。將信號源加至輸入端,然后依次往后測量各點的波形,看是否正常
94、,以找到故障點。有時我們也會用更簡單的辦法,例如用手握一個鑷子,去碰觸各級的輸入端,看輸出端是否有反應,</p><p> ?、郛斎唬€有很多其它的尋找故障點的方法,例如看、聽、聞、摸等。“看”就是看元件有無明顯的機械損壞,例如破裂、燒黑、變形等;“聽”就是聽工作聲音是否正常,例如一些不該響的東西在響,該響的地方不響或者聲音不正常等;“聞”就是檢查是否有異味,例如燒焦的味道、電容電解液的味道等,對于一個有經(jīng)驗的電
95、子維修人員來說,對這些氣味是很敏感的;“摸”就是用手去試探器件的溫度是否正常,例如太熱,或者太涼。一些功率器件,工作起來時會發(fā)熱,如果摸上去是涼的,則基本上可以判斷它沒有工作起來。但如果不該熱的地方熱了或者該熱的地方太熱了,那也是不行的。一般的功率三極管、穩(wěn)壓芯片等,工作在70度以下是完全沒問題的。70度大概是怎樣的一個概念呢?如果你將手壓上去,可以堅持三秒鐘以上,就說明溫度大概在70度以下(注意要先試探性的去摸,千萬別把手燙傷了)。&
96、lt;/p><p> 5.2軟件調(diào)試問題及解決</p><p> 一個應用系統(tǒng)并非一次就可以正確無誤地設計出來,尤其是設計的程序,必須經(jīng)過多次的調(diào)試才能確鑿無誤地工作。為避免浪費,并不把剛剛編寫好的程序直接寫到EPROM、EEPROM等中去,更不會急于生產(chǎn)安裝部分硬件,在專用的仿真器或開發(fā)試驗臺上進行。</p><p> 我們首先在KEIL軟件中編寫程序,來進行C
97、語言程序的調(diào)試。然后再把程序加載在PRETEUS軟件上進行仿真調(diào)試。</p><p> Keil C51軟件提供豐富的庫函數(shù)和功能強大的集成開發(fā)調(diào)試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數(shù)語句生成的匯編代碼很緊湊,容易理解。</p><p> Keil軟件可以對我們寫的C語言程序進行編譯,它能
98、清晰的顯示出程序的各種信息,并能明確的指出程序的錯誤之處和錯誤的原由。以致我們能夠得到結(jié)構(gòu),書寫都無誤的C語言的程序。</p><p> Proteus 提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數(shù)字信號。對于單片機硬件電路和軟件的調(diào)試,Proteus 提供了兩種方法:一種是系統(tǒng)總體執(zhí)行效果,一種是對軟件的分步調(diào)試以看具體的執(zhí)行情況。 對于總體執(zhí)行效果的調(diào)試方
99、法,只需要執(zhí)行debug 菜單下的execute 菜單項或F12 快捷鍵啟動執(zhí)行,用debug菜單下的pause animation 菜單項或pause 鍵暫停系統(tǒng)的運行;或用debug 菜單下的stop animation 菜單項或shift-break 組合鍵停止系統(tǒng)的運行。其運行方式也可以選擇工具欄中的相應工具進行。 對于軟
100、件的分步調(diào)試,應先執(zhí)行debug 菜單下的start/restart debugging 菜單項命令,此時可以選擇stepover 、step into 和 step out 命令執(zhí)行程序(可以用快捷鍵F10、F11 和ctrl+F11),執(zhí)行的效果是單句執(zhí)行、進入子程序執(zhí)行和跳出子程序執(zhí)行。在執(zhí)行了start / r
101、estart debuging 命令后,在debug 菜單的下面要出現(xiàn)仿真中所涉及到</p><p><b> 5.3拓展</b></p><p> 當車流量增大,按照設置的正常系統(tǒng)運行時間來控制交通燈的交替運行未能使路口的車最快通過十字路口,導致交通擁擠、堵塞時,可通知人工手動方式控制開關按鈕來改善路口的交通狀況,使各個方向的車能更
102、快通過路口,達到減輕交通負擔,使交通更合理,具有實際的作用。</p><p><b> 結(jié)束語</b></p><p><b> 文總結(jié)</b></p><p> 通過這次的畢業(yè)設計使我對單片機又有了更深的認識,讓我對其從硬件和軟件都有了實質(zhì)性的探究,自己動手設計,組裝使自己的知識得到了系統(tǒng)化和產(chǎn)品化真正達到了學以致
103、用。至此我要特別感謝學校和老師安排的這項活動使我們脫離了高中只會理論不會實踐的階段而真正進入了實質(zhì)性的層次。使我們對將來的工作及研發(fā)奠定了一定的基礎。</p><p><b> 工作展望</b></p><p> 單片機是一門復雜而又有創(chuàng)新空間的技術,我會在以后的日子里更加的努力,爭取在有生之年取得一定的成績。中國的高科技產(chǎn)業(yè)比較的落后,和美國,日本等都有很大的差
104、距我們這一代的大學生應該擔負起這樣的責任為我國的科技發(fā)展做出貢獻。我會不斷的努力爭取在單片機領域做出自己最大的努力。</p><p><b> 參考文獻</b></p><p> [1] 肖洪兵. .跟我學用單片機[M]. 北京:北京航空航天大學出版社,2006</p><p> [2] 何立民. 單片機高級教程[M]. 北京:北京航空航
105、天大學出版社,2007</p><p> [3] 馬連洪/丁男/黃偉/馬艷華.單片機原理及應用[M]. 北京:北京交通大學出版社,2000</p><p> [4] 周明德. 單片機原理與技術[M] 北京:人民郵電出版社,2008</p><p> [5] 何立民. 單片機應用系統(tǒng)設計[M]. 北京:北京航空航天大學出版社,2000</p>&l
106、t;p> [6] 姜志海,劉連新. 單片微型計算機原理接口與應用[M]. 北京:機械工業(yè)出版社,2007 </p><p> [7] 吳葉蘭. 微機原理與接口技術[M]. 北京:機械工業(yè)出版社,2009</p><p> [8] 胡健 . 單片機原理及接口技術[M]. 北京:機械工業(yè)出版社,2002</p><p><b> 致 謝&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)論文-單片機交通控制燈的設計與實現(xiàn)
- 畢業(yè)論文-單片機交通控制燈的設計與實現(xiàn)
- 畢業(yè)論文---單片機交通控制燈的設計與實現(xiàn)
- 畢業(yè)論文-單片機交通控制燈的設計與實現(xiàn)
- 畢業(yè)設計--- 單片機交通控制燈的設計與實現(xiàn)
- 畢業(yè)設計--- 單片機交通控制燈的設計與實現(xiàn)
- 畢業(yè)設計--單片機交通控制燈的設計與實現(xiàn)
- 單片機控制交通燈畢業(yè)設計論文
- 畢業(yè)設計--- 單片機交通控制燈的設計與實現(xiàn).doc
- 單片機畢業(yè)設計---單片機控制交通燈
- 畢業(yè)設計----單片機控制交通燈
- 單片機控制交通燈畢業(yè)設計
- 畢業(yè)設計-單片機控制交通燈
- 畢業(yè)設計---單片機控制交通燈
- 單片機控制交通燈設計(優(yōu)秀畢業(yè)設計論文)
- 單片機交通燈控制畢業(yè)設計
- 單片機控制交通燈畢業(yè)設計
- 單片機控制交通燈畢業(yè)設計
- 交通燈設計畢業(yè)論文--單片機交通燈設計
- 畢業(yè)設計---單片機控制交通燈設計
評論
0/150
提交評論