基于單片機的交通燈控制器的設計畢業(yè)設計_第1頁
已閱讀1頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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交通燈國內外發(fā)展概況1</p><p>  1.2交通信號燈的作用及工作原理1</p><p>  1.2.1道路交通控制的作用主要表現為以下幾個方面

3、1</p><p>  1.2.2 道路交通信號燈的工作原理如下2</p><p>  2. 系統組成3</p><p>  2.1 硬件控制線路圖3</p><p>  2.2 器件和原理4</p><p>  2.2.1什么是單片機4</p><p>  2.2.2 什么是

4、單片機系統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. 交通信號燈軟件的系統編程10</p><p>

5、;  3.1 信號燈亮滅的定時功能10</p><p>  3.1.1 單片機的定時器10</p><p>  3.1.2 定時器數值的設置應該注意的事項10</p><p>  3.2 51單片機的中斷系統11</p><p>  3.2.1 中斷系統的概念11</p><p>  3.2.2 單片機的中

6、斷系統的作用12</p><p>  3.2.3 如何實現單片機的中斷12</p><p>  3.3軟件流程圖12</p><p>  4. 系統仿真17</p><p>  4.1 proteus軟件介紹17</p><p>  5.調試功能說明23</p><p>  5.

7、1 硬件調試23</p><p>  5.1.1最小系統調試23</p><p>  5.1.2 故障點分析23</p><p>  5.2軟件調試問題及解決24</p><p><b>  5.3拓展25</b></p><p><b>  結束語26</b>&

8、lt;/p><p><b>  文總結26</b></p><p><b>  工作展望26</b></p><p><b>  參考文獻27</b></p><p><b>  致  謝28</b></p><p>  單片機

9、交通控制燈的設計與實現</p><p><b>  摘要</b></p><p>  本系統采用MCS-51系列單片機Intel8031和可編程并行I/O接口芯片8255A為中心器件來設計交通燈控制器,實現了能根據實際車流量通過8031芯片的PI口設置紅、綠燈燃亮時間的功能:為了系統穩(wěn)定可靠采用了MAX629“看門狗”芯片,避免系統因為死機而停止工作的情況發(fā)生;顯示時

10、間直接通過8255的PA、PB口輸出;交通燈信號通過PC口輸出;交通燈的點亮采用VT雙向晶閘管來控制、直接采用220V交流電源驅動,系統使用性強、操作簡單、擴展性強。</p><p>  關鍵詞:單片機,交通燈,控制器,設計,實現</p><p>  Traffic control chip design and realization of the lamp</p><

11、;p><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

12、traffic 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 ado

13、pted MAX629 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 <

14、/p><p><b>  引言</b></p><p>  該設計是單片機控制交通燈,運用s51單片機實現交通燈的控制?,F今世界單片機作為微型計算機一個重要部分,由于它具有抗干擾能力強、靈活性好、環(huán)境要求不高、價格低廉、開放容易等優(yōu)點,在我國一 廣泛的應用在工業(yè)自動化控制、自動檢測、智能儀器儀表、家用電器、電力電子、機電一體化設備等</p><p>

15、;  交通信號燈硬件電路的設計</p><p>  1.1交通燈國內外發(fā)展概況</p><p>  隨著經濟的發(fā)展,城市現代化程度不斷提高,交通需求和交通迅速增長,城市交通網絡中交通擁擠日益嚴重,道路運輸所帶來的交通擁堵、交通事故和環(huán)境污染等負面效應日益突出。逐步成為經濟和社會發(fā)展中的全球性共同問題。交通問題已經日益成為世界性的難題,城市交通事故、交通堵塞和交通污染問題愈加突出。為了解決

16、車和路的矛盾,常用的兩種方法:一是控制需求,最直接的辦法就是限制車輛的增長:二是增加供給,也就是修路。但是這兩個辦法都有其局限性。交通是社會發(fā)展和人民生活水平提高的基本條件,經濟的發(fā)展必然帶來出行的增加而且在我國汽車工業(yè)正處在起步階段的時期。因此限制車輛的增長不是解決問題的好辦法。而采取增加供給,即大量修筑道路基礎設施的方法,在自愿、環(huán)境矛盾越來越突出的今天。面對越來越擁擠的交通,有限的財力是很難支持的!所以在道路管理方面就要加強交通安

17、全,而在道路管理中最長見的就是交通燈。因此交通燈是目前道路最為常見,也是最為廣泛的交通規(guī)范工具!</p><p>  1.2交通信號燈的作用及工作原理</p><p>  1.2.1道路交通控制的作用主要表現為以下幾個方面:   </p><p>  改善交通秩序,增加交通安全。 </p><p>  減少交通延誤,提高經濟效益。   <

