模擬路燈控制系統(tǒng)(2組LED)_第1頁
模擬路燈控制系統(tǒng)(2組LED)_第2頁
模擬路燈控制系統(tǒng)(2組LED)_第3頁
模擬路燈控制系統(tǒng)(2組LED)_第4頁
模擬路燈控制系統(tǒng)(2組LED)_第5頁
已閱讀5頁,還剩19頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

精選優(yōu)質(zhì)文檔傾情為你奉上精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)專心專注專業(yè)精選優(yōu)質(zhì)文檔傾情為你奉上專心專注專業(yè)【高職高專組】2009年9月目錄TOC\o"1-3"\u摘要 11方案設(shè)計與比較 11.1LED恒流源設(shè)計方案 11.2移動物體通過檢測方案 11.3整體方案 12理論分析與計算 22.1功率數(shù)據(jù)采集原理分析 22.2功率調(diào)節(jié)原理分析 22.3調(diào)節(jié)誤差分析 23電路設(shè)計 23.1系統(tǒng)框圖 23.2顯示器模塊電路 33.3光傳感器模塊 33.4時鐘電路 43.5紅外對管檢測電路 43.6聲光報警電路 43.7A/D電路 43.8D/A轉(zhuǎn)換電路 53.9串口電路 54程序設(shè)計 54.1物體通過檢測實現(xiàn) 54.2功率調(diào)節(jié)的實現(xiàn) 54.3程序流程圖 65系統(tǒng)測試 75.1測試儀器 75.2測試方案 75.3測試結(jié)果 75.4結(jié)果分析 76總結(jié) 8參考文獻(xiàn) 8附件1:支路控制器系統(tǒng)電路圖 9附件2:單元控制器系統(tǒng)電路圖 10附件3:恒流源電路圖 11附件4:主要PCB圖 12附件5:主要元器件清單 14附件6:部分程序清單 15模擬路燈控制系統(tǒng)摘要:本系統(tǒng)采用3片Atmel公司的AT89S51單片機作為系統(tǒng)的控制器件,其中支路控制器為主控制器,兩個單元控制器作為從控制器。支路控制器接顯示器和鍵盤組成人機界面,可通過外部時鐘模塊進(jìn)行開關(guān)燈定時控制,可通過光敏傳感器和電壓比較器檢測環(huán)境明暗程度,可通過7對紅外對管檢測交通情況,從而控制LED的亮滅。在單元控制器中,采用OP07集成運放接大功率場效應(yīng)管設(shè)計了LED壓控恒流源,可由單片機通過D/A方便地控制恒流源的輸出電流和功率,并由A/D芯片將功率數(shù)據(jù)反饋到單片機,形成閉環(huán)自動控制系統(tǒng)。支路控制器與單元控制器之間采用485工業(yè)串口進(jìn)行通信,推廣到實際應(yīng)用中。關(guān)鍵詞:路燈89S51單片機恒流源1方案設(shè)計與比較1.1LED恒流源設(shè)計方案方案一:分立元件設(shè)計法。LED恒流源可以采用三極管、穩(wěn)壓管加電阻等分立元件進(jìn)行設(shè)計,具有電路簡單、成本低等優(yōu)點,但是性能較差,單片機不好控制。方案二:專用芯片設(shè)計法。市面上有不少專用LED恒流源的驅(qū)動芯片,如美國安森美公司的CAT4201以及UCT4611,SN3350等。采用專用芯片電路簡單可靠、性能好,通過PWM可控制輸出電流大小,但是功率數(shù)據(jù)不易采集。方案三:運放設(shè)計法。采用OP07集成運放接大功率場效應(yīng)管等元器件組成壓控恒流源,這種方案具有電路簡單可靠、性能好、單片機容易控制、功率數(shù)據(jù)易于采集等優(yōu)點,故采用此種方案。1.2移動物體通過檢測方案方案一:超聲波檢測法。利用超聲波發(fā)射接收的時間差不同,可用來檢測是否有物體通過。該方法簡單有效,但由于聲波的發(fā)散特性,精度達(dá)不到題目要求。方案二:反射式紅外傳感器檢測法。利用紅外線發(fā)射接收的時間差不同,也可來檢測是否有物體通過。該方法同樣簡單有效,而且精度較高,但是檢測距離過短,只有10幾cm,而且價格很高。方案三:紅外對管檢測法。采用位于同一直線上面對面放置的一個紅外發(fā)射管和一個紅外接收管(即紅外對管),可以用來檢測是否有物體通過其間。只需通過檢測流過紅外接收管的電流大小,可以方便地掌握物體通過情況。該方法簡單易行,檢測距離遠(yuǎn)、精度高,成本低,故本系統(tǒng)采用該方案。1.3整體方案方案一:單MCU控制法。單從題目功能的實現(xiàn),采用單MCU方案是可行的。支路控制器采用單MCU設(shè)計,所有外部接口(包括鍵盤、顯示器、時鐘模塊、光電傳感器、紅外對管、AD、DA等)都掛在這個MCU上。兩個單元控制器不帶MCU,只設(shè)計恒流源。兩個恒流源的控制及功率數(shù)據(jù)采集由支路控制器中的MCU通過雙通道的A/D、D/A來完成。這種方案單元控制器電路相當(dāng)簡單,支路控制器電路較為復(fù)雜,MCU工作負(fù)荷大,I/O資源緊張。整體方案成本較低,易于實現(xiàn),但不符合實際情況,不滿足題意。方案二:主從機協(xié)同控制法。支路控制器、單元控制器各采用1片MCU進(jìn)行控制,支路控制器的主MCU與單元控制器的從MCU之間采用串口通信進(jìn)行數(shù)據(jù)交換。支路控制器只用于人機界面、開關(guān)燈時間設(shè)定、自動亮度識別、道路通過檢測及故障報警等,而各個LED恒流源及其控制、數(shù)據(jù)采集電路均集成到單元控制器電路中,并由其內(nèi)部的從MCU通過串口接收主MCU的指令進(jìn)行控制。此方案各MCU分工合理,協(xié)同工作,負(fù)荷不高,電路、程序都較簡單。同時采用工業(yè)串口,傳輸距離遠(yuǎn),可推廣到實際應(yīng)用中,故本系統(tǒng)采用該方案。2理論分析與計算2.1功率數(shù)據(jù)采集原理分析單元控制器采集當(dāng)前LED的輸出功率數(shù)據(jù)分兩步進(jìn)行:一、采集通過LED的電流值。由于本系統(tǒng)采用壓控恒流源,故通過LED的電流即為通過采樣電阻的電流,因為采樣電阻阻值為1Ω,所以電流等同于采樣電阻上的電壓。又因為前級運放OP07接成電壓跟隨器,該值即為D/A輸出的電壓值,在單元控制器在設(shè)定LED輸出功率時已知。二、采集LED兩端的電壓值。該值由LM358接成減法器直接在LED兩端取得,經(jīng)A/D轉(zhuǎn)換送給從機。將這兩個值相乘,即得到當(dāng)前LED的功率值。2.2功率調(diào)節(jié)原理分析設(shè)定功率時,單元控制器并不能一步到位。必須先通過D/A輸出一個初始的LED電流值,然后通過A/D把LED兩端電壓讀回來,將電流與電壓相乘得到的功率值與需設(shè)定值進(jìn)行比較,如果小于設(shè)定值,則增加D/A的輸出;如果大于,則減小D/A的輸出。通過這種閉環(huán)系統(tǒng),使當(dāng)前輸出功率值逐步逼近設(shè)定功率值。2.3調(diào)節(jié)誤差分析D/A設(shè)定恒流源電流值、A/D采集電壓數(shù)據(jù)都將帶來轉(zhuǎn)換誤差,這是A/D、D/A器件本身硬件帶來的,不可避免。A/D、D/A位數(shù)越高,轉(zhuǎn)化誤差越小,調(diào)節(jié)誤差也越小。本系統(tǒng)采用12位的A/D、D/A器件,轉(zhuǎn)換誤差小于0.1%,而功率誤差由電流轉(zhuǎn)化誤差與電壓轉(zhuǎn)換誤差共同決定,由于他們之間是乘積關(guān)系,因此誤差的數(shù)量級不會上升,總的調(diào)節(jié)誤差小于0.5%,精度完全符合題目要求。3電路設(shè)計3.1系統(tǒng)框圖系統(tǒng)框圖如圖1所示。支路控制器支路控制器(主機)AT89S51單元控制器(從機1)AT89S51單元控制器(從機2)AT89S51恒流源1顯示器時鐘模塊光傳感器紅外對管檢測模塊按鍵A/DD/A恒流源2A/DD/A串口串口串口LED1LED2聲光報警模塊圖1系統(tǒng)框圖3.2顯示器模塊電路該模塊采用2個4位一體共8位共陰數(shù)碼管顯示器連接而成,段碼數(shù)據(jù)線共用,采用138譯碼作為數(shù)碼管位選,用于顯示開關(guān)燈時間、恒流源輸出功率值及百分比、故障LED編號等數(shù)據(jù)。數(shù)碼管顯示具有亮度高、可視距離遠(yuǎn)、直觀、功耗低、使用方便、性價比高等特點。電路如圖2所示。圖2數(shù)碼管顯示電路3.3光傳感器模塊采用光敏電阻作為敏感元件,當(dāng)環(huán)境亮度較高時,光敏電阻R1阻值很小,P17為低電平;當(dāng)環(huán)境亮度較低時,光敏電阻R1阻值很大,P17為高電平。電路如圖3所示。圖3光傳感器電路圖4DS1302時鐘電路3.4時鐘電路時鐘模塊用于給MCU提供精確時間數(shù)據(jù),從而使支路控制器能夠準(zhǔn)確控制LED的開關(guān)燈時間。該模塊采用具有SPI接口的DS1302來進(jìn)行設(shè)計,只占用MCU3個I/O,該模塊電路如圖4所示。3.5紅外對管檢測電路系統(tǒng)采用555接成施密特觸發(fā)器來對紅外接收管的陽極電壓進(jìn)行監(jiān)控,當(dāng)無物體通過對管其間時,紅外管接收管D2導(dǎo)通,D2陽極電壓為低,CH1輸出高電平;當(dāng)有物體通過其間時,紅外管D2截止,D2陽極電壓為高,CH1輸出低電平。電路如圖5所示。圖5紅外對管檢測電路圖6聲光報警電路3.6聲光報警電路采用一個普通發(fā)光二極管加一個蜂鳴器實現(xiàn),當(dāng)LED出現(xiàn)故障時的聲光報警提示功能。如圖6所示為聲光報警電路。3.7A/D電路該模塊采用美國國家半導(dǎo)體公司8位并行ADCADC0809實現(xiàn),用于采集LED上電壓值到從機。其電路如圖7所示:圖7A/D轉(zhuǎn)換電路圖8D/A3.8D/A轉(zhuǎn)換電路該模塊采用Linear公司12位串行DACLTC2622實現(xiàn),用于設(shè)定恒流源的輸出電流及功率。電路如圖8所示。3.9串口電路本系統(tǒng)采用工業(yè)串口485進(jìn)行主機與從機間的通信,其接口電路如圖9所示。圖9串口接口電路4程序設(shè)計4.1物體通過檢測實現(xiàn)物體通過的檢測是通過道路兩邊垂直道路方向擺放的7對紅外對管實現(xiàn)的。S、S’兩點分別放置兩對管,B點位置擺放3對管。這樣,通過不同管子檢測物體的時間先后關(guān)系,可以方便地判斷出物體的移動位置和移動方向。即不論物體是前進(jìn)還是后退,管子都可以檢測出來。紅外對管檢測精度很高,識別誤差小于2cm。4.2功率調(diào)節(jié)的實現(xiàn)當(dāng)調(diào)節(jié)功率時,單元控制器并不能一步到位,立即使當(dāng)前功率值等于設(shè)定功率值。必須先通過D/A輸出一個初始的LED電流值,然后通過A/D把LED兩端電壓讀回來,將電流與電壓相乘得到的功率值與需設(shè)定值進(jìn)行比較,如果小于設(shè)定值,則增加D/A的輸出;如果大于,則減小D/A的輸出。通過這種閉環(huán)系統(tǒng),使當(dāng)前輸出功率值逐步逼近設(shè)定功率值。4.3程序流程圖主機的主程序流程圖、從機主程序流程圖、從機中斷服務(wù)程序流程圖分別如圖10、11、12所示。圖10主機主程序流程圖圖11從機主程序流程圖圖12從機中斷服務(wù)程序流程圖5系統(tǒng)測試5.1測試儀器DS-1雙通道直流穩(wěn)壓源、C31-A型高精度指針式毫安表、C31-V型高精度指針式電壓表5.2測試方案功能逐項測試法:根據(jù)題目要求,依次逐項測試系統(tǒng)功能。數(shù)據(jù)實測計算法:使用精密毫伏表、電壓表,實時測試通過LED的電流及其兩端的電壓,再計算出LED的輸出功率,并將其與控制器設(shè)定的功率值進(jìn)行比較,以計算出調(diào)節(jié)誤差。5.3測試結(jié)果1)功能完成情況經(jīng)測試,系統(tǒng)可完成題目的基本及發(fā)揮部分全部功能。2)指標(biāo)完成情況本題的指標(biāo)主要是恒流源輸出功率的調(diào)節(jié)誤差。經(jīng)測試,測試數(shù)據(jù)及計算結(jié)果如表1所示:表1恒流源的功率數(shù)據(jù)及調(diào)節(jié)誤差表設(shè)定功率百分比儀器測量電流值(mA)儀器測量電壓值(V)實際功率計算值(W)調(diào)節(jié)誤差20%65.822.820.18501.50%48%156.232.980.46561.44%80%248.443.160.78511.49%100%306.023.210.98231.77%5.4結(jié)果分析通過測試、計算和分析,系統(tǒng)完成題目的基本及發(fā)揮部分全部功能,并在設(shè)定調(diào)節(jié)LED輸出功率的指標(biāo)上達(dá)到題目發(fā)揮部分要求,整體性能達(dá)到題目發(fā)揮部分要求。6總結(jié)本系統(tǒng)采用3片Atmel公司的AT89S51單片機作為系統(tǒng)的控制器件,其中支路控制器為主控制器,兩個單元控制器作為從控制器。支路控制器接顯示器和鍵盤組成人機界面,可通過外部時鐘模塊進(jìn)行開關(guān)燈定時控制,可通過光敏傳感器和電壓比較器檢測環(huán)境明暗程度,可通過7對紅外對管檢測交通情況,控制LED的亮滅。在單元控制器中,采用OP07集成運放接大功率場效應(yīng)管設(shè)計了LED壓控恒流源,可由單片機通過D/A方便地控制恒流源的輸出電流和功率,并由A/D芯片將功率數(shù)據(jù)反饋到單片機,形成閉環(huán)自動控制系統(tǒng)。支路控制器與單元控制器之間采用485工業(yè)串口進(jìn)行通信,可推廣到實際應(yīng)用中。所有功能和指標(biāo)均達(dá)到或部分超過題目要求。參考文獻(xiàn)[1]宋文緒,楊帆.自動檢測技術(shù).北京:高等教育出版社,2008.[2]高吉祥.全國大學(xué)生電子設(shè)計競賽培訓(xùn)系列教程.北京:電子工業(yè)出版社,2007.[3]周堅.單片機C語言輕松入門.北京:北京航空航天出版社,2006.[4]孫傳友等.測控電路及裝置.北京:北京航空航天大學(xué)出版社,2002.[5]李朝青著.單片機原理及接口技術(shù).北京航空航天大學(xué)出版社,2005.附件1:支路控制器系統(tǒng)電路圖附件2:單元控制器系統(tǒng)電路圖附件3:恒流源電路圖附件4:主要PCB圖1)恒流源與數(shù)碼管顯示PCB圖

