基于單片機(jī)的無(wú)線交通燈設(shè)計(jì)與實(shí)現(xiàn)十字路口帶倒計(jì)時(shí)的交通信號(hào)燈控制電氣工程及其自動(dòng)化課程設(shè)計(jì)報(bào)告書(shū)_第1頁(yè)
基于單片機(jī)的無(wú)線交通燈設(shè)計(jì)與實(shí)現(xiàn)十字路口帶倒計(jì)時(shí)的交通信號(hào)燈控制電氣工程及其自動(dòng)化課程設(shè)計(jì)報(bào)告書(shū)_第2頁(yè)
基于單片機(jī)的無(wú)線交通燈設(shè)計(jì)與實(shí)現(xiàn)十字路口帶倒計(jì)時(shí)的交通信號(hào)燈控制電氣工程及其自動(dòng)化課程設(shè)計(jì)報(bào)告書(shū)_第3頁(yè)
基于單片機(jī)的無(wú)線交通燈設(shè)計(jì)與實(shí)現(xiàn)十字路口帶倒計(jì)時(shí)的交通信號(hào)燈控制電氣工程及其自動(dòng)化課程設(shè)計(jì)報(bào)告書(shū)_第4頁(yè)
基于單片機(jī)的無(wú)線交通燈設(shè)計(jì)與實(shí)現(xiàn)十字路口帶倒計(jì)時(shí)的交通信號(hào)燈控制電氣工程及其自動(dòng)化課程設(shè)計(jì)報(bào)告書(shū)_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

目錄1設(shè)計(jì)要求 12設(shè)計(jì)方案 12.1設(shè)計(jì)思路 12.2設(shè)計(jì)框圖 13設(shè)計(jì)原理及電路圖 23.1硬件原理 23.1.1ATC89C52介紹 23.1.2單片機(jī)最小系統(tǒng) 23.1.3發(fā)射/接收芯片 33.2電路圖 43.2.1控制電路 43.2.2被控制電路圖 43.2.3無(wú)線交通燈整體電路圖 64設(shè)計(jì)程序 64.1KeilC51軟件介紹 64.2設(shè)計(jì)流程圖 74.3設(shè)計(jì)程序代碼 85Proteus仿真 135.1Proteus軟件介紹 135.2仿真結(jié)果 13總結(jié) 15參考文獻(xiàn) 16