18、;/p><p>  降低污染程度,保護生態(tài)環(huán)境。</p><p>  節(jié)省能源和土地消耗。</p><p>  交通信號燈由紅燈、綠燈、黃燈組成。紅燈表示禁止通行,綠燈表示準許通行,黃燈表示警示。交通信號燈分為機動車信號燈、非機動車信號燈、人行橫道信號燈、車道信號燈、方向指示信號燈、閃光警告信號燈、道路與鐵路平面交叉道口信號燈。交通信號燈用于道路平面交叉路口,通過對車輛

19、、行人發(fā)出行進或停止的指令,使各同時到達的人、車交通流盡可能減少相互干擾,從而提高路口的通行能力,保障路口暢通和安全。</p><p> ?。?)機動車信號燈。由綠黃紅三種顏色的燈組成,綠燈亮時,準許車輛通行,但轉彎車輛不得妨礙被放行的直行車輛、行人通行;黃燈亮時,已越過停止線的車輛可繼續(xù)通行;紅燈亮時,禁止車輛通行。</p><p> ?。?)車道信號燈。車道信號燈由綠色箭頭燈和紅色叉形

20、燈或紅色箭頭燈組成,綠色箭頭燈亮時,準許本車道車輛按指示方向通行;紅色叉形燈或紅色箭頭燈亮時,禁止本車道車輛通行。</p><p> ?。?)人行橫道信號燈。人行橫道信號燈由綠燈和紅燈組成,綠燈亮時,準許行人通過人行橫道;紅燈亮時,禁止行人進入人行橫道,但是已經進入人行橫道的,可以繼續(xù)通過或者在道路中心線處停留等候第一章 交通信號燈硬件電路的設計</p><p>  1.2.2 道路交

21、通信號燈的工作原理如下:</p><p>  設計一個十字路口交通燈自動控制電路。</p><p><b>  設:</b></p><p>  a--------南北方向綠燈接通; </p><p>  b--------東西方向綠燈接通; </p><p>  c--------南北方向紅燈接

22、通; </p><p>  d--------東西方向紅燈接通;</p><p>  e--------南北方向黃燈接通;</p><p>  f--------東西方向黃燈接通。 </p><p>  工作順序為A→B→C→D→A, 要求各狀態(tài)的工作時間如下圖所示。 </p><p>  綠燈-(25s)-黃燈--(

23、5s)-紅燈--(30s)--綠燈--(循環(huán))</p><p><b>  2 系統組成</b></p><p>  2.1 硬件控制線路圖</p><p>  2.2 器件和原理</p><p>  2.2.1什么是單片機</p><p>  單片機是指一個集成在一塊芯片上的完整計算機系統

24、。盡管他的大部分功能集成在一塊小芯片上,但是它具有一個完整計算機所需要的大部分部件:CPU、內存、內部和外部總線系統,目前大部分還會具有外存。同時集成諸如通訊接口、定時器,實時時鐘等外圍設備。而現在最強大的單片機系統甚至可以將聲音、圖像、網絡、復雜的輸入輸出系統集成在一塊芯片上。</p><p>  單片機也被稱為微控制器(Microcontroler),是因為它最早被用在工業(yè)控制領域。單片機由芯片內僅有CPU的

25、專用處理器發(fā)展而來。最早的設計理念是通過將大量外圍設備和CPU集成在一個芯片中,使計算機系統更小,更容易集成進復雜的而對提及要求嚴格的控制設備當中。INTEL的Z80是最早按照這種思想設計出的處理器,從此以后,單片機和專用處理器的發(fā)展便分道揚鑣。</p><p>  早期的單片機都是8位或4位的。其中最成功的是INTEL的8031,因為簡單可靠而性能不錯獲得了很大的好評。此后在8031上發(fā)展出了MCS51系列單片

26、機系統?;谶@一系統的單片機系統直到現在還在廣泛使用。隨著工業(yè)控制領域要求的提高,開始出現了16位單片機,但因為性價比不理想并未得到很廣泛的應用。90年代后隨著消費電子產品大發(fā)展,單片機技術得到了巨大的提高。隨著INTEL i960系列特別是后來的ARM系列的廣泛應用,32位單片機迅速取代16位單片機的高端地位,并且進入主流市場。而傳統的8位單片機的性能也得到了飛速提高,處理能力比起80年代提高了數百倍。目前,高端的32位單片機主頻已&

27、lt;/p><p>  經超過300MHz,性能直追90年代中期的專用處理器,而普通的型號出廠價格跌落至1美元,最高端的型號也只有10美元。當代單片機系統已經不再只在裸機環(huán)境下開發(fā)和使用,大量專用的嵌入式操作系統被廣泛應用在全系列的單片機上。而在作為掌上電腦和手機核心處理的高端單片機甚至可以直接使用專用的Windows和Linux操作系統。</p><p>  單片機比專用處理器最適合應用于嵌

