自動化專業(yè)課程設計講解_第1頁
自動化專業(yè)課程設計講解_第2頁
自動化專業(yè)課程設計講解_第3頁
自動化專業(yè)課程設計講解_第4頁
自動化專業(yè)課程設計講解_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、自動化專業(yè)課程設計便攜式測距儀系統(tǒng)設計學生學號: 2009041227 學生姓名: 李玉成 班 級: 09412 指導教師: 王輝 起止日期: 哈爾濱工程大學自動化學院1、 設計要求 用單片機設計一套超聲波測距檢測系統(tǒng),實現(xiàn)對測距的顯示和提示以及臨界報警2、 設計方案設計思路由于超聲波指向性強,能量消耗緩慢,在介質中傳播的距離較遠,因而超聲波經(jīng)常用于距離的測量。利用超聲波檢測距離,設計比較方便,計算處理也較簡單,并且在測量精度方面也能達到工業(yè)生產(chǎn)等自動化的使用要求。 超聲波發(fā)生器可以分為兩大類:一類是用電氣方式產(chǎn)生超聲波,一類是用機械方式產(chǎn)生超聲波。電氣方式包括壓電型、電動型等;機械方式有加爾

2、統(tǒng)笛、液哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率、和聲波特性各不相同,因而用途也各不相同。目前在近距離測量方面常用的是壓電式超聲波換能器。根據(jù)設計要求并綜合各方面因素,本文采用STC89C52單片機作為控制器,用1602液晶進行溫度及距離的顯示,超聲波驅動信號用單片機的定時器。在北方季節(jié)溫差較大,對聲速的影響也就比較大,如果對測量精度要求較高時,傳統(tǒng)的那種將聲速固定用 340m/s 來計算距離的方式就無法滿足需求。所以為了提高測量隊精確性,在本設計中加入了以DS18B20為核心的溫度補償裝置。測量時先通過溫度傳感器DS18B20測出當前環(huán)境溫度,然后用STC89S52單片機計算出此時的聲

3、速,再測量超聲波發(fā)射和返回的時間差,以此算出最終距離。本系統(tǒng)的超聲波測距可測出回波和發(fā)射脈沖之間的時間間隔,再利用公式S=Ct/2就可以算出距離,通過溫度傳感器測出當前溫度6,以此計算出當前聲速,測出更加準確的距離值,最終在1602液晶上顯示出來。當測量距離過近貨過遠時,系統(tǒng)會發(fā)出警告。正常距離予以顯示。為了實現(xiàn)以上功能,系統(tǒng)大致設計了如下幾個模塊:(1)單片機最小系統(tǒng)(2)液晶顯示模塊(3)超聲波接收、發(fā)射模塊(4)報警模塊(5)溫度補償模塊(6)電源模塊設計方案的論證 超聲波測距的原理是利用超聲波的發(fā)射和接受,根據(jù)超聲波傳播的時間來計算出傳播距離。實用的測距方法有兩種,一種是在被測距離的兩

4、端,一端發(fā)射,另一端接收的直接波方式,適用于身高計;一種是發(fā)射波被物體反射回來后接收的反射波方式,適用于測距儀。此次設計采用反射波方式。 測距儀的分辨率取決于對超聲波傳感器的選擇。超聲波傳感器是一種采用壓電效應的傳感器,常用的材料是壓電陶瓷。由于超聲波在空氣中傳播時會有相當?shù)乃p,衰減的程度與頻率的高低成正比;而頻率高分辨率也高,故短距離測量時應選擇頻率高的傳感器,而長距離的測量時應用低頻率的傳感器。3、 設計內(nèi)容超聲波測距的原理 超聲波的產(chǎn)生與接受通常由兩只結構完全相同的超聲壓電換能器分別完成。超聲波的產(chǎn)生是利用壓電陶瓷的逆壓電效應7,在交變電壓作用下,壓電陶瓷縱向長度周期性地伸縮,產(chǎn)生機械