1設(shè)計(jì)要求 采用單片機(jī)AT89C52實(shí)現(xiàn)紅綠燈的自動(dòng)工作,紅燈、綠燈默認(rèn)情況下點(diǎn)亮?xí)r間為60秒,并且可以接受遠(yuǎn)端發(fā)來(lái)的時(shí)間延遲命令。采用單片機(jī)AT89C52實(shí)現(xiàn)對(duì)遠(yuǎn)端交通燈時(shí)間延遲的控制2設(shè)計(jì)方案2.1設(shè)計(jì)思路交通燈上電以后,在沒(méi)有遠(yuǎn)端控制命令的情況下,按照原先默認(rèn)的工作方式工作,在接收到遠(yuǎn)端延時(shí)控制命令后,隨之改變其工作方以滿足控制命令的要求;信號(hào)發(fā)射設(shè)備端可產(chǎn)生時(shí)間延遲控制命令。兩者有相應(yīng)的顯示設(shè)備,使交通燈系統(tǒng)更合理化,人性化。2.2設(shè)計(jì)框圖(1)控制模塊紅燈(綠燈)時(shí)間延時(shí)要求nrp2401紅燈(綠燈)時(shí)間延時(shí)要求nrp2401發(fā)射模塊延時(shí)命令信號(hào)產(chǎn)生單片機(jī)AT89C52LEDLED延時(shí)顯示圖2-1控制模塊框圖(2)被控制模塊單片機(jī)AT89C52工作方式單片機(jī)AT89C52工作方式延時(shí)命令信號(hào)Nrp2401接收模塊LEDLED倒計(jì)時(shí)顯示圖2-2被控制模塊框圖3設(shè)計(jì)原理及電路圖3.1硬件原理3.1.1ATC89C52介紹AT89C52提供以下標(biāo)準(zhǔn)功能:4k字節(jié)Flash閃速存儲(chǔ)器,128字節(jié)內(nèi)部RAM,32個(gè)I/O口線,兩個(gè)16位定時(shí)/計(jì)數(shù)器,一個(gè)5向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)震蕩器及時(shí)鐘電路。同時(shí),AT89C52可降至0Hz的靜態(tài)邏輯操作,并支持兩種軟件可選的節(jié)電工作模式??臻e方式停止CPU的工作,但允許RAM,定時(shí)/計(jì)數(shù)器,串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存RAM中的內(nèi)容,但震蕩器停止工作并禁止其他所有部件工作直到下一個(gè)硬件復(fù)位。圖3-1AT89C523.1.2單片機(jī)最小系統(tǒng)圖3-2復(fù)位晶振電路①?gòu)?fù)位電路:由電容串聯(lián)電阻構(gòu)成,由圖并結(jié)合"電容電壓不能突變"的性質(zhì),可以知道,當(dāng)系統(tǒng)一上電,RST腳將會(huì)出現(xiàn)高電平,并且,這個(gè)高電平持續(xù)的時(shí)間由電路的RC值來(lái)決定.典型的51單片機(jī)當(dāng)RST腳的高電平持續(xù)兩個(gè)機(jī)器周期以上就將復(fù)位,所以,適當(dāng)組合RC的取值就可以保證可靠的復(fù)位.一般教科書(shū)推薦C取10u,R取8.2K.當(dāng)然也有其他取法的,原則就要讓圖3-2復(fù)位晶振電路②復(fù)位輸入高電平有效,當(dāng)振蕩器工作是,RST引腳出現(xiàn)兩個(gè)機(jī)器周期以上的高電平,使單片機(jī)復(fù)位。此電路除具有上電復(fù)位功能外,若要復(fù)位只需按“RST”鍵,此電源Vcc經(jīng)電阻分壓,在RST端產(chǎn)生一個(gè)復(fù)位高電平;3.1.3發(fā)射/接收芯片nRF2401是單片射頻收發(fā)芯片,工作于2.4~2.5GHzISM頻段,芯片內(nèi)置頻率合成器、功率放大器、晶體振蕩器和調(diào)制器等功能模塊,輸出功率和通信頻道可通過(guò)程序進(jìn)行配置。芯片能耗非常低,以-5dBm的功率發(fā)射時(shí),工作電流只有10.5mA,接收時(shí)工作電流只有18mA,多種低功率工作模式,節(jié)能設(shè)計(jì)更方便。其DuoCeiverTM技術(shù)使nRF2401可以使用同一天線,同時(shí)接收兩個(gè)不同頻道的數(shù)據(jù)。nRF2401適用于多種無(wú)線通信的場(chǎng)合,如無(wú)線數(shù)據(jù)傳輸系統(tǒng)、無(wú)線鼠標(biāo)、遙控開(kāi)鎖、遙控玩具等。圖3-3nRF401無(wú)線傳輸模塊3.2電路圖3.2.1控制電路控制電路圖如圖3-4所示,其中,開(kāi)關(guān)控時(shí)間延長(zhǎng)的開(kāi)與關(guān);LED數(shù)碼管分顯示紅燈和綠燈分別延長(zhǎng)的時(shí)間,最長(zhǎng)延長(zhǎng)時(shí)間為60秒,當(dāng)超過(guò)60秒后,紅燈、綠燈恢復(fù)為默認(rèn)值。圖3-4控制電路圖3.2.2被控制電路圖被控制電路圖如圖3-5所示,其中,數(shù)碼管分別在紅燈、綠燈最后9秒亮起并自動(dòng)倒數(shù),具有提示作用。圖3-5被控制電路3.2.3無(wú)線交通燈整體電路圖圖3-6無(wú)線交通燈電路圖4設(shè)計(jì)程序4.1KeilC51軟件介紹KeilC51是美國(guó)KeilSoftware公司出品的51系列兼容單片機(jī)C語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),與匯編相比,C語(yǔ)言在功能上、結(jié)構(gòu)性、可讀性、可維護(hù)性上有明顯的優(yōu)勢(shì)。因而易學(xué)易用。Keil提供了包括C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開(kāi)發(fā)方案,通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境uVision將這些部分組合在一起。運(yùn)行Keil軟件需要WIN98、NT、WIN2000、WINXP等操作系統(tǒng)。4.2設(shè)計(jì)流程圖(1)控制模塊流程圖如圖4-1所示。開(kāi)始是否開(kāi)始是否按按鍵嗎否是綠否是綠燈延時(shí)否紅燈已延時(shí)6否紅燈已延時(shí)60秒綠燈已延時(shí)60秒否否是是加時(shí)5加時(shí)5秒加時(shí)5秒恢復(fù)默恢復(fù)默認(rèn)值恢復(fù)默認(rèn)值圖4-1控制模塊流程圖紅燈、綠燈、黃燈工作流程圖如圖4-2所示開(kāi)始開(kāi)始綠燈亮,黃燈、綠燈亮,黃燈、紅燈滅9秒倒計(jì)時(shí)顯示9秒倒計(jì)時(shí)顯示延時(shí)黃燈亮,黃燈亮,綠燈、紅燈滅延時(shí)延時(shí)9秒9秒倒計(jì)時(shí)顯示紅燈亮,綠燈、黃燈滅延時(shí)延時(shí)圖4-2紅綠黃燈三燈工作流程圖中斷處理模塊流程圖如圖4-3所示是是中斷中斷否是綠否是綠燈延時(shí)否紅燈已延時(shí)6否紅燈已延時(shí)60秒綠燈已延時(shí)60秒否否是是加時(shí)5加時(shí)5秒加時(shí)5秒恢復(fù)默恢復(fù)默認(rèn)值恢復(fù)默認(rèn)值圖4-3中斷處理模塊流程圖4.3設(shè)計(jì)程序代碼根據(jù)流程圖,編寫(xiě)程序代碼。發(fā)送模塊#include<REG52.h>#include<stdio.h>#defineucharunsignedcharsbitkey0=P1^0;sbitkey1=P1^1;uchardata_0;ucharcounter0;ucharcounter1;voidinitUart(void);voidsenddata(uchardat);voiddelay(intm);voidmain(void){ counter0=0; counter1=0; key0=0; key1=0; P2=0; initUart(); while(1) while(key0!=key1)//按鍵掃描 if(key0==1)//按鍵0 {delay(20);//去抖動(dòng) if(key0==1) {data_0=0x55; senddata(data_0);//發(fā)送綠燈延時(shí)命令 if(counter0==0x0c)//判斷延時(shí)總長(zhǎng)度是否滿足60s { counter0=0x00; P2=counter0|counter1; }else { counter0=counter0+1; P2=counter0|counter1; } } } elseif(key1==1)//按鍵1 {delay(20);//去拌動(dòng) if(key1==1) {data_0=0xcc; senddata(data_0);//發(fā)送紅燈延時(shí)命令 if(counter1==0xc0)//判斷延時(shí)總長(zhǎng)度是否滿足60s { counter1=0x00; P2=counter1|counter0; }else { counter1=counter1+16; P2=counter1|counter0; } } } }voidinitUart(void)//串口初始化,波特率為9600{ PCON=0x00; SCON=0x40; TMOD=TMOD|0x20; TH1=0xfd; TL1=0xfd; ES=0; EA=0; TR1=1;}voidsenddata(uchardat)//命令發(fā)送函數(shù){ SBUF=dat; while(TI!=1); TI=0; delay(1000);}voiddelay(m)//延時(shí),單位ms{ ucharucCounter; while(m) { for(ucCounter=0;ucCounter<239;ucCounter++){} m--; }}接收模塊#include<reg52.h>#include<stdio.h>#defineucharunsignedcharsbitled_red=P1^0;//紅燈sbitled_yellow=P1^1;//黃燈sbitled_green=P1^2;//綠燈sbitselect=P1^3;//倒計(jì)時(shí)顏色選擇uchardat=0x00;uchartab0[10]={0x00,0x30,0x6d,0x79,0x33,0x5b,0x5f,0x70,0x7f,0x7b};//數(shù)字表ucharm,n;unsignedinti,temp,count;voidinitUart(void);voidtime_delay(unsignedintt);voidmain(){ m=10; n=10; P0=0; P2=0; initUart(); while(1) { led_green=1; led_red=0; led_yellow=0; time_delay(m); led_green=0; led_yellow=1; time_delay(3); led_yellow=0; led_red=1; time_delay(n); } } voidinitUart(void)//串口初始化,波特率為9600 { PCON=0x00;//波特率不加倍 SCON=0x50;//串口工作在方式1,允許接收 TMOD=TMOD|0x20;//定時(shí)器1工作在方式2 TH1=0xfd; TL1=0xfd; ES=1;//開(kāi)串口中斷 EA=1;//開(kāi)總中斷 TR1=1; } voidtime_delay(unsignedintt)//延時(shí),單位s { TMOD=TMOD|0x01;//定時(shí)器0工作方式1 TH0=(65536-19556)>>8; TL0=(65536-19556)%256; ET0=0; TR0=1; count=t; temp=40*t; for(i=0;i<temp;i++) { while(1) if(TF0) { TH0=(65536-19556)>>8; TL0=(65536-19556)%256; TF0=0; TR0=1; break; } if(led_green|led_red) {if((i+1)%40==0) count--;//倒數(shù)至9秒 if(count<=9) if(led_green) P2=tab0[count]; elseif(led_red) P0=tab0[count]; } }} voidserial_int(void)interrupt4//串口中斷處理程序{ EA=0; dat=SBUF; switch(dat) { case0x55:{ if(m==120) m=10; else m=m+5; break; } case0xcc:{ if(n==120) n=10; else n=n+5; break; } } RI=0; EA=1;}5Proteus仿真5.1Proteus軟件介紹5.2仿真結(jié)果(1)上電后初始狀態(tài)如圖5-1所示,綠燈延時(shí)時(shí)間為0秒,紅燈延時(shí)時(shí)間為0秒,綠燈亮,黃燈滅,紅燈滅,允許通行。圖5-1運(yùn)行初始狀態(tài)倒計(jì)時(shí)9秒,數(shù)碼管亮起并自動(dòng)倒數(shù),效果圖如圖5-2所示。圖5-2倒計(jì)時(shí)效果圖按一下紅燈延時(shí)按鍵,產(chǎn)生紅燈延時(shí)一個(gè)5秒的信號(hào),紅燈延時(shí)10秒的效果圖如圖5-3所示圖5-3紅燈延時(shí)10秒總結(jié)在此次課題中,首先遇到的問(wèn)題是單片機(jī)原理(即什么是單片機(jī))及開(kāi)發(fā)環(huán)境,對(duì)這些概念沒(méi)怎么了解,經(jīng)過(guò)圖書(shū)館資料才弄清楚這些問(wèn)題。單片機(jī)(Microcontrollers)是一種集成電路芯片,是采用超大規(guī)模集成電路技術(shù)把具有數(shù)據(jù)處理能力的中央處理器CPU、隨機(jī)存儲(chǔ)器RAM、只讀存儲(chǔ)器ROM、多種I/O口和中斷系統(tǒng)、定時(shí)器/計(jì)數(shù)器等功能(可能還包括顯示驅(qū)動(dòng)電路、脈寬調(diào)制電路、模擬多路轉(zhuǎn)換器、A/D轉(zhuǎn)換器等電路)集成到一塊硅片上構(gòu)成的一個(gè)小而

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論