28、入式系統,因此它得到了最多的應用。事實上單片機是世界上數量最多的計算機?,F代人類生活中所用的幾乎每件電子和機械產品中都會集成有單片機。手機、電話、計算器、家用電器、電子玩具、掌上電腦以及鼠標等電腦配件中都配有1-2部單片機。而個人電腦中也會有為數不少的單片機在工作。汽車上一般配備40多部單片機,復雜的工業(yè)控制系統上甚至可能有數百臺單片機在同時工作!單片機的數量不僅遠超過PC機和其他計算的綜合,甚至比人類的數量還要多。</p>

29、<p>  2.2.2 什么是單片機系統</p><p>  單片機最小系統,或者稱為最小應用系統,是指用最少的元件組成的單片機可以工作的系統.</p><p>  對51系列單片機來說,最小系統一般應該包括:單片機、晶振電路、復位電路.</p><p>  下面給出一個51單片機的最小系統電路圖.</p><p><b&

30、gt;  圖3-1</b></p><p>  復位電路:由電容串聯電阻構成,由圖并結合"電容電壓不能突變"的性質,可以知道,當系統一上電,RST腳將會出現高電平,并且,這個高電平持續(xù)的時間由電路的RC值來決定.典型的51單片機當RST腳的高電平持續(xù)兩個機器周期以上就將復位,所以,適當組合RC的取值就可以保證可靠的復位.一般教科書推薦C 取10u,R取8.2K.當然也有其

31、他取法的,原則就是要讓RC組合可以在RST腳上產生不少于2個機周期的高電平.至于如何具體定量計算,可以參考電路分析相關書籍.</p><p>  晶振電路:典型的晶振取11.0592MHz(因為可以準確地得到9600波特率和19200波特率,用于有串口通訊的場合)/12MHz(產生精確的uS級時歇,方便定時操作)</p><p>  2.3 部分電路功能</p><p

32、>  2.3.1 晶振電路</p><p>  2.3.2 復位電路</p><p>  2.3.3 信號燈控制電路,LED及顯示接口</p><p><b>  1</b></p><p>  發(fā)光二極管簡稱LED,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內部結構為一個PN結,具有單向導電性 </p>

33、;<p>  當在發(fā)光二極管PN結上加正向電壓時,PN結勢壘降低,載流子的擴散運動大于漂移運動,致使P區(qū)的空穴注入到N區(qū),N區(qū)的電子注入到P區(qū),這樣相互注入的空穴與電子相遇后會產生復合,復合時產生的能量大部分以光的形式出現,因此而發(fā)光。 當所有二極管都發(fā)出光時,大多數都不是很有效的。在普通二極管里,半導體材料本身吸引大量的光能而結束。發(fā)光二極管是由一個塑性燈泡覆蓋集中燈光在一個特定方向。由于不同材料的禁帶寬度不同,所以

34、由不同材料制成的發(fā)光二極管可發(fā)出不同波長的光。另外,有些材料由于組分和摻雜不同,例如,有的具有很復雜的能帶結構,相應的還有間接躍遷輻射等,因此有各種各樣的發(fā)光二極管。</p><p>  發(fā)光二極管在制作時,使用的材料有所不同,那么就可以發(fā)出不同顏色的光。 </p><p>  發(fā)光二極管的發(fā)光顏色有:紅色光、黃色光、綠色光、紅外光等。 </p><p>  發(fā)光二

35、極管的外形有:圓形、長方形、三角形、正方形、組合形、特殊形等。 </p><p>  常用的發(fā)光二極管應用電路有四種,即直流驅動電路、交流驅動電路、脈沖驅動電路、變色發(fā)光驅動電路。 </p><p>  使用LED作指示電路時,應該串接限流電阻,該電阻的阻值大小應根據不同的使用電壓和LED所需工作電流來選擇。發(fā)光二極管的壓降一LED的光學參數與pn結結溫有很大的關系。一般工作在小電流IF<

36、10mA,或者10~20 mA長時間連續(xù)點亮LED溫升不明顯。</p><p>  因此我們選的二極管顏色為紅色,黃色。</p><p>  綠燈是通行信號,面對綠燈的車輛可以直行紅燈是禁行信號,面對紅燈的車輛必須在交叉路口的停車線后停車。黃燈是警告,信號,面對黃燈的車輛不能越過停車線,但車輛已十分接近停車線而不能安全停車時可以進入交叉路口。</p><p><