5、振動而在空氣中激發(fā)出超聲波;超聲波的接受則是利用壓電陶瓷的正壓電效應是聲壓變化為電壓的變化。超聲測距的原理大多采用渡越時間法,本設計采用的是超聲波測距最常用的方法渡越時間探測法。即在聲速已知的情況下,通過測量超聲波回聲所經(jīng)歷的時間來獲得距離。其原理圖如圖2.1所示。圖2.1 超聲波測距原理圖即: (2.1)式中:為換能器與障礙物之間的距離;c為聲波傳播速度, (2.2)為氣體定壓比熱與定容比熱之比,R為普實氣體常數(shù);T為絕對溫度;m為氣體的分子量;t為超聲波發(fā)射到返回的時間間隔。在本設計中,超聲波傳播的介質默認為是空氣,因為北方溫差較大,為了提高精確度加入了溫度補償裝置,但為了使設計簡便,忽略

6、了濕度對聲速的影響。隨意聲速c的最終計算公式為 (2.3)超聲波測距儀的工作原理通常為:在單片機的控制下,超聲波發(fā)射電路產(chǎn)生40 kHz脈沖,經(jīng)過放大后驅動發(fā)射端發(fā)射。同時單片機內(nèi)部計數(shù)器開始計數(shù),超聲波被反射后再接收端轉換為電信號,經(jīng)過濾波放大后送給檢波器,一旦檢波器收到了回波,計數(shù)器就停止工作,得到計數(shù)值。然后單片機根據(jù)計數(shù)頻率和溫度補償電路測得聲速,計算并得到待測距離。超聲波測距儀的模塊電路本設計的超聲波測距儀分為7個模塊8。超聲波發(fā)射模塊、超聲波接收模塊,溫度測量模塊,單片機控制模塊,顯示模塊,報警模塊,電源模塊組成。7個模塊協(xié)同工作共同完成檢測任務。障礙物單片機超聲波接收濾波放大倍整

7、壓流比較電路超聲波發(fā)射整形及功放發(fā)射震蕩溫度補償顯示報警電源圖2.2 系統(tǒng)硬件結構圖超聲波測距系統(tǒng)的硬件設計本文設計的硬件電路主要包括單片機系統(tǒng)、超聲波發(fā)射電路、超聲波接收電路、液晶顯示電路部分、溫度補償部分、報警電路和電源電路。電源部分可以通過電池或是電源來為整個系統(tǒng)供電;單片機系統(tǒng)用來產(chǎn)生控制脈沖,控制超聲波的發(fā)射,并且對接收回來的信號進行處理計算;超聲波發(fā)射電路部分主要用來產(chǎn)生40KHz的超聲波,并且有驅動電路發(fā)射換能器發(fā)射出去;超聲波接收電路部分用來檢測超聲波回波信號,超聲波回波經(jīng)超聲接收換能器,放大濾波,檢波電路后進入比較器,比較器輸出端的信號進入單片機產(chǎn)生中斷,用于計時;溫度補償部

8、分將測得的溫度輸入單片機中,方便單片機計算出當前溫度下的聲速;最終單片機將計算的距離值在液晶1602上面顯示出來。(1)STC89C52RC單片機最小系統(tǒng)STC89C52是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲器。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng)可編程Flash,使得STC89C52為眾多嵌入式控制應用系統(tǒng)提供高靈活、超有效的解決方案。 具有以下標準功能: 8k字節(jié)Flash,512字節(jié)RAM, 32 位I/O 口線,看門狗定時器,內(nèi)置4KB EEPROM,MAX810復位電路,2個16 位 定時器/計數(shù)器,一個6向量2級中斷結構,全雙工串

