版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、課課 程程 設設 計計 課程名稱單片機課程設計 題目名稱超聲波測距系統(tǒng) 專業(yè)班級 11 電子信息工程本科 3 班 學生姓名尹津 學 號 指導教師劉國永 二一四年三月二十八日 目 錄 摘摘 要要 .1 1 第一章第一章 設計任務書設計任務書 .2 2 1.1 基于單片機的超聲波測距系統(tǒng) .2 第二章第二章 系統(tǒng)總體設計系統(tǒng)總體設計 .3 3 2.1 超聲波發(fā)生器 .3 第三章各部分功能設計第三章各部分功能設計 .5 5 3.1 超聲波測距系統(tǒng)構成 .5 3.2 單片機系統(tǒng)及顯示電路 .6 3.3 串口通信模塊 .7 3.4 超聲波發(fā)射電路 .7 3.5 超聲波接收電路 .8 3.6 語音播報模塊
2、 .8 第四章第四章 系統(tǒng)軟件設計系統(tǒng)軟件設計 .9 9 4.1 編程軟件及語言的選擇 .9 4.2 程序設計 .9 第五章第五章 系統(tǒng)調(diào)試系統(tǒng)調(diào)試 .1111 第六章第六章 結結 論論 .1212 附錄一:附錄一: 單片機超聲波測距系統(tǒng)原理圖單片機超聲波測距系統(tǒng)原理圖 .1313 附錄二:附錄二: PCBPCB 圖圖.1414 附錄三:附錄三: 單片機超聲波測距系統(tǒng)單片機超聲波測距系統(tǒng) C C 語言原程序語言原程序 .1414 附錄四:附錄四: 元件清單元件清單 .2424 參參 考考 文文 獻獻 .2525 摘 要 本設計介紹了基于單片機控制的超聲測距儀的原理:由 AT89C52 控制定時
3、器產(chǎn)生 超聲波脈沖并計時,計算超聲波自發(fā)射至接收的往返時間,從而得到實測距離。并且 在數(shù)據(jù)處理中采用了溫度補償?shù)恼{(diào)整,用四位 LED 數(shù)碼管切換顯示距離和溫度。 整個硬件電路由超聲波發(fā)射電路、超聲波接收電路、電源電路、顯示電路等模塊 組成。各探頭的信號經(jīng)單片機綜合分析處理,實現(xiàn)超聲波測距儀的各種功能。在此基 礎上設計了系統(tǒng)的總體方案,最后通過硬件和軟件實現(xiàn)了各個功能模塊。相關部分附 有硬件電路圖、程序流程圖,給出了系統(tǒng)構成、電路原理及程序設計。此系統(tǒng)具有易 控制、工作可靠、測距準確度高、可讀性強和流程清晰等優(yōu)點。實現(xiàn)后的作品可用于 需要測量距離參數(shù)的各種應用場合。目前在近距離測量方面較為常用的
4、是壓電式超聲 波換能器。根據(jù)設計要求并綜合各方面因素,本例決定采用 AT89C52 單片機作為主控 制器,用動態(tài)掃描法實現(xiàn) LED數(shù)字顯示,聲波驅動信號用單片機的定時器完成。本文所 設計的超聲波測距儀主要由 AT89S52 單片機、超聲波發(fā)射電路、超聲波接收放大電路、 顯示電路. 首先由單片機驅動產(chǎn)生 12MHZ 晶振,由超聲波發(fā)射探頭發(fā)送出去,在遇到障礙物 反射回來時由超聲波接收探頭檢測到信號,然后經(jīng)過濾波、放大、整形之后送入單片 機進行計算,把計算結果輸出到 LED 液晶顯示屏上。超聲波發(fā)生器可以分為兩大類: 一類是用電氣方式產(chǎn)生超聲波;另一類是用機械方式。產(chǎn)生超聲波。電氣方式包括壓 電型
5、、電動型等;機械方式有加爾統(tǒng)笛、液和氣流旋笛等。它們所產(chǎn)生的超聲波的頻 率,功率和聲波特性各不相同,因而用途也各不相同。目前在近距離測量方面較為常 用的是壓電式超聲波換能器。根據(jù)設計要求并綜合各方面因素,本例決定采用 AT89C52 單片機作為主控制器,用動態(tài)掃描法實現(xiàn) LED數(shù)字顯示,聲波驅動信號用單片機的定時 器完成。超聲波測距器系統(tǒng)設計如圖 1.1 所示 圖1.1 整體框圖 第一章 設計任務書 1.1 基于單片機的超聲波測距系統(tǒng) 基于單片機的超聲波測距系統(tǒng),是利用單片機編程產(chǎn)生頻率為 40kHz 的方波,經(jīng) 過發(fā)射驅動電路放大,使超聲波傳感器發(fā)射端震蕩,發(fā)射超聲波。超聲波波經(jīng)反射物 反射
6、回來后,由傳感器接收端接收,再經(jīng)接收電路放大、整形,控制單片機中斷口。 其系統(tǒng)框圖如圖 2-1 所示。 數(shù)字顯示 功能鍵 單片機 發(fā)射驅動 接受處理 圖 1-1 基于單片機的超聲波測距系統(tǒng)框圖 本系統(tǒng)利用單片機控制超聲波的發(fā)射和對超聲波自發(fā)射至接收往返時間的計時。 系統(tǒng)定時發(fā)射超聲波,在啟動發(fā)射電路的同時啟動單片機內(nèi)部的定時器,利用定時器 的計數(shù)功能記錄超聲波發(fā)射的時間和收到反射波的時間。這種以單片機為核心的超聲 波測距系統(tǒng)通過單片機記錄超聲波發(fā)射的時間和收到反射波的時間。通過超聲波發(fā)射 器向某一方向發(fā)射超聲波,單片機在發(fā)射時刻同時開始計時,超聲波在空氣中傳播, 途中碰到障礙物就立即反射回來,
7、超聲波接收器收到反射波就立即停止計時。超聲波 在空氣中的傳播速度為V,根據(jù)計時器記錄的時間t,就可以計算出發(fā)射點距障礙物的 距離。 當收到超聲波的反射波時,接收電路輸出端產(chǎn)生一個負跳變,在單片機的外部中 斷源輸入口產(chǎn)生一個中斷請求信號,單片機響應外部中斷請求,執(zhí)行外部中斷服務子 程序,讀取時間差,計算距離,結果輸出給 LED 顯示。 利用單片機準確計時,測距精度高,而且單片機控制方便,計算簡單。許多超聲 波測距系統(tǒng)都采用這種設計方法。 第二章 系統(tǒng)總體設計 超聲波是由機械振動產(chǎn)生的,可在不同介質中以不同的速度傳播。由于超聲波指向 性強,能量消耗緩慢,在介質中傳播的距離較遠,因而超聲波經(jīng)常用于距
8、離的測量, 如測距儀和物位測量儀等都可以通過超聲波來實現(xiàn)。特別是應用于空氣測距,由于空 氣中波速較慢,其回波信號中包含的沿傳播方向上的結構信息很容易檢測出來,具有 很高的分辨力,因而其準確度也較其它方法為高;而且超聲波傳感器具有結構簡單、體 積小、信號處理可靠等特點。利用超聲波檢測往往比較迅速、方便、計算簡單、易于 做到實時控制,并且在測量精度方面能達到工業(yè)實用的要求。 超聲波測距的方法有多種,如相位檢測法、聲波幅值檢測法和渡越時間檢測法等。 相位檢測法雖然精度高,但檢測范圍有限; 聲波幅值檢測法易受反射波的影響。 本測距系統(tǒng)采用超聲波渡越時間檢測法。其原理為: 檢測從超聲波發(fā)射器發(fā)出的 超聲
9、波,經(jīng)氣體介質的傳播到接收器的時間,即渡越時間。渡越時間與氣體中的聲速 相乘,就是聲波傳輸?shù)木嚯x。超聲波發(fā)射器向某一方向發(fā)射超聲波,在發(fā)射時刻的同 時單片機開始計時,超聲波在空氣中傳播,途中碰到障礙物就立即返回來,超聲波接 收器收到反射波就立即停止計時。再由單機計算出距離,送 LED 數(shù) 碼管顯示測量結果。 超聲波在空氣中的傳播速度隨溫度變化,其對應值如表 2-1 ,根據(jù)計時器記錄的 時間 t (見圖 2-1),就可以計算出發(fā)射點距障礙物的距離( s ) ,即: s = v t / 2 。 表 2-1 聲速與溫度的關系 溫度()302010 0102030100 聲速(m/s) 3133193
10、25323338344349386 2.1 超聲波發(fā)生器 為了研究和利用超聲波,人們已經(jīng)設計和制成了許多超聲波發(fā)生器??傮w上講, 超聲波發(fā)生器可以分為兩大類: 一類是用電氣方式產(chǎn)生超聲波,一類是用機械方式產(chǎn) 生超聲波。電氣方式包括壓電型、磁致伸縮型和電動型等; 機械方式有加爾統(tǒng)笛、液 哨和氣流旋笛等。它們所產(chǎn)生的超聲波的頻率、功率和聲波特性各不相同,因而用途 也各不相同。目前較為常用的是壓電式超聲波發(fā)生器。壓電型超聲波傳感器的工作原 理:它是利用壓電效應的原理,壓電效應有逆效應和順效應,超聲波傳感器是可逆元 件,超聲波發(fā)送器就是利用壓電逆效應的原理。所謂壓電逆效應如圖 2-2 所示,是在 壓電
11、元件上施加電壓,元件就變形,即稱應變。若在圖 a 所示的已極化的壓電陶瓷上 施加如圖 b 所示極性的電壓,外部正電荷與壓電陶瓷的極化正電荷相斥,同時,外部 負電荷與極化負電荷相斥。由于相斥的作用,壓電陶瓷在厚度方向上縮短,在長度方 向上伸長。若外部施加的極性變反,如圖 c 所示那樣,壓電陶瓷在厚度方向上伸長, 在長度方向上縮短。 圖 2-2 壓電逆效應圖 單片機 AT89S51 發(fā)出短暫的 40kHz 信號,經(jīng)放大后通過超聲波換能器輸出;反射 后的超聲波經(jīng)超聲波換能器作為系統(tǒng)的輸入,鎖相環(huán)對此信號鎖定,產(chǎn)生鎖定信號啟 動單片機中斷程序,讀出時間 t,再由系統(tǒng)軟件對其進行計算、判別后,相應的計算
12、結 果被送至 LED 數(shù)碼管進行顯示。 限制超聲波系統(tǒng)的最大可測距離存在四個因素:超聲波的幅度、反射物的質地、 反射和入射聲波之間的夾角以及接收換能器的靈敏度。接收換能器對聲波脈沖的直接 接收能力將決定最小可測距離。 開始測量 超聲波信號 開定時器 關定時器 數(shù)據(jù)運算 顯示器 接收檢測電聲換能器 電聲換能器驅動電路 圖 2-2 超聲波測距系統(tǒng)框圖 第三章各部分功能設計 按照系統(tǒng)設計的功能的要求,初步確定設計系統(tǒng)由單片機主控模塊、顯示模塊、 超聲波發(fā)射模塊、接收模塊共四個模塊組成。 單片機主控芯片使用 51 系列 AT89S51 單片機,該單片機工作性能穩(wěn)定,同時也是 在單片機課程設計中經(jīng)常使用
13、到的控制芯片。發(fā)射電路由單片機輸出端直接驅動超聲 波發(fā)送。 接收電路使用三極管組成的放大電路,該電路簡單,調(diào)試工作小較小硬件電路的設計 主要包括單片機系統(tǒng)及顯示電路、超聲波發(fā)射電路和超聲波接收電路、報警輸出電路、 供電電路等幾部分。單片機采用 AT89S51,系統(tǒng)晶振采用 12MHz 高精度的晶振,以獲得 較 單片機用 P2.7 端口輸出超聲波換能器所需的 40kHz 的方波信號,P3.5 端口監(jiān)測超聲波 接收電路輸出的返回信號。顯示電路采用簡單實用的 3 位共陽 LED 數(shù)碼管,段碼輸出 端口為單片機的 P2 口,位碼輸出端口分別為單片機的 P3.4、P3.2、P3.3 口,數(shù)碼管位 驅運用
14、 PNP 三極管 S9012 三極管驅動。 3.1 超聲波測距系統(tǒng)構成 本系統(tǒng)由單片機 AT89S51 控制,包括單片機系統(tǒng)、發(fā)射電路與接收放大電路和顯 示電路幾部分組成,如圖 3-1 。硬件電路的設計主要包括單片機系統(tǒng)及顯示電路、超 聲波發(fā)射電路和超聲波接收電路三部分。單片機采用 AT89S51。采用 12MHz 高精度的晶 振,以獲得較穩(wěn)定時鐘頻率,減小測量誤差。單片機用 P2.7 端口輸出超聲波換能器所 需的 40kHz 的方波信號,P3.5 端口監(jiān)測超聲波接收電路輸出的返回信號。顯示電路采 用簡單實用的 3 位共陽 LED 數(shù)碼管,段碼輸出端口為單片機的 P2 口,位碼輸出端口分 別為
15、單片機的 P3.4、P3.2、P3.3 口,數(shù)碼管位驅運用 PNP 三極管 S9012 三極管驅動。 超聲波接收模 超聲波發(fā)射模 單片機控制統(tǒng) (AT89S51 ) 顯示模塊 鍵盤模塊 供電單元 圖 3-1:系統(tǒng)設計框 超聲波接收頭接收到反射的回波后,經(jīng)過接收電路處理后,向單片機 P3.5 輸入一 個低電平脈沖。單片機控制著超聲波的發(fā)送,超聲波發(fā)送完畢后,立即啟動內(nèi)部計時 器 T0 計時,當檢測到 P3.5 由高電平變?yōu)榈碗娖胶?,立即停止?nèi)部計時器計時。單片 機將測得的時間與聲速相乘再除以 2 即可得到測量值,最后經(jīng) 3 位數(shù)碼管將測得的結 果顯示出來。 3.2 單片機系統(tǒng)及顯示電路 1. 單
16、片機系統(tǒng) 單片機采用 89S51 或其兼容系列。采用 12MHz 高精度的晶振,以獲得較穩(wěn)定的時 鐘頻率,減小測量誤差。單片機用 P1.0 端口輸出超聲波轉化器所需的 40KHz 方波信號, 利用外中斷 0 口檢測超聲波接受電路輸出的返回信號。顯示電路采用簡單實用的 4 位 共陽 LED 數(shù)碼管,段碼用 74LS245 驅動,位碼用 PNP 三極管驅動。單片機系統(tǒng)如下圖 所示 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 J1 CON20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
17、 J2 CON20 1 2 3 4 5 6 7 8 9 J3 CON9 R9 0 VCC VCC EA P10 P11 P12 P13 P14 P15 P16 P17 RST P30 P31 P32 P33 P34 P35 P36 P37 X1 X2 GND VCC P00 P01 P02 P03 P04 P05 P06 P07 EA ALE PSEN P20 P21 P22 P23 P24 P25 P26 P27 P00 P01 P02 P03 P04 P05 P06 P07 GND P10 P11 P12 P13 P14 P15 P16 P17 RST P30 P31 P32 P33 P3
18、4 P35 P36 P37 X1 X2 P00 P01 P02 P03 P04 P05 P06 P07 EA ALE PSEN P20 P21 P22 P23 P24 P25 P26 P27 EA/VPP 31 XTAL1 19 XTAL2 18 RST/VPD 9 P3.7/RD 17 P3.6/WR 16 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.5/T1 15 P1.0/T 1 P1.1/T 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P0.0 39 P0.1 38 P0.2 37 P0.3 36 P0.4
19、 35 P0.5 34 P0.6 33 P0.7 32 P2.0 21 P2.1 22 P2.2 23 P2.3 24 P2.4 25 P2.5 26 P2.6 27 P2.7 28 PSEN 29 ALE/PROG 30 P3.1/TXD 11 P3.0/RXD 10 Vcc 40 Gnd 20 AT89S52 U? STC89C52 圖 3-2:單片機系統(tǒng) 2. 顯示電路原理 通過單片機的 P0.0P0.7、RST、P3.0P3.7、X1、X2、GND 與跳線帽連接 控制液晶顯示器的顯示。12864 液晶顯示器可顯示 32 個漢字或 64 個字母可滿足要求輸 出的內(nèi)容。顯示電路原理圖如下所
20、示: 圖 3-3:顯示電路 3.3 串口通信模塊 串口通信電路是 TTL 和 RS232電平互換的電路,串口通信電路是使用 MAX232芯片 實現(xiàn),該芯片有電源接口和兩組串口通信轉換端口。C4、C5、C7、C8組成電荷泵,提 供單片機內(nèi)部升壓;C6是濾波電容,其作用是濾除電路的雜波是芯片工作穩(wěn)定及防止 外部電源不穩(wěn)定燒壞單片機。MAX232芯片的作用是將單片機輸出的 TTL 電平轉換成 PC 機能接受的 RS232電平。5、6引腳的功能是為了產(chǎn)生正負12V 的電源,提供給 MAX232的 點評需要,7、8、9、10、11、12、13、14構成兩個數(shù)據(jù)通道。 1 2 3 4 5 6 7 8 9
21、11 10 J12 DB9 1 2 3 J6 CON3 C1+ 1 V+ 2 C1- 3 C2+ 4 C2- 5 V- 6 T2OUT 7 R2IN 8 R2OUT 9 T2IN 10 T1IN 11 R1OUT 12 R1IN 13 T1OUT 14 GND 15 VCC 16 U2 MAX232 0.1U C1 0.1U C2 0.1U C3 0.1U C4 0.1U C5 VCC RXD TXD 串串 圖 3.4 超聲波發(fā)射電路 3.4 超聲波發(fā)射電路 單片機 P36端輸出的40kHZ 方波信號一路經(jīng)一級反向器后送到超聲波換能器的一個 電極。另一級經(jīng)過兩級反向器送到超聲波換能器的另一個電
22、極。用這種推挽形式將方 波信號加到超聲波換能器兩端??梢蕴岣叱暡òl(fā)射強度。輸出端采用兩個反向器并 聯(lián)。用以提高驅動能力。上拉電阻 R27、R30一方面提高反向器74HC04輸出高電平的驅 動能力。另一方面可以增加超聲波換能器的阻尼效果縮短其自由振蕩的時間。如圖 12 U7A MC74HC04AD 34 U7B MC74HC04AD 12 U6A 74HC04 34 U6B 74HC04 65 U6C 74HC04 98 U6D 74HC04 VCC VCC R27 1K R30 1K LS1 串串串串 P36 圖3.5 超聲波發(fā)射電路 3.5 超聲波接收電路 CX20106A 是采用一款紅外
23、線檢波接收的專用芯片,常用于電視機紅外遙控接收器。 考慮到紅外遙控常用的載波頻率38Hz 與測距的超聲波頻率40Hz 較為相近所以可以利用 它來制作超聲波檢測接收電路。J31中插入 CX20106A,使用 CX20106A 集成電路對接收 探頭收到的信號進行放大、濾波。其總放大增益為80db。 LS2 串串串串 GND C12 100uF C13 33uF R28 1K C15 330 R29 200K R32 220K 1 2 3 4 5 6 7 8 J31 CON8 VCC P33 圖3.6 超聲波接收電路 3.6 語音播報模塊 WT588D 有三種控制模式,分別是按鍵控制模式、一線串口控
24、制模式及三線串 口控制模式 ,按鍵控制模式觸發(fā)方式靈活,可隨意設置任意按鍵為脈沖可重復觸發(fā)、 脈沖不可重復觸發(fā)、無效按鍵、電平保持不可循環(huán)、電平保持可循環(huán)、電平非保持 可循環(huán)、上一曲不循環(huán)、下一曲不循環(huán)、上一曲可循環(huán)、下一曲可循環(huán)、音量 +、音量-、播放/暫停、停止、播放 /停止等 15 種觸發(fā)方式。一線串口控制模式 及三線串口控制模式可通過單片機來控制WT588D 的語音播放、停止、循環(huán)播放 和音量大小,或者直接觸發(fā) 0219 地址位的任意語音。 VCC C14 100uF GND 1 2 J34 CON2 1 2 J35 CON2 1 2 J32 CON2 1 2 3 J33 CON3 G
25、ND RST 1 DAC 2 PWM+ 3 PWM- 4 P14 5 P13 6 P16 7 GND 8 P15 9 P03 10 P02 11 P01 12 P00 13 VCC 14 BUSY 15 VDD 16 WT588 WT558U8 WT558D-16 VCC D7 LED1 VCC R31 470 GND C16 104 VCC C17 104 GND GND1 VOUT 2 VIN 3 AMS1117 U9 GND P20 P22 P33 P36 P20 P22 圖3.7 語音播報 第四章 系統(tǒng)軟件設計 4.1 編程軟件及語言的選擇 51 編程軟件可以使用 Keil uVisi
26、on3 或 Keil uVision4 進行程序編程及仿真。 Keil C 51 軟件是眾多單片機應用開發(fā)的優(yōu)秀軟件之一。它集編輯,編譯,仿真于一體。 支持匯編,PLM 語言和 C 語言的程序設計,界面友好,易學易用,具體用法在實訓過程 中已詳細講述及學習。 編程語言一般都是用 C 語言編程。C 語言是編譯型程序設計語言,兼顧高級語言的 特點,并具備匯編語言的功能。C 語言是一種結構化程序設計語言,它支持當前程序設 計中廣泛采用的由頂向下結構化程序設計技術。此外,C 語言程序具有完善的模塊程序 結構。C 語言執(zhí)行效率沒有匯編語言高,但語言簡潔,使用方便,靈活,運算豐富,表 達化類型多樣化,數(shù)據(jù)
27、結構類型豐富,具有結構化的控制語句,程序設計自由度大, 有很好的可重用性,可移植性等特點?;?C 語言的眾多優(yōu)點本設計選擇此語言來編 程。此外,還可以使用匯編語言,C+等語言來進行編程。 4.2 程序設計 超聲波測距的軟件設計主要由主程序、超聲波發(fā)生子程序、超聲波接收程序及顯 示子程序組成。超聲波測距的程序既有較復雜的計算(計算距離時) ,又要求精細計算 程序運行時間(超聲波測距時) ,所以控制程序可采用 C 語言編程。 主程序首先是對系統(tǒng)環(huán)境初始化,設定時器 0 為計數(shù),設定時器 1 定時。置位總 中斷允許位 EA。進行程序主程序后,進行定時測距判斷,當測距標志位 ec=1 時,測量 一次
28、,程序設計中,超聲波測距頻度是 4-5 次/秒。測距間隔中,整個程序主要進行循 環(huán)顯示測量結果。超聲波測距器的制作和調(diào)試都較為簡單,其中超聲波發(fā)射和接收采 用 15 的超聲波換能器 TCT4010F1(T 發(fā)射)和 TCT4010S1(R 接收) ,中心頻率為 40KHz,安裝時應保持兩換能器中心軸線平行并相距 48cm,其余元件無特殊要求。若 能將超聲接收電路用金屬殼屏蔽起來,則可提高抗干擾性能。根據(jù)測量范圍要求不同, 可適當?shù)卣{(diào)整與接收換能器并接的濾波電容 C4 的大小,以獲得合適的接收靈敏度和抗 干擾能力。 硬件電路制作完成連接并調(diào)試好后,便可用 Keil uVision3 將程序編譯好
29、下載到 單片機試運行。根據(jù)實際情況可以修改超聲波發(fā)生子程序每次發(fā)送的脈沖寬度和兩次 測量的間隔時間,以適應不同距離的測量需要。根據(jù)所設計的電路參數(shù)和程序,測距 儀能測的范圍為 0.105.00m,測距儀最大誤差不超過 1cm。系統(tǒng)調(diào)試完后應對測量誤 差和重復一致性進行多次實驗分析,不斷優(yōu)化系統(tǒng)使其達到實際使用的測量要求。 當調(diào)用超聲波測距子程序后,首先由單片機產(chǎn)生 4 個頻率為 38.46kHz 超聲波脈沖, 加載的超聲波發(fā)送頭上。超聲波頭發(fā)送完送超聲波后,立即啟動內(nèi)部計時器 T0 進行計 時,為了避免超聲波從發(fā)射頭直接傳送到接收頭引起的直射波觸發(fā),這時,單片機需 要延時約 1.5 -2ms
30、時間(這也就是超聲波測距儀會有一個最小可測距離的原因,稱之 為盲區(qū)值)后,才啟動對單片機 P3.5 腳的電平判斷程序。當檢測到 P3.5 腳的電平由 高轉為低電平時,立即停止 T0 計時。由于采用單片機采用的是 12 MHz 的晶振,計時 器每計一個數(shù)就是 1s,當超聲波測距子程序檢測到接收成功的標志位后,將計數(shù)器 T0 中的數(shù)(即超聲波來回所用的時間)按式(2)計算,即可得被測物體與測距儀之間 的距離。 其中當障礙物與超聲波模塊的距離 S2000cm 時,語音播報提示為“安全距離” , 當 500S1000cm 時,語音播報提示為“保持距離” ,當 100S500cm 時,語音播報提 示為“
31、請注意” ,當 S100 時,語音播報提示為“危險距離” 。 開始 系統(tǒng)初始化 發(fā)送超聲波 等待反射 計算距離 S 屬于 m 語音播報 液晶顯示 結束 y 圖 4.1 主程序圖 開始 初始化 檢查忙函數(shù) y n 寫命令函數(shù) 寫數(shù)據(jù)函數(shù) 延時 結束 圖 4.2 1602 顯示程 序 開始 獲取語音數(shù)據(jù) WT588D 初始化 開始播報 全部播報完 結束 n y 圖 4.3 語音播報 第五章 系統(tǒng)調(diào)試 首先檢測串口能否通,先串口線或者 USB 轉串口線插到計算機上,再打開串口調(diào) 試助手,接著選擇串口,串口線和 USB 轉串口的端口號查看路徑:計算機右鍵設 備管理器端口(COM 和 LPT) ,點開查
32、看即可。接著設置串口調(diào)試助手,選擇端口號, 發(fā)送的字符/數(shù)據(jù)中隨便輸入2位數(shù)字,其余設置默認,短接串口線或者 USB 轉串口線9 針中的2和3,短接完畢后,用鼠標左鍵點擊串口調(diào)試助手中的手動發(fā)送,每點擊一次 可以收到一次數(shù)據(jù),說明串口和串口線正常。調(diào)好后再下載已經(jīng)編寫好的程序,然后 在超聲波發(fā)射接口放置障礙物,通過1602液晶顯示屏可以觀察到所測的距離。 同時通過移動障礙物,改變距離,此時超過一定距離時,會通過語音來提 示此時的距離是否處于安全距離,從而達到警戒作用。實物圖如下: 圖5.1 超聲波測距系統(tǒng)實物圖 第六章 結 論 本次設計使我學會了單片機的一些實際應用實例。我們廣泛借鑒了各種實際
33、的優(yōu) 點,充分考慮了整個設計中的各個環(huán)節(jié)。包括產(chǎn)生 40KHZ 的方波,在接收電路中,對 所接收方波進行濾波、放大、整形等步驟。 在我們?yōu)槠诙艿脑O計中,我們用到了以前學到的很多知識,比如電工、單片機、 和 C 語言等。這使我意識到,任何一件產(chǎn)品的產(chǎn)生,都不是單一知識所能實現(xiàn)的。而 且在電路板焊接過程中,出現(xiàn)一些意想不到的錯誤,這讓我措手不及,有些其實很容 易避免。但這讓我受益匪淺。這次單片機課程設計時長 2 個星期時間非常充足,第一 周主要熟悉并且會使用一些畫圖軟件及程序編程仿真軟件。自己親自用 DXP2004 軟件 把主系統(tǒng)圖和功能電路圖畫出來,并且用 Keil uVision3 編寫程序
34、及仿真。第二周我 們主要進行焊接 51 單片機電路板及超聲波測距系統(tǒng)電路板并調(diào)試。通過這兩周的課程 設計,我學到了很多在課堂上學不到的東西即動手能力。對于我們這個電子信息工程 專業(yè)的學生來說,動手實際操作能力是非常重要的,很多在課堂上學的理論都是要靠 我們做實驗來驗證的,而做實驗就是鍛煉我們的實際操作能力。在畫電路圖的過程中, 遇到了很多阻礙。一開始 DXP2004 畫圖軟件不會用(大二學過的,但時間長了又忘了) , 后來又重新學了一遍,付出很多時間。所以我們學過的東西要經(jīng)常拿出來用,學以致 用。電路圖畫好后,又用 keil 軟件編寫一些簡單的程序并調(diào)試,練習使用軟件。在這 次實習中學到了很多
35、知識,比如電工,51 單片機,匯編語言等。這使我們意識到,任 何一件產(chǎn)品的產(chǎn)生,都不是單一知識所能實現(xiàn)的。而且在電路的設計和程序的編程過 程中,出現(xiàn)了很多意想不到的錯誤,讓我們措手不及,有些甚至是一些非常低級的錯 誤,但是這些錯誤也同樣讓我們獲益非淺,它使我們意識到,研究是一個非常嚴肅的 過程,來不得半點馬虎。必須有一個嚴謹?shù)膽B(tài)度,加上 100的努力才有可能獲得成功 的喜悅 總之,在本課題的設計過程中在老師的指導和幫助下少走了很多彎路,但還是學 到了不少知識。了解了超聲波傳感器的原理,學會了電路板焊接技能、和各種電路的 設計與分析。動手能力與自學能力得到了鍛煉與提高。理論總是不開實踐的,設計制
36、 作過程中,盲目的追求理論知識根本不足以解決任何問題,一味的死研究課本是不會 真正掌握單片機的。只有實際去真正動手做才能發(fā)現(xiàn)問題,解決問題,提高自身能力。 附錄一: 單片機超聲波測距系統(tǒng)原理圖 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 J1 CON20 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 J2 CON20 1 2 3 4 5 6 7 8 9 J3 CON9 12 XT1 11.0592MHZ C7 22p C8 22p GND R15 10K GND C6 10UF R
37、16 1K R9 0 S1 SW-PB VCC VCC VCC X1X2 RST EA P10 P11 P12 P13 P14 P15 P16 P17 RST P30 P31 P32 P33 P34 P35 P36 P37 X1 X2 GND VCC P00 P01 P02 P03 P04 P05 P06 P07 EA ALE PSEN P20 P21 P22 P23 P24 P25 P26 P27 P00 P01 P02 P03 P04 P05 P06 P07 串串串 GND P10 P11 P12 P13 P14 P15 P16 P17 RST P30 P31 P32 P33 P34 P3
38、5 P36 P37 X1 X2 P00 P01 P02 P03 P04 P05 P06 P07 EA ALE PSEN P20 P21 P22 P23 P24 P25 P26 P27 串 串 串 1 2 3 J17 CON3 C9 0.1U D6 LED R22 1K VCC GND 2 3 1 S4 POWER_3 C1+ 1 V+ 2 C1- 3 C2+ 4 C2- 5 V- 6 T2OUT 7 R2IN 8 R2OUT 9 T2IN 10 T1IN 11 R1OUT 12 R1IN 13 T1OUT 14 GND 15 VCC 16 U2 MAX232 C3 0.1U C4 0.1U C
39、5 0.1U C1 0.1U C2 0.1U GND VCC 串串串串 P30 P31 1 6 2 7 3 8 4 9 5 CX1 DB9 串串串串串 12 U7A MC74HC04AD 34 U7B MC74HC04AD 12 U6A 74HC04 34 U6B 74HC04 65 U6C 74HC04 98 U6D 74HC04 VCC VCC R27 1K R30 1K LS1 串串串串 LS2 串串串串 GND C12 100uF C13 33uF R28 1K C15 330 R29 200K R32 220K 1 2 3 4 5 6 7 8 J31 CON8 P36 VCC P33
40、 VCC C14 100uF GND 1 2 J34 CON2 1 2 J35 CON2 1 2 J32 CON2 1 2 3 J33 CON3 GND RST 1 DAC 2 PWM+ 3 PWM- 4 P14 5 P13 6 P16 7 GND 8 P15 9 P03 10 P02 11 P01 12 P00 13 VCC 14 BUSY 15 VDD 16 WT588 WT558U8 WT558D-16 VCC D7 LED1 VCC R31 470 GND C16 104 VCC C17 104 GND GND1 VOUT 2 VIN 3 AMS1117 U9 GND P20 P22
41、P33 P36 P20 P22 1602串串串串 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 J20 CON16 GND GND VCC RS RW E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 VCC 12 34 56 78 910 11 12 13 14 15 16 17 18 19 20 21 22 J19 2COM22 P20 P21 P22 P10 P11 P12 P13 P14 P15 P16 P17 RS RW E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 串串 串串 R61.8K EA/VPP 31
42、XTAL1 19 XTAL2 18 RST/VPD 9 P3.7/RD 17 P3.6/WR 16 P3.2/INT0 12 P3.3/INT1 13 P3.4/T0 14 P3.5/T1 15 P1.0/T 1 P1.1/T 2 P1.2 3 P1.3 4 P1.4 5 P1.5 6 P1.6 7 P1.7 8 P0.0 39 P0.1 38 P0.2 37 P0.3 36 P0.4 35 P0.5 34 P0.6 33 P0.7 32 P2.0 21 P2.1 22 P2.2 23 P2.3 24 P2.4 25 P2.5 26 P2.6 27 P2.7 28 PSEN 29 ALE/PR
43、OG 30 P3.1/TXD 11 P3.0/RXD 10 Vcc 40 Gnd 20 AT89S52 U? AT89S52 附錄二: PCB 圖 附錄三: 單片機超聲波測距系統(tǒng) C 語言原程序 超聲波測距系統(tǒng)程序設計 /* * 包含頭文件 * */ #include #include #define NOP _nop_();_nop_();_nop_() #define uchar unsigned char #define uint unsigned int #define ulong unsigned long /* * 位定義 * */ sbit csb=P34; sbit green
44、=P23; sbit yellow=P24; sbit red=P25; bit flag_1=0; uchar vo_vo=0 xe7; uint speed=340; #includedelay.c #includesound.c #include12864.c #includedisplay.c #includeDS18B20.c #includeSOUND.c #definenop _nop_() float distance; uint count=0; uchar high_time,low_time,flag=0,tc=2; uchar flag_2=0; uchar tc_sa
45、y=0; ulong dis,dis_43; /* * 函數(shù)名:float Distance_count() 功能:距離計算函數(shù) * */ float Distance_count() float temp; temp=high_time*256+low_time; temp=(temp*10/9216)/2; temp*=speed; return temp; /* * 函數(shù)名:ulong do_s(ulong dis_1) 功能:距離補償 * */ ulong do_s(ulong dis_1) uchar n; if(dis_170)i-) csb=!csb; nop; nop; nop
46、; nop; nop; nop; nop; nop; nop; csb=1; delay_ms(2); EX1=1; delay_ms(30); if(flag=1) distance=Distance_count(); dis=(ulong)distance ; flag=0; else dis=0; void tran1() uchar i; TH0=0; TL0=0; TR0=1; for(i=8;i0;i-) csb=!csb; nop; nop; nop; nop; nop; nop; nop; nop; nop; csb=1; delay_ms(2); EX1=1; delay_m
47、s(30); if(flag=1) distance=Distance_count(); dis=(unsigned long)distance; flag=0; else dis=0; void tran2() uchar i; TH0=0; TL0=0; TR0=1; for(i=16;i0;i-) csb=!csb; nop; nop; nop; nop; nop; nop; nop; nop; nop; csb=1; delay_ms(2); EX1=1; delay_ms(40); if(flag=1) distance=Distance_count(); dis=(unsigned
48、 long)distance; flag=0; else dis=0; /* * 函數(shù)名:void dis_all(ulong dis_s) 功能:控制 LED 指示燈和語音播報 * */ void dis_all(ulong dis_s) show(dis_s); if(dis_s2000) show_one(DIS4,2); green=0;red=1;yellow=1; if(flag_2!=1) send_oneline(12);/安全距離 delay_nms(50); while(!busy); flag_2=1; else if(dis_s500) green=1;red=0;ye
49、llow=1; if(flag_2!=3) send_oneline(15);/請注意 delay_nms(50); while(!busy); send_oneline(13); /危險距離 delay_nms(50); while(!busy); flag_2=3; else show_one(DIS8,2); yellow=1; if(dis_sdis) dis=dis_40; if(dis_41dis) dis=dis_41; /* * 函數(shù)名:void main(void) 功能:主函數(shù) * */ void main(void) ulong data time; uchar i,j;
50、 P0 = 0 xFF; P1 = 0 xff; P2 = 0 xff; TMOD=0 x01; TH0=0; TL0=0; EA=1; IE=0 x80; displayall(); while(1) lcd_pos(4,0); / 設置顯示位置為第三行 for(i=0;i16;i+) write(1,DIS10i); /lcd_wdat(DIS3i); delay(2); for(i=0;i3;i+) tran(); if(dis=0) tran1(); if(dis=0) tran2(); dis=do_s(dis); dis_4i=dis; fit_1(); if(dis4000) t
51、ime=time-1000; else if(time-dis)2500) time=dis; else time=time-100; else time=dis; dis_all(time); if(tc_say=4) soundplay(time); tc_say=0; temp_all(); tc_say+; lcd_pos(1,6); for(j=0;j4;j+) write(1,space4j); lcd_pos(1,6); for(j=0;j0)i-) ; void delay(int ms) while(ms-) uchar i; for(i=0;i246;i+) _nop_()
52、; _nop_(); _nop_(); _nop_(); void delay1(int ms) while(ms-) uchar y; for(y=0;y100;y+) ; /* * 函數(shù)名:show(ulong ss) 功能:顯示測試數(shù)據(jù) * */ void show(ulong ss) uchar data_s2,i; data_s0=ss/10000; /數(shù)據(jù) 的處理 if(data_s0=0)/測量數(shù)據(jù)的 十米位為 0 data_s0=0 x20; else data_s0=data_s+0 x30; data_s1=ss%10000/1000+0 x30; lcd_pos(3,5)
53、; /第三行,第七 個(2*n+1)字節(jié)位置顯示 write(1,data_s1); for(i=0;i2;i+) write(1,data_si); lcd_wdat(data_si); /顯示米位 數(shù)據(jù) delay(1); data_s0=ss%1000/100+0 x30; data_s1=ss%100/10+0 x30; lcd_pos(3,6); for(i=0;i2;i+) write(1,data_si);/lcd_wdat(da ta_si); /顯示分米和厘米位數(shù)據(jù) delay(1); write(1,ss%10+0 x30);/lcd_wdat(ss%10 +0 x30);
54、/顯示毫米位數(shù)據(jù) delay(1); /* * 常量定義 * */ #definecircle0 xf2/循環(huán)播放 #definestop_play 0 xfe/停止播放 #definevo_00 xe0/音量 1 #definevo_10 xe1/音量 2 #definevo_20 xe2/音量 3 #definevo_30 xe3/音量 4 #definevo_40 xe4/音量 5 #definevo_50 xe5/音量 6 #definevo_60 xe6/音量 7 #definevo_70 xe7/音量 8 /* * 延時 n 個 ms 函數(shù) * */ void delay_nms(
55、uint ms) /delay ms function uchar i; while(ms-) for(i = 0; i 0;j-); /* * 位定義 * */ sbit rst=P23; sbit CS=P25;/片選端 sbit CLK=P26;/時鐘 sbit sda=P24;/數(shù)據(jù)位 sbit busy=P27;/忙信號 /* * 函數(shù)名:void send_com(uchar add) 功能:發(fā)碼播放,add 為語音地址 * */ void send_com(uchar add) uchar i; RST=1; RST=0; delay_nms(3); RST=1; delay_n
56、ms(20); CS=0; delay_nms(5); for(i=0;i1; CS=1; void delayus(uint z) uint x,y; for(x=z;x0;x-) for(y=10;y0;y-); void send_oneline(uchar add) uchar i; rst=0; delay(1); rst=1; delay(17); /*復位延時 17MS*/ rst=1; delay(6); /* delay 6ms */ sda=0; delay(5); /* delay 5ms */ for(i=0;i=1; sda=1; /* * 函數(shù)名:void soun
57、d(ulong soud) 功能:播報測距距離 * */ void sound(ulong soud) uchar i,j,k,l; send_oneline(vo_vo); while(!busy); i=soud/1000; j=soud%1000/100; k=soud%100/10; l=soud%10; send_oneline(i); delay_nms(300); while(!busy); send_oneline(10);/播放“點” delay_nms(300); while(!busy); send_oneline(j); delay_nms(300); while(!b
58、usy); send_oneline(k); delay_nms(300); while(!busy); if(l!=0) send_oneline(l); delay_nms(300); while(!busy); send_oneline(11);/播放米 delay_nms(300); while(!busy); /* * 函數(shù)名:void soundplay(uint dis_say) 功能:播放“測量距離” * */ void soundplay(uint dis_say) /if(busy!=0) sound(dis_say);/播放“測量距離” sbit DQ = P37;/定義
59、 DS18B20 端口 DQ uchar presence ; uchar temp_data2=0 x00,0 x00; uchar display5=0 x00,0 x00,0 x00,0 x00,0 x00; uchar code ditab16=0 x00,0 x01,0 x01,0 x02,0 x03, 0 x03,0 x04,0 x04, 0 x05,0 x06,0 x06,0 x07,0 x08,0 x08,0 x09,0 x09; bit flash=0; /顯示開關標記 /* */ void Delay_1(uint num) /延時函數(shù) while( -num ); /*
60、* 函數(shù)名:Init_DS18B20 功能:DS18B20 初始化 /* */ Init_DS18B20(void)/初始化 ds1820 DQ = 1; /DQ 復位 Delay_1(8); /稍做延時 DQ = 0; /單片機將 DQ 拉低 Delay_1(90); /精確延時 大 于 480us DQ = 1; /拉高總線 Delay_1(8); presence = DQ; /如果=0 則初始化成功 =1 則初始化失敗 Delay_1(100); DQ = 1; return(presence); /返回信 號,0=presence,1= no presence /* * 函數(shù)名:Re
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024版農(nóng)田租賃協(xié)議模板
- 二零二五年度個人經(jīng)營貸款擔保合同范本集2篇
- 2024年網(wǎng)絡直播平臺運營合同
- 2025版駕校教練學員交通事故處理合同3篇
- 2024年項目介紹人傭金協(xié)議
- 2024版電子協(xié)議法律風險防范版
- 二零二五年度冷鏈物流企業(yè)電冰箱采購與冷鏈運輸合同3篇
- 2024新能源汽車租賃行業(yè)規(guī)范合同范本(年度版)3篇
- 2024店鋪轉讓協(xié)議書樣書
- 2024年設備進口與出口合同
- 精益生產(chǎn)篇(培訓資料)
- 七年級上冊數(shù)學《有理數(shù)》計算題綜合訓練帶答案
- 大學英語精讀原文1-6冊完整版
- 2022-2023學年高教版中職語文基礎模塊上冊月考卷四
- 交通刮蹭私了協(xié)議書范本
- 《冷戰(zhàn)史專題》筆記
- 2024-2030年中國輪轂電機行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 高中體育課程活動方案
- 小學中高年段語文學科基于課程標準評價指南
- (完整版)獸醫(yī)臨床診斷學
- GB/T 23586-2022醬鹵肉制品質量通則
評論
0/150
提交評論