37、;b>  2.4 設計流程圖</b></p><p><b>  圖2.4.1</b></p><p>  3 交通信號燈軟件的系統編程</p><p>  3.1 信號燈亮滅的定時功能</p><p>  3.1.1 單片機的定時器</p><p>  在單片機應用系統中,實現

38、定時的方法一般有以下三種:</p><p> ?。保很浖〞r:讓計算機執(zhí)行一段程序來進行事件延時。這個程序段本身份沒有安排其他的執(zhí)行目的,只是利用該程序段的執(zhí)行花費的一個固定時間。通過適當的選擇指令和安排循環(huán)次數,可調節(jié)這段程序執(zhí)行所需花費的時間的長短。其特點是定時時間精確,不需外加硬件電路,但占用CPU時間。因此軟件定時的時間不宜過長。</p><p> ?。玻河布〞r:利用硬件電路實現

39、定時。其特點是不占用CPU時間,通過改變電路元器件參數調來節(jié)定時,但使用不夠靈活方便。對于時間較長的定時,常用硬件電路來實現。</p><p> ?。常嚎删幊潭〞r器:通過專用的定時計數器芯片來實現。其特點是通過對系統時鐘脈沖進行計數實現定時,定時的時間可通過程序的設定的方法改變,使用靈活方便。也可實現對外部脈沖的計數功能。單片機交通控制器的設計</p><p>  當定時計數器設置為計數工

40、作方式時,技術器對來自輸入引腳T0和T1的外部信號計數,</p><p>  外部信號的下降沿將觸發(fā)計數。最高檢測頻率為振蕩頻率的二十四分之一。計數器對外部輸入信號的占空比沒有特別的限制,但必須保證輸入信號的高電平與低電平的持續(xù)時間在一個機器周期以上。</p><p>  當設置了定時器的工作方式并啟動定時器工作后,定時器就安倍設定的工作方式獨立工作,不在占用CPU的操作時間,只有在計數器

41、計滿溢出時才能中斷CPU當前的操作。</p><p>  3.1.2 定時器數值的設置應該注意的事項</p><p>  延時方法可以有兩種一中是利用MCS-51內部定時器才生溢出中斷來確定1秒的時間,另一種是采用軟延時的方法。</p><p>  定時器工作時必須給計數器送計數器初值,這個值是送到TH和TL中的。他是以加法記數的,并能從全1到全0時自動產生溢出中斷

42、請求。因此,我們可以把計數器記滿為零所需的計數值設定為C和計數初值設定為TC 可得到如下計算通式:</p><p><b>  TC=M-C</b></p><p>  式中,M為計數器摸值,該值和計數器工作方式有關。在方式0時M為8196 ;在方式1時M的值為65536;在方式2和3為256。</p><p>  T=(M-TC)T計數<

43、;/p><p>  或TC=M-T/T計數</p><p>  T計數是單片機時鐘周期TCLK的12倍;TC為定時初值</p><p>  如單片機的主脈沖頻率為TCLK12MHZ ,經過12分頻</p><p>  方式0   ?。裕停粒兀?13?。蔽⒚耄剑福保梗埠撩?lt;/p><p>  方式1   ?。裕停粒兀?1

44、6?。蔽⒚耄剑叮担担常逗撩?lt;/p><p>  我們在這里采用的是方式1,則初始值TC=65536-50000</p><p>  THO=(65536-50000)%256 TL0=(65536-50000)/256</p><p>  顯然1秒鐘已經超過了計數器的最大定時間,所以我們只有采用定時器和軟件相結合的辦法才能解決這個問題.</p>

