逢 甲 自動控制工程學系專題製作 專 題 論 文€¦ ·...

63
自動控制工程學系專題製作 超音波動態測距 Dynamic Distance Detection of Ultrasonic 指導教授:洪三山 生:林詩閔、陳柏勳、陳柏宏 中華民國九十四年三月一十六日

Upload: others

Post on 12-Jul-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

  • 逢 甲 大 學 自動控制工程學系專題製作

    專 題 論 文

    超音波動態測距 Dynamic Distance Detection of Ultrasonic

    指導教授:洪三山

    學 生:林詩閔、陳柏勳、陳柏宏

    中華民國九十四年三月一十六日

  • i

    感謝

    由於大學四年期間所學有限,加上從未涉獵過關於超音波相關的知識,對我

    來說,算是一大挑戰。循序漸進下,尋找並研讀相關資料,漸漸的對超音波有了

    進一步的認識與了解,並釐定了往後的研究方向。

    過程中碰到了不少挫折,尤其在硬體電路的設計上,花了相當多的時間去解

    決。在此,特別感謝專題指導教授 洪三山老師,感謝您平時悉心的指導,讓我

    在研習中獲得更多的實務經驗與專業知識。在日常生活中也學習到不少待人處世

    的道理,您的諄諄教誨我將會謹記在心,誠心的感謝您。

    時光飛逝,大學四年生活很快就告一段落了,不管是專業科目領域的學習,

    或是日常生活中的經驗都讓我成長許多。感謝系上所有的老師與助教平日的照顧

    與指導,感謝實驗室的學長光強、振達,還有平日一起打拼的同學冠亨、永祥、

    清宏、哲煒、哲維、博州、鉅強、鴻巖,在此謹致由衷的感謝你們。

  • ii

    中文摘要

    本文主要的目的,設計適當的軟硬體來偵測超音波在空氣中飛行時間差,

    在已知音速的情況下,經過 8951 內部程式的處理可計算出慢速物體移動的距

    離,進而顯示在 LCD 上。

    此專題硬體部分主要由發射電路、接收電路兩大部分所構成,而發射電路主

    要是由電源驅動無穩態多諧振盪電路和除頻電路並送出電壓透過 NE555 振盪出

    連續方波。接收電路包含主動式帶通濾波器、放大電路、比較電路。本文將對各

    電路設計跟及實作提供解說並分享實驗心得。

  • iii

    Abstract

    The main purpose of this paper is that be well to detect and examine

    the flight time difference of the air of ultrasonic wave by suitable

    software and hardware. In case of already knowing the values of velocity

    of sound , By inside procedure of 8951,the distance of the object with

    moving slowly can be calculated and then shown on LCD.

    This hardware of this designed subject included shooting and

    receiving circuit. The shooting circuit would be driven by power. Through

    the astable multivibrator sends the voltage to the circuit of NE555 and

    oscillate the square wave. The receiving circuit includes active band pass

    filter, enlarging circuit and comparing circuit. This paper will offer

    the suitable explanation for every designed circuit and experiments. We

    will also share our thoughts we learned.

  • iv

    目錄

    感謝………………………………………………………………………………… i

    中文摘要………………………………………………………………………… ii

    Abstract………………………………………………………………………… iii

    目錄………………………………………………………………………………… iv

    圖目錄…………………………………………………………………………… vi

    表目錄…………………………………………………………………………… vii

    第一章 序論………………………………………………………………………… 1

    1.1 前言………………………………………………………………………… 1

    1.2 實驗動機…………………………………………………………………… 1

    第二章 超音波之理論探討………………………………………………………… 2

    2.1 超音波槪論………………………………………………………………… 2

    2.2 超音波之性質……………………………………………………………… 2

    2.3 超音波之論述……………………………………………………………… 4

    2.4 超音波感測器……………………………………………………………… 5

    2.4.1 電磁感應型振盪器…………………………………………………… 6

    2.4.2 磁伸縮振盪器………………………………………………………… 6

    2.4.3 壓電振盪器…………………………………………………………… 6

    2.5 超音波感測之配置………………………………………………………… 7

    2.5.1 單一發射型…………………………………………………………… 7

    2.5.2 對射型………………………………………………………………… 7

    2.5.3 同端分離反射型……………………………………………………… 7

    2.5.4 整型反接型…………………………………………………………… 7

    第三章 硬體系統架構與性質…………………………………………………… 9

    3.1 整體結構說明……………………………………………………………… 9

  • v

    3.2 動作方塊圖………………………………………………………………… 9

    3.3 電源電路…………………………………………………………………… 9

    3.3.1 操作原理……………………………………………………………… 9

    3.3.2 實驗心得……………………………………………………………… 10

    3.4 8951 震盪連續方波………………………………………………………… 10

    3.5 NE555 振盪電路…………………………………………………………… 11

    3.6 主動式帶通濾波器………………………………………………………… 12

    3.6.1 基本原理……………………………………………………………… 12

    3.6.2 二階帶通濾波之探討………………………………………………… 12

    3.6.3 實驗心得……………………………………………………………… 15

    3.7 整流比較電路……………………………………………………………… 16

    第四章 軟體之設計……………………………………………………………… 18

    4.1 8951 單晶片功能與規劃…………………………………………………… 18

    4.2 軟體流程說明……………………………………………………………… 22

    4.3 軟體設計理念……………………………………………………………… 23

    第五章 結論……………………………………………………………………… 24

    參考文獻…………………………………………………………………………… 25

    附錄 1主動式帶通濾波器之高頻分析推導……………………………………… 26

    附錄 2 Data Sheet………………………………………………………………… 30

    附錄 3 軟體程式…………………………………………………………………… 38

  • vi

    圖目錄

    圖 2.1 人耳可以感受到的頻率範圍與震動強度關係…………………………… 2

    圖 2.2 超音波感測器之構造……………………………………………………… 5

    圖 3.1 硬體系統方塊流程圖……………………………………………………… 9

    圖 3.2 電源電路示意圖…………………………………………………………… 10

    圖3.3 NE555振盪電路…………………………………………………………… 11

    圖 3.4 從示波器觀察555振盪電路之波形………………………………………11

    圖 3.5 BPF 的特性曲線………………………………………………………… 12

    圖 3.6 主動式帶通濾波電路與放大電路示意圖……………………………… 16

    圖 3.7 比較電路示意圖…………………………………………………………… 17

    圖 3.8 從示波器觀察比較電路之示意圖……………………………………… 17

    圖 3.9 超音波動態測距實體圖………………………………………………… 17

    圖4.1 8951單晶片與LCD模組接腳圖……………………………………………18

    圖 4.2 方塊流程圖………………………………………………………………… 22

  • vii

    表目錄

    表 2.1 超音波在不同介質中前進的速度………………………………………… 3

    表 2.2 為基本的壓電效應與壓電逆效應之說明圖……………………………… 4

    表 2.3 超音波感測器之檢出方式………………………………………………… 8

    表 4.1 8951 接腳功能簡介……………………………………………………… 19

  • 1

    第一章 序論

    1.1 前言:

    在講求效率的工作環境上,產業界一直朝著自動化的目標邁進,因此,自動

    量測系統扮演著舉足輕重的角色。其中需要用到距離量測的地方甚多,加上超音

    波在非破壞性檢測與測距方面運用非常廣泛,因此選用超音波動態測距作為此次

    專題題目。

    空氣中音波傳送速度與粒子成分、壓力、溫度有關。在攝氏 0度,大氣壓力 1

    atm 時,波速為 331.4 m/s,溫度升高時,氣體力子間動能增大,故粒子間的碰撞

    距離縮短,於平地 1 atm 下,波速公式為 20 x √T,T 為絕對溫度,或是 331 + 0.6t,

    t 為攝氏溫度。由於波動是由中心向四周擴散,遠處傳回來的回音也同樣擴散,對

    點發射源而言,距離越遠,所測的振幅與距離平方成反比。若能量取回波傳回之

    時間,乘以當時空氣的速度再除以 2,利用此方法,即求得要量測之距離 。

    1.2 實驗動機:

    在現今社會中們看到了多超音波的應用,舉凡超音波洗衣機、洗碗機、倒車

    雷達、魚群探測器…等。超音波(Ultra sonic)是近年來曝光率相當高的名詞,

    目前市面上可見的超音波科技產品包羅萬象,舉家電產業(例如洗衣機、冷氣機、

    眼鏡清洗機)、金屬製品(金屬熔接)、電子業(IC 製造)與生物、醫療領域(超音

    波檢驗、超音波碎石)都能見到這項技術的應用。且其研究領域內涵卻仍然不斷地

    在創新與發展中。超音波在現今生活中,佔著一席之地。因此,身為一個 21 世紀

    的現代人絕對有必要對超音波有進一步的認識與了解。在此,我們先試圖去瞭解

    超音波的特性,進而製作超音波測距器,且對其發射與接收電路提出可用之線路

    設計。

  • 2

    第二章 超音波之理論探討

    2.1 超音波概論:

    超音波是一種人類聽不到的聲波,而一般人耳可聽見的聲音頻率範圍是從

    20Hz~20kHz左右,當音波超過2OkHz時,即稱其為超音波(ultrasonicwave),也就

    是超過人類耳朵所能聽見的音波。超音波感測器能檢知聲音能量中較高頻域的信

    號,其範圍約在20kHz到數MHz左右。不過超音波通常是指超過20kHz以上的響應。

    而這類超音波的感測器都是採用壓電效應的壓電陶瓷元件居多。

    圖 2.1 人耳可以感受到的頻率範圍與震動強度關係

    2.2 超音波之性質:

    超音波藉著不同介質前進,不同介質有不同的前進速度,表2.2為超音波在各

    種不同介質中前進的速度,在此為了配合本研究需要,特別要注意的是空氣中的

  • 3

    速度為0.331x5

    10 cm/sec,而超音波的前進速度(C)與波長(λ)和頻率(f)間的關

    係可以下式表示:

    C = f.λ (2.1)

    若以本研究所使用的超音波發射頻率4OkHz為例,利用(2.1)式可求出在空氣

    中的波長(λ)為0.85 cm,理想上,超音波發射出去後,會一面擴大,一面直線前

    進,只要介質沒有吸收超音波的性質,超音波的強度不論傳到任何地方都不會變

    多,不過實際上音波的強度隨著距離的增加而逐漸減弱,其原因有二:一是隨著

    距離的增加波面會擴大而造成擴散損失,另一方面,是超音波會被傳播介質吸收

    及散射而造成波動能量的損失,一般稱為吸收損失,亦稱衰減。超音波的頻率越

    大時,在介質中的衰減情形也越大。可由式(2.1)之公式得知。表2.2超音波在各

    種不同介質中前進的速度。

    表2.1 超音波在不同介質中前進的速度

    媒質 波前進的速度

    ( )sec/105 cm 密度

    ( )3/ cmg 音響阻抗

    ( )Ω

    6.22

    5.81

    2.65

    7.8

    1.7

    4.76

    4.33

    4.62

    1.74

    8.93

    0.926

    4.11

    水銀

    2.13

    1.46

    11.4

    13.6

    2.73

    1.93

    聚乙烯

    2.67

    1.43

    1.1

    1.0

    0.924

    0.143

    空氣 0.331 0.0012 0.000042

  • 4

    2.3 超音波之論述:

    超音波大部份的頻率在40kHz左右,這隨著用途和元件的差異而有所不同。它

    大部份被用來偵測物體的運動速度,短距離的量測與判定物體之有無等,屬於一

    種非接觸型的感測元件。超音波感測器分成發射器和接收器,兩者同樣具有「壓

    電效應」對超音波發射器而言稱為「電壓效應」,因為在超音波感測器裡的振動

    子,有使用如喇叭般的可動線圈轉換器,例如像電容型麥克風之轉換器,或使用

    磁性失真振動子。不過現在大多使用壓電陶瓷振動子,超音波的振動子都具有壓

    電效應,當振動子受到外界壓力,如音壓…等,而產生歪變時,則於振動子的兩

    側將產生極性不同的電荷,而將電氣信號轉換成壓力的信號去壓縮周圍空氣;而

    這些受壓縮的空氣將會壓縮接收器上的壓電材料,並產生「壓電效應」,進而將

    壓力信號轉換成電的信號。反之,如果有電壓施加於振動子其上的話,將會有順

    應電壓和頻率的機械性的歪變進而產生,及晶體或陶瓷產生變形,而引起振動。

    也就是壓電逆效應。

    表2.2 為基本的壓電效應與壓電逆效應之說明圖

    壓電效應 壓電逆效應

    說明圖

    特 性 壓電振盪元件的分極方向,由力

    與元件端子的出力極性來決定。

    壓電振盪元件的分極方向和輸入電

    壓的極性有關,而振盪元件的伸縮方

    向由外加電壓決定。

    用 途 1. 壓電振盪元件。

    2. 超音波偵測器。

    1. 壓電振盪用。

    2. 高頻用振盪元件。

    3. 超音波發生器。

  • 5

    2.4 超音波感測器:

    在超音波的系統中,感測器必須具備著產生與接收的兩種功能,而我們常使

    用的超音波感測器有兩大類,分別是壓電式和磁伸縮式(magnetostrictive)。其

    中壓電式的體積較小,但是效率較高,而磁伸縮式則較為堅固,因此可運用在較

    高功率方面。當與超音波的設備相連接時,感測器的功能就是超音波及接收其反

    射量,因此,因為連接的方式不同,超音波感測器可為一個發射器或是接收器,

    或者是兼具兩種功能。圖 2.3 所示為一般超音波感測器之構造,此振動子稱為雙

    壓電振動子(bimorph),此振動子是將兩片壓電陶瓷貼合,分別以極性相反隻電壓

    施加其上,則一方將伸展,一方將壓縮。而且,極性反過的話,伸展與收縮兩方

    也會同樣反轉過來。而僅有一片壓電元件者稱為單壓電振動子(unimorhp)。

    圖2.2 超音波感測器之構造

    超音波發射器與接收器其產生與輸出大致可以區分為電磁感應現象、壓電現

    象、磁振現象等之應用,都是電能和伸縮(彈性)能之轉換。依其內部架構可分為

    下列幾種類型:

  • 6

    2.4.1 電磁感應型振盪器:

    此類的結構類似動圈式喇叭,係利用磁場的方式來達到超音波的發射與接

    收。在頻率高時,變換效率就會降低,且其頻率選擇性差,很容易取捨雜音等效

    點,但並不受共振頻率所影響;雖然在共振頻率附近之驅動簡單,但近年來已少用

    此型振盪器。

    2.4.2 磁伸縮振盪器:

    鐵酸鹽振盪器,是利用Si、Co、Ca、Cu、Ni、Fe等金屬氧化物的混合粉末,

    加熱並加高壓壓縮成型,再將線圈纏繞在材料上,當電流流過線圈時,由於材料

    本身受磁場變化而產生共振形成超音波,而共振的方向與磁場垂直。由於鐵酸鹽

    為非導體,因此,對高頻電流所產生的磁場,形成渦電流的情形會降低,因而使

    得能量轉換的效率大為提高,所以常被使用在工業用途中(如洗淨機、工具機中)

    其輸出的能量在6W/cm 2 左右,頻率範圍在28kHz~100kHz左右。

    2.4.3 壓電振盪器:

    係以水晶或石英晶體、酒石酸鉀鈉鹽(rochellesalt)的晶體,以及鈦酸鋇、

    鈦酸鉛等壓電效應元件做出超音波發射和接收器。在液體內或金屬內,MHz之超音

    波是使用水晶振盪器。當然,低頻之超音波的發射、接收也是可行的。Rochelle salt

    之結晶體並非最近才發現,在聲頻範圍之晶體麥克風、耳機早就使用此晶體,其

    感度是良好的。壓電型在音質、耐濕性、耐久性方面是很不好的,因此,超音波

    感測器並不使用此型。目前在超音波感測器上用得最多的是石英晶體型振盪器。

    以二枚石英晶體貼合在一起,一面伸張,另一面壓縮,使之彎曲做為振盪器,即

    所謂的雙壓晶片振盪器。此雙壓晶片振盪器之輸出電壓大、構造簡單、體形小,

    且其機械強度夠,溫度特性及濕度特性良好,價位低。其中小型的超音波感測器

    用得最多。此型超音波感測器,目前有多家廠商在生產,其共振頻率(中心頻率)

    有23~25kHz及40~45kHz兩種標準。

  • 7

    2.5 超音波感測之配置:

    2.5.1 單一發射型:

    使用超音波感測器產生 20kHz 以上之某一固定音頻,可應用於塑膠熔接機、

    清洗機、水氧機等大功率震動設備;或美容臉部用的超音波儀器及胸部、腹部等

    內臟檢查儀器。

    2.5.2 對射型:

    將超音波發射器和接收器分別放置於不同的地方,若有物體置於兩者之間

    時,超音波將被擋住,則接收器將無法收到發射器的信號,便能知道有無物體侵

    入。所以對射型可應用於偵測發射及接收端有無物體來確保此一區間安全防護,

    也可用於量測此間的距離。

    2.5.3 同端分離反射型:

    將超音波發射器和接收器放置同一端,超音波發射出去至遇到物體反射回

    來,則接收器便能接收到信號。在靜態時可以測量與物體之間距離,在動態時則

    可以隨時測量此物體的遠近,所以此方式與接下來介紹的另一種方式可以運用在

    倒車雷達或者偵測與旁邊移動的物體距離以側安全,本專題選用此配置方式來量

    測動態距離。

    2.5.4 整型反接型:

    發射和接收為同一包裝之超音波感測元件,與同端分離反射型原理相同,差

    別在於單顆﹙包含發射接收端﹚與雙顆﹙發射接收端分開﹚,應用上也大同小異,

    只是更為精簡。

  • 8

    表 2.3 超音波感測器之檢出方式

    類型 配置方式 用途 特徵

    對射型 1.遙控。

    2.物體的檢知。

    1.感測器要使用寬頻

    帶型。

    2.要有發送接收電

    路。

    3.近距離無法測量。

    同端分離

    反射型

    (獨立式)

    1.物體的檢知。

    2.距離之量測。

    1.檢知感度可以自由

    設定,易於設計。

    2.需要兩個設置場

    所。

    整型反

    接型(兼

    具性)

    1.物體的檢知。

    2.距離之量測。

    1.要有對策來處理T

    到R之直接繞射問

    題。

    2.可以使用T與R的

    專用感測器。

    3.近距離(以 10cm 以

    下)之情形居多。

  • 9

    第三章 硬體系統架構與性質

    3.1 整體結構說明:

    硬體部分主要是由 8951 震盪出連續方波、NE555 震盪電路構成發射電路,利

    用主動式帶通濾波器、放大電路、整流比較電路構成接收電路。軟體部分主要是

    由 8951 震盪出連續方波作負緣觸發啟動 8951,並做計數的動作,之後藉由整流電

    路送進脈波停止計數的功能

    3.2 動作方塊圖:

    圖 3.1 硬體系統方塊流程圖

    3.3 電源電路:

    3.3.1 操作原理:

    此專題採用的電壓值是正負 5 伏特跟正負 12 伏特,市電經由 PT-16 變壓器之

    LCD 顯示器

    主動式帶

    通濾波器

    555

    振盪電路

    超音波

    發射器

    8951 震盪連

    續方波 開關

    控制單元

    (8951)

    整流比較

    電路

    超音波

    接收器

  • 10

    12V-0V-12V,以降低電壓。再以橋式整流器作出全波整流,後面再接上電容進行

    濾波,最後再經由 7812 穩壓 IC 之電壓產生正負 12 伏特之電壓。而正負 12 伏特

    主要是供給 OP 作為正負 Vcc,而正負 5 伏特主要是供給於 74LS93 跟 7805 作為

    驅動電壓。此專題所使用的變壓器採用的是 PT-16,電流為 1 安培。

    3.3.2 實驗心得:

    1. 使用電容越大,產生的漣波脈動比較小,所供電的品質也比較好。

    2. 供電品質的好壞直接影響系統的穩定性,若系統有雜訊,有可能是漣波太大產

    生的結果。

    圖 3.2 電源電路示意圖

    3.4 使用 8951 震盪連續方波

    一開始使用無穩態多諧震盪,由於基本型的無穩態振盪電路在電壓上升時,

    會造成圓角,甚至會影響到後來發射電路無法振盪出 40.6kHz 的頻率,即使在電

    容跟電阻作了些許的修正,但在示波器上仍可看出上升邊緣的圓角。因此,使用

    8951 來震盪出一連續完整方波,duty cycle 為 3.07%,上緣時間為 2ms,負緣時間

    為 65ms,使另一顆 8951 作負緣觸發,同時方波也送入 NE555 進行振盪。

  • 11

    3.5 NE555 震盪電路:

    因為選用的超音波發射接收器為 40.6kHz,因此,調整 R1,R2兩顆精密可變

    電阻的大小,以利振盪出所符合的頻率,另外,為了提升發射的功率,我們使用

    了 NPN 的 BJT 來作共集極放大,產生放大電流提供推動超音波的發射器的功率。

    設計電路時,我們使用 R1 = 220Ω跟 R2 = 500Ω使 NE555 震盪出 40.6kHz 的頻

    率並將振盪頻率送進超音波發射器。

    圖 3.3 NE555 振盪電路

    圖 3.4 從示波器觀察 555 振盪電路之波形

  • 12

    3.6 主動式帶通濾波器:

    3.6.1 基本原理:

    音波藉由空氣傳送,超音波接收器所接收到的回傳訊號通常非常微弱,通常

    量測到訊號大小,從示波器觀測到的電壓值大概只有幾十毫伏,如果直接經由放

    大電路來放大,訊號放大時會一併將雜訊放大。為了避免不必要的雜訊干擾,在

    經由放大電路前,必須先透過濾波電路留下原先我們所期望之振盪電路之頻率。

    此專題採用的是主動式帶通濾波器,此類型之濾波器為放大元件及適當的調諧元

    件所構成的電路裝置, 一般為電阻及電容之組合, 目的是用以通過某一段頻率而

    使其餘頻率產生衰減的情形。另外主動式濾波器有下列兩項特性:

    1.主動濾波器的dc增益可調整。

    2.主動濾波器輸出阻抗小到可以忽略,故OP的作用像是驅動輸出端的電壓源。

    另外主動式濾波器也有放大的功能,實驗過程中,為了求得更高的放大倍率,

    通常我們會主動式帶通濾波器後面再加一級放大電路作為調整。

    3.6.2 二階帶通濾波之探討:

    帶通濾波器有如圖3.5的特性曲線:

    圖 3.5 BPF 的特性曲線

  • 13

    12 ff − ......帶通頻寬

    BWf

    Q pp ≡ ......特性常數

    ( )( )22

    p

    pp

    p SQ

    S

    SBPFSH

    ωω

    ω

    +⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛+

    = ........................................ ( )1

    212 fff

    P×= ......幾何平均關係

    公式推導:

    (一)V1:KCL 定理

    i 1 +i 2 +i 3 +i 4 =0......[2]

    ( )01 VV − SC 4 +3

    1

    RV +

    1

    1

    RVV i− + 021 =SCV

    →1

    041213

    411

    RV

    VSCVSCRR

    SC i=−⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛+++ ............................(2)

    (二)A:KCL 定理

    065 =+ ii

    05

    021 =+ R

    VSCV

    25

    01 SCR

    VV −=⇒ ..................................................... (3)

    (3)帶入(2)

    ( ) 3310425

    031231314 RVRRVSCSCR

    VRRSCRRRRSC i=−+++−⇒

    ( ) iVSCRRVRRRCCSVRRSCRRRRSC 2530531422031431314 =−+++⇒

    31314531422

    2530

    )( RRSRRCRRRCCSSCRR

    VV

    i +++−

    =⇒

    42531

    425422

    41

    /)11(]/)[(

    )1(

    CCRRR

    CCRCCSS

    CRS

    ++++

    −= .................... )4(

  • 14

    比較(1)(4)得知

    41

    1CRP

    =ω ,其中的“-"號代表反向

    ( )( )

    425

    42

    242531425

    312

    //1

    11

    CCRCC

    Q

    CCRRRCCRRR

    p

    p

    +=

    =⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛+

    =

    ω

    ω.............................. ( )5

    當 Pff = 的時候,帶通濾波器,電壓增益的大小 G:

    ( )⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛+

    ==

    2

    41

    5

    425

    42

    41

    1

    1

    CCR

    R

    CCRCC

    CRG ....................................... ( )6

    從 Pω ,2

    Pω ,P

    P

    的式子中,能夠解到 1R , 3R , 5R 的值,分別為:

    p

    p

    GCQ

    Rω4

    1 = , ( ) ppp

    CGQ

    QR

    ω423 2 −

    = , p

    p

    CQ

    Rω4

    5

    2=

    若 CCC == 42 ,則1

    5

    2RCR

    G = ,即 GRR 15 2= ,則

    GCfQ

    Rp

    p

    π21= , ( )GQCf

    QR

    pp

    p

    −= 23 22π

    , Cf

    QR

    p

    p

    π=5

    由 3R 的公式中,必須 0)2(2 >−GQP ,所以 GQP >

    22

    2GQP > ,圖 3.5 主動式帶通濾波之條件。.............................. ( )7

    因 G 的公式並沒有用到 3R ,當只有改變 3R 時,有下列之影響:

    (1)得到新的中心頻率 PNf 。

    (2)當 PNff = 時,G並沒有改變。

    (3)BW 頻寬也沒有改變,則 PQ 勢必會改變。

  • 15

    也就是說當所設計的主動式帶通濾波器中心頻率 Pf 不正確的時候,可以調整

    3R 的大小,已得到正確的 Pf

    2

    33 ⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛=

    PN

    PN f

    fRR ,中心頻率調整的依據.................................. ( )8

    3.6.3 實驗心得:

    1.此部份在接收電路中扮演著重要的地位,設計目的主要是希望能有效的濾除雜

    訊,期望能得到精確的中心頻率訊號及其放大增益值。因為超音波屬於 40.6kHz

    的高頻聲波,如果使用一般的 741 當 OP 的話,輸出可能會造成失真。所以在此

    使用 LF356 當作 OP 並以 R、C構成的 Feedback Loop 組成。

    2.BPF 中的電容器不要使用太大,由上述之公式得知,若電容值太大, R1、R3、

    R5 值勢必相對縮小,而在挑選電阻的過程中,如果使用接近的電阻值,將會造成

    誤差而影響到中心頻率的大小及增益值。

    3. 頻寬不要設太小,此專題之頻寬設為 4kHz,由於系統參數會因為溫度及元件老

    化而改變原有參數值,較大的頻寬可處理改變後的中心頻率,但是頻寬值亦不

    宜太大,避免將雜訊也一併放大。

  • 16

    圖3.6 主動式帶通濾波電路示意圖

    3.7 整流比較電路:

    我們使用 LM339 這個 IC 來當此電路的比較器,如圖所示,這顆 IC 內部有 4

    個比較器,當我們從 IN1(+)輸入一個波形,IN1(-)接地,不管波型為何,只要在

    電壓輸出部分大於 0V,則該部份波型通過比較器輸出為上升的方波,且輸出之電

    壓之最大值為尚未通過比較器之前任一波型之最高電壓。反之,波形小於等於 0V

    時,則該部分為方波之下降波,最後在 OUT1 輸出一個方波。

    學生一開始認為只要LM339接上電源與接地,及IN1(+)輸入訊號,IN1(-)接地

    就可以做比較電路的方法,可是實驗都達不到預期的結果;後來發現到,原來輸出

    端(OUT1)還要接上外部電源才可,最後終於達到所期望的數據。

  • 17

    圖 3.7 比較電路示意圖

    圖 3.8 從示波器觀察比較電路之示意圖

    圖 3.9 超音波動態測距實體圖

  • 18

    第四章 軟體之設計

    4.1 8951 單晶片功能與規劃:

    8951 單晶片特徵如下:

    1.為控制應用所設計的 8 位元 CPU。

    2.具有布林代數的運算指令。

    3.有 32 條(4 個 Port)雙向且每條都可以被單獨定址的 I/O 。

    4.內部有 128Byte 可供儲存資料記憶體 RAM (8052 : 256 Bytes)。

    5.內部有兩個 16 位元 Timer/Counter (8052 有 3 個)。

    6.有全多工傳輸信號 UART (串列埠) 。

    7.5 個中斷源,有兩層優先權順序之中斷結構。

    8.內部有 4K 位元組的程式記憶體。

    9.內部有時脈振盪器線路。

    10.程式記憶體可擴充至 64K 位元組。

    11.資料記憶體可擴充至 64K 位元組。

    圖 4.1 89C51 單晶片與 LCD 模組接腳圖

  • 19

    表 4.1 8951 接腳功能簡介

    腳位 接腳名稱 功能簡介

    40 VDD 正電源輸入腳,接+5V

    20 VSS 系統接地

    39~32 P0.0~P0.7

    Port0:埠 0是一個開汲極(Open Drain)雙向

    I/O 埠。在存取外部記憶體時,埠 0具有資料

    匯流排(Data Bus)及低八位元位址線(A0~A7)

    的多重功能。埠 0在當成一般 I/O 使用時必須

    加上外部提升電路。

    1~8 P1.0~P1.7 Port1:埠 1是具有內部提升電路的雙向 I/O 埠

    21~28 P2.0~P2.7

    Port2:埠2是具有內部提升電路的雙向I/O埠。

    在存取外部記憶體時,埠 2是當作高八位元的

    位址線(A8~A15)

    10~17 P3.0~P3.7

    Port3:埠2是具有內部提升電路的雙向I/O埠。

    此外,埠 3的每支接腳都還有另一項的特殊功

    能,如下:

    腳位 接腳名稱 接腳功能

    10 P3.0 RXD:串列輸入

    11 P3.1 RXD:串列輸出

    12 P3.2 /INT0:外部中斷輸入

    13 P3.3 /INT1:外部中斷輸入

    14 P3.4 T0:計時器 0外部輸入

    15 P3.5 T1:計時器 1外部輸入

  • 20

    16 P3.6 /WR:外部資料記憶體寫入

    激發信號

    17 P3.7 /RD:外部資料記憶體讀取

    激發信號

    9 RST

    重置信號輸入端。在震盪器工作時

    將此腳保持在"Hi"兩個機械週期,可將 CPU 重

    29 /PSEN

    程式激發致能,可輸出外部程式記憶體的讀取

    信號。每個機械週期動作兩次,再讀取內部程

    式記憶體時,/PSEN 不動作,在存取外部資料

    記憶體時,/PSEN 會跳過兩個脈波才動作

    31 /EA

    外部存取致能。當/EA 腳為"Lo"時,CPU 讀取外

    部程式記憶體。當/EA 腳為"Hi"時,讀取內部

    的程式記憶體

    18

    19

    XTAL1

    XTAL2

    反相震盪放大器的輸出端

    反相震盪放大器的輸入端

    PORT 0 ( P0.0 - P0.7 )

    (1)為 8 位元開汲極(OPEN DRAIN)雙向 I/O 埠。

    (2)外部擴充記憶體時,當做資料匯流排(D0-D7)。

    (3)外部擴充記憶體時,當做位址匯流排(A0-A7)。

    (4)可做一般 I/O 使用內部無提升電阻,當作輸入輸出時應在外部接提升電阻。

    (5)當做為開汲極輸出時可推動 8 個 LS TTL 負載。

    (6)當埠 0 全部被寫入為 l 時成為浮接狀態,有如高阻抗輸出端。

  • 21

    (7)對外部記憶體存取期間埠 0 為多工使用,同時做為位址或資料匯流排。

    (8)在做程式驗證時,埠 0 送出燒錄內部記憶體的程式碼,但需外加提升電阻。

    PORT 1 ( P1.0 - P1.7 )

    (1)為 8 位元具內部提升的雙向 I/O 埠,其輸出緩衝閘可推動 4 個 LS TTL 負載。

    (2)當埠 l 全部被寫入為 1 時,輸入電位會被內部提升至高電位,此時可做為輸

    入端使用。

    (3)埠 1 當輸入端時,由於內部提升之故,當接腳被外部電路拉至低電位時將有

    電流流出。

    (4)8052 中,P1.0 可當為定時器 2 的外部輸入 T2;P1.1 當為定時器 2 在" 捕

    取 "模式下的輸入端 T2EX。

    PORT 2 ( P2.0 - P2.7 )

    (1)埠 2 為 8 位元具內部提升的雙向 I/O 埠,其輸出緩衝閘可推動 4個 LS TTL

    負載。

    (2)當使用 16 位元位址對外部記憶體存取時,輸出高位元組的位址。

    (3)當 8751H 進行燒錄及驗證或 8051H 在進行程式驗證時,埠 2 用於接收高位

    元組位址及控制位元 P2.7。

  • 22

    4.2 軟體流程說明:

    一開始使用 8951,振盪出連續方波。利用負緣觸發啟動 8951,並開始做計數

    的工作。另一方面,當超音波接收端收到回傳的訊號時,經過濾波、放大及比較

    電路後,得到另一連續的方波訊號,利用相同的原理,因為負緣觸發而中斷計數,

    透過 8951 內部程式計算出所量測之距離,再經過十進位的換算顯示在 LCD 上,如

    圖 4.2。

    否(溢位中斷)

    圖 4.2 方塊流程圖

    利用89C51振盪出連續方波

    負緣觸發 89C51

    TIMER0 開始計時

    接收端收到訊號?

    中斷計時

    取出計時值=△T

    利用內部程式計算距離

    顯示在 LCD

  • 23

    4.3 軟體設計理念:

    因為超音波發射接受器屬於同端分離反射型,所以經由 8951 所計算出的距離

    必須除以 2才是正確的量測數據。由於實驗目標是動態測距,所以基本上是利用

    靜態的原理,配合 8951 所振盪出的連續方波做為更新的方法。此外,在 8951 振

    盪連續方波時就得考慮實驗目標所要求得之的最大距離。一開始由 8951 內部的

    Timer 開始計時,直到接收端收到訊號,中斷 8951。在求時間差的過程中,我們

    先量測超音波發射端和牆壁最短距離與最長距離之反應時間,在實際量測時所量

    到的時間先減掉最短距離之反應時間,之後在做計算以求得更精準的數據;超過

    最長距離之反應時間則讓 8951 判定錯誤直接中斷。

  • 24

    第五章 結論

    本次專題朝向動態測距的方向努力,且希望將量測距離範圍增加,並能更加

    準確。而在製作此專題的過程中,最讓我們感到興趣的在於,能夠整合目前的資

    源並加以運用。從超音波的發射電路,接收電路,到目前的程式設計中,所運用

    的知識和能力,大部分都是從大一至大三所奠定下的基礎和一些基本的理論。如

    無穩態多諧振盪、除頻電路、555 振盪電路、主動式帶通濾波電路、放大電路和比

    較電路,更是廣泛的運用到 OP 的特性,以 OP 的基本理論作為基礎並做延伸的應

    用。其它像二極體、BJT、和 8951 單晶片微處理機的內容,也能夠藉由此次專題

    實做的機會,更加了解其基本理論與使用方法。感覺就像是把大一至大三所學習

    到的知識,加以複習整合一次。

    然而也因此感受到理論基礎一定要扎實,在未來的實作方面才能更為順暢。

    在製作硬體方面,或許在理論上是一回事,但是實際做起來有可能並不是你預期

    的結果;另外,像是目前的進度,在作硬體與軟體介面做接合並顯示其數據的過

    程時,也碰到了許多的困難。除此之外,還得藉由查閱各類元件的規格表,熟悉

    元件的功能與操作範圍,這樣一來,才能在發生問題時,尋找問題的所在並加以

    修正與改良。

  • 25

    參考文獻

    [1] 盧明智,黃敏祥,OP Amp 應用+實驗模擬,全華科技股份有限公司,2003

    [2] 蔡朝洋,電子學實驗(修定版),全華科技股份有限公司,2002

    [3] 沈鴻哲,金明浩,林啓元,數位邏輯實做與系統設計,全華科技股份有限公

    司,2000

    [4] 蔡朝洋,單晶片微電腦8051/8951原理與應用,全華科技股份有限公司,2002

    [5] 鄭振東,感測器電路設計手冊,全華科技股份有限公司,1988

    [6] 孫清華,感測器應用電路的設計與製作,全華科技股份有限公司,1992

    [7] 盧明智、盧鵬任,感測器應用與線路分析,全華科技,1996

    [8] 鄭薇芬,改良式超音波頭控搖桿系統之研製,逢甲大學自動控制工程學系碩

    士論文,2004

    [9] 吳明貴,超音波三維頭控人機介面系統之研製,逢甲大學自動控制工程學系

    碩士論文,2003

    [10] 陳賢能,蔡政郁,小距離超音波動態測距,逢甲大學自動控制工程學系學士

    論文,2000

    [11] 蔡瑞崇,陳威均,林麗亞,超音波測距應用於模型車安全距離保持之設計,

    逢甲大學自動控制工程學系學士論文,2000

    [12] 鄧錦城,8051 單晶片實做寶典,益眾資訊,2000

  • 26

    附錄1

    主動式帶通濾波器之高頻分析推導

    由電路圖可得:

    10

    0

    3

    00

    0

    ;i sCAV

    ViR

    VAV

    x ⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛+=

    −−

    =

    經由上式可得到輸出電壓和所設節點電壓的關係,如式(A-1)所示:

    ⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛ ++−=

    ⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛ +−=+

    031

    310

    30

    000

    0

    11

    1

    1

    ARsCRsCA

    VV

    RAA

    VVAsCVsC

    x

    x

    (A-1)

    透過所設的節點電壓,依據克希荷夫電流定律可得式(A-2):

    011

    2

    0

    1

    0

    0

    21

    =−

    ++

    ++−

    sC

    VV

    sC

    AV

    V

    RV

    RVV x

    xxix

    (A-2)

  • 27

    將(A-2)式整理之後可得式(A-3):

    ( ) ( )

    ( ) ix

    xxxix

    xxxix

    VRVRRsCA

    RRsCVRRRRsCRRsC

    VRRsCVRRsCAV

    RRsCVRRsCVRVRVR

    VVRRsCAV

    VRRsCVRVVR

    202120

    21121212211

    02122120

    0211211122

    02120

    021112

    0

    0

    =⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛−++++

    =−++++−

    =−+⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛+++−

    (A-3)

    將(A-1)式帶入(A-3)式經整理化簡後可得到主動式帶通濾波電路的轉移函函

    數(A0≠∞)如(A-4)式所示:

    ( ) ( )iVRVRRsCA

    RRsCARsC

    RsCRRARRARC

    RRRCsCARRCAR

    RRRsCARR20212

    0

    211

    031

    3121021

    031

    321210212

    03

    3211021 −=+−+++

    ++

    ++

    (A-4)

    經整理可得式(A-5):

    ( ) ( )iVRARsC

    RRRCCsARsC

    RRRCsARsC

    RsCRRARRARsC

    RRRCCsARRsCARsC

    RRRCsARRsC2

    031

    321212

    031

    3212

    12

    031

    3121021

    031

    321212

    0212

    031

    3212

    12

    0211 −=+−+++

    ++

    ++

    (A-5)

    經由整理並令A0微A(s)可得(A-6)式:

    ( )( )

    ( )

    ( )( ) ( ) ( ) ( ) ( )sARRRR

    RRC

    RRC

    sACsACssARCCs

    sARRsCRRsV

    sV

    i

    21

    21

    1

    31

    2

    3121321

    2

    321

    21

    0

    1

    1+

    +⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛+++++

    −×=

    (A-6)

  • 28

    其中, ( )

    b

    sA

    sA

    ω+

    =1

    0 :A0為直流增益、ωb為3dB頻率,將之代入式(A-6)可得式(A-7):

    ( )( )

    ( )( ) BRRCRRCARRRCCRRRCCsRRCCs

    sARRsCsVsV

    bbi +++++−

    =32131103212132121

    23121

    33210

    ωω

    (A-7)

    其中

    ( ) ( ) bbbbb ARRsRRCRRCARRCARRCB ωωωωω 02132131102120211 +++++=

    若考慮開迴路增益為無限大(A0=∞)且與頻率無關時,轉移函數則如式(A-8)

    所示:

    ( )( ) ( ) ( )21212211321213

    3210

    RRRRCRRCsRRRCCsRRsC

    sVsV

    i ++++−

    =

    ( )( )

    ⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛ ++⎟⎟

    ⎞⎜⎜⎝

    ⎛++

    −=

    32121

    21

    3132

    2

    220

    11RRRCC

    RRRCRC

    ss

    RCs

    sVsV

    i

    (A-8)

    在此設定C1=C2=C,並將(A-8)式與主動式二階帶通濾波器之轉移函數標準式如

    式(A-9)比較:

    ( )2

    002

    0

    ωωω

    ++=

    sQ

    s

    SsG

    (A-9)

    然吾人所需之帶通濾波器應為如(A-10)式所示:

    (A-10)

    ( ) Ks

    Qs

    SsG

    20

    02

    0

    ωωω

    ++=

    (A-10)

  • 29

    其中,|G(jω0)|≣G=Q×K,經整理化簡及比較之後,可得到電路上所有電阻的

    公式:

    QRR

    QGQ

    RR

    GQR

    R 030

    20

    1 2;2

    ; =

    ⎟⎟⎠

    ⎞⎜⎜⎝

    ⎛−

    ==

    其中:

    ( )BWf

    QCfC

    RR

    RjGG 0

    00

    1

    30 ;2

    11;2

    =====πω

    ω

  • 30

    附錄 2

    Data Sheet

  • 31

  • 32

  • 33

  • 34

  • 35

  • 36

  • 37

  • 38

    附錄3

    軟體程式

    ORG 0000H

    AJMP MAINSET ;跳至 MAINSET

    ORG 0003H ;中斷計時

    CLR TR0

    CLR EX0

    SETB 04H

    RETI

    ORG 000BH ;溢位中斷

    CLR EX0

    CLR TR0

    SETB 05H

    RETI

    COM_1:

    CLR C ;清除溢位,把計時值代入運算

    MOV A,TL0

    SUBB A,#D6H

    MOV 30H,A

    CLR A

    MOV A,TH0

    SUBB A,#01H

    MOV 31H,A

    CLR A

    ACALL HEX2BCD

  • 39

    ACALL COM_2 ;都普勒

    ACALL CNTDSP

    ACALL LABLE1

    ACALL DELAY1

    CLR EX0

    AJMP MAINSET

    DELAY1: ;延遲

    MOV R4,#10

    DELAY2:

    MOV R6,#125

    DLL:

    MOV R7,#100

    MOV R5,#100

    DJNZ R7,$

    DJNZ R5,$

    DJNZ R6,DLL

    DJNZ R4,DELAY2

    RET

    HEX2BCD:

    MOV R0,#30H

    MOV R1,#40H

    MOV R3,#16 ;16 位元之二進制(hex)數

    CLR A

    MOV R2,#3 ;3 位元組之十進制(bcd)數

    LOOP1:

    MOV @R1,A ;清除 bcd

  • 40

    INC R1

    DJNZ R2,LOOP1

    NEXTXD:

    MOV R0,#30H

    MOV R2,#2 ;2 位元組之二進制(hex)數

    LOOP2:

    MOV A,@R0

    RLC A ;n

  • 41

    MOV 53H,#00

    MOV 54H,#00

    MOV 55H,#00

    MOV 56H,#00

    MOV 57H,#00

    ACALL MATH_1

    ACALL MATH_2

    ACALL MATH_3

    ACALL ADDALL

    RET

    MATH_1: ;個位數

    MOV R0,#00

    MOV R0,#50H

    MOV R6,#16

    ACALL ADDM1

    ACALL ADDM1_1

    RET

    ADDM1:

    MOV A,40H

    ADD A,40H

    DA A

    MOV @R0,A

    INC R0

    MOV A,#00

    ADDC A,@R0

    DA A

  • 42

    MOV @R0,A

    CLR C

    RET

    ADDM1_1:

    MOV R0,#50H

    MOV A,40H

    ADD A,@R0

    DA A

    MOV @R0,A

    INC R0

    MOV A,#00

    ADDC A,@R0

    DA A

    MOV @R0,A

    CLR C

    DJNZ R6,ADDM1_1

    RET

    MATH_2: ;百位數

    MOV R0,#00

    MOV R0,#52H

    MOV R6,#16

    ACALL ADDM2

    ACALL ADDM2_1

    RET

    ADDM2:

    MOV A,41H

  • 43

    ADD A,41H

    DA A

    MOV @R0,A

    INC R0

    MOV A,#00

    ADDC A,@R0

    DA A

    MOV @R0,A

    CLR C

    RET

    ADDM2_1:

    MOV R0,#52H

    MOV A,41H

    ADD A,@R0

    DA A

    MOV @R0,A

    INC R0

    MOV A,#00

    ADDC A,@R0

    DA A

    MOV @R0,A

    CLR C

    DJNZ R6,ADDM2_1

    RET

    MATH_3: ;萬位數

    MOV R0,#00

  • 44

    MOV R0,#54H

    MOV R6,#16

    ACALL ADDM3

    ACALL ADDM3_1

    RET

    ADDM3:

    MOV A,42H

    ADD A,42H

    DA A

    MOV @R0,A

    INC R0

    MOV A,#00

    ADDC A,@R0

    DA A

    MOV @R0,A

    CLR C

    RET

    ADDM3_1:

    MOV R0,#54H

    MOV A,42H

    ADD A,@R0

    DA A

    MOV @R0,A

    INC R0

    MOV A,#00

    ADDC A,@R0

  • 45

    DA A

    MOV @R0,A

    CLR C

    DJNZ R6,ADDM3_1

    RET

    ADDALL: MOV 45H,50H

    MOV A,51H

    ADD A,52H

    DA A

    MOV 46H,A

    MOV A,53H

    ADD A,54H

    DA A

    MOV 47H,A

    MOV 48H,55H

    RET

    MAINSET:

    ACALL INIT ;設定 LCD 模組

    ACALL LINE1 ;在 LCD 的第一行顯示

    MOV DPTR,#TAB1

    ACALL DISPLAY

    ACALL LINE2 ;在 LCD 的第二行顯示

    MOV DPTR,#TAB2

    ACALL DISPLAY

    JB 11H,MAIN011

    AJMP MAIN

  • 46

    MAIN011:

    ACALL DELAY1

    AJMP MAIN01

    INIT: ;設定 LCD 模組的初始狀態

    ACALL DELAY

    MOV A,#38H

    ACALL WRINS

    MOV A,#38H

    ACALL WRINS

    MOV A,#38H

    ACALL WRINS

    MOV A,#38H

    ACALL WRINS

    MOV A,#08H

    ACALL WRINS

    MOV A,#01H

    ACALL WRINS

    MOV A,#06H

    ACALL WRINS

    MOV A,#0CH

    ACALL WRINS

    RET

    DISPLAY: ;將字串的字元碼送至 LCD 顯示

    MOV R7,#00H

    NEXT:

    MOV A,R7

  • 47

    MOVC A,@A+DPTR

    CJNE A,#10H,DSP

    RET

    DSP:

    ACALL WRDATA

    INC R7

    AJMP NEXT

    LINE1: ;設定 LCD 起始位置第一行第 1個字

    MOV A,#10000000B

    ACALL WRINS

    RET

    LINE2: ;設定 LCD 起始位置第二行第 1個字

    MOV A,#11000000B

    ACALL WRINS

    RET

    WRINS: ;把指令碼送入 LCD 模組

    MOV P3,#00011111B

    NOP

    SETB P3.5

    MOV P1,A

    NOP

    CLR P3.5

    ACALL DLY1

    RET

    WRDATA: ;把資料送入 LCD 模組

    MOV P3,#10011111B

  • 48

    NOP

    SETB P3.5

    MOV P1,A

    NOP

    CLR P3.5

    ACALL DLY2

    RET

    DELAY: ;延遲

    MOV R6,#100

    DL:

    MOV R7,#200

    DJNZ R7,$

    DJNZ R6,DL

    RET

    DLY1: ;延遲

    MOV R6,#20

    DL1:

    MOV R7,#200

    DJNZ R7,$

    DJNZ R6,DL1

    RET

    DLY2: ;延遲

    MOV R6,#80

    DJNZ R6,$

    RET

    LABLE1: ;再第二行第 15 個字起顯示 mm

  • 49

    ACALL L0208

    MOV A,#2EH

    ACALL WRDATA

    ACALL L0215

    MOV A,#'m'

    ACALL WRDATA

    MOV A,#'m'

    ACALL WRDATA

    RET

    CNTDSP: ;顯示各計數器的內容

    ACALL ASCII_1

    ACALL L0209

    MOV R0,#31H

    ACALL DSPX1

    ACALL ASCII_2

    ACALL L0202

    MOV R0,#35H

    ACALL DSPX2

    RET

    ASCII_1: ;計數器從 45H 開始

    MOV R0,#45H

    MOV R1,#30H

    MOV R2,#01 ;計數器共 1 BYTE

    L1P1:

    MOV A,@R0

  • 50

    PUSH ACC

    ANL A,#00001111B

    ADD A,#30H

    MOV @R1,A

    POP ACC

    SWAP A

    ANL A,#00001111B

    ADD A,#30H

    INC R1

    MOV @R1,A

    INC R0

    INC R1

    DJNZ R2,L1P1

    RET

    DSPX1:

    MOV R1,#02

    L1P4:

    MOV A,@R0

    ACALL WRDATA

    DEC R0

    DJNZ R1,L1P4

    RET

    ASCII_2: ;計數器從 46H 開始

    MOV R0,#46H

    MOV R1,#30H

    MOV R2,#03 ;計數器共 3 BYTE

  • 51

    L2P1:

    MOV A,@R0

    PUSH ACC

    ANL A,#00001111B

    ADD A,#30H

    MOV @R1,A

    POP ACC

    SWAP A

    ANL A,#00001111B

    ADD A,#30H

    INC R1

    MOV @R1,A

    INC R0

    INC R1

    DJNZ R2,L2P1

    RET

    DSPX2:

    MOV R1,#06

    L2P4:

    MOV A,@R0

    ACALL WRDATA

    DEC R0

    DJNZ R1,L2P4

    RET

    L0202: ;顯示起始位置第二行第 2個字

    MOV A,#11000001B

  • 52

    ACALL WRINS

    RET

    L0208: ;顯示起始位置第二行第 8個字

    MOV A,#11000111B

    ACALL WRINS

    RET

    L0209: ;顯示起始位置第二行第 9個字

    MOV A,#11001000B

    ACALL WRINS

    RET

    L0215: ;顯示起始位置第二行第 15 個字

    MOV A,#11001110B

    ACALL WRINS

    RET

    TAB1: ;欲顯示字元

    DB 'The Distance is '

    DB 10H

    TAB2:

    DB ' mm'

    DB 10H

    MAIN: ;前置動作,設定計時/計數器 0模式 1

    SETB EA

    SETB ET0

    MOV TMOD,#00000001B

    MAIN01: ;P3.4 為開始,P3.2 為停止

    CLR 11H

  • 53

    SETB P3.2

    SETB P3.4

    MOV TH0,#00H

    MOV TL0,#00H

    ACALL DLY_1

    KKCITY:

    JNB P3.4,KKCITY ;開始計時否?

    SETB TR0

    CLR IE0

    SETB EX0

    SETB IT0

    LOOP4:

    JNB 04H,LOOP5

    CLR 04H

    SETB 11H

    AJMP COM_1

    LOOP5:

    JNB 05H,LOOP4

    CLR 05H

    SETB 11H

    LOOOP3:

    AJMP MAIN01

    DLY_1: ;延遲

    MOV R3,#5

    DLY_2:

    MOV R4,#10

  • 54

    DJNZ R4,$

    DJNZ R3,DLY_2

    RET

    DEL_1:

    MOV R6,#1

    DEL_2:

    MOV R7,#13

    DJNZ R7,$

    DJNZ R6,DEL_2

    RET

    END