單片機課程設計--超聲波測距系統(tǒng)設計_第1頁
已閱讀1頁,還剩29頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  課程設計報告</b></p><p>  題 目 超聲波測距系統(tǒng)設計 </p><p>  課 程 名 稱 單片機原理及應用 </p><p>  院 部 名 稱 機電工程學院 </p>

2、<p>  專 業(yè) 電氣工程及其自動化 </p><p>  班 級 12電氣工程及其自動化(單) </p><p><b>  目 錄</b></p><p>  一 、概述…………………………………………………………………………………3</p>&

3、lt;p>  1.1課程設計應達到的目的……………………………………………………………4</p><p>  1.2 超聲波測距系統(tǒng)設計…………………………………………………………………4</p><p>  二、總體設計方案及說明…………………………………………………………………4</p><p>  2.1系統(tǒng)總體設計思路……………………………………………

4、…………………4</p><p>  2.2系統(tǒng)總體設計框圖………………………………………………………………5</p><p>  三、系統(tǒng)硬件電路設計……………………………………………………………………5</p><p>  3.1 單片機的最小系統(tǒng)………………………………………………………………6</p><p>  3.1.1AT89C

5、51單片機的功能與特點…………………………………………………6</p><p>  3.2系統(tǒng)原理分析………………………………………………………………………6</p><p>  3.2.1超聲波測距原理………………………………………………………………6</p><p>  3.3 超聲波傳感器檢測電路…………………………………………………………6</p>

6、;<p>  3.3.1超聲波檢測電路圖……………………………………………………………7</p><p>  3.3.2 超聲波發(fā)生及感應過程………………………………………………………7</p><p>  3.4 超聲波測距接收………………………………………………………………………7</p><p>  3.4.1 HC-SR04模塊……………………

7、………………………………………………7</p><p>  3.4.2 T40、R40超聲波傳感裝置介紹………………………………………………7 </p><p>  3.5 SCM1602顯示模塊……………………………………………………………………9</p><p>  四 、系統(tǒng)軟件部分設計…………………………………………………………………11</p>

8、;<p>  4.1 軟件流程圖………………………………………………………………………11</p><p>  4.1.1主程序流程圖………………………………………………………………11</p><p>  4.1.2超聲波發(fā)生子程序…………………………………………………………11</p><p>  4.2 系統(tǒng)源程序…………………………………………

9、……………………………12</p><p>  五、系統(tǒng)仿真過程與結果…………………………………………………………………13</p><p>  5.1 Proteus仿真軟件……………………………………………………………14</p><p>  5.2仿真編譯過程…………………………………………………………………14</p><p>  5

10、.3仿真效果圖………………………………………………………………15</p><p>  六 、實物展示……………………………………………………………………………16</p><p>  6.1實物元件與過程……………………………………………………………………16</p><p>  6.2實物運行與調試……………………………………………………………………15<

11、/p><p>  6.3實物總結………………………………………………………………………15</p><p>  七、總結…………………………………………………………………………………18</p><p>  八 、參考文獻……………………………………………………………………………19</p><p>  附錄,原理圖………………………………………

12、………………………………………20</p><p><b>  摘 要</b></p><p>  本設計采用了AT89C51作為中心處理器,HC-SR04模塊進行超聲波方面的發(fā)生與感應。然后介紹了總體的系統(tǒng)設計框圖、思路及元件選型。接下來,分硬件和軟件兩部分進行了設計的分析。硬件方面首先構建了一單片機最小系統(tǒng),然后集成各芯片完成設計。軟件方面通過外部中斷,定時器中斷

13、等完成開發(fā)的子程序的調用。最后重點詳細地講述了關于超聲波模塊的電路及收發(fā)過程。</p><p>  最后進行了系統(tǒng)仿真,仿真結果表明,所設計的系統(tǒng)能夠滿足要求。本系統(tǒng)具有成本低,可靠性高和安全實用等特點,廣泛應用于社會生活的各個領域。</p><p>  關鍵詞:AT89C51單片機;超聲波模塊;最小系統(tǒng)</p><p><b>  一、概述</b&

14、gt;</p><p>  1.1課程設計應達到的目的</p><p>  通過本課程設計,使學生掌握控制系統(tǒng)設計的一般步驟,掌握系統(tǒng)總體控制方案的設計方法。使學生進一步掌握微型計算機應用系統(tǒng)的硬、軟件開發(fā)方法,輸入/輸出(I/O)接口技術,應用程序設計技術,并能結合專業(yè)設計簡單實用的單片機應用系統(tǒng)。針對課堂重點講授內容使學生加深對單片機硬件原理的理解及提高C51語言程序設計的能力,為以后