45、;<p>  我們采用在主程序中設定一個初值為0的軟件計數器和使T0定時50毫秒.這樣每當T0到50毫秒時CPU就響應它的溢出中斷請求,進入他的中斷服務子程序。在中斷服務子程序中,CPU先使軟件計數器加1,然后判斷它是否為20。為20表示1秒已到可以返回到輸出時間顯示程序</p><p>  3.1.3 定時1ms的程序代碼</p><p>  void delay(unsi

46、gned int 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單片機的中斷系統

47、 </p><p>  3.2.1 中斷系統的概念</p><p>  計算機在執(zhí)行正常程序時,如果系統出現某些急需處理的異常情況和特殊請求,CPU會暫時中止正在執(zhí)行的指令,轉去對隨機發(fā)生的更緊迫事件進行處理;處理完后,CPU會自動返回原來的程序繼續(xù)執(zhí)行。</p><p>  3.2.2 單片機的中斷系統的作用</p><p>  CPU響應

48、中斷申請時,首先使先級有效位置位,以阻止同級或低級的終端申請;然后把程序計數器PC的內容壓入堆餞,再把與中斷服務程序入口地址送到程序計數器PC;同時清除某些中斷標志。以上過程均由端系統自動完成。</p><p>  3.2.3 如何實現單片機的中斷</p><p>  8052具備較完善的中斷功能,有兩個外中斷、兩個定時/計數器中斷和一個串行中斷,可滿足不同的控制要求,并具有2級的優(yōu)先級

49、別選擇。</p><p><b>  中斷源</b></p><p>  MCS-51單片機的中斷源共有5個,分為3類:外部中斷源,片內溢出中斷源,串行口中斷源。外部中斷源可以分為由片內P3.2引腳輸入的INT0中斷,以及由P3.3引腳輸入的INT1中斷。片內溢出中斷分為定時器T0中斷和定時器T1中斷。串行口中斷只有一個,片內串行數據的接收和發(fā)送中斷。這5個中斷源在程

50、序存儲器中各有中斷服務程序的入口地址,這個地址也稱為矢量地址。在CPU響應中斷時,硬件自動形成各自的入口地址,由此進入中斷服務程序,從而實現了正確的轉移。這些中斷源的符號,名稱,產生的條件和中斷服務入口地址如圖所</p><p><b>  3.3軟件流程圖</b></p><p>  #include<reg52.h></p><p&

51、gt;  unsigned 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(un

52、signed 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)%25

53、6;</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&

54、gt;  IT0=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--;<

55、/b></p><p><b>  num=0;</b></p><p><b>  }</b></p><p>  display();</p><p><b>  }</b></p><p>  while(time!=2)</p>

56、<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>

57、<p><b>  time--;</b></p><p><b>  }</b></p><p>  display();</p><p><b>  }</b></p><p>  while(time!=0)</p><p>  { P1

58、=0XF5;</p><p>  if(num==20)</p><p><b>  {num=0;</b></p><p><b>  time--;</b></p><p><b>  }</b></p><p>  display();</p

59、><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>

60、<p><b>  {num=0;</b></p><p><b>  time--;</b></p><p><b>  }</b></p><p>  display();</p><p><b>  }</b></p>&l

61、t;p>  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&

62、gt;  num=0;</b></p><p><b>  time--;</b></p><p><b>  }</b></p><p>  display();</p><p><b>  }</b></p><p>  while(ti

63、me!=0)</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> 

64、 }</b></p><p>  display();</p><p><b>  }</b></p><p><b>  time=60;</b></p><p><b>  }</b></p><p><b>  }</b

65、></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>&

66、lt;b>  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><

67、;/p><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&g

68、t;</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--

69、);</p><p><b>  }</b></p><p>  void exter0() interrupt 0</p><p><b>  { num=0;</b></p><p>  time=20;/*數碼管計時顯示*/</p><p><b>  P1=

70、0XF6;</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--}<

71、/b></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

72、)%256;</p><p><b>  }</b></p><p>  4 系統仿真 </p><p>  4.1 proteus軟件介紹</p><p>  Proteus軟件是Labcenter Electronics公司的一款電路設計與仿真軟件,它包括ISIS、ARES等軟件

73、模塊,ARES模塊主要用來完成PCB的設計,而ISIS模塊用來完成電路原理圖的布圖與仿真。Proteus的軟件仿真基于VSM技術,它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大量的單片機芯片,比如MCS-51系列、PIC系列等等,以及單片機外圍電路,比如鍵盤、LED、LCD等等。通過Proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實用方便的單片機實驗室。</p><p>  本文中由于我們主要使用P

74、roteus軟件在單片機方面的仿真功能,所以我們重點研究ISIS模塊的用法,在下面的內容中,如不特別說明,我們所說的Proteus軟件特指其ISIS模塊。</p><p>  在進行下面的操作前,我先說明一點:我的Proteus版本是7.1,如果你使用的是6.9以前的版本,可能你發(fā)現在鼠標操作上會略有不同。這主要表現在6.9以前的版本鼠標左右鍵的作用與一般軟件剛好相反,而7.0以后已經完全改過。</p>

75、;<p>  下面我們首先來熟悉一下Proteus的界面。Proteus是一個標準的Windows窗口程序,和大多數程序一樣,沒有太大區(qū)別,其啟動界面如下圖所示:</p><p><b>  圖</b></p><p><b>  4-1</b></p><p>  如圖中所示,區(qū)域①為菜單及工具欄,區(qū)域②為

76、預覽區(qū),區(qū)域③為元器件瀏覽區(qū),區(qū)域④為編輯窗口,區(qū)域⑤為對象拾取區(qū),區(qū)域⑥為元器件調整工具欄,區(qū)域⑦為運行工具條。</p><p>  下面我們就以建立一個和我們在Keil簡介中所講的工程項目相配套的Proteus工程為例來詳細講述Proteus的操作方法以及注意事項。</p><p>  首先點擊啟動界面區(qū)域③中的“P”按鈕(Pick Devices,拾取元器件)來打開“Pick Dev