2)主控電路3)從機電路

附件5:主要元器件清單序號元器件名稱型號、規(guī)格數(shù)量1單片機AT89S5132路燈LED1W23ADCADC08024DACLTC262225數(shù)碼管SMK2674LS13817LM35828OP-0719晶振11.0592M310按鍵411大功率電阻1歐5W212繼電器213場效應(yīng)管IRFZ44N214三端穩(wěn)壓器7809215各類電阻若干16各類電容若干

附件6:部分程序清單(1)從機部分程序#include<reg51.h>#include<intrins.h>#include<math.h>typedefunsignedcharUINT8;typedefunsignedintUINT16;#defineADDR0x02UINT8Buf[2];UINT16ADCDat[2],kcw;UINT8Vol;floatTemp;bitRecFlag,clok;sbitST=P2^7;sbitOE=P2^6;sbitEOC=P2^5;sbitIN7=P2^3;sbitDA_CS=P2^2;sbitDA_SCK=P2^0;sbitDA_SDI=P2^1;sbitLED=P1^6;sbitREDE=P3^2;voidSystem(void){ SCON=0xf0; TMOD=0x21; TH1=0xFD; TL1=0xFD; TH0=0xdc; TL0=0x32; TR0=1; ET0=1; TR1=1; EA=1; ES=1;}voidSendChar(UINT8c){ REDE=1; TI=0; TB8=0; SBUF=c; while(TI==0); TI=0; REDE=0;}voidReceiv(void)interrupt4{staticUINT8num=0; UINT8c; if(RI==0) return; RI=0; c=SBUF; if(RB8==1) { if(c==ADDR) SM2=0; else { SM2=1; num=0; } } Buf[num]=SBUF; num++; if(num==2) { RecFlag=1; num=0; }}voidWrite_LTC2622(UINT8Data){ UINT8i,Temp; DA_CS=1; DA_SCK=0; DA_SDI=1; _nop_(); _nop_(); DA_CS=0; Temp=0x21; for(i=0;i<8;i++) { if((Temp&0x80)==0x80) DA_SDI=1; else DA_SDI=0; DA_SCK=1; _nop_(); DA_SCK=0; _nop_(); Temp<<=1; } Data<<=4; for(i=0;i<16;i++) { if((Data&0x8000)==0x8000) DA_SDI=1; else DA_SDI=0; DA_SCK=1; _nop_(); DA_SCK=0; _nop_(); Data<<=1; } _nop_(); _nop_(); DA_CS=1; DA_SCK=0;}UINT16Vcontrol(UINT8v){ Temp=1240; Temp=(1/Temp)*4096*v*3; kcw=floor(Temp); return(kcw);}voidDAC0809(void){ UINT8a; IN7=1; ST=0; OE=0; ST=1; ST=0; while(EOC==0);//查詢轉(zhuǎn)換結(jié)束 OE=1; a=P0; OE=0; Temp=256; Temp=(1/Temp)*5*a; //單位v Vol=floor(Temp); }voidmain(){ UINT8i; System(); while(1) { if(clok) { clok=0; if(Vol>3) { SendChar('o'); } else { SendChar('n'); } } if(RecFlag) { switch(Buf[1]) { case1: LED=0; //亮燈 break; case2: LED=1; break; case4: Write_LTC2622(Vcontrol(i)); i++; break; } Buf[1]=0; } }}voidtimer0()interrupt1{ staticUINT8num; TH0=0xdc; TL0=0x32; num++; if(num==100) { num=0; DAC0809(); clok=1; }}