15、的畢業(yè)設計搭建了單片機系統(tǒng)應用平臺,提高學生的開發(fā)創(chuàng)新能力。</p><p>  1.2超聲波測距系統(tǒng)設計</p><p>  設計一個基于單片機的超聲波測距系統(tǒng),要求:</p><p> ?。?)系統(tǒng)功能:測距范圍:3cm-450cm,通過LCD1602顯示距離。</p><p> ?。?)給出系統(tǒng)設計方案,畫出硬件連線圖,并說明工作原理;

16、</p><p> ?。?)畫出程序框圖并編寫程序。</p><p>  二、系統(tǒng)總體方案設計</p><p>  2.1 系統(tǒng)總體設計思路</p><p>  本設計的構建是基于89C51單片機外圍芯片的超聲信號檢測的。超聲波發(fā)生模塊送出片刻的40KHz的矩形波信號,遇物體反射后,被超聲波接收模塊接收并作為本設計的Input,單片機對此信號

17、進行判斷加工處理后,把計算出的距離結果傳到LCD顯示屏上,當檢測距離小于預設值時報警模塊工作。</p><p>  本設計的硬件部分主要由AT89C51單片機控制模塊、超聲波發(fā)出和接收模塊、預警模塊以及LCD顯示模塊等幾部分組成。系統(tǒng)的總體結構設計框圖如圖1.1所示。</p><p>  本設計的軟件部分由C語言編寫,程序采用模塊化設計思想,將各功能單獨程序化成子程序塊并進行debug,在

18、完成主程序段的編寫和子程序的調用。系統(tǒng)軟件部分主要include主程序段、‘delay’子程序塊、、超聲波發(fā)生與感應子程序塊等。</p><p>  2.2 系統(tǒng)總體設計框圖</p><p>  本設計采用AT89C51為控制核心,由電源電路、單片機外圍電路、發(fā)射電路、接收電路、顯示電路、報警電路等部分組成,系統(tǒng)設計框圖如圖1.1所示。其主要需完成任務是對傳感器到障礙物中間的距離的測量及對

19、測出距離的顯示以及小于預設值時的報警。</p><p>  圖1.1 系統(tǒng)總體設計框圖</p><p>  三、系統(tǒng)硬件部分設計</p><p>  3.1單片機最小系統(tǒng)</p><p>  單片機最小系統(tǒng):能讓單片機regular work的最小硬件單元系統(tǒng),如圖3.4所示。 一般具有:復位circuit;時鐘震蕩circuit。

20、此外,ISP下載口也belong單片機最小系統(tǒng)。 復位電路如圖2.2所示。</p><p>  圖2.2 復位電路圖</p><p>  復位電路可將系統(tǒng)重置至一個已知的狀態(tài)。從單片機內部來看,復位電路工作后,CPU將一些廠商早先設定的數(shù)載入至寄存器。</p><p>  該電路的principle是將Capacitance與Resistance接至復位引腳

21、RST,組成Power on reset的功能。當Reset level持續(xù)兩個machine cycle以上時,reset有效。具體數(shù)值需由RC電路計算出time constant t=RC1(t≥10ms)。</p><p>  復位電路包括Reset button和Power on reset。</p><p> ?。?)Reset button:并聯(lián)一開關在復位電容上。按下開關,電

22、容釋放之前的電量,同時,復位引腳電壓的拉高完成Reset。</p><p>  (2)Power on reset:在RST上外接一個RC充放電導電回路,即加入一個電容(一般為10uF)串聯(lián)至電源+5v,再加入一個電阻器(一般為10K)串聯(lián)至保護地。此外,要保證Reset成功,需使上電時復位引腳有足夠時間的high level。</p><p>  振蕩電路如圖2.3所示。</p&g

23、t;<p>  圖2.3 振蕩電路圖</p><p>  振蕩電路也叫做晶振電路,任務是為CPU設定時鐘頻率。單片機運行所有語句的時間都由時鐘頻率決定。clock frequency越高,CPU運行越快。單片機一般從外部接入時鐘頻率,典型的clock frequency有11.0592MHz/12MHz。</p><p>  單片機通常共用一個晶體振蕩器來滿足各部分同步運行。