9、行口。另外 STC89X52 可降至0Hz 靜態(tài)邏輯操作,支持2種軟件可選擇節(jié)電模式??臻e模式下,CPU 停止工作,允許RAM、定時器/計數(shù)器、串口、中斷繼續(xù)工作。掉電保護方式下,RAM內(nèi)容被保存,振蕩器被凍結,單片機一切工作停止,直到下一個中斷或硬件復位為止。最高運作頻率35MHz,6T/12T可選。 復位電路 時鐘電路 單片機最小系統(tǒng)電路 單片機與PC機接口部分(2)超聲波發(fā)射電路1、發(fā)射電路主要由六反向器芯片74HC04和超聲波換能器構成,P3.7端口輸出的40khz方波信號一路經(jīng)反向器送到超聲波換能器的一個電極,另一路經(jīng)兩級反向器后送到超聲波換能器的另一個電極,用這種方式可以提高超聲波

10、的發(fā)射強度。電路圖如圖2.7所示。每次啟動超聲發(fā)射換能器所使用的脈沖數(shù)目不宜過多也不宜過少,過少則容易衰減,過多則發(fā)射波與反射波會產(chǎn)生疊加干擾,一般以816個脈沖為宜。系統(tǒng)通過單片機輸出相應的有效電平與40KHz方波邏輯與實現(xiàn)激勵脈沖數(shù)目的控制。測量盲區(qū):超聲波在發(fā)射的時候,是一個高壓脈沖,并且脈沖結束后,換能器會有一個比較長時間的余震,會有一部分聲波未經(jīng)反射直接到達接收換能器,產(chǎn)生虛假反射波,然后接受換能器才能收到真正的反射波,這段時間從幾百個us到幾個ms都有可能, 因此在這個時間段內(nèi),聲波的回波信號是沒有辦法跟發(fā)射信號區(qū)分的。因此,被測物體在這個范圍內(nèi),回波和發(fā)射波區(qū)分不開,也就沒有辦法

11、測距,也就形成了測量的盲區(qū)。圖2.7 超聲波發(fā)射電路2、74HC04概述74HC04是一款高速CMOS器件15,74HC04引腳兼容低功耗肖特基TTL(LSTTL)系列。74HC04遵循JEDEC標準NO.7A。(1)74HC04提供了6路反相緩沖器。其邏輯圖如圖2.8所示。其中Y代表數(shù)據(jù)輸出,A代表數(shù)據(jù)輸入。實際就是6個反相器集成在一個芯片中,在電路中可以單獨使用一個或同時使用幾個反相器。(2)74HC04特性兼容JEDEC標準NO.8-1AESD保護 HBM EIA/JESD22-A114-A超過2000VMM EIA/JESD22-A115-A超過200V溫度范圍-40+85-40+12

12、5(3)74HC04 基本參數(shù) 電壓:2.06.0V驅動電流:+/-5.2mA傳輸延遲:7ns5V(4)74HC04其他特性邏輯電平CMOS功耗考量:低功耗或電池供電應用 圖2.8 74HC04邏輯圖(3)超聲波接收電路 集成電路CX20106A 是一款紅外線檢波接受的專用芯片, 常用于電視機紅外遙控接收器??紤]到紅外遙控常用的載波頻率38kHz與測距的超聲波40kHz較為接近,可以利用它制作超聲波檢測接收電路,適當更改電容C4 的大小可以改變接收電路的靈敏度和抗干擾能力。CX20106Aa的內(nèi)部結構圖如圖2.9所示。前置電路將接收到的信號,轉換成CX20106A可以接收的標準數(shù)字信號,送到C

13、X20106A的1腳,CX20106A的總放大增益約為80dB,其7腳輸出的控制脈沖序列信號幅度在3.55V范圍內(nèi)??傇鲆娲笮∮?腳外接的R2、C2決定,R2越小或C2越大,增益越高。但取值過大時將造成頻率響應變差,C2為3.3uF。采用峰值檢波方式檢波電容C3為3.3uF。R3為帶通濾波器中心頻率f0的外部電阻。積分電容C4取330pF。通過CX20106a芯片的信號,在輸出端會產(chǎn)生一個下降沿,并將此接到AT89S52單片機的外部中斷上。在本電路的調(diào)試過程中,如果一直發(fā)射超聲波,在7腳將會有周期的低電平產(chǎn)生。因此在此基礎上只要通過AT89S52單片機來計算發(fā)射信號到接收到信號時產(chǎn)生下降沿這段

