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

57
自動控制工程學系專題製作 捶捶樂 Pressure Released Machine 指導教授:鄒慶福 :楊博勛 施百鴻 中華民國九十九年四月二十八日

Transcript of 逢 大 學 自動控制工程學系專題製作 專 題 論 文 ·...

  • 逢 甲 大 學

    自動控制工程學系專題製作

    專 題 論 文

    捶捶樂

    Pressure Released Machine

    指導教授:鄒慶福

    學 生:楊博勛

    施百鴻

    中 華 民 國 九 十 九 年 四 月 二 十 八 日

  • i

    感謝

    四年的歲月說長不長說短不短,在自動控制工程學系一路走來竟也是全部,

    轉眼間即將畢業,這一路要感謝許許多多的人。

    首先,最誠摯的感謝指導老師─鄒慶福老師的教導,在老師的細心教導下,

    不只學到了做學問不只該有嚴謹的態度,還要有天馬行空不拘泥於傳統的思考模

    式,正所謂大膽假設小心求證,除了在學業上也在生活上獲益良多;再來要感謝

    的是專題的指導學長,賴騰憲、葉君銘、吳嘉銘、黃正翰及李政霖學長們不厭其

    煩的指導,指正專題上的缺失並提供意見,甚至犧牲假日時間來實驗室幫忙解惑,

    使專題能順利的完成,心中的感激之意盡在不言之中。

    最後感謝這些日子以來,許多在專題過程中給予幫助的人們、自動控制工程

    學系的老師們,沒有這些貴人的幫助,我們無法順利的完成此專題,在此一起致

    上十二萬分的謝意。

  • ii

    中文摘要

    本專題利用慣性感測元件之動態感測特性開發出一舒壓小玩具模組,本模組

    內除慣性感測元件(加速規)外,還包括一單晶片(MSC-51)、發光二極體(LED)、

    A/D 轉換器(ADC0804)。其動作機制是利用慣性感測元件,感受到敲擊時產生的

    速度變化,此時加速規會產生一個輸出訊號到 AD 轉換器,經 AD 轉換器把類比

    訊號轉換成數位訊號,再經由燒錄在單晶片裡面的程式判別後,輸出到發光二極

    體上產生不同燈號變化,此外還利用單晶片程式針對不同區段的燈號顯示,增加

    了不同的音效,使本專題更增添娛樂效果。此玩具模組的概念源自於遊樂場的大

    型力量測詴遊戲機,透過微機電技術所製作的關鍵核心元件與控制電路的整合成

    功減少體積,因此可讓使用者任意放置於室內,達到隨時抒發壓力的目的,並藉

    由燈號的顯示以判斷敲擊力道的大小,此具備舒壓與聲光娛樂效果的產品,完全

    符合現代人的需求。

  • iii

    ABSTRACT

    The project using inertia sensors sensing the dynamic characteristics of diastolic

    pressure to develop a small toy modules. This module except inertia sensor

    (accelerometer), but also including a single chip (MSC-51), LED (light-emitting

    diode), A /D converter (ADC 0804). The action mechanism is the use of inertia

    sensors, feeling the change in vehicle speed and generate the force applied by the

    vibration, the accelerometer will generates a signal to the ad converter output . The ad

    converters to convert analog signals into digital signals, and then discriminate by the

    program recorded inside the single chip, and make a difference by output to the

    light-emitting diode. This toy module features in its small size, different from the

    conventional enormous play equipment, portability allows users to vent their anger at

    any time out to express the pressure. Moreover, we also increased the use of

    single-chip audio program to enable the feature added to entertainment.

  • iv

    目錄

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

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

    ABSTRACT………………..…………………………………………………………iii

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

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

    表目錄……..……..………………………………………………………….………viii

    第一章 緒論

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

    1.2 研究之目的與動機…………………………………………………………2

    1.3 研究之方法…………………………………………………………………3

    1.4 預期成果........................................................................................................4

    第二章 產品架構設計

    2.1 幾何尺寸設計...............................................................................................5

    2.2 彈簧選用.......................................................................................................6

    2.3 功能設計……………………………………………………..…………….8

    第三章 電路設計與規劃

    3.1 加速規之簡介……………………………………………………………10

    3.2 類比/數位轉換器-ADC0804…………………………………………..19

    3.2.1 A/D 轉換器功能簡介.……………………………………………...19

    3.2.2 A/D 轉換器之種類…………………………………………………20

    3.2.3 A/D 轉換器之特性…………………………………………………21

    3.3 MCS-51……………………………...………………….………………...24

    3.4 設計成果…………………………………………………………………25

  • v

    第四章 軟體之設計與規劃

    4.1 MSC51 內部功能設定…………..………………………………………..27

    4.2 音樂程式…………………………………………………………………27

    4.3 程式流程…………………………………………………………………28

    第五章 實驗成果

    5.1 模組成品…………………………………………………………………30

    5.2 量測成果…………………………………………………………………31

    第六章 結論與未來展望

    6.1 研究結論…………………………………………………………………32

    6.2 未來展望…………………………………………………………………33

    參考文獻……………………………………………………………………………..34

    附錄(一) ADDXL322 量測環境之Datasheet……………………….………………35

    附錄(二) ADC0804 之Datasheet……………………...……………….....................36

    附錄(三) 寫入MCS-51 之C 語言程式……………………………………………38

  • vi

    圖目錄

    圖 1.1 傳統式巨大遊戲器具示意圖…………………………………..…………..…2

    圖 1.2 研究流程圖……………………………………………………………..…..…3

    圖 2.1 外觀結構簡圖…………………………………………………………....……5

    圖 2.2 內部結構圖……………………………………………………………....……6

    圖 2.3 實體側面簡圖…………………………………………………………..…..…7

    圖 2.4 壓縮測量法……………………………………………………………..…..…7

    圖 2.5 懸掛測量法………………………………………………………………..…8

    圖 2.6 選用彈簧數據圖………………………………………………………....……9

    圖 3.1 加速規物理模型……………………………………………………..………11

    圖 3.2 加速規的四種模型…………………………………………………..……....11

    圖 3.3 典型加速規……………………………………………………..……………12

    圖 3.4 加速規的震動幅度…………………………………………………..………14

    圖 3.5 壓阻式加速規結構…………………………………………………..………15

    圖 3.6 應變計之訊號放大電路………………………………………………..……16

    圖 3.7 壓電式加速規結構…………………………………………………..………16

    圖 3.8 電容式加速規結構……………………………………………………..……17

    圖 3.9 ADXL322 接腳圖…………………………………………………………..18

    圖 3.10 ADXL322 模組圖…………………………………………………………19

    圖3.11 類比信號換成數位資料之方塊圖……………………………………..…...20

    圖 3.12 八位元漸近式 A/D 轉換器………………………………………………...21

    圖 3.13 ADC0804 接腳圖………………………………………………………….22

    圖 3.14 ADC0804 寫入時序圖…………………………………………………… 23

    圖 3.15 ADC0804 讀取時序圖…………………………………………………….24

    圖 3.16 MSC-51 系列單晶片微電腦的內部之方塊圖…………………………...24

  • vii

    圖 3.17 A/D 接 8051 電路…………………………………………………………26

    圖 3.18 音樂盒電路…………………………………………………………………26

    圖 4.1 程式流程圖…………………………………………………………………29

    圖 5.1 整體結構實體圖……………………………………………………………30

    圖 5.2 垂垂樂本體電路……………………………………………………………32

    圖 5.3 測詴模組 LED 燈顯示之測詴結果………………………………………..32

    圖 6.1 應用設計……………………………………………………………………32

  • viii

    表目錄

    表 2.1 樣本彈簧壓縮量與 K 值的關係之數據……………………………….…….8

    表 3.1 ADXL322接腳功能表………………………………………..…………….19

    表 4.1 MSC-51 特殊功能接腳圖…………..…………...…………………….……27

    表 4.2 音符對應頻率值……………………………………………………………28

  • 1

    第一章 緒論

    1.1 前言

    近年來,隨著各種電子商品與機械元件的微小化,微機電系統(Micro Electro

    Mechanical Systems, 簡稱 MEMS)已成為熱門的研究課題。微機電系統是一種

    高度整合的技術,而其微小化、製程精準度及批量製造的特性是 MEMS 發展至

    今最具有優勢的地方,其應用領域相當廣泛,包括光學、醫工、電機、電子、機

    械、資訊、材料、生化、通訊、航太等相關科技領域。而微感測器(Microsensor)

    是在微機電系統中最早被商品化的產品,也是發展最快速的技術之一。微感測器

    除了比傳統的感測器具有更小之體積外,更可以精確地量測與控制。此外,由於

    製程技術與製作積體電路製程的相容性極高,因此可以大量地製造與降低成本。

    一般微感測器中,感測元件是利用微細加工 (Micromachining) 技術在矽晶

    圓(Silicon Wafer) 上製作出三維的結構,例如懸臂樑 (Cantilever Beam)、橋

    (Bridge)、隔膜(Diaphragm)、齒輪(Gear)和微馬達(Micromotor)等結構,然而若將

    這些微結構及具有換能功能的材料 (例:壓電薄膜) 與微電子電路整合在同一晶

    片上,則可製作成微感測器。

    感測元件微小化後,不僅能保有原先的感測特性,更具有穩定性高、工作頻

    帶寬優點。此外積體化的設計不僅降低了微感測元件的成本,更提高了元件的實

    用性。以汽車工業為例,壓力感測器可應用於引擎燃燒控制,提高燃燒效率;加

    速度感測器可用於安全氣囊、主動懸吊系統的控制;而陀螺儀則可用於導航系統

    中估算車輛方位。另外,在其他方面如醫療器材、航太工業…等,也具有相當大

    的潛在市場。

  • 2

    1.2 研究目的與動機

    隨著時代越來越進步,對現代人而言,壓力是常態而不是病態。尤其在台

    灣分秒必爭的緊張生活環境下,壓力更是無所不再,根據最近的統計,台灣每千

    個病人,就有一個是神經症病人,也就是神經衰弱或患心理疾病的佔了四分之

    一。

    許許多多不勝枚舉的壓力源,讓許多都市人心情煩躁,脾氣易怒。為此,市

    面上出現各種減壓抒壓創意,各種發洩玩具應運而生。千奇百怪的造型、天馬行

    空的玩法,順應當下都市一族的口味一波波風靡開來。經調查發現,“減壓”小玩

    具成為白領一族新寵。由於這類小玩具通常都高單價、低成本,近幾年開始流行,

    並具有很大的市場空間。有鑑於此,學生決定發揮創意與所學結合,利用時下最

    熱門產品Wii及I phone裡所應用的感測元件─加速規,與傳統感測力量的巨大遊

    戲器具如圖1.1所示,相互結合縮小成可攜式的桌上型抒壓小玩具。

    圖1.1 傳統式巨大遊戲器具示意圖

  • 3

    1.3 研究方法

    舒壓玩具的實現,主要是需透過電路訊號的處理以及程式語言,因此於研究

    方法上,提出了專題的研究流程圖,如圖1.2所示,整體的專題研究包含了加速

    規特性了解、電路硬體設計,以及程式語言撰寫等三部分。

    首先,找尋跟專題相關的論文、資料來參考,以了解各個元件的特性,以選

    定所需要的元件。著接開始利用麵包版實際將設計的輸入感測電路實體化,並與

    51進行連結以測詴輸入訊號是否可被MSC-51所接受,此時以可變電阻代替加速

    規改變輸入電壓,待測詴完後再以加速規元件進行確認。當加速規輸出的訊號可

    以被MSC-51正確讀入後,即可開始撰寫符合專題所需要功能的程式,反覆測詴

    確定程式完成後,將所有的元件組合起來測詴,當確定完全符合所預想的結果後,

    利用PCB版將所設計的電路成品化,並裝載我們設計好的模具裡,撰寫論文。

    圖1.2 研究流程圖

  • 4

    1.4 預期研究結果

    本計畫預期完成一可攜式抒壓小玩具,其主要功能為供人敲打發洩怒氣,

    依照使用者敲打的力道不同,會有不同的燈號顯示,從1~8個燈不等,除了燈號

    外還搭配了音樂效果,除了開機的音效之外,還會依照敲打程度的不同發出不同

    的音效。

    硬體方面,電路的模組內主要的電子元件,包含ADXL322的加速度感測器、

    ADC0804的類比數位轉換IC、MCS-51的單晶片處理器、和LED的顯示器。

    在軟體方面,將對加速規的電壓輸入訊號進行處理,規範出加速度值與LED

    輸出燈號之間的關係,而每次使用抒壓玩具,便會發出一次音樂,此附加的音樂

    效果也將透過程式的撰寫進行編輯,以提升娛樂效果。本研究所提出的抒壓玩具,

    配合微機電感測器的使用,可讓體積大幅縮減,並利用簡單的電路架構即可實現

    預定的功能,由於不需使用複雜的電路或特別的電子元件,因此生產成本相對較

    為便宜,日後若商品化後將可大幅增加消費者的購買意願。

  • 5

    第二章 產品架構設計

    2.1 幾何尺寸設計

    在完成電路測詴後,我們以較基本的款式來做成成品,因為所做的成品為市

    上敲擊遊戲機的縮小版,因此在基本結構上沒有作變動,以一組墊子與彈簧作為

    敲擊部位,配合上顯示分數的 LED 燈即為此架構主體,如圖 2.1 所示。於 LED

    背後,將以一長方體空間做為收納電路以及電池等作用,多的空間未來可以用來

    放置新的延伸設計功能,基於方便保養的想法所以後方收納空間設計成可拆式,

    用可拆卸式背板作為封蓋,在發生問題時可迅速拆解處理,如圖 2.2 所示,主體

    將以 5mm 厚之壓克力板組裝而成,因此,可承受較大的敲擊強度。由於產品當

    初定位為桌上型玩具,在體積方面不能太過龐大,又在要兼顧內含電路板狀況下,

    所以將其大小設定為此,如圖 2.1 所標示。

    圖 2.1 結構外觀簡圖

  • 6

    圖 2.2 內部結構圖

    2.2 彈簧選用

    由於產品為桌上型玩具,因此捨棄像外面大型遊樂機台使用錘子等重物來

    敲擊的方式,改採用以手敲擊軟墊的方式來遊玩,也因此在彈簧的挑選上必頇詳

    加考慮,太硬的彈簧會使位移量不明顯,進而影響到加速規的動作,太軟會有容

    易損壞的問題,還有考慮到以人手敲擊時的舒適度,所以在挑選出符合上面條件

    的彈簧後,再逐一實際測詴。

    在調查資料後,發現拳王泰森一拳大約 385 磅,換算過後為 175kgw,而一

    般人一拳的力道大約落在 90~110 這個範圍,換算過後為 50kgw,本專題要製作

    的成品為桌上型紓壓玩具,故設定每下敲擊的力道為 10kgw,由粗略估計資料可

    得知本專題研究成品使用之彈簧需要的可承受力,並由樣本所得之資料去推估適

    合的彈簧,然後再實際裝置到實體結構上去測詴手感與求取數據,其結構如圖

    2.3 所示。

  • 7

    圖 2.3 實體側面簡圖

    在無精密儀器狀況下為求所需彈簧 K 值,因此將待測彈簧以不同重量之重

    物吊掛或放置於彈簧之上,測得其壓縮量,根據牛頓第一運動定律之關係,如(1)

    式所示。

    kxF (1)

    公式中 k 為彈簧係數,x 為位移量本專題將以兩種方法—懸掛測量法、壓縮

    測量法求取位彈簧移量。

    1.壓縮測量法,一正方形版四個角落分別放置一個彈簧支撐,再將體積小的

    高密度重物放置於中心,以尺規測量彈簧變化量。缺點是需要使用四個彈簧,由

    於彈簧價格不算便宜,若要每種都測詴,在經費上會造成負擔,量測架構如圖

    2.4 所示。

    圖 2.4 壓縮測量法

    2.懸掛測量法,將彈簧一端固定於高處,將體積小的高密度重物懸吊於其下,

    以尺規測量彈簧變化量。優點是測量方法簡易,使用一個彈簧便可進行,缺點是

    若測量超過一定重量,彈簧將產生不可回復形變,其量測架構如圖 2.5 所示。

  • 8

    將測量結果做成圖表,取斜率求得 K 值,得到各彈簧樣本之 K 值,由其中

    選擇適當的使用。表 2.1 為用來測詴的彈簧所得的數據,為使彈簧有足夠的位移

    量加上敲擊時的舒適度考量,故第一組 K 值為 27.01 的彈簧為本專題模組所使用

    之彈簧。

    圖 2.5 懸掛測量法

    表 2.1 樣本彈簧壓縮量與 K 值的關係之數據

    型號 彈簧 K 值 Kg/m 壓縮量 cm 彈簧力 Kgf

    1 27.01 0.37 10Kg

    2 47.62 0.21 10Kg

    3 250 0.04 10Kg

    4 1428.57 0.007 10Kg

    2.3 功能設計

    將電源開啟後,於功能設計上會播放一段開始的音樂,此時只有喇叭動作,

    燈號為全亮,當音樂結束後,燈號全滅,呈準備狀態後,就可以敲擊軟墊開始遊

    玩,在動作設計上,我們把力道分為三個等級,以加速規輸入的電壓來做區分,

    當力道落在紅色 LED 燈區域時會響起 Song1 之音樂;當落在黃、綠 LED 燈區域

    時會響起 Song2 之音樂:當落在黃、綠 LED 燈區域時會響起 Song3 之音樂,其簡

    易的流程,如圖 2.6。在 3 種動作中執行其一後幾秒,回到開頭重新撥放開始音

    樂,即可進行下一次的敲打。

  • 9

    大 中 小

    圖 2.6 簡易動作流程

    開機

    燈號閃爍撥

    放音樂

    捶軟墊

    藍燈特殊

    音效

    力量大小

    綠燈特殊

    音效

    紅燈特殊

    音效

    Song 1 Song 2

    Song 3

  • 10

    第三章 電路設計與規劃

    3.1 加速規之簡介

    本專題研究主要是以微型加速規的應用做為設計概念的主軸,而在這之前

    我們要先了解微型加速規的原理與特性,才知道往後的電子電路該如何規劃設計

    與製作。

    微加速規是一種測量加速度的裝置,最簡單結構是由一個懸臂和一個重鎚組

    成,利用撓曲和電路來測量加速度。加速規最常見於現代汽車的安全氣囊系統上,

    以偵測碰撞發生時車輛突然的減速度,例如:汽車的懸吊式系統、防鎖死煞車系

    統(ABS)和安全氣囊等等。加速規是一種測量加速度的裝置,相對於遠距感測的

    裝置,它測量的是自身的運動,所有的加速規都以彈簧-質量的結構為基礎,不

    同的是,當受到一加速度時,偵測慣性質量之相對位置的方式會不一樣。過去慣

    性感測器多用在車用安全氣囊感測,但相關市場近年已逐步邁向飽和。而隨著

    MEMS 技術的漸趨成熟,使該產品於量產與成本控制能力大幅提升,因而得以

    在近來大舉進入消費電子領域。鑑於消費電子龐大的市場規模,使慣性感測器市

    場值可望在未來 3 年穩定成長。

    常見的感測方法是在電容的兩個帄行板之一端加上質量,這種方法需要特殊

    的電路來偵測微小的電容變化量(通常<10^-5F),並且將轉換成擴大的電壓輸

    出。

    3.1.1 加速規物理模型

    加速規大致的物理模型如圖3.1,其原理可由圖3.2來做說明。圖3.2(a)中質量

    懸掛於彈簧,彈簧再連至加速規外殼的構造。加速規中的質量又稱為振動質量

    (Seismic Mass)或標準質量(Proof Mass),大部分情況下系統具有阻尼器以提供適

    當的阻尼效應。阻尼係數為c的阻尼器與彈簧帄行如圖3.2(b)。

  • 11

    圖3.1 加速規物理模型

    圖3.2 加速規的四種模型

    對於加速規而言,若採用圖3.2(a)和3.2(b)的設計,因為彈簧的伸長量變長才

    使質量的位移量要大,才量測到其輸出值,故會佔用太大的空間,因此有圖3.2(c)

    和圖3.2(d)的設計出現。這些微加速規的基本構造包含外殼。

    殼內有一個懸臂樑和附於其上的質量(如圖3.2(c)),或由薄樑或薄膜懸掛一個

    質量(圖3.2(d))。在樑—質量或膜—質量系統中,彈性樑或膜代替了前述的彈簧,

    而殼內的空氣或流體則提供阻尼效應。簡單來說,基本的加速規是一個m-s-k系

    統。

    加速規的外殼貼附在振動中的機器或裝置後,當這些機器或裝置受到動態或

    衝擊負荷時,加速規的質量會產生振動。加速規質量的振動可以用電位計或其他

  • 12

    方法測量質量任一瞬間的位置,此振動質量的振幅和加速規外殼的加速度間的理

    論關係,可見於許多機械振動的書籍。

    3.1.2 加速規理論

    這裡將介紹加速規中振動質量的振幅之理論公式,此公式可作為應用加速規

    的基礎。

    圖3.3所示為典型的加速規模型,由振動質量、彈簧和阻尼器所構成。加速

    規的外殼貼附在振動器的機器上,設其振動位移為x(t),且為簡諧運動,如:

    X(t)=Xsinωt

    其中X為加速規底座的最大振幅,t為時間,ω為角頻率。

    圖3.3 典型加速規

    令y(t)為質量由帄衡位置震動之位移,測質量m相對於底座之位移可表示成:

    z(t)=y(t)-x(t)

    由此可淂

    𝐳 𝐭 = 𝐲 𝐭 − 𝐱 𝐭 和 𝐳 𝐭 = 𝐲 𝐭 − 𝐱 𝐭

    其中

    𝐳 𝐭 =𝐝𝐙(𝐭)

    𝐝𝐭 和 𝐳 𝐭 =

    𝐝𝟐𝐙(𝐭)

    𝐝𝐭𝟐

    由牛頓第二定律可以導出振動質量的運動方程式(如圖3.6):

    −𝐤𝐳 𝐭 − 𝐜𝐳 𝐭 − 𝐦𝐲 𝐭 = 𝟎 [3.1]

  • 13

    將𝐳 𝐭 = 𝐲 𝐭 + 𝐱 𝐭 的關係式帶入上式淂

    𝐦𝐳 𝐭 + 𝐜𝐳 𝐭 + 𝐤𝐳 𝐭 = −𝐦𝐱 (𝐭) [3.2]

    由於加速規貼附的機器振幅x(t)=Xsinωt,式[1.2]變成:

    𝐦𝐳 𝐭 + 𝐜𝐳 𝐭 + 𝐤𝐳 𝐭 = mX𝝎𝟐 𝐬𝐢𝐧𝛚𝐭 [3.3]

    式[3.3]為二階非齊次微分方程式

    解由兩個部份組成:齊次解(Complementary Solution,CS)和特解(Particular

    Solution,PS)。

    式[3.3]的特解頇由其齊次解而得:

    𝐦𝐲 𝐭 + 𝐜𝐳 𝐭 + 𝐤𝐳 𝐭 = 𝟎

    加速規設計最關鍵的是式[1.3]的特解,設特解的形式為:

    𝐳 𝐭 = 𝐙 𝐬𝐢𝐧 𝛚𝐭 − 𝛗 [3.4]

    其中ψ為相對位移z(t)和輸入位移x(t)=Xsinωt間的相角差。

    將式[1.4]代入式[1.3]可得質量對底座的最大振幅Z和相角

    Z =𝛚𝟐X

    (𝐤

    𝐦−𝛚𝟐)𝟐+(

    𝛚𝐜

    𝐦)𝟐 [3.5a]

    ∅ = 𝐭𝐚𝐧−𝟏𝛚𝐜

    𝐦𝐤

    𝐦−𝛚𝟐

    [3.5b]

    上述的解也可表示成

    Z =𝛚𝟐X

    𝛚𝐧𝟐 [𝟏−

    𝛚

    𝛚𝐧 𝟐

    ]𝟐+(𝟐𝐡𝛚𝐜

    𝛚𝐧)𝟐

    [3.5b]

    ∅ = 𝐭𝐚𝐧−𝟏𝟐𝐡(

    𝛚𝐜

    𝛚𝐧)

    𝟏− 𝛚

    𝛚𝐧 𝟐 [3.5b]

    其中

    ωn = k

    m

  • 14

    為加速規無阻尼自由振動的固有頻率,而

    𝐡 =𝐜

    𝟐𝐦𝛚𝐧=

    𝐜

    𝐜𝐜

    為加速規中阻尼介質的阻尼係數和臨界阻尼 𝐜𝐜 = 𝐜𝐜

    很明顯的,當系統接近共振,即 𝛚 → 𝛚𝐧 時,由式[3.6a]可得振幅𝐙 →𝐗

    𝟐𝐡。

    由於h與阻尼效應有關,h=0會造成振動質量之振幅為無限大,因此加速規設計關

    鍵在於選擇阻尼係數h。

    圖3.4所示為阻尼對質量振幅的定性關係。這些曲線由式[3.6a]計算而得。由

    圖上得知當震盪頻率ω遠大於固有頻率,即𝛚 ≫ 𝛚𝐧時,最大相對振幅Z近似於振

    動質量最大振幅,即Z=X。更詳細的關係圖如 Z/X 對 𝛚/𝛚𝐧 和 𝛚𝐧𝐙/𝐗 見於許

    多機械的書籍,這些圖對加速規設計是很有用的。反之,若機器振動頻率ω遠小

    於微加速規固有頻率𝛚𝐧,即𝛚 ≪ 𝛚𝐧可能得到下列關係:

    𝐙 ≈ −𝐚𝐛𝐚𝐬𝐞,𝐦𝐚𝐱

    𝛚𝐧𝟐 [3.7]

    其中𝐚𝐛𝐚𝐬𝐞,𝐦𝐚𝐱是加速規貼附的機器最大加速度,如圖3.4所示。

    圖3.4 加速規的震動幅度

  • 15

    3.1.3 加速規的種類

    加速規又可依照能量傳遞的方式細分為壓電式(Piezoelectric)、壓阻式

    (Piezoresistive)、電容式(Capacitive)三種型式。

    1.壓阻式加速規:

    壓阻式加速規是較早被研發出來的產物,其結構主要是由懸臂樑(Beam)

    與振動質塊(Proof-mass)兩者形成如圖3.5所示,它利用振動質塊受到加速度的

    作用之後,使得懸臂樑產生形變而造成壓阻效應,進而感測得到加速度的大小值,

    其原理相似於壓力感測器。雖然它可以利用較簡單的微機電製造技術生成,但因

    為其量測時能源消耗較大,再加上其易受到溫度而產生誤差的影響以及電阻會產

    生熱能等先天因素,使得它無法在具高精確度要求的量測場合中被應用。

    圖3.5 壓阻式加速規結構

    壓阻效應:所謂壓阻效應是指當材料受到應力作用時,材料的電阻值會改變

    的一種現象。這種現象普遍地存在各種材料中,其中以某些半導體的效應特別顯

    著。目前製造矽質壓力感測元件最常用的方法是利用擴散法或離子佈植法,將硼

    攙入單晶矽晶格中形成p-n接面,此p-n接面即為壓阻元件,可以用來感測矽晶隔

    膜上的壓力變化。感測壓力的電阻以惠斯登電橋(Wheatstone Bridge)的方式來連

    接,如圖3.6所示,其中電阻R1即為矽質壓力感測元件,即圓圈圈起處。

  • 16

    圖3.6 應變計之訊號放大電路

    2.壓電式加速規:

    壓電式加速規的結構大致上跟壓阻式加速規相同如圖3.7所示,由於元件受

    到一力量而震動使得壓電材料受力產生壓電效應,其所累積的電量與其受力和加

    速度成正比,在元件上的電極收到這些電量並將其重送到信號接收器,進而求出

    加速度的大小。壓電式加速規的優點是可承受較高的共振頻率,因而具有較寬的

    頻率響應,高靈敏度且結構簡單,並容易與電路整合。

    圖3.7 壓電式加速規結構

    3.電容式加速規:

    電容式加速規之結構主要是由兩片帶有電極的帄行電極板所形成如圖3.8所

    示,它可藉由改變兩片電極板所對應的面積或者是改變彼此之間氣隙的距離而產

    生出電容值的變化,進而轉換成電壓輸出的變化來量測加速度的值。其優點在

    於具有較高的溫度穩定性、敏感度、應用範圍大,是非常適合應用在高精確度的

    量測場合。

  • 17

    圖3.8 電容式加速規結構

    3.1.4 加速規的應用

    1. 加速度振動感測器屬一般型加速規,可應用於各種機械設備之振動檢測,例

    如:空壓機、風車、冷卻水塔、馬達、齒輪箱、泵浦及各種紙機、製程設備的振

    動量測。

    2. 用於汽車的懸吊系統和防鎖死煞車系統,亦用在車載電腦系統的智慧監控。

    新的車載電腦系統(On-Board Computer)能夠對汽車實施監控,就如同飛機上的"

    黑盒子"一樣。正確安裝後,系統內配備的加速感應器和回轉感應器,可以監控

    汽車的速度、安全帶的使用狀況以及由於汽車急轉彎、急剎車、行駛不穩定、異

    常減速和不安全倒車等原因造成的超重力行駛,只要汽車在不安全狀態下行駛

    (如出現超速駕駛、超重力行駛(High-Force Maneuvers)、沒扣安全帶等狀況),

    "黑盒子"就會向駕駛者發出語音警報,如果駕駛者對警報置之不理,則語音警報

    便會一直持續下去,直到進入安全行駛狀態,可為駕駛者提供指導和預警幫助。

    3. 安全氣囊運用微加速規來監控及量測,使用範圍為±50g,它在關鍵時刻必頇

    要能即時、正確地瞬間打開,以維護乘客安全,但在極大多數時間內氣囊是處在

    待命狀態,因此安全氣囊的ECU 必頇具有自動檢測、自我維護能力,不斷確認

    氣囊系統的可正常運作的可靠性,確保動作的萬無一失,以保護車內乘客避免汽

    車碰撞時造成傷害。

    4. 在航太工業上,慣性導航系統利用加速規、微陀螺儀及光纖陀螺儀。

    5. 手機、可攜式硬碟驅動器、視訊遊戲機、汽車導航系統及數位相機等,已經

    開始使用慣性感測器來檢測傾斜、運動、衝擊、振動及放置等情況。隨著目前許

  • 18

    多手機裝配依賴慣性感測器的遊戲、照相機、GPS、計步器及防竊等功能。

    6. 加速規的應用之一是測量重力,特別是使用於重量測定法的加速規上,這樣

    的裝置被稱為重力計。

    7. 加速規運用在定位的估算上的研究也正在進行。全球定位系統必頇接收到衛

    星訊號才能使用,如果裝置進到坑道內,就可以利用加速規來推斷位置

    3.1.5 ADXL322

    本專題研究所選用之微型加速規是由ADI 公司所生產,型號為ADXL322,

    是利用MEMS 製程技術製作出的雙軸加速規,其大小為4mm× 4mm×1.45mm。

    它具有輕薄短小、低功率和訊號輸出電壓優良的特性,運算的電壓範圍從2.4V 到

    6V,所能承受的溫度為-20 到+70 ,靈敏性、準確性、穩定性佳,在60Hz 時有

    最佳的辨識率。此加速規測量範圍在±2g,能測量動態及靜止的加速度。ADXL322

    之量測環境Datasheet 請見附錄(一)。

    ADXL322 的雜訊為220μg Hz ,當低於2mg 的信號再狹窄頻寬(<60 赫

    茲)中藉由傾斜來感測,並可藉由Xout和Yout所對應的電容器Cx和Cx來選擇

    加速規的頻寬,然而最適合被應用的頻寬是在0.5 Hz 到2.5k Hz。ADXL322之接

    腳圖、功能表與魔模組突如下圖3.9、3.10與表3.1。

    圖3.9 ADXL322接腳圖

  • 19

    表3.1 ADXL322 接腳功能表

    圖3.10 ADXL322模組圖

    3.2 類比/數位轉換器─ADC0804

    3.2.1 A/D轉換器功能簡介

    A/D 轉換器是一種類比至數位轉換裝置,它可將類比電路所產生之類比輸入信

    號(電流或電壓)轉換為電腦或微處理機所能接受的數位資料(0 和1)。圖3.11所示

    為一簡單的類比轉數位輸入信號資料的方塊圖。ADC0804之Datasheet請見附

    (二)。

  • 20

    圖3.11 類比信號換成數位資料之方塊圖

    3.2.2 A/D轉換器的種類

    A/D 轉換器其轉換方式可分為積分法(Integration Method)、並聯式比較法

    (Parallel Method)、連續漸近法(Successive Approximation Method)、以及計數器法

    等四種。在此僅介紹本專題所使用之連續漸近式A/D 轉換器:

    由於連續漸近式A/D 轉換器的轉換速度很快(數十至數百μs ),解析度高且價

    格低廉,所以普遍應用在微電腦的介面設計上。圖3.12所示為八位元連續漸近式

    A/D 轉換器的內部結構,其中包含D/A 轉換器(DAC)、連續漸近式暫存器

    (Successive Approximation Registor;SAR)與比較器等等。

    上述之A/D 轉換器動作原理為當開始轉換信號(SC)為上升緣時,SAR 的輸

    出被清除為0;而當SC 信號為下降緣時,SAR 才開始轉換輸入電壓。由於連續

    漸近估算是利用二分法的尋找技術,所以在一開始轉換時,SAR 取其中間值。

    由其最高位元輸出一高電位(10000000)至D/A 轉換器。經由DAC 轉換後的

    類比信號加至比較器的輸入端與另一輸入端的類比輸入電壓比較,若轉換後的類

    比電壓小於輸入電壓,則SAR 原來的位元將保持不變;但假使轉換後的類比電

    壓大於輸入電壓,SAR 的位元將會被清除為0。接著,SAR 會經下一個標低次

    的位元輸出1 給D/A 轉換器去重複上述的過程,直到最低次的位元比較完為

    止。

  • 21

    圖3.12 八位元漸近式A/D 轉換器

    假設上述經過轉換的類比電壓小於輸入電壓,那麼在下一個時序脈衝發生時

    SAR 會輸出(11000000),此值經DAC 轉換後與輸入電壓做比較,若依舊小於輸

    入電壓,則SAR 將再輸出(11100000)之數位資料給DAC 去做轉換。此時,如果

    轉換後的類比電壓大於輸入電壓,SAR 將再次輸出(11010000)至DAC。如此不

    斷重複的做轉換比較,直到所有的位元都比較完後,一個完整的數位資料將出現

    在D/A 轉換器的輸出端。同時轉換器也會輸出一個EOC 的信號,表示已經完成

    轉換。

    當A/D 轉換器利用連續漸近式的方法,每轉換一個位元時,必頇耗費一個

    時序週期。因此,對於一個八位元的ADC 來說,其轉換過程共需要八個時序週

    期,依此類推可得知其他轉換器的轉換時間。

    3.2.3 A/D轉換器的特性

    A/D 轉換器依其特性約可分為類比輸入電壓、解析度、轉換時間與數位輸

    出格式等四種。在使用A/D 轉換器之前,使用者應先參考其特性,才能有效的

    應用在介面設計上。然而接下來我們針對本專題實驗中所使用的ADC0804 轉換

    器作簡單的介紹。

  • 22

    ADC0804(圖3.13)轉換器是一顆擁有20 支接腳的八位元漸近式轉換器

    其特性如下:

    1. 解析度為1/256。

    2. 轉換時間為100μs ( vlk f =640 kHz)。

    3. 轉換誤差為-1 LSB~+1 LSB 之間。

    4. 參考電壓為2.5 V,即ref V = 2.5 V。

    5. 類比輸入電壓範圍為0 < i V < 5 (V)。

    6. 工作電壓cc V =+ 5 V。

    7. 輸入為三態結構。

    圖3.13 ADC0804接腳圖

    在ADC0804 的20 支接腳中,用來與MCS-51 微處理器連接的有DB0~DB7、

    RD、WR、INTR 與CS 等接腳。其中DB0~DB7 接腳必頇與系統匯流排的D0~D7

    接在一起。CS 接腳要接到可以選取此一元件的位址解碼器之輸出線上。WR 接

    腳必頇與微處理器的WR 或IOW 信號接在一起,它可以清除或啟動轉換器令其

    開始執行轉換的工作。當CS=0 且WR=0 時,ADC0804 被清除,直到WR=1 時

    才開始轉換。

    當ADC0804 完成類比電壓轉為數位資料之工作時,INTR=0。由於INTR為

  • 23

    一低電位動作的信號線,所以他必頇先經過一個反向器的處理後,才能接至微處

    理器的INTR 接腳和中斷控制器8259A 的任意中斷請求輸入的接腳(IR0~IR7)

    上。

    3.2.4 ADC0804 時序圖

    ADC0804 的時序圖可分為寫入和讀取兩部分:

    (A)寫入時序:ADC 之寫入時序圖如圖3.14所示。寫入週期開始時,必頇先

    清除CS = 0,致能ADC 晶片,CPU 輸出寫入(WR)控制信號至ADC 之WR接腳,

    在WR由0 變成1 時,ADC 開始進行轉換,當轉換結束後,ADC 之INTR 接腳

    由1 變成0,通知CPU 轉換結束。

    圖3.14 ADC0804寫入時序圖

    (B)讀取時序:ADC 之讀取時序圖如圖3.15所示。當ADC 轉換完成時,INTR

    由1 變成0,產生中斷,此時清除CS = 0 ,同時CPU 送出RD 控制信號,再經由

    DB0~DB7 讀取ADC 轉換完成之數位資料。當RD 由1 變成0 時,開始讀取資

    料,且經過300nS~450nS 的時間後, INTR 接腳由0 變成1,等待下一次的中

    斷發生時, INTR 再由1 變成0。(註:在確定INTR 有效後, RD 仍需要維持8 個

    時脈週期。)

  • 24

    圖3.15 ADC0804讀取時序圖

    3.3 MCS-51

    MSC-51系列單晶片微電腦的內部之方塊圖如圖所示。茲說明如下圖3.16

    圖3.16 MSC-51 系列單晶片微電腦的內部之方塊圖

    1. 振盪器:

    MCS-51 系列單晶片微電腦的內部有一個振盪器,只要外接一個石英晶體

    (Crystal)即可產生整個系統所需之時序脈波。

    2. CPU:

  • 25

    這是一個特別適於從事自動控制的高性能8位元CPU,用來執行指令、控

    制整個微電腦的運作。

    3. 程式記憶體(ROM、EPROM 或Flash Memory):

    用來儲存程式及固定不變的常數,容量隨編號而異。ROM、EPROM 及Flash

    Memory 的最大特點是內容不會因電源切斷而消失。但是CPU 僅能讀取程式記

    憶體的內容,而無法對其內容做任何改變。

    4. 資料記憶體(RAM):

    用來儲存程式執行中需要加以改變的資料,容量隨編號而異。RAM 是一種

    隨時可以由CPU 存取資料的記憶體,但內部資料會隨電源消失而消失。

    5. 計時器/計數器:

    可用指令設定為16位元的計時器/計數器來使用。

    6. I/O 接腳:

    一共有32 支輸入/輸出接腳可供應用。

    3.4 設計成果

    此部分使用一個 ADC0804 接上一個 AT89C51,電路設計是由 ADC0804

    接受訊號經過轉換,再由 11~18 腳位輸出至 AT89C51 的 21~28 腳位,再從 1~8

    腳位輸出至八個 LED 燈,如圖 3.17,音樂輸出的部份,在 AT89C51 的 39 腳位

    接上一喇叭,如圖 3.18,由於市面上 AT89C51 已停產,所以改由 AT89C52 以及

    AT89S52 等功能與市售價格相差不多的 IC 來代替。

  • 26

    圖 3.17 A/D 接 8051 電路

    圖 3.18 音樂盒電路

  • 27

    第四章 軟體設計與規劃

    4.1 MCS-51內部功能設定

    8051在本專題的控制上除了需要兩組各8 個I/O 埠、1個外接喇叭接腳、

    ADC0804 有用到四個特殊功能接腳( INT0 、RW 、RD 、T0 )功能說明如表4.1。

    表4.1 MSC-51 特殊功能接腳圖

    4.2 音樂程式

    8051內含有2個16位元計數器,稱為計時器0及計時器1,如同一般計時計數

    器的功能,其主要作用有二:第一,做一段特定時間長短的記時。第二,可以計

    算遊T0或T1接腳輸入的脈波數。前者在應用上可以產生正確的時間延遲及定時

    去執行中斷服務常式,這是單晶片在軟體控制程式上常用到的技巧,而後者的應

    用則是記數器或是計頻器的設計。

  • 28

    兩個計時器本身都有下列4種工作模式可供使用

    模式0: 13位元計時動作模式。

    模式1: 16位元計時動作模式。

    模式2: 具有自動重新載入計數值的8位元計時動作。

    模式3: 在此模式時,計時器1本身停止記時的工作,而計時器0分為兩個獨立的8

    位元計時器由TL0及TH0來負責計時的任務。

    本專題為更增添娛樂效果,利用計時器來做計時中斷程式設計,產生各種週

    期大小的方波信號,方波信號在介面控制上是一種常使用的驅動信號,以方波訊

    號驅動喇叭發出聲音,喇叭發聲頻率為1KHZ,即產生週期1ms的方波信號,下

    表4.2是各個音符對應頻率值。

    表4.2 音符對應頻率值

    簡譜 1 2 3 4 5 6 7 1 2 3 4 5 6 7

    音符 C5 D5 E5 F5 G5 A5 B5 C5 D5 E5 F5 G5 A5 B5

    頻率 523 567 659 698 784 880 987 1046 1174 1318 1396 1567 1760 1967

    4.3 程式流程

    本專題的程式撰寫是用C 語言寫入MCS-51 去控制整個流程進行,其程式

    流程如圖4.1 所示。

    當電源接通時會先執行音樂程式並且八個燈號全亮,音樂演奏完後燈號全滅

    等待加速規訊號輸入,訊號輸入時先由程式判斷訊號是否完全轉換完成,當確認

    完成後程式進入下一步動作,否的話則進入While迴圈等待轉換完成訊號

    (INTR=0);訊號轉換完成後進入程式下一個判讀程序,利用While迴圈在一定的

    時間並且不斷比較所輸入的數個訊號,是否有大於加速規的最低初始電壓值。

    當訊號都通過了前面的判斷後,程式進入最後的燈號判斷,我們大致把加速

    規電壓訊號切分八個區塊,搭配1~8個燈號不等,同時再把8燈號以3:3:2的比例搭

    配3種音效,訊號經過此區程式判斷做出燈光及音樂效果後,把燈號歸零全滅,

  • 29

    程式回到開頭等待新的訊號進入再度進行一系列的判讀動作,完整程式請見附錄

    (三)。

    NO

    YES

    NO

    YES

    圖4.1 程式動作流程圖

    音樂

    等待訊號輸入

    訊號轉

    換完成?

    達最低

    電壓值? 迴圈等待

    訊號分類

    1-3 個燈 2-6 個燈 7-8 個燈

    音效一 音效二 音效三

    燈號歸零全滅

    迴圈等待

  • 30

    第五章 實驗成果

    5.1 模組成品

    由於第一次使用的模組為木板製作,在經測詴後多有損毀,在考慮到整體的

    模組強度與重量之間的帄衡後,我們採用壓克力板去裁切成型,可有較佳的結構

    強度,墊子的部分使用與機車椅墊相同的泡棉製作,再以布帛包起放入結構。彈

    簧則以小型管作為連接處,讓其能與本體結合而不黏死,當有損壞或金屬彈性疲

    乏都能簡單的替換,圖 5.1 中加速規黏貼位置暫時黏貼於側邊,由於我們使用的

    加速規為雙軸加速規,所以將其橫放黏於外殼使用,如使用三軸加速規時可將其

    放置於墊子的下面。

    PCB 電路板的部份,如圖 5.2,為了使體積縮小,將其分成 3 個區塊,ADC0804

    和 AT89C51 為主體分為一塊,再將連接 LED 燈號的電阻分再一塊,最後把 LED

    獨立分再一塊。

    圖 5.1 整體結構實體圖

    雙軸加速規

  • 31

    圖5.2 捶捶樂本體電路

    5.2 量測成果

    將電路裝上測詴模組後,通以 5 伏特的電壓,使用不同力道進行錘打測詴,

    當力道落在紅色 LED 燈區域時會響起 Song1 之音樂;當落在黃、綠 LED 燈區域

    時會響起 Song2 之音樂:當落在黃、綠 LED 燈區域時會響起 Song3 之音樂,確認

    3 個分區的動作都能執行。在 3 種動作中執行其一後幾秒,回到開頭重新撥放開

    始音樂,再進行下一次的敲打,重複上述動作數次,確認整體流程都能確實執行。

    圖 5.3 測詴模組 LED 燈顯示之測詴結果

  • 32

    第六章 結論與未來展望

    6.1 研究結論

    本專題研究主要在於加速度感測器所輸出的訊號經由 A/D 轉換器處理後,

    撰寫 8051 單晶片程式,利用 LED、喇叭,以完成下列成果:

    (1) 將傳統式過於巨大的感測壓力遊戲器具,縮小成可攜式桌的桌上型舒壓小玩

    具。

    (2) 利用 A/D 轉換 IC(ADC0804)搭配單晶片(MSC-51)將信號由類比轉為數位,並

    搭配 LED 顯示量測到的力量大小。

    (3) 透過寫入 MSC-51 的程式設定最小初始電壓,使本專題載具不會因移動產生

    的輕微搖晃就發生反應。

    6.2 未來展望

    本專題以成功製作出抒壓玩具的基本雛形,未來將可透過增加額外功能更加

    增添本產品的娛樂性,例如彈出機關、增加不同音效等等。圖 6.1 為未來還可延

    伸擴充之功能示意圖。

    圖 6.1 應用設計

  • 33

    本專題研究之目的主要為提供一個簡易的舒壓玩具,將市上現有的大型敲打

    遊戲機小型、可攜帶化,以便能在任何場所遊玩。現代人因繁忙的生活步調與工

    作,在帄時累積了不少壓力,由其是白領階級的上班族更是需要一些抒發的管道,

    在歐美與鄰近的日本,這種桌上型的舒壓玩具在最近幾年也開始慢慢的發燒,但

    這種比較需要用到力氣的種類很稀少,往此方向發展應可有較大收益,以下為將

    來改良研究與相關事項:

    1、本專題研究之成品為單一動作雛型,其更改創作空間極大,可自由增加機構

    來切合實際需求。

    2、在音效方面,能再額外採用專用音樂IC,可解除使用AT89C51容量不足以及用

    計數器來發音而能用音階不足的問題。

    3、由於一些成本方面與製作方面的問題,在能量產化的前提下可有效壓低成本,

    達到理想價格,帄價化的舒壓玩具。

  • 34

    參考文獻

    1. 蔡朝洋,電子學實驗,全華書局,民國94 年8 月 二版九刷。

    2. 蔡朝洋,單晶片微電腦8051/8951 原理與應用,全華書局,民國94年6月

    八版一刷。

    3. 伍秀菁、汪若文、林美吟、吳振勇,「微機電系統技術與應用」,行政

    院國家科學委員會精密儀器發展中心,2003。

    4. 原著:Tai-Ran Hsu、翻譯:朱銘祥,MEMS&Microsystems Design and

    Manufacture,美國加州聖荷西州立大學機械與航太工程學系。

    5. 吳鴻璋,微處理應用(8051/8052 基本原理與應用),滄海書局,民國94 年

    2 月 初版一刷。

    6. 鄧錦城,單晶片實作寶典,益眾資訊,83 年1 月。

  • 35

    附錄(一) ADXL322量測環境之 Datasheet

  • 36

    附錄(二) ADC0804之 Datasheet

  • 37

  • 38

    附錄(三) 寫入MCS-51之 C語言程式

    #include

    #include

    void delay150us();

    void delay_fun();

    sbit ADCRD=P3^7 ;

    sbit ADCWR=P3^6 ;

    sbit ADCINTR=P3^2;

    sbit spk=P3^4;

    int value;

    unsigned char hi,lo;

    unsigned char thi[]={0,226,229,232,233,236,238,240,241,242,244,244,246,247,248};

    unsigned char tlo[]={0,4,13,10,20,3,8,6,2,23,5,26,1,4,3};

    unsigned char song[]={10,10,10,8,10,12,5,100};

    unsigned char len []={1,1,1,1,1,2,1,1,100};

    unsigned char song1[]={8,5,5,6,5,8,8,100};

    unsigned char len1 []={1,1,1,1,2,1,1,100};

    unsigned char song2[]={10,10,10,8,10,12,5,100};

    unsigned char len2 []={1,1,1,1,1,2,1,1,100};

    delay(int d)

    {

  • 39

    int i,j;

    for(i=0;i

  • 40

    TR0=0;

    }

    tone(char t, char l)

    {

    hi=thi[t];

    lo=tlo[t];

    TR0=1;

    delay(100*l);

    TR0=0;

    }

    play_song(char*t,char*l)

    {

    while(1)

    {

    if(*t==100)break;

    tone(*t++,*l++);

    delay(5);

    }

    }

    main()

    {

    init_timer();

  • 41

    {

    play_song(song,len);

    }

    spk=0;

    while(1)

    {

    unsigned int dly = 0 ;

    unsigned char B = 0x86 , B1 = 0;

    ADCWR = 0 ; ADCWR = 1 ;

    delay150us() ;

    while ( ADCINTR );

    ADCRD = 0 ;

    while(dly < 10000)

    {

    B1 = P2;

    if (B1 =0xF0)

    {

    P1=0x01;//P0 = 0000 0001

    be();

    delay_fun();

  • 42

    P1=0x03;//P0 = 0000 0011

    be();

    delay_fun();

    P1=0x07;//P0 = 0000 0111

    be();

    delay_fun();

    P1=0x0F;//P0 = 0000 1111

    be();

    delay_fun();

    P1=0x1F;//P0 = 0001 1111

    be();

    delay_fun();

    P1=0x3F;//P0 = 0011 1111

    be();

    delay_fun();

    P1=0x7F;//P0 = 0111 1111

    be();

    delay_fun();

    P1=0xFF;//P0 = 1111 1111

    play_song(song,len);

    }

    else if(B=0xE0)

    {

    P1=0x01;//P0 = 0000 0001

  • 43

    be();

    delay_fun();

    P1=0x03;//P0 = 0000 0011

    be();

    delay_fun();

    P1=0x07;//P0 = 0000 0111

    be();

    delay_fun();

    P1=0x0F;//P0 = 0000 1111

    be();

    delay_fun();

    P1=0x1F;//P0 = 0001 1111

    be();

    delay_fun();

    P1=0x3F;//P0 = 0011 1111

    be();

    delay_fun();

    P1=0x7F;//P0 = 0111 1111

    play_song(song,len);

    }

    else if(B=0xD0)

    {

    P1=0x01;//P0 = 0000 0001

    be();

    delay_fun();

    P1=0x03;//P0 = 0000 0011

  • 44

    be();

    delay_fun();

    P1=0x07;//P0 = 0000 0111

    be();

    delay_fun();

    P1=0x0F;//P0 = 0000 1111

    be();

    delay_fun();

    P1=0x1F;//P0 = 0001 1111

    be();

    delay_fun();

    P1=0x3F;//P0 = 0011 1111

    play_song(song2,len2);

    }

    else if(B=0xC0)

    {

    P1=0x01;//P0 = 0000 0001

    be();

    delay_fun();

    P1=0x03;//P0 = 0000 0011

    be();

    delay_fun();

    P1=0x07;//P0 = 0000 0111

    be();

    delay_fun();

    P1=0x0F;//P0 = 0000 1111

  • 45

    be();

    delay_fun();

    P1=0x1F;//P0 = 0001 1111

    play_song(song2,len2);

    }

    else if(B=0xB0)

    {

    P1=0x01;//P0 = 0000 0001

    be();

    delay_fun();

    P1=0x03;//P0 = 0000 0011

    be();

    delay_fun();

    P1=0x07;//P0 = 0000 0111

    be();

    delay_fun();

    P1=0x0F;//P0 = 0000 1111

    play_song(song2,len2);

    }

    else if(B=0xA0)

    {

    P1=0x01;//P0 = 0000 0001

    be();

    delay_fun();

    P1=0x03;//P0 = 0000 0011

    be();

  • 46

    delay_fun();

    P1=0x07;//P0 = 0000 0111

    play_song(song1,len1);

    }

    else if(B=0x90)

    {

    P1=0x01;//P0 = 0000 0001

    be();

    delay_fun();

    P1=0x03;//P0 = 0000 0011

    play_song(song1,len1);

    }

    else if(B=0x87)

    {

    P1=0x01;//P0 = 0000 0001

    play_song(song1,len1);

    }

    P1=0x0;

    }

    }

    void delay150us()

    {

    int i=0 ;

    for(i=0 ; i < 18 ; i++) ;

    }

  • 47

    void delay_fun()

    {

    int i,k;

    for(k=0;k