24、具體振蕩器經(jīng)常與鎖相環(huán)回路一起工作,以方便為系統(tǒng)提供clock frequency。</p><p>  3.1.1 AT89C51單片機的功能與特點</p><p>  AT89C51是一種具有l(wèi)ow voltage、low power consumption且high-performance等優(yōu)點的八位單片機。其內部的芯片包含了一個8位微處理器、一個二百五十六字節(jié)數(shù)據(jù)存儲器及一個四千字

25、節(jié)程序存儲器。CMOS工藝與UNRAM技術在AT89C51的制作過程中被使用,且它的指令集合和輸出引腳都與早期美國INTECo.于1980年研制的MCS-51單片機相兼容。AT89C51因將閃存與8位CPU結合在一個芯片中而成為一款高性能單片機,89LV51是它的一個低電壓版本。AT89C51單片機已成為一種靈活性高、功能強且價格實惠并在各種控制領域被普遍運用的方案。外型及管腳排列如圖所示。</p><p>&l

26、t;b>  功能概述</b></p><p>  AT89C51 含滿足國標的功能:片內振蕩器及時鐘發(fā)生電路、4KB程序存儲器 Flash ROM(保留表格、數(shù)據(jù)及程序)、256B數(shù)據(jù)存儲器RAM/SFR(保留可以READ/WRITE的數(shù)據(jù))、兩個16位定時/計數(shù)器、四個8位I/O 口線、一個五中斷源二優(yōu)先級中斷系統(tǒng)、一個雙向信號傳輸UART串行通信口。而且,AT89C51可以執(zhí)行靜態(tài)邏輯操作,

27、此時最低的工作頻率可為0Hz,并有兩種省電運行模式可供軟件運行。Idle Mode可將CPU處于停止運行狀態(tài),但允許中斷控制系統(tǒng)、串行通訊口、定時/計數(shù)器以及隨機存取存儲器持續(xù)運行。Power Mode直到下一次硬件復位都會停止運行振蕩器并且不允許其它所有部件運行但會保留片內隨機存取存儲器中的數(shù)據(jù)。 </p><p>  AT89CA51 引腳功能說明</p><p><b&g

28、t;  VCC:供電電壓。</b></p><p><b>  GND:接地。</b></p><p>  P0端:P0端為一組8位Open Drain型雙向input/output端,也即地址/總線復位端。每端能驅動8位TTL邏輯門。當P0端被置為1時,其變便成為高阻抗輸入端。P0端可被外部程序DATA存儲器使用,此時,其被當作DATA/ADDRESS的

29、低八位使用。在閃存(Flash)進行program工作時,P0 端輸入命令,當閃存(Flash)運行check任務時,P0端輸出命令,同時,確保P0端外部已連有pull-up resistor。</p><p>  P1端:P1端是一組配有內部pull-up resistor的雙向input/output端,為功能最單一的一組端口。</p><p>  P2端:P2端也是一組配有內部上拉電

30、阻的雙向input/output端。當cpu訪問外部存儲器時,P2端輸出高八位地址信號。</p><p>  P3端:P3端同樣是一組配有內部上拉電阻的雙向input/output端。同時P3端的每一個管腳都另有功能。</p><p>  主要屬性如表2-1所示。 </p><p><b>  表2-1 主要屬性</b>&

31、lt;/p><p>  控制信號引腳(RST、 ALE 、/PSEN 、/EA)</p><p>  RST / Vpd (9腳):復位輸入,‘1’信號有效。當CPU剛接入電源時,其內部各寄存器處于隨機狀態(tài),當此輸入端可持續(xù)24個時鐘周期的‘1’信號時,就能完成復位任務。單片機正常工作時, 此腳應≤0.5V低電平。</p><p>  ALE/PROG(30腳):地址鎖

32、存允許信號端(Address Latch Enable)。當CPU讀取外部ROM時,此管腳輸出信號的下降沿控制低八位地址的鎖存。平時運行是,此管腳以振蕩頻率的六分之一穩(wěn)定發(fā)送正脈沖,能作對外輸出時鐘和定時信號。</p><p>  /PSEN:程序存儲器允許信號輸出端(Program Store Enable)。CPU讀取外部程序存儲器的讀選通信號。在訪問片外ROM時,每個機器周期/PSEN輸出2次脈沖。當讀取外

33、部數(shù)據(jù)存儲器時,/PSEN不出現(xiàn)。</p><p>  /EA/VPP:片外程序存儲器訪問允許輸入端(External Access External)。當/EA被置1時,CPU讀取片內存儲器(4K)PC值超過0FFFH,將自動運行片外程序存儲器的程序。當/EA被置0,CPU訪問片外EPROM/ROM,且運行片外ROM的程序。</p><p>  引腳圖如圖2.1所示。</p>