14、時間的長度,再通過數(shù)學計算,轉化為距離,然后在LCD上面顯示出來。 CX20106A內(nèi)部結構圖超聲波接收芯片的外圍電路(4)顯示部分顯示部分采用字符型LCD1602液晶顯示所測距離值,將P0與LCD的數(shù)據(jù)線相連,P1口與LCD的控制線相連,3腳電位器控制液晶背光亮度。電路如圖3.3所示: 顯示電路(5)電源電路為了實現(xiàn)超聲波測距儀的便攜性,本設計中加入了由電池供電的電源電路。電源電路采用兩節(jié)3V鋰電池供電,回路中加入了一個自鎖開關以便于控制電路的通斷。因為電池隨著使用電壓會發(fā)生變化,所以還加入了一個1K的滑動變阻器和一個穩(wěn)壓二極管,隨時可以調(diào)節(jié)電壓的大小,使電路供電穩(wěn)定。最后為了便于觀察電路的

15、通斷,回路中加入了一個綠色LED。電源部分電路如圖2.14所示。除了電池供電外,本設計預留了電源接頭,也可以通過穩(wěn)壓電源直接進行5V供電。此外,還可以通過USBASP下載器直接用電腦通過USB接口供電。 電源電路(6)報警電路報警電路作為超聲波測距儀的一個拓展功能也被加入了設計中,其由一個有源蜂鳴器,一個S8050的NPN三極管,一個1K電阻和一個紅色LED組成,在這種設計中,三極管起到開關的作用。當測距失敗或者距離過近時,蜂鳴器會發(fā)出短暫的警告音,同時紅燈閃爍,引起使用者的注意。 報警電路(7)溫度補償電路本系統(tǒng)溫度傳感器DS18B20及其周邊工作電路設計如圖2.18所示。因為AT89S52

16、單片機的P1口的驅動能力較強,所以在設計時直接將18B20溫度傳感器的接在了單片機的P10口。然后將其余兩腳分別接地和電源。DS18B20溫度傳感器外形類似一個三極管,是美國Dallas半導體公司繼DS1820之后最新推出的一種改進型智能溫度傳感器。與傳統(tǒng)的熱敏電阻相比,他能夠直接讀出被測溫度并且可根據(jù)實際要求通過簡單的編程實現(xiàn)9-12位的數(shù)字值讀數(shù)方式。可以分別在93.75ms和750ms內(nèi)完成9位和12位的數(shù)字量。它具有獨特的單總線接口方式,即允許在一條信號線上掛接數(shù)十甚至上百個數(shù)字式傳感器,從而使測溫裝置與各傳感器的接口變得十分簡單,克服了模擬式傳感器與微機接口時需要的A/D轉換器及其它

17、復雜外圍電路的缺點,而且,可以通過總線供電,溫度變換功率來源于數(shù)據(jù)總線,總線本身也可以向所掛接的DS18B20供電,而無需額外電源,由它組成的溫度測控系統(tǒng)非常方便,而且成本低、體積小、可靠性高。DS18B20的測溫范圍-55+125,最高分辨率可達0.0625,由于每一個DS18B20出廠時都刻有唯一的一個序列號并存入其ROM中,因此CPU可用簡單的通信協(xié)議就可以識別,從而節(jié)省了大量的引線和邏輯電路。Dallas公司的單總線技術具有較高的性能價格比,有以下特點:適用于低速測控場合,測控對象越多越顯出其優(yōu)越性;性價比高,硬件施工、維修方便,抗干擾性能好;具有CRC校驗功能,可靠性高;軟件設計規(guī)范