77、ices”(拾取元器件)對話框從元件庫中拾取所需的元器件。對話框如下圖所示:</p><p><b>  圖4-2</b></p><p>  在對話框中的“Keywords”里面輸入我們要檢索的元器件的關鍵詞,比如我們要選擇項目中使用的AT89C51,就可以直接輸入。輸入以后我們能夠在中間的“Results”結果欄里面看到我們搜索的元器件的結果。在對話框的右側,我們

78、還能夠看到我們選擇的元器件的仿真模型、引腳以及PCB參數。</p><p>  這里有一點需要注意,可能有時候我們選擇的元器件并沒有仿真模型,對話框將在仿真模型和引腳一欄中顯示“No Simulator Model”(無仿真模型)。那么我們就不能夠用該元器件進行仿真了,或者我們只能做它的PCB板,或者我們選擇其他的與其功能類似而且具有仿真模型的元器件。</p><p>  搜索到所需的元器

79、件以后,我們可以雙擊元器件名來將相應的元器件加入到我們的文檔中,那么接著我們還可以用相同的方法來搜索并加入其他的元器件。當我們已經將所需的元器件全部加入到文檔中時,我們可以點擊“OK”按鈕來完成元器件的添加。</p><p>  添加好元器件以后,下面我們所需要做的就是將元器件按照我們的需要連接成電路。首先在元器件瀏覽區(qū)中點擊我們需要添加到文檔中的元器件,這時我們就可以在瀏覽區(qū)看到我們所選擇的元器件的形狀與方向,

80、如果其方向不符合你的要求,你可以通過點擊元器件調整工具欄中的工具來任意進行調整,調整完成之后在文檔中單擊并選定好需要放置的位置即可。接著按相同的操作即可完成所有元器件的布置,接下來是連線。事實上Proteus的自動布線功能是如此的完美以至于我們在做布線時從來都不會覺得這是一項任務,而通常像是在享受布線的樂趣。布線時我們只需要單擊選擇起點,然后在需要轉彎的地方單擊一下,按照你所需走線的方向移動鼠標到線的終點單擊即可。本例我們布線的結果如下

81、圖所示(仿真我們在上面的Keil操作介紹中的簡單例子)。</p><p><b>  圖4-3</b></p><p>  因為該工程十分簡單,我們沒有必要加上復位電路,所以這點在圖中予以忽略,請大家注意。除此以外,你可能還發(fā)現,單片機系統沒有晶振,這一點你需注意。事實上在Proteus中單片機的晶振可以省略,系統默認為12MHz,而且很多時候,當然也為了方便,我們只

82、需要取默認值就可以了。</p><p>  下面我們來添加電源。先說明一點,Proteus中單片機芯片默認已經添加電源與地,所以我們可以省略。然后在添加電源與地以前,我們先來看一下上面第一個圖中區(qū)域⑤的對象拾取區(qū),我們在這里只說明本文中可能會用得到的以及比較重要的工具。</p><p>  l:(Selection Mode)。選擇模式,通常情況下我們都需要選中它,比如布局時和布線時。&l

83、t;/p><p>  l :(Component Mode)。組件模式,點擊該按鈕,能夠顯示出區(qū)域③中的元器件,以便我們選擇。</p><p>  l    :(Wire Label Mode)。線路標簽模式,選中它并單擊文檔區(qū)電路連線能夠為連線添加標簽。經常與總線配合使用。</p><p>  l   :(Text S

84、cript Mode)。文本模式,選中它能夠為文檔添加文本。</p><p>  l    :(Buses Mode)??偩€模式,選中它能夠在電路中畫總線。關于總線畫法的詳細步驟與注意事項我們在下面會進行專門講解。</p><p>  l :(Terminals Mode)。終端模式,選中它能夠為電路添加各種終端,比如輸入、輸出、電源、地等等。</p&g

85、t;<p>  l :(Virtual Instruments Mode)。虛擬儀器模式,選中它我們能夠在區(qū)域③中看到很多虛擬儀器,比如示波器、電壓表、電流表等等。關于它們的用法我們會在后面的相應章節(jié)中詳細講述。</p><p>  好了,下面我們就來添加電源。首先點擊,選擇終端模式,然后在元器件瀏覽區(qū)中點擊POWER(電源)來選中電源,通過區(qū)域⑥中的元器件調整工具進行適當的調整,然后就可以在文檔區(qū)

