紅外遙控超聲波測距儀設(shè)計_第1頁
紅外遙控超聲波測距儀設(shè)計_第2頁
紅外遙控超聲波測距儀設(shè)計_第3頁
紅外遙控超聲波測距儀設(shè)計_第4頁
紅外遙控超聲波測距儀設(shè)計_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、摘 要紅外遙控超聲波測距儀是以超聲波測距為核心的多傳感器巧妙結(jié)合的作品。本作品用到紅外傳感器一體化紅外接收頭、溫度傳感器DS18B20、壓電式傳感器超聲。可以根據(jù)需要用紅外遙控來選擇不同的運行模式,并實時地將運行結(jié)果在1602液晶顯示出來,具有較好的人機界面。本作品可以用于測溫、測距,測量精度較高,測量效果很好。如果經(jīng)過稍微改裝,還可以將本作品應(yīng)用在機器人和汽車上。關(guān)鍵詞:傳感器 超聲波 溫度 測距Abstract:Infrared remote ultrasonic rangefinder is as the core of the ultrasonic sensor combination

2、.This works using infrared sensor integrated infrered receiving head, the temperature sensor DS18B20, piezoelectric sensors ultrasound. According to need to choose a different infrared remote operation mode, and the real-time operating results in 1602 LCD display, has good human-machine interface.Th

3、is work can be used to measuring temperature range, high precision measurement, measurement, the effect is very good,.If after slightly modified, also can be used in the robot and autompbile works 目 錄摘 要I一、系統(tǒng)總體設(shè)計1二、硬件設(shè)計2(一) AT89S52單片機主控模2(二) NE555產(chǎn)生40kHz頻率模塊3(三) 超聲波測距收發(fā)模塊4(1) 超聲波發(fā)生器4(2) 壓電式超聲波發(fā)生器原理4

4、(3) 超聲波測距原理41、 超聲波發(fā)射模塊52、 超聲波接收模塊5(四) DS18B20溫度測量模塊7(五)紅外遙控模塊7(六) 1602液晶顯示模塊9三、 程序設(shè)計11(一) 超聲波測距收發(fā)模塊程序設(shè)計13(二) DS18B20溫度測量模塊程序設(shè)計14(三) 紅外遙控模塊程序設(shè)計161、0和1的編碼172、按鍵的編碼173、 遙控信號的解碼算法及程序編寫17(四) 1602液晶顯示模塊程序設(shè)計19四、結(jié)束語20五、謝辭21六、 參考文獻(xiàn)22 一、 系統(tǒng)總體設(shè)計 圖1.1-1 系統(tǒng)總體設(shè)計框圖紅外遙控超聲波測距儀主要由AT89S52單片機主控模塊、NEE555產(chǎn)生40kHz頻率模塊、超聲波測

5、距收發(fā)模塊、DS18B20溫度測量模塊、紅外遙控模塊、1602液晶顯示模塊等模塊組成。本作品用AT89S52單片機主控模塊來控制系統(tǒng)的運行,用紅外遙控模塊做模式選擇,用DS18B20溫度測量模塊測量溫度,用NEE555產(chǎn)生40kHz頻率模塊供給超聲波測距收發(fā)模塊,用超聲波測距收發(fā)模塊來接收和發(fā)射超聲波信號,用1602液晶顯示模塊來顯示運行結(jié)果。本作品開始運行時在1602液晶顯示屏上顯示作者的名字,然后自動提示用戶進(jìn)行模塊選擇,按遙控上的“1”鍵只測量溫度并顯示;按“2”鍵只測量距離并顯示;按“3”鍵測溫測距并顯示;按“4”鍵顯示作者的名字。用戶可以根據(jù)需要用紅外遙控來選擇不同的運行模式。 二、

6、 硬件設(shè)計(一) AT89S52單片機主控模 圖(一)-1 AT89S52單片機主控模塊圖圖(一)-1中的坐下部是電源模塊用9V供電經(jīng)7805穩(wěn)壓為5V后供給系統(tǒng)使用。左上部是52單片機的復(fù)位電路,按下按鍵可以手動復(fù)位。LOAD_SE1是下載頭,用來下載程序。單片機的CON接到NE555產(chǎn)生40kHz頻率模塊,INTO接到紅外遙控模塊,BACK_PLUS接到超聲波測距收發(fā)模塊,DQ接到DS18B20溫度測量模塊,E、RW、RS、D0-D7接到1602液晶顯示模塊。AT89S52單片機簡介:AT89S52 是一個低功耗,高性能CMOS 8 位單片機,片內(nèi)含 8k Bytes ISP的可反復(fù)擦寫1