18、,系統(tǒng)簡明直觀,易于掌握。 18B20溫度傳感器電路超聲波測距系統(tǒng)的軟件設計及流程圖1、軟件流程圖本設計軟件主程序流程圖如圖10所示, (a)為主程序流程圖,(b)為外部中斷子程序流程圖。 (a) 主程序流程圖 (b) 外部中斷流程圖2. 主程序#include#include#include typedef unsigned char U8; /* defined for unsigned 8-bits integer variable無符號8位整型*/typedef signed char S8; /* defined for signed 8-bits integer variable有

19、符號8位整型*/typedef unsigned int U16; /* defined for unsigned 16-bits integer variable無符號16位整型*/typedef signed int S16; /* defined for signed 16-bits integer variable有符號16位整型*/typedef unsigned long U32; /* defined for unsigned 32-bits integer variable無符號32位整型*/typedef signed long S32; /* defined for sig

20、ned 32-bits integer variable 有符號32位整型*/typedef float F32; /* single precision floating point variable (32bits)單精度浮點數(shù)32位長度*/typedef double F64; /* double precision floating point variable (64bits)雙精度浮點數(shù)64位*/#define SYSTEMCLK 921600 /11059200/12#define T0CLK 921600 /11059200/12#define T1CLK 921600 /11

21、059200/12#define T1PERIOD 1000000/921600 /T1周期時間,以微秒為單位,約為1.085uS#define TIMER0H 0xFC /64614/256=252#define TIMER0L 0x66 /54447%256=102/管腳定義sbit fs=P37;sbit js=P32;sbit alarm=P20;sbit BUSY=P17 ;sbit RS = P25 ;sbit RW = P26 ;sbit EN = P35 ; sbit DQ=P27;/定義標志volatile bit FlagSucceed = 0; /測量成功標志volati

22、le bit FlagDisplay = 0; /顯示標志/定義全局變量U16 DisplayCount=0;U16 time=0;U32 distance=0;uchar fushu;uchar T;uchar data display_T=0,0,0,0,0,0;/函數(shù)聲明void delay_20us();void Start_Module();void INT0_Init(void);void Data_Init();void Timer0_Init();void Timer1_Init();void wait(void)P1 = 0xFF;doRS = 0;RW = 1;EN = 0

23、;EN = 1;while (BUSY = 1);EN = 0;void delay(uchar i)while(i)i-;void init_DS18B20()while(reset();delay(100);DQ=1;bit write_bit(uchar temp)DQ=0;if(temp) DQ=1;delay(5);DQ=1;void write_byte(uchar word)uchar temp,i;for(i=0;ii;write_bit(temp&0x01);bit read_bit()DQ=0;_nop_();_nop_();DQ=1;delay(2);return DQ;

24、uchar read_byte()uchar b;uchar i,temp=0;for(i=0;i8;i+)b=0;if(read_bit()b=1;temp|=(b127) /溫度為負值 temp_data_l=(temp_data_l)+1; /取反加一,將補碼變成原碼 if(temp_data_l)=0xff) temp_data_h=(temp_data_h)+1; else temp_data_h=temp_data_h; fushu=1; display_T4=(temp_data_l&0x0f)*10/16+0x30; /10/16T=(temp_data_l&0xf0)4)|(

25、temp_data_h&0x0f)4);/zheng shu display_T0=(T/100+48);display_T1=(T%100)/10+48);display_T2=(T%10+48);display_T3=.;display_T5=0; /kai zhong duan /20us延時程序,不一定很準void delay_20us() U16 bt ; for(bt=0;bt= 1000) /1秒鐘顯示一次 FlagDisplay = 1; DisplayCount = 0; /定時器1初始化,16位計數(shù)模式,時鐘為11059200/12=921600Hz/60ms計數(shù)為5529