34、<p>  圖2.1 AT89C51引腳圖</p><p>  3.2 系統(tǒng)原理分析</p><p>  3.2.1 超聲波測距原理</p><p>  一般而言,人耳能聽到的聲波頻率為20赫茲--20000赫茲。Resonant frequency高于2KHz的聲波稱為“超聲波”。超聲波由于其穿透能力強、在液體中傳播距離遠、易獲得較集中的聲能、方向性

35、好等特性,使其在實際生活中的各行各業(yè)得到廣泛應用。</p><p>  假定聲波在固定介質中傳播的速度一定,而且能測量得到聲波從送出到感應到的時間,那么從聲源到目標物體的距離就可以被準確地計算出來。這就是本設計的測距原理。超聲波測距,簡單來說,就是通過連續(xù)地接收經(jīng)障目標物體反射后的回波,進而測出超聲波從發(fā)射到接收的往返時間,最后求出超聲波經(jīng)過的距離。其關系式如公式(1):</p><p>

36、<b>  (1)</b></p><p>  式中:S為所需測量的距離;c為超聲波在空氣介質中的傳播速度;t為往返時間。</p><p>  3.3 超聲波傳感器檢測電路</p><p>  3.3.1 超聲波檢測電路圖</p><p>  HC-SR04模塊由發(fā)生電路和感應電路主成,發(fā)生超聲波circuit主體具有E

37、m78p153 SCM、MAX232chip及超聲波send裝置T40。感應超聲波circuit主體具有 TL074operational amplifier及超聲波receiver R40組成。</p><p>  3.3.2 超聲波發(fā)生及感應過程</p><p>  CPU啟動system初始化。置EA為1打開總中斷,置“Trig”端10us的‘1’信號,啟動HC-SR04模塊的EM7

38、8P153產生8段持續(xù)的40KHz矩形波,由MAX232電平轉換,增強發(fā)出功率。發(fā)生裝置把電信號變成超聲波信號發(fā)出。</p><p>  當CPU發(fā)出一端10us的啟動信號后,Trig端從低電壓變成高電壓,模塊發(fā)出超聲波的同時,計時器開始計時,等待感應裝置receive到信號,一旦感應到立即停止計時。將時間T傳遞給單片機,過程中ECHO端持續(xù)為‘1’信號的Time為路程時間T。</p><p&

39、gt;  3.4超聲波測距接收</p><p>  3.4.1 HC-SR04模塊</p><p>  HC-SR04超聲波測距模塊能完成2厘米到400厘米間距的非接觸式距離測量任務,其電路簡易且售價實在。此外,其相對應的單片機外圍電路也不復雜。該module具有發(fā)生circuit、感應circuit及控制circuit。實物如圖4.1所示。</p><p><

40、;b>  基本運行流程</b></p><p> ?、僦肨RIG端口至少10us的‘1’電平啟動超聲波發(fā)生;</p><p> ?、诎l(fā)生電路連續(xù)發(fā)出8個40khz的矩形波,等待感應是否有回波;</p><p>  ③有回波,ECHO端輸出‘1’信號,‘1’信號連續(xù)時間即超聲波完成路程所花的時間。</p><p>  模塊參數(shù)

41、如下表4-1。</p><p><b>  表4-1模塊參數(shù)</b></p><p>  超聲波sequence chart如圖4.2所示。</p><p>  如圖4-2sequence chart顯示,一旦單片機發(fā)出一端10us以上Transister-Transister-Logic脈沖信號,該模塊會連續(xù)送出8個40khz矩形波信號且開始

42、等待感應回波sign。只要感應到回波sign,ECHO端就送出high level脈沖。輸出信號的Pulse width與Induction distance成正比。所以,將發(fā)出到感應之間的T值代入公式能測算出汽車與物體的間距:</p><p>  距離=高電平時間*聲速(340m/s)/2。</p><p>  Module主體包括Em78p153單片機、MAX232Chip、Input

43、 operational amplifier TL074、Ultrasonic sensing device:T40-16、R40-16。</p><p>  Em78p153單片機</p><p><b> ?、偾闆r簡述</b></p><p>  Em78p153是采用高速CMOS工藝制造的8位single chip。采取EMC編

44、程器往單片機內Write程序instruction。編程人員可在13位選項位挑取符合其需求的選項位,之中的保護位能prevent程序被上載。</p><p><b> ?、陔姎鈪?shù)</b></p><p>  運行Voltage參數(shù)(V):2.0--6.0;</p><p>  適應Temperature區(qū)間(℃):0--70;</p&g

