基于單片機的交通燈基礎設計與制作_第1頁
基于單片機的交通燈基礎設計與制作_第2頁
基于單片機的交通燈基礎設計與制作_第3頁
基于單片機的交通燈基礎設計與制作_第4頁
基于單片機的交通燈基礎設計與制作_第5頁
已閱讀5頁,還剩19頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

基于單片機的交通燈基礎設計與制作一、項目概述(一)單片機發展概述1946年第一臺電子計算機誕生至今,依靠微電子技術和半導體技術的進步,從電子管——晶體管——集成電路——大規模集成電路,使得計算機體積更小,功能更強。特別是近20年時間里,計算機技術獲得飛速的發展,計算機在工農業,科研,教育,國防和航空航天領域獲得了廣泛的應用,計算機技術已經是一個國家現代科技水平的重要標志。單片機誕生于20世紀70年代,象Fairchild公司研制的F8單片微型計算機。所謂單片機是利用大規模集成電路技術把中央處理單元(CenterProcessingUnit,也即常稱的CPU)和數據存儲器(RAM)、程序存儲器(ROM)及其他I/O通信口集成在一塊芯片上,構成一個最小的計算機系統,而現代的單片機則加上了中斷單元,定時單元及A/D轉換等更復雜、更完善的電路,使得單片機的功能越來越強大,應用更廣泛。20世紀70年代,微電子技術正處于發展階段,集成電路屬于中規模發展時期,各種新材料新工藝尚未成熟,單片機仍處在初級的發展階段,元件集成規模還比較小,功能比較簡單,一般均把CPU、RAM有的還包括了一些簡單的I/O口集成到芯片上,象Fairchild公司就屬于這一類型,它還需配上外圍的其他處理電路方才構成完整的計算系統。類似的單片機還有Zilog公司的Z80微處理器。1976年INTEL公司推出了MCS-48單片機,這個時期的單片機才是真正的8位單片微型計算機,并推向市場。它以體積小,功能全,價格低贏得了廣泛的應用,為單片機的發展奠定了基礎,成為單片機發展史上重要的里程碑。在MCS-48的帶領下,其后,各大半導體公司相繼研制和發展了自己的單片機,象Zilog公司的Z8系列。到了80年代初,單片機已發展到了高性能階段,象INTEL公司的MCS-51系列,Motorola公司的6801和6802系列,Rokwell公司的6501及6502系列等等,此外,日本的著名電氣公司NEC和HITACHI都相繼開發了具有自己特色的專用單片機。80年代,世界各大公司均競相研制出品種多功能強的單片機,約有幾十個系列,300多個品種,此時的單片機均屬于真正的單片化,大多集成了CPU、RAM、ROM、數目繁多的I/O接口、多種中斷系統,甚至還有一些帶A/D轉換器的單片機,功能越來越強大,RAM和ROM的容量也越來越大,尋址空間甚至可達64kB,可以說,單片機發展到了一個全新階段,應用領域更廣泛,許多家用電器均走向利用單片機控制的智能化發展道路。1982年以后,16位單片機問世,代表產品是INTEL公司的MCS-96系列,16位單片機比起8位機,數據寬度增加了一倍,實時處理能力更強,主頻更高,集成度達到了12萬只晶體管,RAM增加到了232字節,ROM則達到了8kB,并且有8個中斷源,同時配置了多路的A/D轉換通道,高速的I/O處理單元,適用于更復雜的控制系統。九十年代以后,單片機獲得了飛速的發展,世界各大半導體公司相繼開發了功能更為強大的單片機。美國Microchip公司發布了一種完全不兼容MCS-51的新一代PIC系列單片機,引起了業界的廣泛關注,特別它的產品只有33條精簡指令集吸引了不少用戶,使人們從INTEL的111條復雜指令集中走出來。PIC單片機獲得了快速的發展,在業界中占有一席之地。隨后更多的單片機種蜂擁而至,MOTOROLA公司相繼發布了MC68HC系列單片機,日本的幾個著名公司都研制出了性能更強的產品,但日本的單片機一般均用于專用系統控制,而不象INTEL等公司投放到市場形成通用單片機。例如NEC公司生產的uCOM87系列單片機,其代表作uPC7811是一種性能相當優異的單片機。MOTOROLA公司的MC68HC05系列其高速低價等特點贏得了不少用戶。Zilog公司的Z8系列產品代表作是Z8671,內含BASICDebug解釋程序極大地方便用戶。而美國國家半導體的COP800系列單片機則采用先進的哈佛結構。ATMEL公司則把單片機技術與先進的Flash存儲技術完美地結合起來,發布了性能相當優秀的AT89系列單片機。包括中國的臺灣HOLTEK和WINBOND等公司也紛紛加入了單片機發展行列,憑著他們廉價的優勢,分享一杯美羹。1990年美國INTEL公司推出了80960超級32位單片機引起了計算機界的轟動,產品相繼投放市場,成為單片機發展史上又一個重要的里程碑。此期間,單片機園地里,單片機品種異彩紛呈,爭奇斗艷。有8位、16位甚至32位機,但8位單片機仍以它的價格低廉、品種齊全、應用軟件豐富、支持環境充分、開發方便等特點而占著主導地位。而INTEL公司憑著他們雄厚的技術,性能優秀的機型和良好的基礎,目前仍是單片機的主流產品。只不過是九十年代中期,INTEL公司忙著開發他們個人電腦微處理器,已沒有足夠的精力繼續發展自己創導的單片機技術,而由PHILIPS等公司繼續發展C51系列單片機。(二)項目介紹隨著微控技術的口益完善和發展,單片機的應用不斷走向深入。它的應用必定導致傳統的控制技術從根本上發生變革。它在工業控制、數據采集、智能儀表、機電一體化、家用電器等領域得到廣泛的應用,極大地提高了這些領域的技術水平和自動化控制。同時,伴隨著我國經濟的高速發展,私家車、公交車的增加,無疑會給我國的道路交通系統帶來沉重的壓力,很多大城市都不同程度地受到交通堵塞問題的困擾。下面以AT89C51單片機為核心,設計出以人性化、智能化為目的的交通燈控制系統。本項目主要從單片機應用上來實現十字路口交通燈智能化的管理,用來控制過往車輛的正常化運作。本方案采用AT89c51單片機為中心器件來設計交通燈控制器進行交通路口的管理。用Keiluvision編程,PROTEUS嵌入式系統仿真軟件進行仿真,模擬交通信號燈的交替變換,實現十字路口交通燈的車輛直行、車輛左轉和緊急情況處理等功能。用LED數碼管作為倒計時指示。將發光二極管作為16個信號燈的材料。1.AT89c51單片機的主要性能參數和主要引腳對交通燈控制系統的設計,首先應對交通燈的核心控制芯片的基本結構和特征以及主要引腳有比較詳細的了解。(1)主要性能參數·與MCS-51產品指令系統完全兼容·4k字節在系統編程(ISP)Flash閃速存儲器·1000次擦寫周期·全靜態工作模式:0Hz-24MHz·三級程序存儲器鎖定·128×8字節內部RAM·32個可編程I/O口線·2個16位定時/計數器·5個中斷源·可編程串行UART通道·低功耗的閑置和掉電模式·片內振蕩器和時鐘電路(2)主要引腳VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位地址接收。P2口:P2口為一個內部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當P2口被寫“1”時,其管腳被內部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內部上拉的緣故。P2口當用于外部程序存儲器或16位地址外部數據存儲器進行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優勢,當對外部八位地址數據存儲器進行讀寫時,P2口輸出其特殊功能寄存器的內容。P2口在FLASH編程和校驗時接收高八位地址信號和控制信號。P3口:P3口管腳是8個帶內部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當P3口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。在緊急轉換開關電路中,我們采用p3的中斷功能。采用手動開關實現,用單片機的P3.0-P3.2來實現三種情況,具體見程序。RST:復位輸入。當振蕩器復位器件時,要保持RST腳兩個機器周期的高電平時間。ALE/::當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時,ALE只有在執行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執行狀態ALE禁止,置位無效。:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機器周期兩次/PSEN有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN信號將不出現。/VPP:當/EA保持低電平時,則在此期間外部程序存儲器(0000H-FFFFH),不管是否有內部程序存儲器。注意加密方式1時,/EA將內部鎖定為RESET;當/EA端保持高電平時,此間內部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。XTAL1:振蕩器反相放大器及內部時鐘發生器的輸入端。XTAL2:振蕩器反相放大器的輸出端(3)LED數碼管本系統采用8位的靜態數碼管顯示。LED數碼管顯示器是由發光二極管按一定的結構組合起來的顯示器件。在單片機應用中通常使用的是8段式LED數碼管顯示器。七段式數碼管分為7段:a、b、c、d、e、f、g。dp為小數點。如右圖所示。從電路講,數碼管可以分為共陽極和共陰極兩種。本次設計,我們采用共陽極顯示。表1.1常見的數字和字符的共陰極的字段碼顯示字符共陽極字段顯示字符共陽極字段00xc050x9210xf960x8220xa470xf830xb080x8040x9990x90