86、中單擊放置電源了。放置并連接好線路的電路圖一部分如下圖:</p><p><b>  圖4-4</b></p><p>  連接好電路圖以后我們還需要做一些修改。由上圖我們可以看出,圖中的R1電阻值為10k,這個電阻作為限流電阻顯然太大,將使發(fā)光二極管D1亮度很低或者根本就不亮,影響我們的仿真結果。所以我們要進行修改。修改方法如下:首先我們雙擊電阻圖標,這時軟件將彈出

87、“Edit Component”對話框(見下圖所示的對話框),對話框中的“Component Referer”是組件標簽之意,可以隨便填寫,也可以取默認,但要注意在同一文檔中不能有兩個組件標簽相同;“Resistance”就是電阻值了,我們可以在其后的框中根據需要填入相應的電阻值。填寫時需注意其格式,如果直接填寫數字,則單位默認為Ω;如果在數字后面加上K或者k,則表示kΩ之意。這里我們填入270,表示270Ω。</p>&

88、lt;p>  修改好各組件屬性以后就要將程序(HEX文件)載入單片機了。首先雙擊單片機圖標,系統同樣會彈出“Edit Component”對話框,如下圖。在這個對話框中我們點擊“Program files”框右側的,來打開選擇程序代碼窗口,選中相應的HEX文件后返回,這時,按鈕左側的框中就填入了相應的HEX文件,我們點擊對話框的“OK”按鈕,回到文檔,程序文件就添加完畢了。</p><p><b>

89、;  圖4-5</b></p><p>  裝載好程序,我們就可以進行仿真了。</p><p><b>  5調試功能說明</b></p><p><b>  5.1 硬件調試</b></p><p>  5.1.1最小系統調試</p><p>  首先應該確認電

90、源電壓是否正常。用電壓表測量接地引腳跟電源引腳之間的電壓,看是否是電源電壓,我們所用的電源電壓是5V。接下來就是檢查復位引腳電壓是否正常。分別測量按下復位按鈕和放開復位按鈕的電壓值,看是否正確。然后再檢查晶振是否起振了,一般用示波器來看晶振引腳的波形,注意應該使用示波器探頭的“X10”檔。另一個辦法是測量復位狀態(tài)下的IO口電平,按住復位鍵不放,然后測量IO口(沒接外部上拉的P0口除外)的電壓,看是否是高電平,如果不是高電平,則多半是因為

91、晶振沒有起振。另外還要注意的地方是,要將EA引腳拉高,因為我們用的是片內ROM,否則會出現程序亂跑的情況。有時用仿真器可以,而燒入片子不行,往往是因為EA引腳沒拉高的緣故(當然,晶振沒起振也是原因只一)。經過上面幾點的檢查,一般即可排除故障了。如果系統不穩(wěn)定的話,有時是因為電源濾波不好導致的。在單片機的電源引腳跟地引腳之間接上一個0.1uF的電容會有所改善。如果電源沒有濾波電容的話,則需要再接一個更大濾波電容,例如220uF的。遇到系統

92、不穩(wěn)定時,就可以并上電容試試。</p><p>  5.1.2 故障點分析</p><p>  檢測故障點的方法如下:</p><p> ?、贉y量電壓法。首先要確認的是各芯片電源引腳的電壓是否正常,其次檢查各種參考電壓是否正常,另外還有各點的工作電壓是否正常等。</p><p> ?、谛盘栕⑷敕ā⑿盘栐醇又凛斎攵?,然后依次往后測量各點的波形

93、,看是否正常,以找到故障點。有時我們也會用更簡單的辦法,例如用手握一個鑷子,去碰觸各級的輸入端,看輸出端是否有反應,</p><p> ?、郛斎?,還有很多其它的尋找故障點的方法,例如看、聽、聞、摸等?!翱础本褪强丛袩o明顯的機械損壞,例如破裂、燒黑、變形等;“聽”就是聽工作聲音是否正常,例如一些不該響的東西在響,該響的地方不響或者聲音不正常等;“聞”就是檢查是否有異味,例如燒焦的味道、電容電解液的味道等,對于一

94、個有經驗的電子維修人員來說,對這些氣味是很敏感的;“摸”就是用手去試探器件的溫度是否正常,例如太熱,或者太涼。一些功率器件,工作起來時會發(fā)熱,如果摸上去是涼的,則基本上可以判斷它沒有工作起來。但如果不該熱的地方熱了或者該熱的地方太熱了,那也是不行的。一般的功率三極管、穩(wěn)壓芯片等,工作在70度以下是完全沒問題的。70度大概是怎樣的一個概念呢?如果你將手壓上去,可以堅持三秒鐘以上,就說明溫度大概在70度以下(注意要先試探性的去摸,千萬別把手

95、燙傷了)。</p><p>  5.2軟件調試問題及解決</p><p>  一個應用系統并非一次就可以正確無誤地設計出來,尤其是設計的程序,必須經過多次的調試才能確鑿無誤地工作。為避免浪費,并不把剛剛編寫好的程序直接寫到EPROM、EEPROM等中去,更不會急于生產安裝部分硬件,在專用的仿真器或開發(fā)試驗臺上進行。</p><p>  我們首先在KEIL軟件中編寫程