7、000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標(biāo)準(zhǔn)MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S52可為許多嵌入式控制應(yīng)用系統(tǒng)提高性價比的解決方案。 (二) NE555產(chǎn)生40kHz頻率模塊 圖(二)-1 NE555產(chǎn)生40kHz頻率模塊圖 圖(二)-1 中當(dāng)SW1開關(guān)撥到VCC端時,NE555連續(xù)發(fā)射頻率;當(dāng)接到CON端時,由單片機來控制是否發(fā)射頻率,當(dāng)CON為高電平時發(fā)射,低電平時不發(fā)射。40KHZ_SEND將產(chǎn)生占空比約為1:2的40kHz的頻率,40K

8、HZ_SEND接到超聲波測距收發(fā)模塊。NE555簡介:NE555時基集成電路是8腳的數(shù)字集成電路,是由21個晶體三極管、4個晶體二極管和16個電阻組成的定時器,有分壓器、比較器、觸發(fā)器和放電器等功能的電路。它具有成本低、易使用、適應(yīng)面廣、驅(qū)動電流大和一定的負(fù)載能力。在電子制作中只需經(jīng)過簡單調(diào)試,就可以做成多種實用的各種小電路,遠(yuǎn)遠(yuǎn)優(yōu)于三極管電路。 (三) 超聲波測距收發(fā)模塊 超聲波測距原理:(1) 超聲波發(fā)生器 為了研究和利用超聲波,人們已經(jīng)設(shè)計和制成了許多超聲波發(fā)生器??傮w上講,超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波,一類是用機械方式產(chǎn)生超聲波。電氣方式包括壓電型、磁致伸縮型

9、和電動型等;機械方式有加爾統(tǒng)笛、液哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。(2) 壓電式超聲波發(fā)生器原理 壓電式超聲波發(fā)生器實際上是利用壓電晶體的諧振來工作的。超聲波發(fā)生器內(nèi)部結(jié)構(gòu)如圖2.3-1所示,它有兩個壓電晶片和一個共振板。當(dāng)它的兩極加脈沖信號,其頻率等于壓電晶片的固有頻率時,壓電晶片將會發(fā)生共振,并帶動共振板振動,便產(chǎn)生超聲波。反之,如果兩電極間未外加電壓,當(dāng)共振板接收到超聲波時,將壓迫壓電晶片作振動,將機械能轉(zhuǎn)換為電信號,這時它就成為超聲波接收器了。 圖(1) 超聲波發(fā)生器內(nèi)部結(jié)構(gòu)圖(3) 超聲波測距原

10、理 途中碰到障礙物就立即返回來,超聲波接收器收到反射波就立即停止計時。若超聲波在空氣中的傳播速度為340m/s,根據(jù)計時器記錄的時間t ,就可以計算出發(fā)射點距障礙物的距離(s),即:s=340t/s,這就是所謂的時間差測距法。 1、 超聲波發(fā)射模塊 圖1 超聲波發(fā)射模塊圖40kHz頻率可以由單片機產(chǎn)生,也可以由NE555產(chǎn)生,本作品用NE555產(chǎn)生,產(chǎn)生的頻率穩(wěn)定,控制也方便。圖2.3.1 中的非門CD4049對40kHz頻率信號進(jìn)行調(diào)理,以使超聲波傳感器產(chǎn)生諧振。2、 超聲波接收模塊 圖2-1 超聲波接收模塊圖 超聲波接收處理部分電路前級采用NE555構(gòu)成10000倍放大器,對接收信號進(jìn)行放

11、大;后級采用LM311比較器對接收信號進(jìn)行調(diào)整,比較電壓為LM311的3管腳的輸入。LM311輸出7腳在圖2.3.2-1的電路中,無回波信號時輸出低電平;當(dāng)有回波信號時輸出方波,有下降沿出現(xiàn),單片機進(jìn)入外部中斷程序。 NE5532簡介: 圖2-2 NE5532引腳圖NE5532是高性能低噪聲運放,與很多標(biāo)準(zhǔn)運放相似,它具有較好的噪聲性能,優(yōu)良的輸出驅(qū)動能力及相當(dāng)高的小信號與電源帶寬。(四) DS18B20溫度測量模塊 圖(四) DS18B20溫度測量模塊圖(五) 紅外遙控模塊 圖(五)-1 紅外遙控模塊圖 圖(五)-2 紅外一化接頭0038圖 圖(五)-3 科朗800合1萬能電視遙控器RM-2