二、系統設計交通燈控制系統主要控制A,B兩車道的交通,以AT89C51單片機為核心芯片,通過控制三色LED燈的亮滅來控制各車道的通行;另外通過3個按鍵來模擬各車道有無車輛的情況和有緊急車輛的情況。根據設計要求,制定總體設計思想如下:正常情況下運行主程序,采用0.5s延時子程序的反復調用來實現各種定時時間。一個車道有車而另一個車道無車時,采用外部中斷1執行中斷服務程序,并設置該中斷為低優先級中斷。有緊急車輛通過時,采用外部中斷0執行中斷服務程序,并設置該中斷為高優先級中斷,實現二級中斷嵌套。(一)框圖設計基于AT89C51單片機的交通信號控制系統由電源電路、單片機主控電路、按鍵控制電路和道路顯示電路幾部分組成,框圖如圖1.1所示。(二)知識點通過學習和查閱資料,本項目需掌握和了解如下知識:+5V電源原理及設計。單片機復位電路工作原理及設計。按鍵電路工作原理及設計驅動電路74LS07的特性及使用。LED的特性及使用。單片機匯編語言及程序設計。(三)硬件設計用12只發光二極管模擬交通信號燈,以AT89C51單片機的P0控制這12只發光二極管,由于單片機帶負載的能力有限,因此,在P0口與發光二極管之間用74L507作驅動電路,P0口輸出低電平時,信號燈亮;輸出高電平時,信號燈滅。在正常情況和交通繁忙時,A,B兩車道的6只信號燈的控制狀態有5種形式,即P0口控制功能及相應控制碼如表1.1所示。表1.2交通信號與控制狀態對應關系分別以按鍵K1,K2模擬A,B車道的車輛檢測信號,開關K1按下時,A車道放行;開關K2按下時,B車道放行;開關K1和K2的控制信號經異或取反后,產生中斷請求信號(低電平有效),通過外部中斷1向CPU發出中斷請求;因此產生外部中斷1中斷的條件應是:,可用集成塊74LS266(如無74LS266,可用74LS86與74LS04組合代替)來實現。采用中斷加查詢擴展法,可以判斷出要求放行的是A車道(按下開關K1)還是B車道(按下開關K2)以按鍵K3模擬緊急車輛通過開關,當K3為高電平時屬正常情況,當K3為低電平時,屬緊急車輛通過的情況,直接將K0信號接至(P3.2)腳即可實現中斷0中斷。(四)元件清單基于AT89C51單片機的交通信號燈控制系統元件清單表1.3交通信號控制系統元件清單軟件設計序號元件名稱規格數量用途價格(單價)151單片機AT89S511個控制核心11元2晶振12MHz立式1個晶振電路2元3集成電路74LS861個按鍵電路140元74LS041個按鍵電路5元74LS071個LED驅動2元4按鍵4個按鍵電路0.5元5電解電容22uF/10V1個復位電路1元6瓷片電容30uF瓷片電容2個晶振電路0.02元7電阻1kΩ4個復位電路1元電阻300Ω12個LED限流3元8LED紅、黃、綠各4個12個紅、黃、綠燈0.5元9電源5V/0.5A1個提供+5V8元主程序采用查詢方式定時,由R2寄存器調用0.5s延時子程序的次數,從而獲取交通燈的各種時間。子程序采用定時器1方式1查詢定時,定時器定時50ms,R3寄存器確定50ms循環10次,從而獲得0.5s的延時時間。有車車道放行的中斷服務程序首先要保護現場,因需要用到延時子程序和P0口,故需保護的寄存器有R3,P0,TH1和TL1,保護現場時還需關中斷,以防止高優先級中斷(緊急車輛通過產生的中斷)出現導致程序混亂。開中斷,由軟件查詢P3.0和P3.1口,判別哪一車道,再根據查詢情況執行相應的服務。待交通燈信號出現后,保持15s的延時,然后,關中斷,恢復現場,再開中斷,返回主程序。緊急車輛出現時的中斷服務程序也需要保護現場,但無須關中斷(因其為高優先級中斷),然后執行相應的服務,待交通燈信號出現后延時20s,確保緊急車輛通過交叉路口,然后,恢復現場,返回程序。(五)程序流程圖交通信號燈模擬控制系統程序流程圖圖1.1交通信號燈模擬控制系統程序流程圖(六)程序清單交通燈信號燈模擬控制系統程序清單如下:ORG0000HLJMPMAINORG0003HLJMPINTT0ORG0013HLJMPINTT1ORG0100HMAIN:MOVSP,#50HSETBPX0MOVTCON,#00HMOVTMOD,#10HMOVIE,#85HLOOP:MOVP0,#0F3HMOVR1,#45DIP1:ACALLDELAYDJNZR1,DIP1MOVR1,#03WAN1:CPLP0.2ACALLDELAYDJNZR1,WAN1MOVP0,#0F5HMOVR1,#02YL1:ACALLDELAYDJNZR1,YL1MOVP0,#0DEHMOVR1,#30DIP2:ACALLDELAYDJNZR1,DIP2MOVR1,#03WAN2:CPLP0.5ACALLDELAYDJNZR1,WAN2MOVP0,#0EEHMOVR1,#02YL2:ACALLDELAYDJNZR1,YL2AJMPLOOPINTT0:PUSHP0PUSHTH1PUSHTL1MOVP0,#0F6HMOVR2,#10DEY0:ACALLDELAYDJNZR2,DEY0POPTH1POPTL1POPP0RETIINTT1:CLREAPUSHP0PUSHTH1PUSHTL1SETBEAJBP3.0,BOPMOVP0,#0FDHSJMPDEL1BOP:JBP3.1,EXITMOVP0,#0DEHDEL1:MOVR5,#30NEXT:ACALLDELAYDJNZR5,NEXTEXIT:CLREAPOPTH1POPTL1POPP0SETBEARETIDELAY:MOVR3,#14HMOVTH1,#3CHMOVTL1,#0B0HSETBTR1LP1:JBCTF1,LP2SJMPLP1LP2:MOVTH1,#3CHMOVTL1,#0B0HDJNZR3,LP1三、仿真實驗步驟(一)仿真過程介紹1.打開KeiluVision軟件,點擊project,選擇newproject(新建工程),將工程命名為jiaotongdengwangjie并保存在(交通燈王潔)文件夾里,在彈出的對話框里選擇Atmel—AT89c51—點擊確定。2.點擊file(文件),選擇newfile,在text1中輸入程序,將text1保存并改名為jiaotongdengwangjie.c,點擊target1,選擇sourcegroup1,右擊空白處,選擇Addfiletosource。這時sourcegroup1下出現jiaotongdengwangjie.c文件,點擊打開。點擊optionfortargetisoutput確認createhex文件已打鉤.點擊確定。編譯連接運行,沒有錯誤.生成jiaotongdengwangjie.hex等文件.3.運行PROTEUSVSM的ISIS,畫出與Keil程序對應的PROTEUS仿真圖,先右擊后左擊彈出編輯元件對話框,在programfile中導入jiaotongdengwangjie.hex文件,確定。4.點擊按鈕,運行成功(二)系統仿真及調試交通信號與控制狀態仿真結果如圖1.4、1.5、1.6、1.7、1.8所示:圖1.2A道放行,B道禁止圖1.3A道變B道通行圖1.4A道禁止,B道放行圖1.5B道變A道通圖1.6緊急狀態圖1.7緊急狀態單片機系統的硬件調試和軟件調試是不能分開的,許多硬件錯誤是在軟件調試過程中被發現和糾正的。但通常是先排除明顯的硬件故障以后,再和軟件結合起來調試以進一步排除故障。可見硬件的調試是基礎,如果硬件調試不通過,軟件設計則無從談起。硬件的調試主要是把電路各種參數調整到符合設計要求。先排除硬件電路故障,包括設計性錯誤和公益性故障。一般原則是先靜態后動態。利用萬用表或邏輯測試儀器,檢查電路中的各器件以及引腳是否連接正確,是否有短路故障。先要將單片機AT89S51芯片取下,對電路板進行通電檢查,通過觀察看是否有異常,然后用萬用表測試各電源電壓,這些都沒有問題后,接上仿真機進行聯機調試觀察各接口線路是否正常。單片機AT89S51是系統的核心,利用萬用表檢測單片機電源Vcc是否為(40腳)+5V、晶振是否正常工作(可用示波器測試,也可以用萬用表檢測,兩引腳電壓一般為1.8~2.3V)、復位引腳RST(復位時為高電平,單片機工作時為低電平)、EA是否為+5V(高電平),這樣一來單片機就能工作了,再結合電路圖,檢測故障就很容易了。(三)實物圖效果圖1.8A道綠燈,B道黃燈圖1.9A道綠燈,B道紅燈圖1.10A道紅燈,B道黃燈圖1.11A道紅燈,B道綠燈四、補充:AT89C51介紹(一)AT89C51簡介非AT89C51是一種帶4K字節FLASH存儲器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低電壓、高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。單片機的可擦除只讀存儲器可以反復擦除1000次。該器件采用ATMEL高密度易失存儲器制造技術制造,與工業標準的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲器組合在單個芯片中,ATMEL的AT89C51是一種高效微控制器,AT89C2051是它的一種精簡版本。AT89C單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。(二)主要特性與MCS-51兼容4K字節可編程FLASH存儲器壽命:1000寫/擦循環數據保留時間:10年全靜態工作:0Hz-24MHz三級程序存儲器鎖定128×8位內部RAM32可編程I/O線兩個16位定時器/計數器5個中斷源可編程串行通道低功耗的閑置和掉電模式片內振蕩器和時鐘電路(三)管腳說明VCC:供電電壓。GND:接地。P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數據存儲器,它可以被定義為數據/地址的第八位。在FIASH編程時,P0口作為原碼輸入口,當FIASH進行校驗時,P0輸出原碼,此時P0外部必須被拉高。P1口:P1口是一個內部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在FLASH編程和校驗時,P1口作為第八位

溫馨提示

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

評論

0/150

提交評論