45、t;<p>  正常Frequency區(qū)間:DC--8MHz;</p><p>  4個內建IRC振蕩器;</p><p>  2個雙向I/O端口;</p><p>  32×8bit片內寄存器(SDRAM);</p><p>  EM78P153的封裝為14腳;Small Out-Line Package小外形封裝、

46、Shrink Small-Outline Package)窄間距小外型塑封和dual inline-pin package雙列直插式封裝為3種封裝形式。</p><p> ?、踦in分配如圖4.3所示。</p><p><b>  MAX232</b></p><p>  MAX232chip是MAXIM Co.特為RS-232串口design

47、的選擇單電源+5v供能的電平轉換chip。本設計只通過該chip完成level switch任務,將40kHz的矩形波從5V提升至20V,增強transmitting power。</p><p>  ①pin圖如圖4.4所示。</p><p><b>  ②引腳介紹</b></p><p>  第一單元為電荷泵circuit。由1、2、3、4

48、、5、6號pin及4個電容組成。作用為發(fā)生+12v和-12v兩個電源,滿足RS-232串口電平的require。</p><p>  第二單元為Data conversion通道。由7、8、9、10、11、12、13、14號pin組成兩個Data conversion。以上13號pin(R1IN)、12號pin(R1OUT)、11號pin(T1IN)、14號pin(T1OUT)為第一Data conversion

49、;8號pin(R2IN)、9號pin(R2OUT)、10號pin(T2IN)、7號pin(T2OUT)為第二Data conversion。</p><p>  第三單元為供電circuit。15號pin GND、16號引pin VCC。</p><p>  TL074(低噪聲JFET輸入operational amplifier)</p><p>  引腳圖如圖4

50、.5所示。</p><p>  具體引腳功能如表4-2所示:</p><p><b>  表4-2 引腳表</b></p><p>  TL074內部組件數(shù)量如表4-3所示</p><p>  表4-3 TL074組件</p><p>  3.4.2 T40、R40超聲波傳感裝置介紹</p&

51、gt;<p>  T40-16與R40-16</p><p>  目前來看,超聲波發(fā)生裝置按如何發(fā)出超聲波能分為兩大種類:</p><p>  1.Electric發(fā)出超聲波, 包含Piezoelectric type, magnetostrictive type 及 electric type等;</p>&l

52、t;p>  2.Mechanical發(fā)出超聲波,包含Garr the flute, whistle 及 siren liquid flow等。</p><p>  兩種類型send的超聲波的frequency、 power和Acoustic characteristics大相徑庭,所以適用場合也不一樣。壓電式超聲波發(fā)生裝置是現(xiàn)在比較常用

53、的。</p><p>  壓電式超聲波發(fā)生裝置根本上來講為采用Piezoelectric crystal的諧振來運作的。其內部include兩個Piezoelectric crystal和一個共振板。在它的兩極處輸入電壓,同時保證該頻率等于Piezoelectric crystal的固有振蕩頻率時,Piezoelectric crystal就會產生共振,且使共振板一起振動,于是便能send超聲波了。反之,若兩極處

54、沒外加脈沖信號,當共振板receive回波時,會使Piezoelectric crystal產生振動,機械能將transform 電信號,此刻其便是超聲波感應裝置。電路中采用T40-16T/R超聲波換能器便是Piezoelectric type裝置。</p><p><b> ?、傺b置說明</b></p><p>  Name:Piezoelectric c

55、eramics超聲波傳感器;</p><p>  Type:T40-16T/R;</p><p>  Category:通用型;</p><p>  主frequency(KHZ):40;</p><p>  Outer diameter:16mm;</p><p>  工作說明:T表示發(fā)生裝置,R表示receiver

56、,TR表示兩者兼用;</p><p><b> ?、陔姎鈪?shù)</b></p><p><b>  如下表4-4所示:</b></p><p><b>  表4-4 電氣參數(shù)</b></p><p>  傳感器實物如圖4.8 所示。</p><p>  H

57、C-SR04 具有超聲波的發(fā)生和感應電路,因此,hardware方面不用再個人定制復雜的發(fā)生及感應回路,software方面也不必再使用定時器來發(fā)生40Khz的矩形波驅動 piezoelectric ceramics共振近而發(fā)出超聲波。調用該module時,只需將‘Trig’端置一端大于10us的high level信號,就能等待‘Echo’端的high level信號輸出。CPU一旦掃描到trigger signal就打開定