12、008+圖此模塊的INT0到單片機的外部中斷0。當(dāng)遙控?zé)o按鍵按下時,INT0高電平;當(dāng)遙控有按鍵按下時,INTO出現(xiàn)低電平,進(jìn)入外部中斷服務(wù)程序,程序里對按鍵解碼識別后,就可以根據(jù)不同的按鍵來做不同的相應(yīng)操作。如系統(tǒng)工作的模式選擇等。遙控器使用方便,功能多。目前已廣泛應(yīng)用在電視機、VCD、DVD、空調(diào)等各種家用電器中,且價格便宜,市場上非常容易買到。如果能將遙控器上許多的按鍵解碼出來。用作單片機系統(tǒng)的輸入。則解決了常規(guī)矩陣鍵盤線路板過大、布線復(fù)雜、占用I/O口過多的弊病。而且通過使用遙控器,操作時可實現(xiàn)人與設(shè)備的分離,從而更加方便使用。紅外遙控接收可采用較早的紅外接收二極管加專用的紅外處理電路

13、的方法。如CXA20106,此種方法電路復(fù)雜,現(xiàn)在一般不采用。較好的接收方法是用一體化紅外接收頭,它將紅外接收二極管、放大、解調(diào)、整形等電路做在一起,只有三個引腳,分別是+5V電源、地、信號輸出。紅外接收頭的信號輸出接單片機的INT0或INT1腳。用一只PNP型三極管對輸出信號進(jìn)行放大效果更好。(六) 1602液晶顯示模塊 圖(六)-1 1602液晶顯示模塊圖1602字符型LCD簡介: 字符型液晶顯示模塊是一種專門用于顯示字母、數(shù)字、符號等點陣式LCD,目前常用16*1,16*2,20*2和40*2行等的模塊。下面以長沙太陽人電子有限公司的1602字符型液晶顯示器為例,介紹其用法。一般1602

14、字符型液晶顯示器實物如圖2.6-2、2.6-3。 圖(六)-2 1602字符型液晶顯示器實物正面圖 圖(六)-3 1602字符型液晶顯示器實物背面圖 三、 程序設(shè)計 系統(tǒng)總體程序設(shè)計: 圖三 系統(tǒng)總體程序設(shè)計框圖系統(tǒng)總體程序設(shè)計部分: Viod key_scan(Viod) Switch(Key_control) case 1: DS18B20(); Display_temperrature(); Break; case 2: Distance_measure(); Break; case 3: DS18B20(); Distance_measure(); Break; case 4: Dis

15、play_List_Char(0,2,“Powered by:”); Display_List_Char(1,4,“WuFei Yun”); Viod init(Viod) PX0=1; IT0=1; EX0=1; EA=1; initial_lcd1602(); Display_List_Char(0,2,“Powered by:”); Display_List_Char(1,6,“Feewon”); delay_ls(); initial_lcd1602(); Display_List_Char(0,0,“REMOTE CONTROL”); Viod main(Viod) init();

16、while(1) Key_scan(); (一) 超聲波測距收發(fā)模塊程序設(shè)計 Void INT1_UItrasonic() interrupt 2 TR0=0; CON=0; EX1=0; high_time=TH0; low_time=TL0; disttest_count=Distance_count(); if(disttest_count6) test_count+; if(test_count=6) Sort(dist,test_count); Distance=average()-4; Dispart(); /for(i=;i20;i+) display_dis(); test_c

17、ount=0; Finish=1; Viod Distance_measure(viod) CON=0; Finish=0; TMOD=0x11; TH0=0; TL0=0; TR0=0; IT1=1; EX1=1; EA=1; CON=1; TRO=1; While(finish=0); Delay_200ms();(二) DS18B20溫度測量模塊程序設(shè)計 Viod Delay(int useconds) Int s; For(s=0;suseconds;s+);Uchar Reset_Bus(viod) Uchar presence; DQ=0; Delay(29); DQ=1; Del

18、ay(3); Presence=DQ; Delay(25); Return(presence);Viod Write_Bit(char bitval) DQ=0; If(bitval=1) DQ=1; Delay(5); DQ=1; Delay(5)=104us Void Write_Byte(char val) Uchar I; Uchar temp; For(i=0;ii; Temp&=Ox01; Write_Bit(temp); Delay(5); Uchar Read_Bit(void) Uchar i; DQ=0; DQ=1; For(i=0;i3;i+); Return(DQ);

19、Uchar Read_Byte(void) Uchar i; Uchar value=0; For(i=0;i8;i+) If(Read_Bit() Value|=(Ox01i); Delay(6); Return(value); Unit DS18B20_Tmp_Read(void) Unit TEMP; Uchar TEMP_L,TEMP_H; Reset_Bus(); Write_Byte(OxCC); Write_Byte(Ox44); Delay(5); Reset_Bus(); Write_Byte(OxCC); Write_Byte(OxBE); TEMP_L=Read_Byte

20、(); TEMP_H= Read_Byte(); TEMP= TEMP_H; TEMP= TEMP8&Oxf0); Sign2=0; If(Sign= Oxf0) Tmp=(tmp)+1; Sign2=1; Tmp_point=(uchar)(tmp&Ox0f); Tmp_integer=(uchar)(tmp4)&Oxff); Tmp_point= Tmp_point*6.25; Point_two_t=tmp_point%10; Point_one_t=tmp_point/10; One_t=tmp_integer%10; Ten_t=(tmp_integer%100)/10; Void

