版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、0. 前言11. 課程設(shè)計的目的和要求12. 總體設(shè)計13. 硬件設(shè)計54. 軟件設(shè)計95. 系統(tǒng)操作說明166. 結(jié)束語177. 參考文獻(xiàn)17 0. 前言倒車障礙檢測系統(tǒng)所采用的超聲波傳感器技術(shù)可以探測到附近的障礙物,為駕駛員提供倒車警告和輔助泊車功能,其原理是利用超聲波探測倒車路徑上或附近存在的任何障礙物,并及時發(fā)出警告。所設(shè)計的檢測系統(tǒng)可以同時提供聲光并茂的聽覺和視覺警告,其警告表示是探測到了在盲區(qū)內(nèi)障礙物的距離和方向。這樣,在狹窄的地方不管是泊車還是開車,借助倒車障礙報警檢測系統(tǒng),駕駛員心理壓力就會減少,并可以游刃有余地采取必要的動作。隨著人們對汽車輔助駕駛系統(tǒng)智能化要求的提高和汽車電
2、子系統(tǒng)的網(wǎng)絡(luò)化發(fā)展,新型的倒車?yán)走_(dá)應(yīng)能夠連續(xù)測距并顯示障礙物距離,并具有通信功能,能夠把數(shù)據(jù)發(fā)送到汽車總線上去。本文介紹基于PICF4520的倒車?yán)走_(dá)。1. 課程設(shè)計的目的和要求1.1. 課程設(shè)計的目的單片機原理與課程設(shè)計的目的是綜合訓(xùn)練利用單片機原理、C語言及電工電子技術(shù)等課程知識進(jìn)行單片機應(yīng)用系統(tǒng)設(shè)計的能力。根據(jù)設(shè)計題目的要求完成設(shè)計任務(wù)需求分析、系統(tǒng)方案總體設(shè)計及原理圖繪制、程序流程圖和代碼編寫等任務(wù),設(shè)計一個能完成汽車倒車?yán)走_(dá)任務(wù)的單片機系統(tǒng)。1.2. 課程設(shè)計的基本要求利用單片機的超聲波傳感器設(shè)計一個汽車倒車?yán)走_(dá),實時測量和顯示汽車尾部與障礙物的距離,當(dāng)距離值小于程序設(shè)定值時發(fā)出聲光
3、報警,距離值可以通過串口傳送到汽車總線上。2. 總體設(shè)計2.1、基本工作原理系統(tǒng)采用超聲波測距原理。工作時,超聲波發(fā)射器發(fā)出超聲波脈沖,超聲波接收器接收遇到障礙物反射回來的反射波,準(zhǔn)確測量超聲波從發(fā)射到遇到障礙物反射返回的時間,根據(jù)超聲波的傳播速度,可以計算出障礙物距離。超聲波測距具有在近距離范圍內(nèi)有不受光線和雨雪霧的影響、結(jié)構(gòu)簡單、制作方便和成本低等優(yōu)點。高性能的單片機結(jié)合超聲波測距,可以實現(xiàn)功能強大、使用方便的倒車?yán)走_(dá)。2.2、硬件總體設(shè)計2.2.1、系統(tǒng)組成方案CCPI/O端口UARTPIC單片機聲光報警信號調(diào)理超聲波發(fā)送器超聲波接收器信號調(diào)理LED顯示器電平轉(zhuǎn)換汽車總線圖1 倒車?yán)走_(dá)系
4、統(tǒng)框圖2.2.2、擴展單元編址2.2.3、顯示功能的定義使用一個I/O端口(Port A或B或C或D)驅(qū)動LED2.3、軟件總體設(shè)計2.3.1、存儲單元的分配、標(biāo)志位的定義PICF4520芯片:內(nèi)部程序存儲器32K,數(shù)據(jù)存儲器(1536字節(jié)RAM,256字節(jié)EPROM),18個中斷源,5個I/O端口(Port A、B、C、D、E), 4個定時器,2個CCP模塊。使用Timer 0定時器產(chǎn)生40KHz的脈沖波用于超聲波發(fā)送模塊,用Timer 1定時器對超聲波的發(fā)送和接收時間間隔進(jìn)行計時,用Timer 2定時器產(chǎn)生PWM脈沖波,使提示聲音隨著距離值的減小而頻率增大;用Timer 3定時器進(jìn)行計數(shù),
5、每100ms產(chǎn)生一次高優(yōu)先級中斷,發(fā)生中斷后使Timer 0定時器產(chǎn)生40KHz的方波。使用一個I/O端口(Port A或B或C或D)驅(qū)動LED2.3.2、主程序框圖及清單開始微控制器初始化發(fā)送脈沖等待回波接收脈沖讀取時間計算距離距離=1.0m紅燈亮,綠燈滅,蜂鳴器響綠燈亮,紅燈滅,蜂鳴器不響1.0距離=10.0程序清單:void main (void)char selectpattern;char a;ADCON1=OX7F;TRISBbits.TRISB4=0;/program RB4 as outputTRISBbits.TRISB0=1;/program RB0 as inputTRI
6、SCbits.TRISC0=0;/program RC0 as outputTRISCbits.TRISC1=0;/program RC1 as outputTRISCbits.TRISC2=0;/program RC2 as outputTRISCbits.TRISC6=0;/program RC6 as outputTRISCbits.TRISC7=1;/program RC7 as inputTRISD=0;/PortD as outputTRISE=0;/General purpose I/O mode,RE0,RE1,RE2 as outputT0CON=0x48;/select i
7、nternal clock and a prescaler of divide by 1RCONbits.IPEN=1;/IPEN=1TMR1L=0;/Preload Timer 1 with 0xFF00;TMR1H=0xFF;T1CON=0x04;/select internal clock seconds=minutes=0;/select clock at 00:00T2CON=1;/select a prescaler of divide by 4CCP1CON=0x0C;/CCp module off, active high outputTMR2=0;/clear Timer 2
8、PR2=124;/Timer 2 clears on 124CCPR1L=62; T3CON=0x70;/select a presacler of divide by 8TMR3L=0x2C;TMR3H=0xCF;IPR1bits.TMR1IP=0;/make Timer 1 low priorityPIE1bits.TMR1IE=1;/enable timer 1 interruptIPR2bits.TMR3IP=1;/make Timer 3 high priorityPIE2bits.TMR3IE=1;/enable timer 3 interruptOpenUSART(USART_A
9、SYNCH_MODE &/USART operates at 9600 Baud USART_EIGHT_BIT & USART_BRGH_HIGH, 25);TXSTAbits.TXEN=0;/transmit disabledTXSTAbits.TRMT=1;/TSR emptyINTCON2bits.INTEDG0=0;/make INT0 negative edge-triggeredINTCONbits.INT0IE=1;/enable INT0INTCONbits.GIEH=1;/enable high priority interruptsINTCONbits.GIEL=1;/e
10、nable low priority interruptsT0CONbits.TMRON=1;/enable Timer 0l=0;PORTCbits.RC0=0;/light green Led PORTCbits.RC1=1;/turn off red Led length=6.00;OutWave();/ output pulse waveT3CONbits.TMR3ON=1;/enable timer 3while(1)ClrWdt();/reset Watchdogselectpattern=1;for(a=0;a3;a+)PORTE=selectpattern;/select a
11、digitif(a=0)PORTD=look7(int)length|0x80;elsePORTD=look7(int)length;length-=(int)length;length*=10;selectpattern=(selectpattern1)|1;Delay1KTCYx(3);/3ms delayif(TXSTAbits.TRMT=0)TXSTAbits.TXEN=1;/transmit enabled超聲波發(fā)射電路發(fā)出超聲波的同時計數(shù)器開始計數(shù),當(dāng)遇到障礙物反饋信號到超聲波接收器接收,經(jīng)CX20106接收電路處理后,產(chǎn)生一個低脈沖,該信號傳送給單片機產(chǎn)生中斷,調(diào)用測距子程序,計
12、算出測量距離,調(diào)用顯示子程序,根據(jù)不同的測量數(shù)值在液晶上顯示距離和報警。當(dāng)1.0m距離10m,顯示測量距離,繼續(xù)測量;當(dāng)距離小于1m時,顯示測量距離,紅燈亮、綠燈滅,并由RB0位驅(qū)動蜂鳴器報警。為增強抗干擾能力,系統(tǒng)每100ms發(fā)射一次超聲波,每次發(fā)射的超聲波包含10個波簇。這樣每秒可測約10個數(shù)據(jù),可以滿足實時性要求。3.硬件設(shè)計系統(tǒng)以PIC18F4520微控制器為核心,外圍電路由超聲波發(fā)射電路、超聲波接收電路、聲光報警電路、通信接口電路、液晶顯示電路五部分組成,下面逐一介紹。圖2 倒車?yán)走_(dá)系統(tǒng)主控電路圖系統(tǒng)的主控電路圖如圖2所示。本系統(tǒng)中選用的PIC18F4520片內(nèi)有32Kb閃存和1.5
13、Kb RAM,因此無須外擴存儲器。超聲波發(fā)送模塊電路如圖3所示,由超聲波產(chǎn)生和發(fā)射兩部分組成。超聲波的產(chǎn)生采用軟件發(fā)生法,因為通過軟件發(fā)生法既可以減少硬件的復(fù)雜程度,降低系統(tǒng)的成本,又具有靈活性強、容易實現(xiàn)、穩(wěn)定性好的優(yōu)點。本系統(tǒng)利用PIC18F4520單片機的定時器功能來產(chǎn)生穩(wěn)定的40KHz脈沖波,并通過I/O端口RB4輸出到超聲波發(fā)射部分。在超聲波發(fā)射電路中CD4049一共包括了6個非門,圖3中線路僅使用了3個,為了防止干擾或被靜電擊穿導(dǎo)致整個CD4049損壞,把沒有使用的那一側(cè)的3個非門串起來做接地處理。當(dāng)控制端輸出一系列固定頻率脈沖時,在壓電陶瓷型超聲波發(fā)射換能器UCM-40-T上就固
14、定頻率的加正電壓和反電壓,發(fā)出大功率的超聲波,所得到的波形比其他方式效果更理想。圖3 倒車?yán)走_(dá)超聲波發(fā)送模塊超聲波接收電路如圖4所示。壓電陶瓷型超聲波接收器 UCM-40-R 接收反射的超聲波轉(zhuǎn)換為40kHz毫伏級的電壓信號,需要經(jīng)過放大、處理、才能用于觸發(fā)單片機中斷。一方面?zhèn)鞲衅鬏敵鲂盘栁⑷?,由于反射條件不同,需要放大倍數(shù)的范圍大約是1005000,另一方面?zhèn)鞲衅鬏敵鲎杩馆^大,需要高輸入阻抗的多級放大電路,而高輸入阻抗容易接收干擾信號。通常采用兩種方案:一是采用運算放大器組成多級選頻放大電路;二是采用專用的集成前置放大器。第一種方案容易產(chǎn)生自激振蕩,要使接收電路達(dá)到很好靈敏度和抗干擾效果,電
15、路的調(diào)試是較困難的。本系統(tǒng)采用專用的集成電路前置放大器 CX20106,它由前置放大器、限幅放大器、帶通濾波器、檢波器、積分器、整型電路組成。其中前置放大器具有自動增益控制功能,可以保證在超聲波傳感器接收較遠(yuǎn)反射信號輸出微弱電壓時放大器有較高的增益,在近距離輸入信號強時放大器不會過載。調(diào)節(jié)芯片引腳5的外接電阻R3,將它的濾波器的中心頻率設(shè)置在40kHz,達(dá)到了很好的效果。當(dāng)接收到與濾波器中心頻率相符的信號時,其輸出引腳7輸出一個低電平,而輸出引腳7直接接到PIC18F4520的上RB0/INT0上,以觸發(fā)INT0中斷。圖4 倒車?yán)走_(dá)超聲波接收模塊集成電路CX20106是一款紅外線檢波接收的專用
16、芯片,常用于電視機紅外遙控接收器??紤]到紅外遙控常用的載波頻率38kHz 與測距超聲波頻率40kHz 較為接近,可以利用它作為超聲波檢測電路。實驗證明,其具有很高的靈敏度和較強的抗干擾能力。取R3=200k時,f042kHz,若取R3=220k,則中心頻率f038kHz。圖5 聲光報警模塊報警模塊采用簡單的聲光報警電路,如圖5所示。發(fā)光二極管可以直接由PIC單片機的I/O端口驅(qū)動,蜂鳴器通過一個NPN三極管來驅(qū)動。先設(shè)定一個臨界值,當(dāng)車尾與障礙物的距離小于設(shè)定的最小距離時,紅色指示燈閃亮,綠色指示燈熄滅。單片機向其端口發(fā)出PWM脈沖,隨著距離的減小,通過控制PWM脈沖的占空比和周期使蜂鳴的頻率
17、加劇,以此來提示駕駛員。圖6通信接口模塊通信接口電路如圖6所示。采用美信的MAX3232芯片,外圍電路非常簡單,只需要5個0.1F的電容器。該電路把單片機串口輸出信號隔離變換成 RS-232信號發(fā)送到汽車總線上。圖中RS232插座來和汽車的串口相連,TX和RX信號用來和PIC單片機的管腳相連。圖7 LED顯示器距離值的顯示采用3位LED,PIC單片機的I/O端口可以直接驅(qū)動LED,進(jìn)行動態(tài)顯示,原理圖如圖7所示。LED數(shù)碼管采用共陰極數(shù)碼管,段碼由RD0-RD7控制,位碼由RE0、RE1、RE2控制,三極管Q2、Q3、Q4增加驅(qū)動能力。當(dāng)RE0為高,RE1、RE2為低電平時,RD0-RD7上高
18、電平的管腳便會點亮數(shù)碼管的相應(yīng)段,這些段的不同組合便會顯示出0-9十個數(shù)字,三個數(shù)碼管輪流顯示,當(dāng)顯示頻率大于25Hz時,人眼的感覺就是連續(xù)顯示。4、軟件設(shè)計介紹本系統(tǒng)的主要子程序、中斷服務(wù)程序的框圖及程序清單(1) 子程序1:void OutWave (void)程序功能:通過定時器Timer 0產(chǎn)生40KHz方波程序框圖如下:i = 0TMR0L=0TMR0L=12?i10?TMR0L25?PORTBbits.RB4=1l=0?T1CONbits.TMR1ON=1l=1;PORTBbits.RB4=0結(jié)束開始i=i+1/function to generate the pulse wave
19、void OutWave (void)int i;for(i=0;i10;i+)/ generate 10 wavesTMR0L=0;doif(TMR0L=12)PORTBbits.RB4=1;if(l=0)T1CONbits.TMR1ON=1;/enable Timer 1l=1;elsePORTBbits.RB4=0;while(TMR0L25)(2) 子程序2:void DoTime (void)程序功能:通過定時器Timer 1進(jìn)行計數(shù)程序框圖如下:開始seconds=0;minutes=minutes+1;TMR1H=0xFF;PIR1bits.TMR1IF=0;seconds= s
20、econds+1;Timer 1溢出中斷發(fā)生?minutes=60?seconds=60?結(jié)束minutes=0;程序清單:void DoTime (void)TMR1H=0xFF;PIR1bits.TMR1IF=0;/clear Timer 1 interruptseconds+;/increment secondsif(seconds=60)/if seconds hits 60seconds=0;/clear seconds back to zerominutes+;/increment minutesif(minutes=60)/if minutes hits 60minutes=0;
21、/clear minutes(3) 子程序3:void Int0(void)程序功能:計算距離值并用LED顯示,當(dāng)距離值小于1.0m時進(jìn)行聲光報警開始清INT0中斷,計算length值length10.0?length=1.0?PORTCbits.RC0=1;PORTCbits.RC1=0;T2CONbits.TMR2ON=1;0.9length=1.0PR2=124; CCPR1L=620.8length=0.90.7length=0.80.6length=0.70.5length=0.60.4length=0.5PR2=35; CCPR1L=20;PR2=45; CCPR1L=25;PR2
22、=55; CCPR1L=30;PR2=70; CCPR1L=35;PR2=90; CCPR1L=45;PR2=110; CCPR1L=55RC0=0; RC1=1;T2CONbits.TMR2ON=0;seconds=minutes=0; T1CONbits.TMR1ON=0; TMR1H=0xFF; TMR1L=0; l=0;結(jié)束程序清單:void Int0(void)char a;INTCONbits.INT0IF=0;length=(60*minutes+seconds)*0.5*256*340*1.0e-6;TXREG=length;/send dataTXSTAbits.TRMT=0
23、;/TSR FULLif(length10.0)if(length=1.0)PORTCbits.RC0=1;/turn off green Led PORTCbits.RC1=0;/light red Led T2CONbits.TMR2ON=1;/Start Timer 2 & PWMif(lengh0.9)PR2=124;/Timer 2 clears on 124CCPR1L=62;else if(length0.8)PR2=110;CCPR1L=55; else if(length0.7)PR2=90;CCPR1L=45;else if(length0.6)PR2=70;CCPR1L=
24、35;else if(length0.5)PR2=55;CCPR1L=30;else if(length0.4)PR2=45;CCPR1L=25;elsePR2=35;CCPR1L=20;elsePORTCbits.RC0=0;/light green Led PORTCbits.RC1=1;/turn off red Led T2CONbits.TMR2ON=0;/Stop Timer 2 & PWMseconds=minutes=0;/clear recordsT1CONbits.TMR1ON=0;/disable Timer 1TMR1H=0xFF;TMR1L=0;l=0;(4) 中斷程
25、序1:void MyHighInt (void)程序功能:高優(yōu)先級中斷。當(dāng)超聲波接收傳感器接收到脈沖波時產(chǎn)生INT0高優(yōu)先級中斷;當(dāng)Timer 3 定時器溢出時產(chǎn)生次高優(yōu)先級中斷。程序框圖如下:開始 調(diào)用Int0()函數(shù)INT0中斷發(fā)生?Timer 3 溢出中斷發(fā)生?TMR3L=0x2C;TMR3H=0xCF;PIR2bits.TMR3IF=0;OutWave();結(jié)束程序清單:void MyHighInt (void)if(INTCONbits.INT0IF=1)Int0();else if(PIR2bits.TMR3IF=1)/OUTPUT a wave every 100msTMR3L=
26、0x2C;TMR3H=0xCF;PIR2bits.TMR3IF=0;OutWave();(5) 中斷程序2:void MyLowInt (void)程序功能:低優(yōu)先級中斷。當(dāng)Timer 1定時器溢出時產(chǎn)生低優(yōu)先級中斷,調(diào)用DoTime()函數(shù)進(jìn)行計數(shù)。程序框圖如下:開始Timer 1溢出中斷發(fā)生?調(diào)用DoTime()函數(shù)結(jié)束程序清單:void MyLowInt (void)if(PIR1bits.TMR1IF=1)DoTime();5、系統(tǒng)操作說明當(dāng)駕駛員掛上倒擋時,汽車內(nèi)部控制器發(fā)出信號使倒車?yán)走_(dá)系統(tǒng)開始工作。初始時設(shè)定LED屏上顯示的是6.00m, 此時綠色指示燈亮,紅色指示燈滅,超聲波發(fā)
27、送傳感器發(fā)出一簇脈沖波;當(dāng)超聲波接收傳感器接收到脈沖信號時產(chǎn)生INT0中斷,進(jìn)入中斷函數(shù)進(jìn)行距離值length的計算;若length=10.0,則不顯示該值;若1.0length10.0, 則在LED上顯示該值;若length=1.0,則紅色指示燈亮,綠色指示燈滅,蜂鳴器開始發(fā)聲并在LED上顯示該值,而且隨著距離值的不斷減小蜂鳴器發(fā)聲的頻率不斷增大。6、結(jié)束語該倒車?yán)走_(dá)采用了PIC18F4520單片機,并充分利用了其片上資源使得系統(tǒng)功能豐富,使用的外圍芯片減少,系統(tǒng)可靠性得到提高。該倒車?yán)走_(dá)應(yīng)用于汽車中,當(dāng)駕駛員倒車時,從液晶顯示屏上一目了然便知道障礙物離車的距離,克服了后視鏡小,視野窄的缺點
28、,消除了倒車造成的事故隱患。7、參考文獻(xiàn)1 Brey, B.B, Applying PIC18 Microcontrollers: Architecture, Programming, and Interfacing using C and Assembly. 北京:清華大學(xué)出版社,2009.4.2 求是科技. PIC 單片機典型模塊設(shè)計實例導(dǎo)航. 北京:人民郵電出版社, 2005.6.3 Dogan Ibrahim. Advanced PIC Microcontrollers Projects in C From USB to RTOS with the PIC18F Series. 北京:人民郵電出版社, 2010.7.tgKQcWA3PtGZ7R4I30kA1DkaGhn3XtKknBYCUDxqA7FHYi2CHhI92tgKQcWA3PtGshLs50cLmTWN60eo8Wgqv7XAv2OHUm32WGeaUwY
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《微波技術(shù)總結(jié)》課件
- 2022年浙江省嘉興市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2023年黑龍江省鶴崗市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年黑龍江省齊齊哈爾市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年內(nèi)蒙古自治區(qū)烏海市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 《夢想學(xué)堂使用手冊》課件
- 經(jīng)典搞笑句子
- 英語請假條的格式
- 遼寧省本溪市(2024年-2025年小學(xué)六年級語文)統(tǒng)編版小升初模擬(上學(xué)期)試卷及答案
- 2025年電池化學(xué)品項目規(guī)劃申請報告模板
- 【期末試題】河西區(qū)2018-2019學(xué)年度第一學(xué)期六年級數(shù)學(xué)期末試題
- 2022年總經(jīng)理年會發(fā)言稿致辭二
- 警綜平臺運行管理制度
- 立法學(xué)完整版教學(xué)課件全套ppt教程
- 簡約中國風(fēng)水墨山水工作總結(jié)通用PPT模板
- 礦山測量課程設(shè)計
- 藥廠生產(chǎn)車間現(xiàn)場管理-PPT課件
- 軸與孔標(biāo)準(zhǔn)公差表
- 防火門施工方案
- 人教PEP版2022-2023六年級英語上冊期末試卷及答案(含聽力材料)
- 高速公路瀝青路面設(shè)計計算書(Word)
評論
0/150
提交評論