58、時器進行計時。當該端的high level信號消失時就完成計時并read定時器的Data,該Data為本次測距的time,然后帶入傳播速度公式就能complete對距離的計算。</p><p>  3.5 SCM1602 顯示模塊</p><p>  該模塊是由SCM1602液晶顯示器件組成,第3腳:VL為顯示器對比度調整端,接正電源時對比度最弱,接地電源時對比度最高,對比度過高時會產生“

59、鬼影”,使用時可以通過一個10k的電位器調整對比度。第4腳:RS為寄存器選擇,高電平時選擇數(shù)據(jù)寄存器、低電平時選擇指令寄存器。第5腳:RW為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當RS和RW共同為低電平時可以寫入指令或者顯示地址,當RS為低電平RW為高電平時可以讀忙信號,當RS為高電平RW為低電平時可以寫入數(shù)據(jù)。第6腳:E端為使能端,當E端由高電平跳變?yōu)榈碗娖綍r,液晶模塊執(zhí)行命令。第7~14腳:D0~D7位8為雙向數(shù)據(jù)線。

60、由上可知1602基本操作時序如下表2.5。其第15~16腳:背光電源腳。SCM1602與單片機的應用連接電路圖如圖2.5所示。 </p><p>  圖2.5 顯示電路圖</p><p>  四、系統(tǒng)軟件部分設計</p><p><b>  4.1 軟件流程圖</b></p><p>  4.1.1主程序流程圖<

61、/p><p>  本設計的軟件部分主要有主程序、發(fā)射超聲波程序、1ms定時器中斷程序、LCD液晶屏顯示程序組成。我們知道C語言程序對實現(xiàn)較復雜的算法能很高效的實現(xiàn),而匯編語言編寫程序的代碼對于普通人十分難理解,不易于軟件的維護,而本設計的程序需要有相對復雜的運算且有助于結構化程序,所以程序語言選擇C語言。</p><p>  首先初始化系統(tǒng)設置:置總中斷允許位EA為1、設置定時器T0、T1工作

62、模式為模式1(16位定時計數(shù)器模式)并將單片機各端口拉高。之后開始運行功能模塊。</p><p><b>  圖3.1主程序流程</b></p><p>  本設計使用頻率為12MHz的晶振電路,計數(shù)器的每一次計數(shù)就是1μs。當main程序中掃描到表示接收回波成功的標志位Echo發(fā)送的time(高電平持續(xù)時間),將超聲波往返所花費的time(計數(shù)器T0中的time)帶

63、入到公式(3)運算,就能計算出車尾與障礙物之間的距離,編程中設溫度為室溫20℃時的聲速為340m/s,則有:</p><p>  d=(ct)/2=172T0/10000cm (3)</p><p>  公式中,T0為計數(shù)器T0的time。</p><p>  計算出距離后結果將會被發(fā)送給共陽數(shù)碼顯示模塊,同時,結果也將發(fā)至語

64、音預警模塊。之后重復發(fā)送超聲波進行測距任務。</p><p>  4.1.2 超聲波測距子程序</p><p><b>  4.2系統(tǒng)源程序</b></p><p>  #include<reg51.h> //調用單片機頭文件</p><p>  #include<i

65、ntrins.h></p><p>  #define uchar unsigned char //無符號字符型 宏定義 變量范圍0~255</p><p>  #define uint unsigned int /無符號整型 宏定義 變量范圍0~65535</p><p>  sbit rs=P2^7;

66、 //LCD數(shù)據(jù)命令選擇端</p><p>  sbit lcden=P2^5; //LCD使能端</p><p>  sbit wr=P2^6; //LCD讀寫端</p><p>  sbit trig=P3^7;

67、 //觸發(fā)控制信號輸入</p><p>  sbit echo=P3^6; //回響信號輸出</p><p>  sbit out=P2^1; //距離超出報警</p><p>  uchar code table[]=" distance:"; //數(shù)組

68、定義</p><p>  void delay(uint z) //1ms延時</p><p><b>  {</b></p><p><b>  uint x,y;</b></p><p>  for(x=z;x>0;x--)</p><

69、p>  for(y=110;y>0;y--);</p><p><b>  }</b></p><p>  void write_com(uchar com) //LCD寫命令子程序</p><p><b>  {</b></p><p><b>  rs=

70、0;</b></p><p><b>  wr=0;</b></p><p><b>  P0=com;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=1;</b></p>

71、<p><b>  delay(5);</b></p><p><b>  lcden=0;</b></p><p><b>  }</b></p><p>  void write_date(uchar date) //LCD寫數(shù)據(jù)子程序</p><