21、Display_temperarure(void) Display_List_Char(0,2,”Tem:”); Display_One_Char(0,7,LCD_Codeten_t); Display_One_Char(0,8,LCD_Codeten_t); Display_One_Char(0,9,LCD_Codepoint); Display_One_Char(0,10,LCD_Codepoint_one_t); Display_One_Char(0,11,LCD_Codepoint_two_t); Display_List_Char(0,13,”C”); Void DS18B20(vo

22、id) Tmp=DS18B20_Tmp_Read(); Tem_deal(); Display_temperature(); (三) 紅外遙控模塊程序設(shè)計 圖(三)-1 0和1的編碼圖 圖(三)-2 接收波形圖1、 0和1的編碼 遙控器發(fā)射的信號由一串0和1的二進(jìn)制代碼組成,不同的芯片對0和1的編碼有所不同。通常有曼徹斯特編碼和脈沖寬度編碼。TC9012的0和1采用PWM方法編碼,即脈沖寬度調(diào)制,其0碼和1碼如3.3-1所示。0碼由0.56ms低電平和1.69ms高電平組合而成,脈沖寬度為2.25ms。在編寫解碼程序時,通過判斷脈沖的寬度,即可得到0或1。2、 按鍵的編碼當(dāng)我們按下遙控器的按鍵

23、時,遙控器將發(fā)出如圖3.3-2的一串二進(jìn)制代碼,我們稱它為一幀數(shù)據(jù)。根據(jù)各部分的功能。可將它們分為5部分,分別為引導(dǎo)碼、地址碼、數(shù)據(jù)碼、數(shù)據(jù)反碼。遙控器發(fā)射代碼時,均是低位在前,高位在后。由圖3.3-2分析可以得到,引導(dǎo)碼高電平為4.5ms,低電平為4.5ms。當(dāng)接收到此碼時,表示一幀數(shù)據(jù)的開始,單片機可以準(zhǔn)備接收下面的數(shù)據(jù)。地址碼由8位二進(jìn)制組成,共256種,圖中地址碼重發(fā)了一次。主要是加強遙控器的可靠性。如果兩次地址碼不同,則說明本幀數(shù)據(jù)有錯,應(yīng)丟棄。不同的設(shè)備可以擁有不同地址沒碼。因此,同種編碼的遙控器只要設(shè)置地址碼不同,也不會相互干擾。圖中的地址碼為十六進(jìn)制的0EH。在同一個遙控器中,

24、所有按鍵發(fā)出的地址碼都是相同的。數(shù)據(jù)碼為8位,可編碼256種狀態(tài),代表實際所按下的鍵。數(shù)據(jù)反碼是數(shù)據(jù)碼的各位求反,通過比較數(shù)據(jù)碼與數(shù)據(jù)反碼,可判斷接收到的數(shù)據(jù)是否正確。如果數(shù)據(jù)碼與數(shù)據(jù)反碼之間的關(guān)系不滿足相反的關(guān)系,則本次遙控接收有誤,數(shù)據(jù)應(yīng)丟棄。在同一個遙控器上,所有按鍵的數(shù)據(jù)碼均不相同。在圖3.3-2中,數(shù)據(jù)碼為十六進(jìn)制的0CH,數(shù)據(jù)反碼為十六進(jìn)制的0F3H,兩者之和應(yīng)為0FFH。3、 遙控信號的解碼算法及程序編寫平時,遙控器無鍵按下,紅外發(fā)射二極管不發(fā)出信號,遙控接頭輸出信號1。有鍵按下時,0和1編碼的高電平靜遙控頭倒相后會輸出信號0,由于與單片機的中斷腳相連,將會引起單片機中斷。單片機

25、在中斷時使用定時器0或定時器1開始計時,到下一個脈沖到來時,即再次產(chǎn)生中斷時,先將計時值取出。清零計時值后再開始計時,通過判斷每次中斷與上一次中斷之間的時間間隔,便可知接收到的是引導(dǎo)碼還是0和1。如果計時值為9ms,接收到的是引導(dǎo)碼,如果計時值等于1.12ms,接收到的是 0,如果計時值等于2.25ms,接收到的是編碼1。在判斷時間時,應(yīng)考慮一定的誤差值。因為不同的遙控器由于晶振參數(shù)等原因,發(fā)射及接收到的時間也會有很小的誤差。 Viod IR_dccode() Uchar I,j; While(RECEIVE=0); Dlay 2400(); If(RECEIVE=1) delay 2400(); for(i=0;i4;i+) For(j=0;j=1; Datei=datei&0x7f; Clse if(receive=1) date 1000(); datei=1; datei|0x80; (

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論