基于單片機簡易交通燈設計資料_第1頁
基于單片機簡易交通燈設計資料_第2頁
基于單片機簡易交通燈設計資料_第3頁
基于單片機簡易交通燈設計資料_第4頁
基于單片機簡易交通燈設計資料_第5頁
已閱讀5頁,還剩55頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1 2 3 3 3 52.1交通燈的工作原理 5 53硬件系統設計 9 93.1.1單片機最小系統 93.1.2信號顯示驅動電路 4交通燈系統詳細設計 4.1軟件總體設計思想 4.2交通控制算法實現 4.3系統初始化模塊 20 24 35 36參考文獻 38附錄三交通燈電路原理圖 1緒論城市道路增長的有限與車輛增加的無限這一對矛盾是里取得什么樣的實際進展,交通控制領域的控可以說真正成熟的控制策略仍然不存在.智能化和交通系統正是解決這一矛盾的途徑之一。智能交通系統是將先進的信息技進入20世紀70年代,隨著計算機技術和自動控制技術的發展,以及交通流越先進,形成了一批商水平有實效的城市道路交通控制系統。早在1977年,Pappis等人就將模糊控制運用到交通控制上,通過建立規則庫或是專家系統對統:SC00T(經典交通系統),他們都是主要采用統計模型和經典算法。但城市交2系統工作原理及設計方案P3.7控制,由于交通燈為發光二極管且陽極通過限流電阻和電源正極連接,因此I/0口輸出低電平時,與之相連的相應指示燈會亮,并通過LED數碼管顯示時控制,以中斷方式輸入單片機,無緊急車通過時,中斷引腳INTO(P3.2)通過電中斷引腳INTO(P3.2)采用人工方法接地為低電平,產生中斷請求,單片機執行中斷服務程序,讓緊急車通過,緊急車通過后,中斷引腳INTO(P3.2)變為高電不需調整周期時,中斷引腳INT1(P3.3)通斷引腳INT1(P3.3)采用人工方法接地為低電平,產生中中斷服務程序,系統以方程式控制,按一次開關按鈕A1執行方程式A,按兩次開關按鈕A1時執行方程式B,按三次開關按鈕A1時執行方程式C。當按四次時,的方法。由于STC10F04單片機自帶有2個計數器,6個中斷源,能滿足系統的3秒。(2)正常狀態下主干道通車時間為35s,次干道通車時間為20s。(5)特殊狀態的功能顯示,進入特殊狀態時(如119救火車,或120救護燈亮3秒。持續3秒。20秒。出現特殊情況時(如119救火車,或120救護車通過時)按下按鈕A0進入向的通車時間延長15秒,即50秒。東西方向通車時間不變,為20秒。的通車時間延長25秒,即為60秒。東西方向的通車時間延長10秒,即為30南方向北方向東西方向態紅黃綠紅黃綠紅黃綠1001101110110011301110010100130101100101110310011011010110111100110110110101011001101110101011011010101101001101100101101100101l00101010101101110101011011100110111100110111011010110111100110111011010110111101010111011100110113硬件系統設計單片機的最小系統包括電源(地),晶振(一般使用11.0592M或者12M),復抗干擾的新一代8051單片機,指令代碼完全兼容傳統8051,但速度快8-12倍。STC10F04單片機的定時器0/定時器1/串行口與傳統8051兼容,增加了速,最快的指令快24倍,最慢的指令快3倍。3、工作頻率范圍:0~35MHz,相當于普通8051的0~420MHz6、通用I/0(40/36個),復位后為:準雙向口/弱上拉(普通8051傳統8、看門狗擇低的復位門檻電壓,如3.7V以下復位,復位腳接1K電阻到12、2個16位定時器(與傳統8051兼容的定時器/計數器,16位定時器Powerdown(掉電)模式可由外部中斷喚醒,INT0/P3.2,INT1/P3.3,INT/TO/P3.4,INT/T1/P3.5,INT/Rxd/P3.0(或INT/Rxd/P1.6)·VCC:電源電壓地址(低8位)和數據總線復用,在訪問期間激活內部上拉電阻。可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內部的沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內緩沖級可驅動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,RXD(串行輸入口)TXD(串行輸出口)/INTO(外中斷0)/INT1(外中斷1)T0(定時/計數器0外部輸入)T1(定時/計數器1外部輸入)/WR(外部數據存儲器寫選通)/RD外部數據存儲器讀選通)復位時內部會鎖存EA端狀態。如EA端為高電平(接VCC端),CPU則執行內部和PNP兩種。我們僅以NPN三極管的共發射極放大電路為例來說明一下三極管基極B集電極C發射極E下面的分析僅對于NPN型硅三極管。如上圖3.4所示,我們把從基極B流至發射極E的電流叫做基極電流Ib;把從集電極C流至發射極E的電流叫做集電極電流Ic。這兩個電流的方向都是流出發射極的,所以發射極E上就用了一個 (假設電源能夠提供給集電極足夠大的電流的話),并且基極電流很小的變化,管的放大倍數(β一般遠大于1,例如幾十,幾百)。如果我們將一個變化的小信號加到基極跟發射極之間,這就會引起基極電流Ib后,導致了Ic很大的變化。如果集電極電流Ic是流過一個電阻R的,那么根據單片機鍵盤有獨立鍵盤和矩陣式鍵盤兩種:獨立鍵盤每一個I/0口上一個按鍵,按鍵的另一端接電源或接地(一般接地),這種接法程序比較簡單且系統更加穩定;而矩陣式鍵盤式接法程序比較獨立式鍵盤的實現方法是利用單片機I/0口讀取口的電平高低來判斷是否口置于高電平,平時無鍵按下時I/0口保護高電平。當有鍵按下時,此I/0口4交通燈系統詳細設計初始化外部中初始化外部中斷進入while(1)循環調用顯示控制函數定義字位碼函數定時器0初始化I/0初始化定義共陰極字型定義函數變量并設置字型碼和字位紅燈全亮維持圖4.2中斷子程序定義1定義1svoidint_t0()iwaittime--if(tc==0){smdis=md[shu0];weishuaelseif(tc==1){smdis=m我們由在主程序中設定的初值可知T0定時5毫秒.這樣每當T0到5毫秒4.3系統初始化模塊式為1。系統程序中主函數初始化如下:單片機定時/計數器初值計算公式:T初值=2一定時時間/機器周期時工作在方式1,所以N=16。T初值=0xee00=60928。又因為fosc=11.0592,所以//S1發光二極管I/0口的接法如下表4.1所示東紅方式控制未用未用sfrjtd=0xa0;/1交通燈的控制口,P2口sbitNLR=P3^6;//北向左轉的紅燈sbitNLG=P3^7;//北向左轉的綠燈unsignedcharS2[]={0x95,0xbf,0x40,35};unsignedcharS6[]={0x主函數main()運行while循環,while循環調用statusdis函數來實現各個狀態數組。其程序如下:{//東西紅燈,南綠北紅//南左轉綠燈,北左轉紅燈//等待35秒//東西紅燈3秒,南北左轉均為黃燈0x00//等待3秒3//S2//東西紅燈,南紅北綠0x95//等待35秒35//S3//東西紅燈,南紅北黃0x04//等待3秒3//東西綠燈,南北紅0x66//等待20秒20//東西黃燈,南紅北綠0x44//南轉左紅燈,北轉左紅燈0x50//等待3秒3while(waittime)//等待35秒}jtd=status[0];11東西南北燈狀態jtdh=status[1];1/東西南北燈狀態句,可以增強顯示--}本系統采用8位的動態數碼顯示。控制數碼顯示的數據由兩部分組成,一部陰型數碼管,單片機芯片的PO口和P4口引腳構成了對于這種數碼管的驅動,要求在片選端提供電流,為此,使用了PNP型三極管作為片選端的驅動,共使用8只三極管,所有三極管的發射機連在一起,接到負所有8位數碼管的筆段連在一起,通過先留電阻后接到PO口,因此,究竟哪些筆段亮,取決于PO口的8根線是輸出高電平還是低電平。原理理圖中把所有數碼管的8個筆劃段A-DP同名端連在一起,而每一個顯示器的公共極COM到相同的字形碼,由8個NPN的三極管,來控制這8位哪一位工作。具體的數4.4.2-2LED數碼管引腳連接表4.2數碼管引腳連接6543219P4.4(單片機29腳)P4.5(單片機30腳)P4.6(單片機31腳)78數碼管是怎樣來顯示1,2,3,4呢?數碼管實際上是由7個發光管組成8由于接法為共陰接法,那么為1(高電平)是亮,為0(低電平)是滅。從AFEDCGB0111010110000010201001300014010001115010110611101107100001018111011911010111A1001B0110110C1110000D0010111E1111000F10000AFEDCGB動態借口采用各數碼管循環輪流顯示的方法,由于一次只能讓一個數碼管顯示,因此,要顯示8位的數據,必須經過讓數碼管一個一個輪流顯示才可以,同時每個數碼管顯示的時間大約在1ms到4ms之間,所以為了保證正確顯示,我們必須每隔1ms,就得刷新一個數碼管。而這刷新時間我們采用單片機的定時/計數器0來控制,每定時1ms對數碼管刷新一次,TO采用方式2。在進行數碼顯示的時候,要對顯示單元開辟8個顯示緩沖區,每個顯示緩沖數碼管動態顯示接口是單片機中應用最為廣泛的一種顯示方式之一,動態驅動是將所有數碼管的8個顯示筆劃"a,b,c,d,e,f,g,dp"的同名端連在一起,另外為每個數碼管的公共極COM增加位選通控制電路,位選通由各自獨立的I/O線控制,當單片機輸出字形碼時,所有數碼管都接收到相同的字形碼,但究竟是那個數碼管會顯示出字形,取決于單片機對位選通COM端電路的控制,所以我們只要將需要顯示的數碼管的選通控制打開,該位就顯示出字形,沒有選通的數碼管就不會亮。通過分時輪流控制各個數碼管的的COM端,就使各個數碼管輪流受控顯示,這就是動態驅動。在輪流顯示過程中,每位數碼管的點亮時間為1~2ms,由于人的視覺暫留現象及發光二極管的余輝效應,盡管實際上各位數碼管并非同時點亮,但只要掃描的速度足夠快,給人的印象就是一組穩定的顯示數據,不會有閃爍感,動態顯示的效果和靜態顯示是一樣的,能夠節省大量的I/O端口,而且功耗更低。Unsignedcharmd[]={0xf5,0x05,0xb3,0x97,0x47,0xd6,0xf6,0xa185,0xf7,0xd7,0xe7,0x76,0xf0,,0xf2,0xe2,0x00};1/0,1,2,3,4,5,6,7得到字型和字位的地址后,向不同的字位送數據內容包括各位和十位,用取模和取余來確定。結果分別用兩個6位的數碼管顯示if(tc==0){smdis=md[shu0];weishelseif(tc==1){smdis=md[shul];weishuang0elseif(tc==2){smdis=md[shu2];weishuang0}判斷tc的值是為0還是為1,還是為2,進而根據tc的值執行相應的if語氣或elseif語氣。假如tc==0,則執行第一條if語氣,從md[]數組中選與shu0相對應的值賦給smdis,并判斷出LED數碼管位的選擇,其他兩個elseif語氣類似。中斷的概念:中斷時指中央處理器CPU正在執行程序,處理某件事情的時候,外部發生了某一件事情,請求CPU馬上處理,CPU暫(1)實現中斷及返回當某一個中斷源發出中斷申請時,若允許響應這個中斷請求,CPU必須在現有的指令執行完以后,把斷點處的(2)保護現場(3)恢復現場以提供5個中斷源(52子系列是6個),具有兩個中斷優先級,可實現兩級中斷(1)基本概念4、查詢硬件、中斷源標識符、中斷矢(向)量XES:串行口收、發中斷允許位。為0時禁止該類中斷,為1時允許該類中ET1:定時器/計數器1溢出中斷允許位。為0時禁止該類中斷,為1時允許EX1:外部中斷0(INTO或P3.2)允許位。為0時禁止該類中斷,為1時允ETO:定時器/計數器0溢出中斷允許位。為0時禁止該類中斷,為1時允許EX0:外部中斷0(INTO或P3.2)允許位。為0時禁止該類中斷,為1時允需要注意的是,要使某個中斷源的中斷申請得到響應,必須保證EA=1和相應的允許位為1.例如,要使定時器0與外部中斷0的中斷得到響應,必須保證可知,由允許中斷的條件:總允許中斷和源允許中斷都接通才能產生中斷。由EA=1、ETO=1、EX0=1得出初始化程序設定定時器TO和外部中斷INTO中斷。由EA=1、EX1=0得出初始化程序設定禁止外部中斷INT1中斷。(3)中斷優先級控制寄存器IPPX0:外部中斷0優先級設置位。PX1:外部中斷1優先級設置位。PT0:定時器/計數器中斷0優先級設置位。PT1:定時器/計數器中斷1優先級設置位。中斷優先級只分高與低兩個級別,各位為0時,為低優先級;各位為1時,3、當同時收到多個同級的中斷請求時,哪一個首先得到中斷服務,取決于中斷源同級內的優先級外部中斷0最高定時器/計數器0溢出中斷外部中斷1定時器/計數器1溢出中斷串行口最低PTO=1;//設置定時器0為高優先級PX0=0;//設置外部中斷0為低優先級PX1=0;//設置外部中斷1為低優先級通過上面的程序可知,TO優先級最高,然后到外部中斷INTO,最后外部中斷INT1優先級最低。當定時器TO運行時,外部中斷INTO、INT1不能打斷TO,被禁止響應。當外部中斷INT1運行期間,假如定時器TO和外部中斷都被響應,按照優先級的先后順序,系統先運行定時器TO,待TO運行完后才能運行INTO,待INTO運行完了,INT1才能執行中斷服務。(4)定時器控制寄存器TCON寄存器TCON的地址為88H。TCON既有定時器/計數器的控制功能,又有中斷控制功能。其中,與中斷有關的控制位共6位,其格式及位的含義如下:IE0:外部中斷INTO的中斷請求標志位。當檢測到INTO引腳有中斷請求信號時,此位由硬件置1;在中斷響應完成后轉向中斷處理子程序時,再由硬件自動清0.IE1:外部中斷INT1的終端請求標志位,其功能與IEO類似。TF0:片內定時器/計數器0溢出中斷請求標志位。當定時器/計數器0溢出發生時,此位由硬件置1;在中斷響應完成后轉向中斷處理子程序時,再由硬件自動清0.TF1:片內定時器/計數器1溢出中斷請求標志位,其功能與TFO類同。控制將2個方向的車都停止運行,點亮所有紅燈,并持續10s。下次中斷來時恢復以前的狀態。用一個標志位FLAG半段是第一次進入還是恢復狀態,外部中調用控制函數statusdis運行緊恢復現場圖4.6INTO緊急情況中斷處理流程圖{unsignedcharwaittimel,secl,timel,jtdl,jtdh

溫馨提示

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

評論

0/150

提交評論