(2)主機部分程序#include<reg52.h>typedefunsignedcharUINT8;typedefunsignedintUINT16;#defineS10x38#defineS20x34#defineS30x2c#defineS40x1ccodeUINT8SELECT[]={7,6,5,4,3,2,1,0};codeUINT8SEGMENT[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xc8/*n*/,0x8e/*F*/,0xff};UINT8Second=0,Minite=30,Hour=12,slave,SDR,Ap,Bp; UINT8Bsecond,Bminite,Bhour,SETVALUE,SETADDR,Sphour,Spminite,Sthour,Stminite,Sphour2,Spminite2,Sthour2,Stminite2;sbitclk=P2^4;sbitio=P2^5;sbitrst=P2^6;sbitREDE=P2^7;sbitACC0=ACC^0;sbitACC7=ACC^7;sbitSpeaker=P3^7;sbitAutochk=P1^7;bitflag,SETBIT,READBIT,flag1,clock,page,FS=1,FS1,FS2;voidmain(){ UINT8c; System(); init1302(); Read1302(); while(1) { led_dsp(); if(Autochk==1) { if(FS) { FS=0; SendChar(1,2); //關(guān)燈 SendChar(2,2); //檢測光線 FS2=1; } } else { if(FS2) { FS2=0; SendChar(1,1); //熄燈 SendChar(2,1); //檢測光線 FS=1; } } if(READBIT==1) { READBIT=0; Read1302(); //讀1302時間 } c=Scankey(); if(SETBIT) { switch(c) { caseS2: SETADDR++; if(slave==0) { SETADDR%=2; if(SETADDR==0){SDR=0x82;}//分鐘0x03 elseif(SETADDR==1){SDR=0x84;}//時鐘0x04 if(SDR==0x82) { SETVALUE=((read1302(SDR)&0x70)>>4)*10+(read1302(SDR)&0x0f); } elseif(SDR==0x84) { SETVALUE=((read1302(SDR)&0x30)>>4)*10+(read1302(SDR)&0x0f); } } elseif(slave==4) { SETADDR%=2; } else { SETADDR%=4; if(SETADDR<2){page=1;} else{page=0;} if((slave==1)||(slave==2)) { switch(SETADDR) { case0:SETVALUE=Spminite; case1:SETVALUE=Sphour; case2:SETVALUE=Stminite; case3:SETVALUE=Sthour; } } elseif(slave==3) { switch(SETADDR) { case0:SETVALUE=Spminite2; case1:SETVALUE=Sphour2; case2:SETVALUE=Stminite2; case3:SETVALUE=Sthour2; } } elseif(slave==4) { if(SETADDR==0){SETVALUE=Ap;} elseif(SETADDR==1){SETVALUE=Bp;} } } break; caseS3: { SETVALUE++; switch(SETADDR) { case0: if(slave==3){Spminite2=SETVALUE;} //從機2關(guān)機設(shè)置 elseif(slave==0){Bminite=SETVALUE;SETVALUE%=60;}//分鐘設(shè)置 elseif(slave==4){Ap=SETVALUE;SETVALUE%=100;} else{Spminite=SETVALUE;SETVALUE%=60;} //主機和從機1關(guān)機設(shè)置 break; case1: if(slave==3){Sphour2=SETVALUE;} //關(guān)機// elseif(slave==0){Bhour=SETVALUE;SETVALUE%=24;}//小時設(shè)置 elseif(slave==4){Bp=SETVALUE;SETVALUE%=100;} else{Sphour=SETVALUE;SETVALUE%=24;} break; case2: if(slave==3){Stminite2=SETVALUE;} //主機和從機1開機設(shè)置 else{Stminite=SETVALUE;} //從機2開機設(shè)置 SETVALUE%

溫馨提示

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

評論

0/150

提交評論