96、序,來進行C語言程序的調試。然后再把程序加載在PRETEUS軟件上進行仿真調試。</p><p>  Keil C51軟件提供豐富的庫函數和功能強大的集成開發(fā)調試工具,全Windows界面。另外重要的一點,只要看一下編譯后生成的匯編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數語句生成的匯編代碼很緊湊,容易理解。</p><p>  Keil軟件可以對我們寫的C語言程序進

97、行編譯,它能清晰的顯示出程序的各種信息,并能明確的指出程序的錯誤之處和錯誤的原由。以致我們能夠得到結構,書寫都無誤的C語言的程序。</p><p>  Proteus 提供了比較豐富的測試信號用于電路的測試。這些測試信號包括模擬信號和數字信號。對于單片機硬件電路和軟件的調試,Proteus 提供了兩種方法:一種是系統總體執(zhí)行效果,一種是對軟件的分步調試以看具體的執(zhí)行情況。 對于總體執(zhí)行

98、效果的調試方法,只需要執(zhí)行debug 菜單下的execute 菜單項或F12 快捷鍵啟動執(zhí)行,用debug菜單下的pause animation 菜單項或pause 鍵暫停系統的運行;或用debug 菜單下的stop animation 菜單項或shift-break 組合鍵停止系統的運行。其運行方式也可以選擇工具欄中的相應工具進行。

99、 對于軟件的分步調試,應先執(zhí)行debug 菜單下的start/restart debugging 菜單項命令,此時可以選擇stepover 、step into 和 step out 命令執(zhí)行程序(可以用快捷鍵F10、F11 和ctrl+F11),執(zhí)行的效果是單句執(zhí)行、進入子程序執(zhí)行和跳出子程序執(zhí)行。在執(zhí)行了start /&

100、#160;restart debuging 命令后,在debug 菜單的下面要出現仿真中所涉及到</p><p><b>  5.3拓展</b></p><p>  當車流量增大,按照設置的正常系統運行時間來控制交通燈的交替運行未能使路口的車最快通過十字路口,導致交通擁擠、堵塞時,可通知人工手動方式控制開關按鈕來改善路口的交通狀況,使各個

101、方向的車能更快通過路口,達到減輕交通負擔,使交通更合理,具有實際的作用。</p><p><b>  結束語</b></p><p><b>  文總結</b></p><p>  通過這次的畢業(yè)設計使我對單片機又有了更深的認識,讓我對其從硬件和軟件都有了實質性的探究,自己動手設計,組裝使自己的知識得到了系統化和產品化真正

102、達到了學以致用。至此我要特別感謝學校和老師安排的這項活動使我們脫離了高中只會理論不會實踐的階段而真正進入了實質性的層次。使我們對將來的工作及研發(fā)奠定了一定的基礎。</p><p><b>  工作展望</b></p><p>  單片機是一門復雜而又有創(chuàng)新空間的技術,我會在以后的日子里更加的努力,爭取在有生之年取得一定的成績。中國的高科技產業(yè)比較的落后,和美國,日本等

103、都有很大的差距我們這一代的大學生應該擔負起這樣的責任為我國的科技發(fā)展做出貢獻。我會不斷的努力爭取在單片機領域做出自己最大的努力。</p><p><b>  參考文獻</b></p><p>  [1] 肖洪兵. .跟我學用單片機[M]. 北京:北京航空航天大學出版社,2006</p><p>  [2] 何立民. 單片機高級教程[M]. 北京

104、:北京航空航天大學出版社,2007</p><p>  [3] 馬連洪/丁男/黃偉/馬艷華.單片機原理及應用[M]. 北京:北京交通大學出版社,2000</p><p>  [4] 周明德. 單片機原理與技術[M] 北京:人民郵電出版社,2008</p><p>  [5] 何立民. 單片機應用系統設計[M]. 北京:北京航空航天大學出版社,2000</p&g

105、t;<p>  [6] 姜志海,劉連新. 單片微型計算機原理接口與應用[M]. 北京:機械工業(yè)出版社,2007 </p><p>  [7] 吳葉蘭. 微機原理與接口技術[M]. 北京:機械工業(yè)出版社,2009</p><p>  [8] 胡健 . 單片機原理及接口技術[M]. 北京:機械工業(yè)出版社,2002</p><p><b>  

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論