版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1關鍵內(nèi)容單片微型計算機(SingleChipMicrocomputer)簡稱單片機,又稱微控制器(MicrocontrollerUnit)或嵌埋式控制器(EmbededController),是將計算機基礎部件微型化,使之集成于一塊芯片上微機。片內(nèi)含有CPU、ROM、RAM、并行I/O、串行I/O、定時器/計數(shù)器、中止控制、系統(tǒng)時鐘及系統(tǒng)總線等。單片機含有體積小、功耗低、功效強、性價比高、易于推廣應用等顯著優(yōu)點。新型單片機可負擔數(shù)據(jù)和數(shù)值分析、信號處理、機器人智能控制,和圖象處理等復雜任務。現(xiàn)在,單片機已在自動化裝置、智能化儀表、過程控制和家用電器等領域得到日益廣泛應用。單片機交通燈系統(tǒng)研制,首先能夠改善交通堵塞問題,疏導車流,提升道路利用率;其次能夠節(jié)省交通警力,提升效率。2需求分析十字路口車輛穿梭,行人熙攘,車行車道,人行人道,有條不紊。那么靠什么來實現(xiàn)這井然秩序呢?靠就是交通信號燈自動指揮系統(tǒng)。交通信號燈控制方法很多,傳統(tǒng)交通信號燈控制系統(tǒng)通常由數(shù)字電路組成,電路復雜,體積大成本高。采取單片機控制交通信號,不僅能夠簡化電路結構,降低成本,減小體積,而且依據(jù)主、支干道車流量發(fā)生改變實際情況,經(jīng)過撥盤開關能夠很方便地進行主、支干道通車時間設定。本設計是模擬交通燈控制系統(tǒng)設計一個交通燈控制電路,含有實用性強、操作簡單特點。
3設計思想系統(tǒng)硬件設計部分采取AT89S52單片機為關鍵器件,加以復位電路,時序電路組成最小系統(tǒng),并經(jīng)過驅(qū)動電路、數(shù)碼管及晶體管組成顯示部分。紅綠燈循環(huán)點亮,倒計時剩5秒時黃燈閃爍警示,紅綠燈信號經(jīng)過P0口輸出,顯示時間直接經(jīng)過單片機P2口和選擇端送至雙位數(shù)碼管,經(jīng)過掃描程序?qū)崿F(xiàn)東西和南北方向數(shù)據(jù)顯示,同時能設置紅、綠燈點亮時間。4實現(xiàn)方法交通控制系統(tǒng)關鍵控制A、B兩車道交通,以AT89S52單片機為關鍵芯片,經(jīng)過控制三色LED亮滅來控制各車道通行,采取0.5S延時子程序反復調(diào)用來實現(xiàn)多種定時時間。該電路含有電路簡單,設計方便,顯示亮度高,耗電較少,也很可靠等特點??傮w設計框圖圖1所表示:圖1硬件模塊圖整個過程步驟圖圖2所表示紅綠燈循環(huán)點亮,倒計時剩5秒時黃燈閃爍警示。初始化初始化東西綠燈放行,東西綠燈放行,倒計時40-0秒南北紅燈嚴禁,倒計時45-0秒倒計時倒計時5秒,東西黃燈閃爍,南北紅燈嚴禁南北綠燈放行,南北綠燈放行,倒計時20-0秒東西紅燈嚴禁,倒計時25-0秒倒計時倒計時5秒,南北黃燈閃爍,東西紅燈嚴禁圖2交通燈步驟圖5芯片介紹圖3單片機AT89S52AT89S52是51系列單片機一個型號,它是ATMEL企業(yè)生產(chǎn)。AT89S52是一個低電壓,高性能CMOS8位單片機,片內(nèi)含8kbytes可反復擦寫Flash只讀程序存放器和256bytes隨機存取數(shù)據(jù)存放器(RAM),器件采取ATMEL企業(yè)高密度、非易失性存放技術生產(chǎn),兼容標準MCS-51指令系統(tǒng),片內(nèi)置通用8位中央處理器和Flash存放單元,功效強大AT89S52單片機可為您提供很多較復雜系統(tǒng)控制應用場所。AT89S52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內(nèi)含2個外中止口,3個16位可編程定時計數(shù)器,2個全雙工串行通信口,2個讀寫口線,AT89S52能夠根據(jù)常規(guī)方法進行編程,但不能夠在線編程(S系列才支持在線編程)。其將通用微處理器和Flash存放器結合在一起,尤其是可反復擦寫Flash存放器可有效地降低開發(fā)成本。兼容MCS51指令系統(tǒng)·8k可反復擦寫(>1000次)FlashROM·32個雙向I/O口·256x8bit內(nèi)部RAM ·3個16位可編程定時/計數(shù)器中止·時鐘頻率0-24MHz·2個串行中止·可編程UART串行通道·2個外部中止源·共6個中止源·2個讀寫中止口線·3級加密位·低功耗空閑和掉電模式·軟件設置睡眠和喚醒功效AT89S52P為40腳雙列直插封裝8位通用微處理器,采取工業(yè)標準C51內(nèi)核,在內(nèi)部功效及管腳排布上和通用8xc52相同,其關鍵用于會聚調(diào)整時功效控制。功效包含對會聚主IC內(nèi)部寄存器、數(shù)據(jù)RAM及外部接口等功效部件初始化,會聚調(diào)整控制,會聚測試圖控制,紅外遙控信號IR接收解碼及和主板CPU通信等。關鍵管腳有:XTAL1(19腳)和XTAL2(18腳)為振蕩器輸入輸出端口,外接12MHz晶振。RST/Vpd(9腳)為復位輸入端口,外接電阻電容組成復位電路。VCC(40腳)和VSS(20腳)為供電端口,分別接+5V電源正負端。P0~P3為可編程通用I/O腳,其功效用途由軟件定義,在本設計中,P0端口(32~39腳)被定義為N1功效控制端口,分別和N1對應功效管腳相連接,13腳定義為IR輸入端,10腳和11腳定義為I2C總線控制端口,分別連接N1SDAS(18腳)和SCLS(19腳)端口,12腳、27腳及28腳定義為握手信號功效端口,連接主板CPU對應功效端,用于目前制式檢測及會聚調(diào)整狀態(tài)進入控制功效。6實現(xiàn)過程1)晶振電路模塊晶振電路由一個晶體振蕩器12MHZ和兩個30pF瓷片電容組成。用于產(chǎn)生單片機工作所需要時鐘信號,而時序所研究是指令實施中各信號之間相互關系。單片機本身就如一個復雜同時時序電路,為了確保同時工作方法實現(xiàn),電路應在唯一時鐘信號控制下嚴格地工作。其電路圖4所表示:圖4晶振電路圖2)復位電路模塊復位電路是使單片機CPU或系統(tǒng)中其它部件處于某一確定初始狀態(tài),并以后狀態(tài)開始工作,除了進入系統(tǒng)正常初始化之外,當因為程序運行犯錯或操作錯誤使系統(tǒng)處于死鎖狀態(tài)時,為擺脫困境,也需按復位電路以重新開啟。本設計采取是按鍵復位電路。其電路圖5所表示:圖5復位電路圖3)主控制系統(tǒng)模塊主控制器采取AT89S52,是ATMEL企業(yè)生產(chǎn)一款性能穩(wěn)定8位單片機。AT89S52含有1個8KBFLASH程序存放器,1個512字節(jié)RAM,4個8位雙向可位尋址I/O端口,3個16位定時/計數(shù)器及1個串行口和6個向量二級中止結構。單片機P0口分別用于控制南北及東西通行燈,P2口和P3^4-P3^7口用于4組2位LED計時器控制,其主控電路圖6所表示:圖6主控電路圖4)交通燈輸出控制模塊道口交通燈指示采取高亮度紅、黃、綠發(fā)光二極管進行提醒。其圖圖7所表示圖7交通指示燈線路圖當R=220歐時,按公式A=(5-1.8)/R計算,電路中電流大小應為A=14.545mA.因為每個路口通行雙向指示處理相同,所以每個端口應含有3A吸收電流能力。5)時間顯示電路模塊雙位7段LED發(fā)光數(shù)碼管共有10個引腳,各管腳所對應數(shù)碼管發(fā)光段圖8所表示圖8雙位數(shù)碼管引腳對應圖道口通行剩下時間采取高亮紅色7段LED發(fā)光數(shù)碼管顯示,采取共陽極數(shù)碼管,如用單片機吸收電流驅(qū)動,列掃描驅(qū)動使用三極管,按每段6mA電流計算,全顯示字形“8”時,每個數(shù)碼需6mA*8=48mA,因為時間顯示每個道口相同,共需要電流192mA,所以設計中也采取了中功率三極管8550.其顯示電路圖9所表示:數(shù)碼管10號及5號管腳分別接三極管C端,其它管腳按圖中次序依次接單片機P2.0-P2.7端口圖9時間顯示電路模塊7調(diào)試電路調(diào)試是利用開發(fā)系統(tǒng)、基礎測試儀器(萬用表、示波器等),檢驗系統(tǒng)硬件中存在故障。其調(diào)試可分為靜態(tài)調(diào)試和動態(tài)調(diào)試兩步進行。靜態(tài)調(diào)試靜態(tài)調(diào)試是在系統(tǒng)未工作時一個硬件檢測。第一步:目測。檢驗外部多種元件或是電路是否有斷點。第二步:用萬用表測試。先用萬用表復核目測中有疑問連接點,再檢測多種電源和地線之間是否有短路現(xiàn)象。第三步:加電檢測。給板加電,檢測全部插座或是器件電源端是否符合要求值。第四步:是聯(lián)機檢驗。因為只有用單片機開發(fā)系統(tǒng)才能完成對用戶系統(tǒng)調(diào)試。動態(tài)調(diào)試動態(tài)調(diào)試是在系統(tǒng)工作情況下發(fā)覺和排除系統(tǒng)硬件中存在器件內(nèi)部故障、器件連接邏輯錯誤等一個硬件檢驗。動態(tài)調(diào)試通常方法是由近及遠、由分到合。由分到合是指首先按邏輯功效將系統(tǒng)硬件電路分為若干塊,當調(diào)試電路時,和該元件無關器件全部從系統(tǒng)中去掉,這么能夠?qū)⒐收戏秶薅ㄔ谀硞€局部電路上。當各塊電路無故障后,將各電路逐塊加入系統(tǒng)中,在對各塊電路功效及各電路間可能存在相互聯(lián)絡進行調(diào)試。由分到合調(diào)試既告完成。由近及遠是將信號流經(jīng)各器件根據(jù)距離單片機邏輯距離進行由近及分層,然后分層調(diào)試。調(diào)試時,仍采取去掉無關元件方法,逐層調(diào)試下去,就會定位故障元件了。軟件調(diào)試軟件調(diào)試是經(jīng)過對擁護程序C編程、連接、實施發(fā)覺程序中存在語法錯誤和邏輯錯誤并加以排除糾正過程。運行程序后,編輯,查看程序是否有邏輯錯誤。調(diào)試過程中碰到問題1)在調(diào)試過程中出現(xiàn)數(shù)碼管不亮情況,經(jīng)過查詢資料和問詢同學,得出出現(xiàn)此種情況是因為單片機驅(qū)動電流太小,故增加三極管起到放大電流作用。2)數(shù)碼管多個引腳經(jīng)過跳線和單片機多個端口分別連接,要注意次序正確,且不一樣跳線之間不能短接,不然會影響電路實現(xiàn)。3)經(jīng)過數(shù)次測試和修正,最終實現(xiàn)了預期功效。8總結此次課程設計讓我對以前學到理論知識得到了一次實際驗證,對自己已經(jīng)有知識有了更深入了解和認識,使我在單片機基礎原理,單片機應用系統(tǒng)開發(fā)過程,和在常見編程設計思緒掌握上向前邁了一大步。在此,因為能力有限,在課程設計中碰到了很多難題,我經(jīng)過查閱相關書籍,和同學相互交流探討使問題得到了處理。經(jīng)過這次單片機課程設計,我不僅加深了對單片機理論認識,還學會了培養(yǎng)自己創(chuàng)新精神,從而不停戰(zhàn)勝自己,超越自己。9參考文件[1]何利民。MCS-51系列單片機應用統(tǒng)計。北京:北京航空航天大學出版社。1999、6[2]周堅,單片機C語言輕松入門。北京:北京航空航天大學出版社。、1[3]樓然苗,李光飛,單片機課程設計指導。北京:北京航空航天大學出版社。、1[4]楊居義。單片機課程設計指導。北京:清華大學出版社。附錄#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#definetime50000#defineon0#defineoff1sbitRED_ZHU=P0^0;//南北紅燈sbitYELLOW_ZHU=P0^1;//南北黃燈sbitGREEN_ZHU=P0^2;//南北綠燈sbitRED_ZHI=P0^3;//東西紅燈sbitYELLOW_ZHI=P0^4;//東西黃燈sbitGREEN_ZHI=P0^5;//東西綠燈sbitP23=P3^5;sbitP22=P3^4;//東西方向數(shù)碼管位選sbitP21=P3^7;sbitP20=P3^6;//南北方向數(shù)碼管位選sbitint0_key=P3^2;sbitint1_key=P3^3;voiddisplay1(uchar,uchar);voiddisplay2(uchar,uchar);voiddelayms(uintk);uchartemp1,temp2,temp3,temp4,temp5,temp6;/*===============倒計時=========================*/ucharN=50,Y=45,Z=50,M=75,G=80,U=80;ucharC50ms,t0;ucharseg=1;ucharflag=0,led_data_temp;voidInitialT1(void){ TMOD=0x10;//定時器0,1工作在方法1 TH1=(65536-time)/256;//相當于(65536-time)/256; TL1=(65536-time)%256;//初值為time(50ms) TR1=1;//開定時器1中止 ET1=1;//許可定時器1中止 ET0=1; TH0=(65536-time)/256; TL0=(65536-time)%256; EX0=1;//許可外部中止0 IE0=1;//開啟外部中止0 PX0=1; EX1=1; IE1=1; EA=1;//開總中止}voidint0(void)interrupt0 //外中止0{ flag=0; led_data_temp=P0; t0=20; if(!int0_key) { delayms(10); if(!int0_key) { while(!int0_key); TH0=(65536-time)/256; TL0=(65536-time)%256; TR1=0; TR0=1; EX0=0; EX1=0; C50ms=0; } }}voidint1(void)interrupt2 //外部中止1{ t0=15; flag=1; led_data_temp=P0; if(((RED_ZHU==0)&&(GREEN_ZHI==0))||((YELLOW_ZHI==0)&&(RED_ZHU==0))) { P0=0xff; GREEN_ZHU=0; RED_ZHI=0; } else//if((RED_ZHI==0)&&(GREEN_ZHU==0)) { P0=0xff; GREEN_ZHI=0; RED_ZHU=0; } if(!int1_key) { delayms(10); if(!int1_key) { while(!int1_key); TH0=(65536-time)/256; TL0=(65536-time)%256; TR1=0; TR0=1; EX0=0; EX1=0; C50ms=0; } }}voidISRT0(void)interrupt1//定時器0中止服務子程序{ temp1=N,temp2=Y,temp3=Z,temp4=M,temp5=G,temp6=U; TH0=(65536-time)/256; TL0=(65536-time)%256;//重裝初值time YELLOW_ZHU=1; //假如在黃5S時進行熄滅黃燈 YELLOW_ZHI=1; if(!flag) { P0=0xf6; } C50ms++; if(C50ms>19) { t0--; C50ms=0; } if(t0==0) { P0=led_data_temp; N=temp1,Y=temp2,Z=temp3,M=temp4,G=temp5,U=temp6; TR0=0;//嚴禁定時器1中止 TR1=1;//開定時器1中 EX1=1; //EX0=1; C50ms=0; return; }}voidISRT1(void)interrupt3//定時器1中止服務子程序{ TH1=(65536-time)/256; TL1=(65536-time)%256;//重裝初值time C50ms++; if(C50ms>19) { N--; M--; Y--; Z--; G--; U--; C50ms=0; }}/*=================延時=======================*/voidDelay10uS(ucharsecond){ uinti; while((second--)!=0) { for(i=0;i<5;i++) {} }}voiddelayms(uintk){uinti,j;for(i=0;i<k;i++)for(j=0;j<120;j++);}/*==================數(shù)碼管控制========================*/ucharcodediscode[]= {0xC0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽數(shù)碼管0-9代碼voiddisplay1(ucharnum1,ucharnum2)//控制南數(shù)碼管顯示{ P2=discode[num1];P21=on;Delay10uS(10);P21=off;//低位 P2=discode[num2];P20=on;Delay10uS(10);P20=off;//高位}voiddisplay2(ucharnum3,ucharnum4)//控制東西數(shù)碼管顯示{ P2=discode[num3];P23=on;Delay10uS(10);P23=off;//低位 P2=discode[num4];P22=on;Delay10uS(10);P22=off;//高位}/*===================主函數(shù)=================================*/main(){/*=============初始狀態(tài):東西南北全部紅燈==================*/RED_ZHU=on;RED_ZHI=on; delayms(1000); RED_ZHU=off; RED_ZHI=off; InitialT1(); while(1) { //初始化計時器 /*=============狀態(tài)1:南北綠燈(45s)東西紅燈(40s)==================*//*=============狀態(tài)2:南北黃燈(5s)東西紅燈(5s)=================*/ RED_ZHI=on; GREEN_ZHU=on; while(N!=0) { if(TR0==1) { display2(t0/10,t0%10);//當t0=20時東西、南北紅燈(20s) display1(t0/10,t0%10);//當t0=15時東西、南北紅、綠燈交換點亮 } else { if(N==5) { while(Z!=0) { if(TR0==1) { display2(t0/10,t0%10); display1(t0/10,t0%10); } else { display1(N/10,N%10);//東西紅燈(5s) display2(Z/10,Z%10);//南北黃燈(5s) GREEN_ZHU=off; YELLOW_ZHU=on; } } } else { display1(N/10,N%10);//東西紅燈(45s) display2(Y/10,Y%10);//南北綠燈(40s
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 自控課程設計0型系統(tǒng)
- 私教體態(tài)調(diào)整課程設計
- 2025年高中生禁毒教案二
- 2024招聘計劃書(32篇)
- 2024年用電客戶受理員(二級技術師)理論考試題庫(B卷)
- 網(wǎng)上購物系統(tǒng)web課程設計
- 舞蹈新鞋子課程設計
- 三年高考地理(全國乙卷21-23)真題知識點-工業(yè)及其區(qū)位因素
- 視頻游戲開發(fā)投資合同三篇
- 美容美甲師工作總結
- GB/T 12959-2024水泥水化熱測定方法
- 《商務禮儀》試題及答案大全
- 《核電廠焊接材料評定與驗收標準》
- MOOC 數(shù)字邏輯電路實驗-東南大學 中國大學慕課答案
- 小學生建筑科普小知識
- 安徽省六安市2024屆高三上學期期末教學質(zhì)量檢測數(shù)學試題(解析版)
- 2024年1月電大國家開放大學期末考試試題及答案:人類行為與社會環(huán)境
- 2024年貴安新區(qū)產(chǎn)業(yè)發(fā)展控股集團有限公司招聘筆試參考題庫含答案解析
- 欣旺達質(zhì)量體系+社會責任+安規(guī)體系審核(QSA)
- 如何在職場中保持工作與生活的平衡
- 《軍事理論》教案第五章
評論
0/150
提交評論