72、p><b>  {</b></p><p><b>  rs=1;</b></p><p><b>  wr=0;</b></p><p><b>  P0=date;</b></p><p><b>  delay(5);</b&g

73、t;</p><p><b>  lcden=1;</b></p><p><b>  delay(5);</b></p><p><b>  lcden=0;</b></p><p><b>  }</b></p><p>  

74、void main()</p><p><b>  {</b></p><p>  uchar k,m;</p><p>  long temp; //距離</p><p>  TMOD=0x01; //設置定時器0為模式1</p>&

75、lt;p>  TH0=0x00; //定時器清零</p><p>  TL0=0x00; //定時器清零</p><p>  ET0=1; //開定時器0中斷2</p><p>  EA=1; /

76、/開總中斷</p><p><b>  wr=0; </b></p><p><b>  lcden=0;</b></p><p>  out=0; //關閉報警</p><p>  write_com(0x38);</p><p>

77、;  write_com(0x0c);</p><p>  write_com(0x06);</p><p>  write_com(0x01);</p><p>  write_com(0x80);</p><p>  for(k=0;k<13;k++)</p><p><b>  {</b&g

78、t;</p><p>  write_date(table[k]);</p><p><b>  delay(5);</b></p><p><b>  }</b></p><p>  write_com(0x80+0x40+9); //LCD位置定位</p><p&g

79、t;  write_date('m'); </p><p>  write_date('m'); //距離單位mm</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b

80、>  TH0=0x00;</b></p><p><b>  TL0=0x00;</b></p><p>  trig=1; //觸發(fā)控制信號寫入1</p><p>  for(m=0;m<20;m++) //延時等待20us</p><p><b>  

81、_nop_();</b></p><p>  trig=0; //觸發(fā)控制信號寫入0</p><p>  while(!echo); //回響信號輸出為0</p><p>  TR0=1; //開啟定時器0</p><p>  while(echo);

82、 //等待回響信號</p><p><b>  {</b></p><p>  TR0=0; //關閉定時器</p><p>  temp=TH0*256+TL0; //讀出定時器0的時間</p><p>  temp*=170; //距離 = 速度 * 時間 將temp轉換成距離單

83、位為mm</p><p>  temp/=1000;</p><p><b>  }</b></p><p>  if(temp<=400) //距離小于40cm時 顯示當前距離</p><p><b>  {</b></p><p>&l

84、t;b>  out=0;</b></p><p>  write_com(0x80+0x40+5);</p><p>  write_date(0x30+temp%1000/100);</p><p>  write_date(0x30+temp%100/10);</p><p>  write_date(0x30+temp

85、%10);</p><p>  delay(1000);</p><p><b>  }</b></p><p>  else //當距離大于40cm時顯示000 并且開啟報警</p><p><b>  {</b></p><p&

86、gt;<b>  out=1;</b></p><p>  write_com(0x80+0x40+5);</p><p>  write_date(0x30+0);</p><p>  write_date(0x30+0);</p><p>  write_date(0x30+0);</p><p&

87、gt;  delay(1000);</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  系統(tǒng)仿真過程與結果</b></p><p>  

88、5.1 Proteus仿真軟件</p><p>  Proteus軟件是由英國Lab Comenter Electronics 公司開發(fā)的EDA工具軟件,由ISIS和ARES兩個軟件構成,其中ISIS是一款便攜的電子系統(tǒng)仿真平臺軟件,ARES是一款高級的布線編輯軟件。它集成了高級原理布線圖、混合模式SPICE電路仿真、PCB設計以及自動布線來實現(xiàn)一個完整的電子設計。</p><p>  通

89、過Proteus ISIS軟件的VSM(虛擬仿真技術),用戶可以對模擬電路、數(shù)字電路、模數(shù)混合電路,以及基于微控制器的系統(tǒng)連同所有外圍接口電子元器件一起仿真。</p><p><b>  5.2 編譯過程</b></p><p>  仿真時,在Keil uVisions2軟件下打開,在此對話框下點擊Project項目,然后新建項目并命名超聲波測距,然后增加文件組測距源

90、程序.C文件,接著設置目標屬性使其生成HEX文件,隨后進行編譯連接,即能獲得程序為.HEX的文件。最后將生成的.HEX文件導入電路后就可以進行仿真。利用Proteus實現(xiàn)了對LCD1602顯示屏的仿真,說明程序和電路圖都沒有問題。仿真結束后,將程序放入電路中,即可顯示仿真結果。</p><p><b>  5.3 仿真效果圖</b></p><p><b>