26、6,即0xD800void Timer1_Init()TMOD = 0x11; /定時器0和1工作在16位方式TH1 =0;TL1= 0;ET1 = 1;/啟動模塊,Trig管腳20us正脈沖void Start_Module() /啟動模塊 fs=1; /啟動一次模塊 delay_20us(); fs=0;void delay()S16 i,j;for(i=0; i=10; i+)for(j=0; j= 0) sign = 0; else sign = 1; temp = abs(num); baiwei = temp / 100; temp = temp - baiwei*100; shi

27、wei = temp / 10; gewei = temp - shiwei*10; num = abs(num); if (num=100) if (sign = 1) /負數(shù) L1602_char(hang, lie, -); L1602_char(hang, lie+1, baiwei+48); L1602_char(hang, lie+2, shiwei+48); L1602_char(hang, lie+3, gewei+48); else if (num=10) if (sign = 1) L1602_char(hang, lie+1, -); L1602_char(hang, l

28、ie+2, shiwei+48); L1602_char(hang, lie+3, gewei+48); else if (sign = 1) L1602_char(hang, lie+2, -); L1602_char(hang, lie+3, gewei+48); /* 名稱 : Main()* 功能 : 主函數(shù)*/void main() U16 i, j; EA = 0;/計時器停止工作 INT0_Init();Timer0_Init(); /定時器0初始化Timer1_Init(); /定時器1初始化 Data_Init();EA = 1;/計時器開始工作 alarm=0; L1602

29、_init(); read_T(); L1602_string(1,1,TEM:); if(fushu)write(-); display(display_T); for (i=0;i1000;i+) for (j=0;j1000;j+);while(1) EA= 0; /以下為一次檢測過程:先發(fā)出fs電平,打開外部中斷,清零T1,/最后在外部中斷下降沿觸發(fā)時取出T1當前值,計算出Trig脈沖寬度。 Start_Module(); while(js=0); /等待Echo回波引腳變高電平FlagSucceed = 0;EX0=1;TH1= 0;TL1= 0;TF1= 0; TR1=1; /啟動

30、定時器1開始計數(shù)EA = 1;while (TH180) ; /盲區(qū)TR1 = 0; /關閉定時器1EX0 = 0; /關閉外部中斷 if(FlagSucceed=1) /一次測試成功,則計算距離,單位為厘米 distance = time * 1.085 ; distance /=58; if (FlagSucceed = 1) & (distance 20) alarm = 0; else alarm = 1; if (FlagDisplay = 1) /1秒顯示時間到 if(FlagSucceed=0) /LCD提示無回波 L1602_string(1,1,OutOfRange(0-4m

31、); L1602_string(2,1, - ); else /LCD顯示數(shù)據(jù) L1602_string(1,1,Distance Result:); L1602_string(2,1, cm ); L1602_int(2, 5, distance ); FlagDisplay = 0; 4、 調(diào)試結果分析及結論測距系統(tǒng)的最終效果該電路板可以顯示溫度和距離,當距離小于20cm時蜂鳴器會發(fā)出警告,當距離大于4m時將顯示“out of 04m”,可以用電源供電,也可以用電池供電。非常便攜。測距系統(tǒng)的調(diào)試及出現(xiàn)的問題調(diào)試時的注意事項測距系統(tǒng)在硬件調(diào)試過程中需要注意以下幾點(1)將所有地線和電源線接好,注意不要短路。因為測距儀的電路分塊較多,每一部分都有自己的電源線和地線,多且雜,一不小心就會漏焊,所以將所有的電源線和地線都分別連接在一起,方便供電和檢查。(2)超聲波接收和發(fā)射傳感器要平行放置21,并且焊接在與電路板水平的邊緣,方便測距。因為聲波是傳送特點,所以將兩個傳感器平行放置才能獲得更準確的數(shù)值。若將兩個端子像普通直插元器件一樣垂直焊在電路板上,在測距和觀察時會很不方便。(3)超聲波傳感器連接外殼的引腳要接地22

溫馨提示

  • 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/150

提交評論