91、  初始狀態(tài)</b></p><p><b>  超量程狀態(tài)</b></p><p><b>  六、實物展示</b></p><p>  6.1 實物元件與過程</p><p>  成品如圖6.1,6.2所示。</p><p><b>  圖6.1 正

92、面圖</b></p><p><b>  圖6.2 背面圖</b></p><p><b>  清單列表:</b></p><p>  6.2實物運行與調試</p><p><b>  圖6.3 </b></p><p>  如圖6.3所示,

93、將物體置于約100mm處,LCD顯示器顯示100mm。</p><p><b>  圖6.4 </b></p><p>  如圖6.4所示,將成品面對空地,LCD顯示器顯示000。同時,語音預警模塊提示超出量程(蜂鳴器工作)。</p><p><b>  6.3實物總結</b></p><p>  

94、在完成實物的焊接,程序的下載后,我們對實物進行了實驗,發(fā)現(xiàn)以下3點需注意的內容。</p><p>  (1)在進行測量時,需嚴格保證傳感器與障礙物中間不存在其他物體。</p><p> ?。?)盡量保證障礙物與地面相垂直。</p><p>  在對所有的人為干預的因素進行排除后,還是存在一部分的誤差。經(jīng)過對硬件、軟件的分析排查。發(fā)現(xiàn)超聲波回波時間對測定存在影響。為了

95、防止其他信號的干擾,提高測量的可靠性,超聲波傳感器常常一次發(fā)射的是多個超聲波脈沖串。實際測量時,接收電路接收到的往往不是第一個回波的過零觸發(fā)。這樣,最終測得的時間則與實際距離所對應的時間不同,從而造成了超聲波回波時間引起測量誤差。測量盲區(qū)也對測定存在影響。超聲波傳感器安裝在汽車尾部的保險杠上,當障礙物不在超聲波發(fā)射的幾何角度上,就會產生測量盲區(qū)。在測量盲區(qū)內不能實現(xiàn)正常測距,測量誤差很大。</p><p>  此

96、外,在程序指令運行過程中需要占用一定的時間以及環(huán)境中的干擾因素等都會引起測量誤差。</p><p>  由于時間精力和個人能力有限,本系統(tǒng)設計還有很多不足。所以如若使用在實際生產中還應在以下幾個方面進一步探討: </p><p>  (1) 如何將溫度對聲速的影響降到最低。</p><p> ?。?) 如何對非平面物體和傾斜物體進行準確測距。</p>

97、<p> ?。?) 如何減小測距盲區(qū)。</p><p>  (4) 如何進一步提高系統(tǒng)的穩(wěn)定性和重復性。</p><p><b>  七、結論</b></p><p>  本設計講解了一種基于AT89C51單片機的超聲波測距系統(tǒng)的設計,列出了相應的硬件電路及軟件編程的具體實施方案。</p><p>  超聲波測

98、距的原理是:首先通過超聲波發(fā)射器發(fā)送超聲波,根據(jù)收到回波時的時間差就能計算出不明物體與車尾的間距,也就是說超聲波模塊向外發(fā)送超聲波,同時,發(fā)出超聲波的瞬間開始計時。與此同時,超聲波開始在介質中散播,途中遇物體就會反射回來。當接收裝置收到返回波的同時,結束計時,再將測量得的時間通過一段高電平反饋到單片機,將時間帶入到相應的計算公式就可以求出障礙物與測量裝置的間距。以上就是利用了超聲波具有指向性強,在空氣中能傳播較遠的距離等特性且根據(jù)反射原

99、理設計出的系統(tǒng)。</p><p>  超聲波測距系統(tǒng)硬件電路的設計主要包括單片機的基本電路、超聲波發(fā)射接收模塊控制電路、LCD顯示電路、語音預警模塊四部分部分組成。單片機采用了AT89C51,晶振為12MHz,Trig端口置10us的有效信號,定時器T0測出時間差,顯示電路采用LCD液晶顯示器組成,語音預警用蜂鳴器代替。</p><p>  總體而言,我從本設計上學到了很多,收獲頗豐。了解

100、了超聲波測距的原理,并更加掌握了單片機系統(tǒng)的研發(fā)及相關外圍電路設計。</p><p><b>  八、參考文獻</b></p><p>  [1]許立梓.微型計算機原理及應用[M].北京:機械工業(yè)出版社,2003.</p><p>  [2]張開生,郭國法. MCS-51單片機溫度控制系統(tǒng)設計[J].微計算機信息,2005,21(7):68-6

溫馨提示

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

評論

0/150

提交評論