Download as pdf or txt
Download as pdf or txt
You are on page 1of 78

中頻調制定電流電刺激器系統之實現

The Implementation of a Modulated Middle-Frequency


Constant Current
Electrical Stimulation System

研究生:程皓白
指導教授:李彥杰 博士
任善隆 博士

義守大學
電子工程學系
碩士班碩士論文

A Thesis Submitted to
Department of Electronic Engineering
I-Shou University
in
Partial Fulfillment of the Requirements
for the Master degree
with a
Major in Electronic Engineering
June ,2006
Kaohsiung, Taiwan
Republic of China

中華民國 九十五 年 七 月
中頻調制定電流電刺激器系統之實現

研究生:程皓白 指導教授:李彥杰、任善隆

義守大學電子工程研究所

摘要

電刺激器是產生一序列電壓或是電流脈波,並將其傳導到神經或是肌肉
組織上,以達到治療復健目的之醫療儀器。電刺激器可依產生電流脈波頻率
的高低,區分為低頻(<1000Hz)、中頻(1KHz~10KHz)以及高頻(>10KHz)。
臨床上使用的中頻電刺激器比低頻有更佳的組織穿透性,因此透入的深度也
較深,常用於神經肌肉刺激及止痛治療,另外也應用於促進組織癒合,增進
血液循環,減少水腫等方面。

目前市售的電刺激器大多是以低頻電刺激器為主,中頻電刺激器非常
少。本論文研究目的在於研製出一套中頻調制定電流電刺激器系統,強調定
電流的輸出是不論皮膚和電極片之間的阻抗多大(或多小),都產生固定的刺
激電流波形,對於刺激人體時使用者感覺較舒適。本研究利用單晶片微處理
器為核心,透過單晶片內建的強大功能,搭配軟體程式的控制,整合其他的
周邊輔助電路來設計電刺激器系統,並利用此系統發展更具療效的電刺激模
式與更具人性化的操作界面,來達到更佳的治療效果。

關鍵字:電刺激器, 調制中頻, 定電流

I
The Implementation of a Modulated Middle-Frequency Constant
Current Electrical Stimulation System

Student: Hao-Pai Cheng Advisor: Yan-Chay Li、Sun-Lon Jen

Department of Electronic Engineering


I-Shou University

ABSTRACT

Electrical stimulator is a machine which can generate a serial of voltage or


current pulse signals. These signals are applied to human nerve or muscle
system for treatment or rehabilitation. The electrical stimulator is divided into
several type depends on the current pulse frequency. The frequency less than
1Khz are known as low-frequency, the middle-frequency are the frequency
between 1Khz to 10Khz, while high-frequency are those higher than 10Khz.
Compare with the low-frequency stimulator, the middle-frequency electrical
stimulator has better tissue penetration ability in clinical application. Therefore,
middle-frequency electrical stimulator is usually used for nerve and muscle pain
relief, tissue heal over, improve blood circulation, and reduce edema.

In the present days, most of the commercial electrical stimulators are


low-frequency type. The middle-frequency electrical stimulators are relatively
rare. The goal of this research is to design a modulate middle-frequency constant
current electrical stimulation system. The constant current make the current
output of the system become fix no matter the resistance change between skin
and electrode or different kinds of stimulation waveforms. This stimulation
system can make the user feel more gentle and comfortable when under
treatment. A single chip microprocessor is adopted here as the kernel of the

II
system. The microprocessor with its powerful operation function and control
program as well as other powerful peripherals is suitable for development of this
system. New treatment mode and new human machine interface can be
implemented on this system to gain better cure result.

Keywords:Electrical Stimulator, Modulate Middle-Frequency, Constant


Current

III
誌謝

兩年的時間一轉眼就過去了,非常感謝三位指導教授李彥杰老師、黃克
穠老師、任善隆老師在研究所期間所給予的教導與訓勉,使學生在專業知
識與學習態度方面獲益良多,在此獻上最衷心的感激與謝意。同時也感謝楊
明興老師所提供的寶貴意見,使這本論文更臻完整。

對於實驗室的伙伴,祥憲、政恭、人傑、育賢、棋凱、欣梅、柏良、宗
憲、秉傑及成大博士班的裕仁學長、郁欣學姐,亦感謝同學致誠,感謝你
們在這段時間有您們的陪伴,使我的研究所生活精彩許多,很高興能夠跟
你們一起相處兩年。

最後感謝我親愛的父母,有你們的支持與栽培,我才能夠無後顧之憂的
完成學業,最後將本論文的成果,獻給我親愛的家人和關心我的師長及朋
友,謝謝你們!

IV
目錄
中文摘要 ................................................................................................................I
英文摘要 .............................................................................................................. II
誌謝 .....................................................................................................................IV
目錄 ...................................................................................................................... V
圖目錄 ............................................................................................................... VII
表目錄 .................................................................................................................IX

第一章 緒論...................................................................................................... 1
1-1 研究動機.............................................................................................. 2
1-2 研究目的.............................................................................................. 3
1-3 文獻回顧.............................................................................................. 3
1-4 論文架構說明...................................................................................... 5
第二章 研究方法.............................................................................................. 6
2-1 調制中頻電流-蘇聯波簡介.............................................................. 6
2-1-1 蘇聯波的基本原理與特性 ....................................................... 6
2-1-2 蘇聯波於電刺激系統之應用 ................................................... 7
2-1-3 蘇聯波的產生方式 ................................................................... 7
2-2 輸出電路設計-定電流方式.............................................................. 8
第三章 系統設計............................................................................................ 10
3-1 系統硬體架構.................................................................................... 10
3-1-1 AVR ......................................................................................... 11
3-1-2 高壓激發電路 ......................................................................... 13
3-1-3 輸出刺激電路 ......................................................................... 14
3-1-4 定電流電路 ............................................................................. 15
3-1-5 按鍵電路 ................................................................................. 16
3-1-6 LCD 顯示電路 ........................................................................ 16
3-2 系統軟體架構.................................................................................... 17
第四章 結果與討論........................................................................................ 25
4-1 系統規格............................................................................................ 25
4-2 系統測試............................................................................................ 26
4-2-1 高壓電路輸出測試 ................................................................. 26
4-2-2 輸出波形測試 ......................................................................... 26
4-2-3 PWM 輸入波形....................................................................... 27
4-2-4 負載測試 ................................................................................. 28
4-3 可能誤差來源分析............................................................................ 32
4-4 系統設計與製作心得........................................................................ 33

V
第五章 結論與未來展望................................................................................ 34
5-1 結論.................................................................................................... 34
5-2 未來展望............................................................................................ 34
參考文獻 ............................................................................................................. 38
附錄 A 經皮神經電刺激................................................................................ 40
一、 TENS 的定義..................................................................................... 40
二、 TENS 的理論基礎............................................................................. 40
附錄 B 神經肌肉電刺激................................................................................ 45
一、 NMES 的定義.................................................................................... 45
三、 NMES 醫療的應用............................................................................ 46
附錄 C 調制中頻電流.................................................................................... 47
一、 中頻電流的定義................................................................................ 47
二、 中頻電流的生理學特點.................................................................... 47
三、 由低頻調制的中頻電流.................................................................... 48
四、 調制中頻電刺激療法........................................................................ 48
附錄 D 硬體電路圖........................................................................................ 52
附錄 E 程式碼................................................................................................ 53

VI
圖目錄

圖 2.1、蘇聯波之電流形式................................................................................. 6
圖 2.2、定電流電路原理圖................................................................................. 9

圖 3.1、系統方塊圖 ........................................................................................... 10
圖 3.2、ATMEGA8535 PDIP封裝圖 ................................................................ 12
圖 3.3、ATMEGA8535 TQFP/MLF封裝圖...................................................... 12
圖 3.4、ATMEGA8535 PLCC封裝圖............................................................... 12
圖 3.5、高壓激發電路圖................................................................................... 13
圖 3.6、輸出刺激電路圖................................................................................... 14
圖 3.7、LOW-PASS RC-FILTER ............................................................................ 15
圖 3.8、定電流電路圖....................................................................................... 15
圖 3.9、按鍵電路圖 ........................................................................................... 16
圖 3.10、96*32 繪圖型LCD內部架構圖........................................................ 17
圖 3.11、LCD電路圖 ......................................................................................... 17
圖 3.12、主程式流程圖..................................................................................... 19
圖 3.13、設定電源開/關機流程圖.................................................................... 20
圖 3.14、設定刺激時間與通道切換流程圖..................................................... 20
圖 3.15、設定參數選項流程圖......................................................................... 21
圖 3.16、返回選單流程圖................................................................................. 21
圖 3.17、確認參數流程圖................................................................................. 22
圖 3.18、LCD畫面更新副程式流程圖............................................................. 22
圖 3.19、控制程式流程圖................................................................................. 24

圖 4.1、系統硬體電路板................................................................................... 25
圖 4.2、無負載時,最大輸出電壓 130V......................................................... 26
圖 4.3、輸出脈波-波寬 200US於 5MS時間解析度下之波形 .......................... 27
圖 4.4、輸出脈波-波寬 200US 於 1MS時間解析度下之波形......................... 27
圖 4.5、CH 1 的PWM輸入波形 ........................................................................ 28
圖 4.6、經過RC低通濾波的PWM輸入波形.................................................... 28
圖 4.7、不同負載阻抗下所得最大電壓、最大電流與平均輸出電流曲線圖
...................................................................................................................... 30
圖 4.8、500Ω負載阻抗下量測之輸出波形圖.................................................. 31
圖 4.9、1000Ω負載阻抗下量測之輸出波形圖................................................ 31

VII
圖 4.10、10000Ω負載阻抗下量測之輸出波形圖............................................ 31
圖 4.11、電晶體Q7 基極量測的波形 ............................................................... 32
圖 4.12、電晶體Q7 基極與負載輸出波形的對照圖....................................... 32

圖 5.1、定電流電路的輸出電路與誤差........................................................... 36

圖A.1、CONVENTIONAL TENS ........................................................................... 42


圖A.2、AL-TENS .............................................................................................. 43
圖A.3、INTENSE TENS ....................................................................................... 44

圖C.1、等幅中頻電流與由低頻調制的中頻電流 ........................................... 48
圖C.2、調制中頻電流的主要形式 ................................................................... 49
圖C.3、正半波的等調波 ................................................................................... 50
圖C.4、調幅後電流幅度的變化 ....................................................................... 50

VIII
表目錄

表 1、定電流輸出與定電壓的優缺點比較........................................................ 8
表 2、最大輸出電流之標準範圍...................................................................... 29
表 3、不同負載下最大電壓、最大電流和平均輸出電流值.......................... 29
表 4、神經纖維的分類...................................................................................... 40

IX
第一章 緒論

臨 床 上 電 刺 激 儀 器 可 分 為 兩 大 類 : 低 頻 電 刺 激 器 ( low frequency
stimulator)及中頻電刺激器(middle frequency stimulator)[1-2]。低頻電刺
激器,是指所應用之電磁波頻率範圍在 1000Hz以下,此範圍頻率可有效引
起神經肌肉興奮的生理作用,大多數刺激電流形式都屬於低頻,例如經皮
神經電刺激(Transcutaneous Electrical Nerve Stimulation,TENS)[附錄A]。
經皮神經電刺激是藉由適當的刺激強度、頻率、刺激時間以及多種的組合
波型刺激人體的神經、肌肉和細胞,激發身體產生腦內啡,藉以產生阻斷、
舒緩疼痛的一種治療方式。目前已被公認為治療各類急性及慢性疼痛症候
群之有效方法之一[3]。

但人體皮膚有很大的阻力,有研究指出低頻波(如:經皮神經電刺激)的
穿透力不好,所以止痛的效力只能達到比較表淺的地方;如果是高頻的波,
就可穿越到肌肉層,但高頻波又沒有止痛效果。因此在60年代有人發明了
以低頻調制中頻的電刺激技術應用在臨床上,中頻電刺激儀則是應用
1000Hz~1MHz 間之電磁波,但 2000~5000Hz 是最常用的範圍。為了達
到興奮神經肌肉系統的效果,必須將此較高之中頻調節為低頻的電流,蘇
聯波和干擾波即是典型的例子[4]。其與TENS的差異性在於輸出電流特性的
不同,調制中頻波作用於人體時,兼具了低頻波與中頻波的優點,而沒有
兩者各自的缺點,並於人體有良好的止痛作用、可促進組織血液循環和淋
巴回流、興奮神經肌肉、按摩作用及改善血液循環等療效[5]。

1
1-1 研究動機

  在當前繁忙的社會環境中,生活步調緊湊,工作壓力大,許多現代人
長期工作而缺乏適當的休閒運動,因此產生了許許多多的文明病症。有鑑
於此,人們對於健康的重視以及保健儀器的需求與日俱增;另一方面,隨
著對電刺激生理了解的日益增加,以及電子科技不斷地進步,再加上電刺
激治療方法經由臨床實驗證實具有相當不錯的療效,常用於神經肌肉刺
激、止痛、增進血液循環及鬆弛緊張壓力等方面,而無藥物治療可能造成
之副作用,因而被廣泛應用在許多臨床治療及復建上。臨床上使用的蘇聯
波電流,是將 2500Hz 交流電,以時間調節的原理而產生的,比低頻電流
有更佳的組織穿透性,可以透入的人體較深層的組織,常應用於促進組織
癒合,增進血液循環,減少水腫等方面,達到治療的目的[6]。

目前國內市售的中頻電刺激器產品非常少,定電流輸出的功能僅見於高
階或專業的電刺激器上,對於一般使用者來說更是消費不起。鑒於以上原
因,與醫療器材廠商『虹泰企業有限公司』的合作之下,由於單晶片微處
理器具有多功能、小型化及低價位等優點,被大量應用於消費電子、通訊
及一般工業等產品中,我們希望藉由電子科技蓬勃發展之際,能將其應用
於電刺激治療系統上,並且改良目前一般相關產品的缺點,設想研製一種
具有低中頻電流治療作用,屬於低價位且擁有高階機種的固定電流輸出功
能的治療設備,這就是本文所要闡述的中頻調制定電流電刺激器。

2
1-2 研究目的

本 研 究 主 要 目 的 是 利 用 ATMEL 公 司 所 生 產 的 單 晶 片 微 處 理 器
ATMEGA8535作為系統主要控制核心,來達到低成本、高效益之經濟價值,
並以C語言撰寫控制程式,整合周邊的輔助電路,設計一套電刺激器系統,
達成可攜式與單機作業的目的,利用此系統發展更具療效的電刺激模式及
波形,還有更親切、更具人性化的操作界面,來達到更佳的療效。結合生
醫保健概念與電子科技的技術,達到更多元化、人性化之需求。

1-3 文獻回顧

1999 年中國首都醫科大學宣武醫院余維豪等人利用調制中頻脈衝電刺
激(2KHz 方波,1~10Hz 來調制及 7KHz 方波,100Hz 來調制)治療腰椎
間盤突出症,應用多電極調制中頻脈衝電刺激穴位的方法,同時刺激腰背
部及委中穴位,取得了良好的治療效果[7]。

1999 年中國空軍總醫院楊春敏等人利用中頻電表面電極刺激足三里,
觀察電刺激足三里對健康人胃電活動的影響。結果發現中頻電刺激穴位增
強胃電的主功率和正常胃節律,可作為胃節律紊亂病人的一種治療選擇[8]。

1999 年南京市中醫院郭蘇梅利用了特定電磁波並等幅中頻正弦電中藥
透入治療椎動脈型頸椎病,使用頻率 2KHz 正弦波電刺激,研究結果發現
能改善由於椎退變造成的頸部肌肉韌帶等軟組織的不良狀況,達到增加椎
基底動脈供血的目的,部分患者腦血流圖的血流量和血流速有明顯的改善
[9]。

2000 年中國暨南大學醫學院第一附屬醫院王紅等人利用調制中頻電刺
激(2KHz,100Hz 來調制)來治療顳下頜關節紊亂,結果發現中頻電刺激
不僅可刺激皮膚感覺神末梢,還可能刺激局部的植物神經,引起局部血管

3
擴張,促進代謝,從而緩解肌肉痙攣並加強止痛作用,使關節功能趨於正
常[10]。

2000 年齊齊哈爾醫學院第二附屬醫院何東若等人利用中頻電刺激
(5KHz,100~150Hz 調制)治療椎動脈頸椎病,結果發現電刺激風池穴
能夠引發椎動脈狀態趨向正常,研究結果證實 100~150Hz 的低頻部分具
有抑制交感神經興奮性促進血液迴圈,改善局部病理狀況的作用,5000Hz
的載波頻率可以使得調制波作用更為深入,從而取得了良好的治療效果
[11]。

在國內有關電刺激的研究中,2004 年中原大學醫學工程學系論文「調
制中頻電刺激器之研製及應用於疼痛治療之評估」系統設計將傳統中頻波
形(以低頻正弦波調制中頻波)修改為以低頻方波來調制中頻波,對於電
刺激人體時所產生的刺激感較強,且受測者感覺較舒適;將控制旋鈕設計
成數位式按鍵微調方式,可避免傳統旋鈕調整上的不靈敏以及輸出強度只
有數段調整的不方便[12]。

文獻上常見的電刺激器系統架構通常包括下列幾個部分:整個電刺激系
統以一控制晶片(Main Control Unit,MCU)為主要核心,將所接收到的刺
激模式與波形資料加以運算與處理之後,便將應輸出的波形經過數位類比
轉換晶片(Digital-to-Analog Converter,DAC)輸出,再經過後級類比處理
的電路,由黏貼式或植入性的電極將刺激電壓或電流輸入欲刺激的人體部
位。另外操作介面部分,在實際應用時臨床使用者首先在電腦上透過一套
使用者介面程式來設計刺激波形,設計完畢之後則藉由電腦通訊埠傳送至
刺激器。科學家發現可用電刺激的方式來增強脊髓損傷病患的肌肉收縮強
度與耐力、增強心肺功能,並防止肌肉萎縮,減少肌肉痙攣現象。其後更
利用微處理機或數位訊號處理晶片建構出功能強大的電刺激系統,可以控

4
制較多且複雜的肌肉,以重建病患各種功能性的動作,比如站立、行走、
踩腳踏車,或以手抓握杯子、寫字等複雜的動作[13-16]。

1-4 論文架構說明

本論文共分六個章節,每章節內容概述如下:

z 第一章:概略介紹電療器的應用,並闡述本研究的動機與目的。
z 第二章:介紹蘇聯波原理,同時也會詳細說明如何設計調製中頻蘇聯波
電流訊號,以及定電流的電路設計原理。

z 第三章:對本論文的系統架構作完整介紹與說明,包含系統規劃、硬體
架構及軟體程式設計等。

z 第四章:這裡會將系統的各項規格及測試結果以圖示與表格方式做解
說,並包含製作結果討論與系統設計製作的心得。

z 第五章:對本論文結果做一總結,並討論在未來發展及改進方式提出相
關建議。

z 附錄 :這部份含有前面章節的部份解說原理與應用,並附上本系統設
計的硬體電路圖與程式碼。

5
第二章 研究方法

2-1 調制中頻電流[附錄C]-蘇聯波簡介

蘇聯波,是一種可以強化肌力的神經肌肉電刺激方式[附錄B]。在1976
年蒙特婁奧運中,前蘇聯科學家柯茲博士(Kots),接受使用神經肌肉電刺
激,配合運動,訓練前蘇聯國家代表隊。Kots 發現這種方式的訓練比單獨
運動訓練,肌肉收縮數比自主收縮多出30%~40%。這個結論引起西方科學
家的興趣,雖然後續的研究,無法重新呈現當初 Kots 所得的效果,但是卻
開啟了神經肌肉電刺激在增強肌力的廣泛應用[17]。

2-1-1 蘇聯波的基本原理與特性

蘇聯電波的刺激,為 2500Hz交流電,整流成每秒 50 個脈波,脈波叢波


長 10 毫秒,間隔 10 毫秒,每次肌肉收縮 10 秒,放鬆 10 秒,如圖 2.1。

圖 2.1、蘇聯波之電流形式

6
2-1-2 蘇聯波於電刺激系統之應用

利用電刺激來增加運動員的肌肉力量其電流必須滿足兩條件:第一要足
以產生極強的肌肉收縮;第二是電刺激的電流不會很痛才能有足夠大的刺
激強度以引起足夠大的收縮。因此蘇聯波的發展即是為此而來。如果細看
每一個波寬是 200μs,這和止痛所用的經皮神經電刺激(TENS)所用的參
數特性是符合的(一般經皮神經電刺激的相寬大多在介於 20~200μs 之
。利用此一電流可阻斷、麻醉較小、較細的向心性神經纖維。而調成 50Hz
間)
的載波可刺激遠心性神經而引起平常肌肉強直性收縮所無法徵召到的神經
以引起極強的肌肉等長收縮,而達到肌肉訓練的目的[18]。

2-1-3 蘇聯波的產生方式

本研究的輸出電路上沒有調節器電路(Regulator circuit)可以產生各種
不同的波形,對於振幅的變化上不太容易控制。透過輸出電路的電晶體開
關切換(ON/OFF)
,輸出波形只有基本的方波形式,傳統的中頻電刺激器
都是以正弦波為主,本系統修改成以方波為主的中頻經時間調節成低頻的
治療效果,對於電刺激人體時產生的刺激感較強,且受測者感覺較舒適。
要產生 2500Hz 的方波,時間週期為 400μs,透過 MCU 內部的時間中斷來
做處理,中斷的時脈來源為系統振盪頻率 8000MHz 除頻成 1000MHz,設定
中斷模式為比較最高值後清除暫存器的模式,計數器計數到欲產生中斷時
間時的數值,即進入中斷副程式執行,時間週期為 400μs 的方波,一個正(負)
半週期時間為 200μs,所以中斷時間為 200μs 進入中斷副程式內定義波形的
產生方式。在中斷時間 200μs 副程式內,設定計數 50 次為刺激時間、50 次
為休息時間,剛好符合蘇聯波刺激時間 10ms、休息時間 10ms 的定義。

7
2-2 輸出電路設計-定電流方式

輸出刺激電路是連接電極的部份,可以對波形的振幅強度做最後的調
整,一般可分為定電流或定電壓的輸出放大電路,或是兼具兩者的特殊電
路。也就是輸出電流或電壓的值是固定不變的,大小不會隨著欲刺激組織
的阻抗而改變,像是電極、皮膚或其他部位的身體組織。

定電流 定電壓
穩定輸出欲給予的電 透過升壓電路達到 50
優點 流,精確的掌握電流 ~80V 以上的電壓,
強度。 即足夠輸出刺激的脈
波,系統設計較為簡
單。
電極片脫落時,可能 無法確定輸出至人體
缺點 會造成瞬間電流密度 經皮神經組織的確實
過大,發生電灼傷皮 電流大小,難以掌握
膚的現象。 適當的電流強度。

表 1、定電流輸出與定電壓的優缺點比較

如表1所示,由於人體皮膚阻抗是非線性(nonlinear)且時變(time variant)
的,所以固定電壓刺激方式將會無法確定輸出至經皮神經組織的確實電流
大小,較難以掌握適當的電流強度;相反地,固定電流控制的電刺激器則
可以穩定輸出欲給予的電流,較適合表面刺激的系統,也能夠精確的掌握
電流強度。同樣的,固定電流控制亦有其缺點,也就是當電極片脫落而使
皮膚與電極接觸面積變小時,可能會造成瞬間電流密度過大的問題,造成
不舒服或電灼傷皮膚的現象。

定電流的控制方式有很多種,譬如當阻抗變化時,電流也會跟著變化,
所以輸出電流不夠時,可以提昇高壓電路的電壓;輸出電流太大時,可以
降低高壓電路的電壓,以維持固定的電流輸出。本研究採用的定電流電路

8
是先將電流轉成電壓V=IR,再來測量,以一個電阻,串聯於電路上,當電
流流過電阻時,會產生電壓降,利用OP放大器放大電壓,由電壓就可以知
道其電流大小。圖 2.2所示,利用Rs上產生地壓降,與Vref參考電壓比較,
電晶體工作在飽和區與截止區模式,此兩種模式之下,電晶體可視為開關
動作;如低於Vref,OP輸出正飽和VCC驅動TR電晶體為ON,如果高於Vref,
電晶體為OFF狀態,達到定電流的目的,要改變電流大小可以調高Vref電壓
或CURRENT SENSE電阻值。

圖 2.2、定電流電路原理圖

9
第三章 系統設計

3-1 系統硬體架構

整個硬體架構主要可分為下列三大部分:

(1)ATMEL ATMEGA8535單晶片微處理器為核心的數位控制電路。
(2)高壓激發電路、輸出刺激電路與定電流電路。
(3)液晶顯示幕(LCD)及數位按鍵構成的人機介面。

使用者透過數位按鍵和液晶顯示幕(LCD)所組成的人機介面來調整電
刺激器的各項參數,例如:輸出通道之選擇、刺激時間設定等等,這些資
訊經由數位按鍵傳遞到微處理器之後,輸出適當的刺激波形,再經高壓電
路配合類比輸出電路,由電極貼片將真正刺激電流輸入至人體,神經組織
因此產生同步的動作電位,達到治療的效果。整個系統的方塊圖如圖3.1所
示:

電源供應系
LCD顯示

ATMEL
數位按鍵控 高壓產生電
AVR 雙輸出通道
制電路 路
微處理器

定電流電路

電極1 電極2

圖 3.1、系統方塊圖

10
3-1-1 AVR[19-20]
ATMEGA8535是ATMEL公司生產的8位元RISC單晶片微處理器,包裝
型式如圖3.2-圖3.4所示,其最高可支援的時脈速度為16MHz,這裡使用AVR
而不使用常見的8x51是因為AVR的指令執行速度比8x51快;8x51主架構為
CISC,就是累積器導向型微控制器,它所有運算都需透過累積器;AVR主
架構是以RISC(精簡指令式核心),它運作是以暫存器為主;若以一個MOV
指令來解說,標準的8x51則需要使用6個時脈來處理,而AVR只要一個時脈
週期就可以完成,且AVR大部分的指令都是一個時脈週期就可完成。以下
概述AVR的功能特點:

z AVR 的Flash ROM 抹寫次數可達 10,000 次左右。


z AVR 是真正以硬體實現低功耗的 RISC 架構,屬於暫存器導向的微控
器,具有指令預取,單一指令週期的特性。
z AVR 具有不可逆的保護,以及有不可被破解的 Lock Bit。
z AVR 內建可抹除寫入10萬次的 EEPROM,確保存放數據安全。
z AVR 可以使用 In-System Program 的方式進行程式的寫入。
z 6種省電操作模式。
z 1個16-bit 計時/計數器:計時器、事件計數器、波寬量測。
z 2個8-bit 計時/計數器:計時器、事件計數器、PWM輸出。
z 8組通道 10-bit ADC。
z 4組通道 PWM。
z AVR 可使用完整且有效率的 C/C++ 語言進行程式撰寫,而且模組化
的設計可達到實現快速設計與使用簡單。

11
圖 3.2、ATMEGA8535 PDIP 封裝圖

圖 3.3、ATMEGA8535 TQFP/MLF 封裝圖

圖 3.4、ATMEGA8535 PLCC 封裝圖

12
3-1-2 高壓激發電路

一般而言,電刺激器所使用的電流大小,約為數十毫安培,而久病的癱
瘓患者,往往需要 100mA 以上的電流方有反應。另外需考慮的是,電刺
激訊號所經過的電極線、電極貼片,以及人體皮膚所構成的總阻抗約為
500Ω~1000Ω,因此得知瞬間脈波至少需要 50V~80V 以上的電壓供應,
才足夠輸出正確的刺激脈波[21]。高壓激發電路主要是將 74HC14(史密特
觸發反向閘)產生的方波訊號藉由全波橋式電路推動升壓變壓器
(Transformer)以產生交流訊號,經過全波橋式整流濾波成直流高壓電源
來提供後級輸出電路所需。圖3.5是全波橋式電路與升壓電壓器的電路圖;
而選用的升壓變壓器約略有12倍升壓效果。

圖 3.5、高壓激發電路圖

13
3-1-3 輸出刺激電路

輸出極採用兩個推挽(Push-Pull)電流源電路實現正負電流。由電流源
的開關與控制單元產生的控制信號來完成,該控制信號由控制單元AVR輸
出,如圖 3.6所示。在電流源部份採用耐高壓PNP電晶體Q3、Q4,分別由
NPN電晶體Q11、Q12 所驅動。當控制信號為正向脈衝時,Q11 導通,並使
Q4 導通,此時Q12 和Q3 都不會導通,輸出負載阻抗上產生正向電流輸出;
當控制信號為負向脈衝時,Q12 導通,並使Q3 導通,此時Q11 和Q4 都不會
導通,輸出負載阻抗上產生負向電流輸出。前一級電路所輸出的高電壓就
是提供給此輸出電路,利用電晶體開關的特性來設定欲刺激的頻率,並於
示波器上觀察到正向及負向的脈衝波。

圖 3.6、輸出刺激電路圖

14
3-1-4 定電流電路

輸入端(CH1_PWM)透過MCU內部Timer1/Counter1 中的PWM模式,
改變波形寬度成最大,經過RC低通濾波器後,移除PWM訊號中高頻的部份
而保持最小漣波電壓的頻率,漣波電壓近似一直流電壓準位至比較器OPA
正端,如圖 3.7所示。圖 3.8所示,通過負載的電流經過電流偵測(CURRENT
SENSE)電阻R48 產生壓降,經過非反向放大器放大 11 倍至比較器OPA負
端,若OPA構成之比較器正端電壓大於負端電壓,則輸出端等於正飽和極
限(VCC)
,反之為負飽和極限(GND)
,電晶體Q7 根據比較器OPA輸出端
做開關的工作區切換。

當電極片脫落或阻抗變小,使得瞬間電流增大,則比較器 OPA 負端電


壓大於正端電壓,輸出端為 GND 使 Q7 關閉,讓整個輸出迴路關閉,而沒
有刺激的電流波形產生。

圖 3.7、Low-Pass RC-filter

圖 3.8、定電流電路圖

15
3-1-5 按鍵電路

按鍵輸入部份,總共可以定義 6 個按鍵輸入,如圖 3.9所示。

圖 3.9、按鍵電路圖

3-1-6 LCD顯示電路

目前市面上還有許多類似的電刺激器在顯示介面部分,依然使用傳統
LED燈號來標示功能選項部份並以按鈕來切換,使用上沒有液晶顯示幕來
得清楚與舒服。另外一方面考量到小尺寸LCD 製造技術日趨成熟,被大量
廣泛地應用於行動電話、小家電等消費性電子產品,因此選擇繪圖型LCD
作為系統輸出顯示部份,負責人機介面的功能選項顯示,對於視覺觀感也
比較佳,使用者操作時感覺更加親切。為了方便使用者操作,因此本系統
採用 96*32 繪圖型LCD顯示操作時的資訊。其內部架構如圖 3.10,電路如
圖 3.11所示。

16
16 COM

RS, CS2, RESETB


96 SEG
Controller IC
LCD (96*32) dots
KS0715
SI, SCL

16 COM

V1~V5
POWER
SI
UMS-7071JNV-F SUPPLY
SCL

圖 3.10、96*32 繪圖型 LCD 內部架構圖

圖 3.11、LCD 電路圖

3-2 系統軟體架構

程式控制部份以C語言來撰寫,本系統軟體的工作包括按鍵動作之掃
描、畫面更新、輸出波形時間等,其控制流程如圖 3.12所示。當電源啟動
時,ATMEGA8535 程式即開始執行並設定工作初值狀態,包括中斷功能設
定、記憶體規劃、旗標位元設定、I/O腳規劃等,之後隨即進入Power-down
Mode,ATMEGA8535 之Power-down Mode使系統完全停止運作且以最少電
力維持被喚醒的功能。這時使用者按下POWER鍵即可喚醒CPU並進入主程

17
式做按鍵確認動作。

主程式的流程主要是確認按鍵何時被按下,然後決定將執行的動作,本
系統有六個按鍵「POWER」鍵、
「SELECT」鍵、
「UP」鍵、
「DOWN」鍵 、
「EXIT」鍵以及「ENTER」鍵,其程式流程如圖 3.13-圖 3.17所示。每一個
按鍵說明如下:

(1) POWER 按鍵:同一按鍵可設定開機與關機兩種狀態,若在關機狀態


時按下按鍵則系統進入運作,再次按下按鍵則可設定進入 Power-down
Mode(關機狀態)

(2) SELECT 按鍵:每按一次按鍵會移到下一個選項做選擇。
(3) UP、DOWN 按鍵:設定蘇聯波的刺激週期,系統初始設定刺激時間
10ms,休息時間 10ms,每按一次 UP 鍵時可增加 10ms 的時間長度,
最長可達到 10s,提供了治療時間的微調整,反之每按一次 DOWN 按
鍵會減少 10ms 的時間長度;在通道選擇方面,每按一下 UP、DOWN
鍵,CH_1 與 CH_2 互相切換。
(4) EXIT 按鍵:離開目前畫面,返回上一層選單。
(5) ENTER 按鍵:確認每項參數設定好後,按下按鍵立即進入波形刺激。

另外還有一個LCD畫面更新副程式(圖 3.18),其主要功能為輸出當時
狀況的LCD訊息、計時功能、以及執行上述副程式所設定的資訊。

18
主程式開始

設定微處理器工作初值狀態
(包括中斷功能、記憶體管理、旗
標位元設定、I/O腳規劃等)

檢查按鍵

POWER 副程式

按下POWER鍵?

SELECT 副程式 N

按下SELECT鍵?

UP 副程式
N

按下UP鍵?

DOWN 副程式

N
Y

按下DOWN鍵? LCD畫面更新 副程式


EXIT 副程式

N
N
Y

N
ENTER 副程式 按下EXIT鍵? 按下ENTER鍵?

圖 3.12、主程式流程圖

19
按下POWER鍵

N
關機狀態

系統運作

圖 3.13、設定電源開/關機流程圖

按下UP/DOWN鍵

Y
通道選擇 切換CH 1 & CH 2

遞增,遞減時間

結束

圖 3.14、設定刺激時間與通道切換流程圖

20
按下SELECT鍵

ON_TIME 選擇

ALL_TIME 選擇

通道選擇

OK

圖 3.15、設定參數選項流程圖

按下EXIT鍵

Y 返回
選單二
選單一

結束

圖 3.16、返回選單流程圖

21
按下ENTER鍵

Y 選單二
參數設定OK

結束

圖 3.17、確認參數流程圖

LCD畫面更新程式開始

讀取資料顯示
選單一、選單二

計時功能

各項設定的輸出

返回

圖 3.18、LCD 畫面更新副程式流程圖

22
本研究利用了電路配合Timer的使用,設定TCCRn (Timer/Counter
Control Register) 暫存器,決定Timer的工作模式、計時時脈的來源,再將初
始值載入TCNTn (Timer/Counter Register) 中,則啟動了Timer開始工作,最
後判斷OCFn (Output Compare Flag) 旗標的值是否為 1。OCFn=1 表示
TCNTn的數值與OCRn (Output Compare Register) 的數值匹配時,OCIEn
(Output Compare Interrupt Enable)=1,Timer的比較匹配中斷才會執行,中斷
副程式使通道 1 的PORTC.1 接腳輸出 2500Hz的方波, PORTC.2 接腳輸出
2500Hz的方波(反相),通道 2 亦相同方式。如圖 3.19所示。

23
中斷副程式開始

設定TCCR暫存器
決定Timer的工作模式

初始值載入TCNT

啟動Timer開始計時

N
Timer的OCF旗標是否為1

清除Timer的計數值

進入中斷副程式

圖 3.19、控制程式流程圖

24
第四章 結果與討論

4-1 系統規格

本系統之外觀、液晶顯示幕LCD、數位式按鍵等相關配置如圖 4.1所示。
下列為詳細系統規格:

(1) 電源供應來源:DC 5V
(2) 波寬(pulse width):0.2ms
(3) 刺激頻率範圍(frequency range):0.1Hz~50Hz
(4) 最大輸出電壓(於 500Ω 阻抗下):59V
(5) 最大輸出電流(於 500Ω 阻抗下):118mA

圖 4.1、系統硬體電路板

25
4-2 系統測試

系統完成的外觀如圖 4.1所示,圖中有基本波頻率及時間的調整按鍵,
還有數字顯示的液晶顯示,藉由阻抗負載的變化可得到輸出數據,右上側
輸出孔道由左至右分別為 CH 1、CH 2,因此本系統可連接兩組輸出線共四
個電極。

4-2-1 高壓電路輸出測試

如圖 4.2所示,在沒有接後端輸出電路的情況下量測最大輸出電壓,最
大的輸出電壓可達到 130V,符合瞬間脈波至少需要 50V~80V以上的電壓
供應需求。

圖 4.2、無負載時,最大輸出電壓 130V

4-2-2 輸出波形測試

系統設計中將傳統調制中頻波形(中頻正弦波時間調制為低頻正弦波)修
改為以中頻方波經時間調節成低頻的方波,對於電刺激人體時產生的刺激
感較強,且受測者感覺較舒適。根據臨床儀器中常見之特殊電流的特性,
蘇聯波輸出脈波寬度為 200μs,因此我們也將輸出的方波寬度設計固定在

26
200μs,如圖 4.3-圖 4.4所示。

圖 4.3、輸出脈波-波寬 200μs 於 5ms 時間解析度下之波形

圖 4.4、輸出脈波-波寬 200μs 於 1ms 時間解析度下之波形

4-2-3 PWM 輸入波形

定電流電路的Vref參考電壓,透過MCU內部Timer/Counter中的PWM模
式,將輸出比較暫存器的數值改為 0xFF,改變波形寬度為最大,經過RC低
通濾波器後愈近似一直流電壓準位至OP正端,如圖 4.5-圖 4.6所示。

27
圖 4.5、CH 1 的 PWM 輸入波形

圖 4.6、經過 RC 低通濾波的 PWM 輸入波形

4-2-4 負載測試

一般來說人體阻抗是呈非線性的,而且各部位的阻值不盡相同,經由適
當的處理之後可低於1KΩ以下,大約是介於 500Ω~1000Ω 之間。電刺激器
在臨床治療的應用上,根據安規檢測的標準規範,輸出電極的測試負載以
500Ω為標準,系統輸出電流必須維持在一個安全範圍之內,詳細規範如下表
2所示;在同樣的負載情況,脈波間隔低於0.1 sec以下,每個輸出脈波能量
不能超過300mJ;在開路測試狀態下,輸出最大電壓值不能超過500V。

28
當不同頻率的電流通過於人體時,人體組織的等效阻抗也會有所改變,
當通過人體的電流頻率愈高,人體皮膚的等效阻抗會與電刺激頻率成反
比,也就是說當通過人體的電流頻率愈高,人體皮膚的等效阻抗會愈低。

表 2、最大輸出電流之標準範圍

表 3是整個電刺激系統負載的輸出值,可以清楚看到不同負載下的最大
輸出電壓與電流值。刺激頻率及波寬在微處理器的控制程式上設定完成,
最大電壓是由示波器量測每個負載所輸出的最大電壓而來,而將最大電壓
值除以電極所掛的負載阻抗即為最大輸出電流值,依照統計出的結果,可
以清楚的瞭解此電刺激系統的各項數據,並在安規的檢測上可以幫助瞭解
整個系統的相關規格。

條件:頻率 2500 Hz、波寬 0.2ms 的蘇聯波


負載(Ω) 500 1000 10000
最大輸出電壓值
59 111 138
(VP-P±20%)
最大輸出電流值
118 111 13.8
(mA±20%)
平均輸出電流值
20.8 16 3.12
(mA±20%)

表 3、不同負載下最大電壓、最大電流和平均輸出電流值

29
本系統在相同的環境條件及情況,分別針對三種不同電阻值做為負載:
500Ω、1KΩ、10KΩ做最大電壓值的測試,量測每個刺激強度的最大電壓值,
得到下列最大電壓值的曲線圖,如圖4.7所示。可以觀察到當輸出端的負載
電阻越大時,其負載電壓就越大但脈波瞬間流過負載電阻的電流就越小。

160 140

140 138 120 118


111
120
111 100

單位:(毫安培)
單位:(伏特)

100
80
80
60
60 59
40
40

20 20
13.8
0 0
500 1000 10000 500 1000 10000
單位:(歐姆) 單位:(歐姆)

25

20.8
20
單位:(毫安培)

16
15

10

5
3.12

0
500 1000 10000
單位:(歐姆)

圖 4.7、不同負載阻抗下所得最大電壓、最大電流與平均輸出電流曲線圖

整個系統完成後,不同負載下所量測到輸出波形,如圖 4.8-圖 4.10所示。


如圖 4.11所示,在電晶體Q7 基極端所量測到的波形,可以清楚瞭解到經過
OP放大的電壓跟參考電壓比較,若大於參考電壓使操作在飽和區與截止區
的電晶體為OFF,電晶體OFF之後,比較OP正端為 0V,再跟參考電壓比較,
因為小於參考電壓所以電晶體為ON,這樣ON/OFF的過程讓波形呈現鋸齒

30
的現象,電流不會一直持續輸出,達到定電流的功能。圖 4.12所示,電晶
體Q7 基極端與負載輸出波形的對照圖。

圖 4.8、500Ω 負載阻抗下量測之輸出波形圖

圖 4.9、1000Ω 負載阻抗下量測之輸出波形圖

圖 4.10、10000Ω 負載阻抗下量測之輸出波形圖

31
圖 4.11、電晶體 Q7 基極量測的波形

圖 4.12、電晶體 Q7 基極與負載輸出波形的對照圖

4-3 可能誤差來源分析

整個系統從數位電路設計到類比電路配置,要討論誤差產生的原因可能
無法詳細解說,以下列舉兩項需注意的誤差來源來做說明。

一、 濾波效果

為了使後端電路雜訊不要太大而造成影響,脈波輸入與升壓變壓器前的
電容均是用來過濾雜訊。由於此系統輸出頻帶是訂在 2000Hz~10000Hz 且
中頻刺激頻帶是 4000Hz,所以採用的 RC 被動濾波是訂在 4000Hz,且是以
升壓變壓器前的電容來搭配電阻進行交流訊號濾波。

32
二、 電源

此系統最需要一個穩定電源來提供後端高壓電路所耗損的功率。由於後
端電路輸出功率並不是恆定,當輸出功率開到最大時,若電源無法提供足
夠的功率消耗,那電刺激效果馬上大大降低。解決的辦法可以透過一顆大
電容(100 μF)以上減緩充放電的時間以維持後端電路所消耗的功率。

4-4 系統設計與製作心得

本研究目的初期為降低成本是以 ATMEGA8535 單晶片微處理器設計,


依照以往設計電療機的概念,選定適合的電路與 IC,並在整個系統加入與
老師討論的各項意見,最後完成。

在設計電路方面,必須注意流經變壓器的電流。對於轉換效率上必須考
量線徑、匝數比等因素,目前電刺激器輸出負載值較小時,系統的工作電
流較大,工作一段時間後變壓器會呈現發燙過熱的狀態,必須立即停止供
應電源,以避免變壓器負荷過大燒毀。

33
第五章 結論與未來展望

5-1 結論

本研究完成的電刺激系統,皆以 ATMEL ATMEGA8535 單晶片微處理


器為系統主要控制核心,並且提供雙通道、單一模式刺激參數之功能,可
攜式單機作業的設計,大幅度地提高使用上的安全性與便利性。

在系統部分,全面採用表面黏著元件(SMD),大大地縮小所需的體積,
電源供應方面僅需要使用 5V 的工作電壓,不再需要繁雜的電路或是多餘的
電源電路,讓系統更加安全且容易使用;透過數位按鍵和液晶顯示幕(LCD)
所組成的人機介面來調整電刺激器的各項參數,改良過去使用可變電阻及
LED 燈號的操作方式,簡易清晰的人機介面增加了使用者操作的方便性與
親切感。

在系統設計與研究方面,我們利用單晶片微處理器強大的內建功能及軟
體控制特性,來設計硬體線路,並發展研究各種刺激模式、輸出電壓與頻
率之間的相關特性,找出最適當的刺激模式。目前臨床上針對不同症狀及
患部而使用的電刺激電流形式與波形,以及電刺激強度和種類不盡相同,
療效也有所差異。我們希望能開發出更多的刺激功能模式,並將開發出來
的系統實際應用在人體,並由電生理學理論驗證,來進一步改進系統以增
加療效。

5-2 未來展望

在本研究的中頻調制定電流電刺激系統已初步完成,也包含了基本的刺
激波形。但是不論在硬體或是軟體方面均還有許多可以改進的空間,仍有
缺點與不足之處,在此提出幾點討論,以期未來在電刺激系統的應用上,

34
發展出更符合使用者與臨床實驗者需求的電刺激器系統,能夠有更完備的
刺激波形且有更良好的療效。

(1) 電力供應方面:目前電源提供5V,欲提升更好的高壓輸出,勢必要提
昇電源電路至5V以上,對於使用電池供應電力方式是很大的消耗,未
來可以考慮使用較小的變壓器或是以其他方式來加以改良,能夠讓整
個系統更為精簡,大幅縮小體積與重量,使用上更加方便。
(2) 高壓電路方面:目前高壓電路方面利用基本電子元件配合震盪、整流
濾波電路就可以達到升壓的結果,製作電路的成本較便宜,缺點是變
壓器體積大且功率消耗大。未來考慮上可以使用 DC/DC Converter
IC,在應用上只要加入少許零件便可得到想要的電壓輸出,且轉換效
率更好,供應電流只需要幾百個微安培即可,大幅減少供應電流的消
耗。想要得到穩定的升壓電源,則必需付出很高的元件成本。然而,
在電路設計上,應該仔細評估所有元件的供電需求,再加以衡量看要
用那一種供應電路,才是既經濟又有效的作法。
(3) 刺激波形/模式方面:目前整個電刺激系統包含基本的刺激波形與模
式,若考慮在臨床應用上的完整性,刺激模式與波形稍嫌不足,未來
可以依照不同的症狀及復健應用來增加其他的刺激模式,並且搭配醫
學文獻的探討,找出最適當的刺激模式。亦可以自行設計波形,並長
時間經由臨床上重複的實驗與測試,開發出療效更佳、應用層面更廣
的電刺激波形,讓電刺激在醫學復健的研究上的應用更廣泛。

(4) 人機介面部分:本系統目前在操作介面部分使用黑白液晶顯示幕,使
用者可以很容易的瞭解系統工作的狀態,在未來可以考慮使用彩色液
晶顯示幕來呈現,讓整個操作介面更加多采多姿,另外亦可以在圖形
的設計上加入更多的變化,讓使用介面更友善。

35
(5) 定電流部份:本電路在定電流上使用流經負載電流在電阻上產生的壓
降,與參考電壓(Vref)做比較;如低於 Vref,電晶體為 ON,如果
高於 Vref,電晶體就會為 OFF 狀態。如果採用 DC/DC Converter IC
的話,配合 A/D 轉換可測量電流,就可以控制電壓的大小,當電流很
小時,負載阻抗變大,就要提昇高壓電路的輸出加強刺激部位;當電
流很大時,可能是負載阻抗變小或電極片脫落,就要減少高壓電路的
輸出或關閉電壓,這樣的刺激是連續的效果,不會因為電流過大而有
中斷現象,對人體刺激較溫和。目前的定電流電路,輸出單元若使用
電晶體,電流檢出會產生base電流成份的誤差,如圖 5.1(a) 所
示,如果設計上要求高精確時,就需改用圖 5.1(b) 所示的FET電
路,基本上 FET 具有 gate-drain 漏電(leak)電流,加上控制的電路輸
入偏壓(bias)電流也會有誤差,因此這種情況必需使用 FET 輸入增幅
器,如圖 5.1(c) 所示,以求更高精確度。

圖 5.1、定電流電路的輸出電路與誤差

36
(6) 輸出電路部份:當參數設定完之後,即開始輸出刺激電流,當貼片接
觸人體表面組織時就有刺激作用,有些患者會一開始感到刺痛感覺。
所以考量到刺激電流剛開始以緩慢的速度上升至工作電流的狀態做
刺激,對於人體的感受才不會很強烈。

(7) 本研究電刺激的評估方式僅有硬體規格的測試,並無法證明電刺激的
效果。因此未來的研究中,可以再增加一些評估方式或更多專業醫療
儀器與人體試驗,以增加本系統的醫療效果認證。

37
參考文獻

[1] Cook TM, Barr JO: Instrumentation, In: Nelson RM, Currier DP.(eds.):
Clinical Electrotherapy, 2nd. Ed., Norwalk: Appleton & Lange, 1991, pp.35~67.

[2] Howe T: Low-frequency Currents: an Introduction, In: Kitchen S, Bazin S


(eds.): Clayton’s Electrotherapy, 10th ed., London: WB. Saunder Company Ltd.,
pp271~275, 1996.

[3] Mark I Johnson,“Transcutaneous Electrical Nerve Stimulation (TENS) and


TENS-like devices: do they provide pain relief ?”, Pain Reviews, 8:
pp121~158,2001.

[4] 廖文炫、張梅蘭、蔡美文、王淑芬(2004)物理因子治療學 - 電磁療


學,合記圖書出版社,p69。

[5] 林良士,“中頻與低頻經皮神經電刺激系統之研製”,成功大學電機工程
學系碩士論文,2004,p1。

[6] 林良士,“中頻與低頻經皮神經電刺激系統之研製”,成功大學電機工程
學系碩士論文,2004,pp1-2。

[7] 余維豪、霍速、範維銘、蔡紅、李瑞午,經絡調制中頻脈衝電治療腰椎
間盤突出症,中國康復醫學雜誌,4(14),1999。

[8] 楊春敏、張秀榮、毛高平、張映輝、王建榮,中頻電刺激足三里對健康
人胃電活動的影響,基礎醫學與臨床,0(19),1999。

[9] 郭蘇梅,特定電磁波並等幅中頻正弦電中藥透入治療椎動脈型頸椎病
65 例報告,現代康復,6(4),2000。

[10] 王紅、葉春山,經皮電刺激治療顳下頜關節紊亂,現代康復,4(4),2000。

[11] 何東若、王憑、孫慶順、張英慧,TCD 對低頻電刺激風池穴治療椎動


脈型頸椎病的評定,現代康復,6(4),2000。

[12] 許善華,“中頻與低頻經皮神經電刺激系統之研製”,國立成功大學電
機工程學系碩士論文,p25,2004。

38
[13] 曾睿士,“改良型功能性電刺激系統”, 國立台灣大學電機工程研究所碩
士論文,2002。

[14] Yves Lazorthes and Adrian R.M. Upton, “Neurostimulation:an overview”,


Futura Pub. Co., Mt. Kisco, N.Y., 1985.

[15] A. Kralj and T. Bajd, “Functional Electrical Stimulation:Standing and


Walking After Spinal Cord Injury”, Boca Raton, FL:CRC Press, 1989.

[16] 謝光熙,“以 DSP 為架構多通道高壓輸出可攜式功能性電刺激系統之


研發”,國立台灣大學電機工程研究所碩士論文,2001。

[17] 網頁資料,物理治療數位博物館 http://www.taiwanpt.net/ptdc2.asp?mrn=911

[18] 廖文炫 林慧芬,“增強肌力之電刺激法”,中華物療誌 第 16 卷 第 1


期,1991。

[19] ATMEL Instruments,“ATMEGA8535 Data Sheet”

[20] 李彥杰、葉郁欣、徐祥憲、黃克穠、任善隆, “AVR 控制應用與實務 –


使用 ATMEGA8515 與 C 語言”,高立出版社。

[21] 許善華,“中頻與低頻經皮神經電刺激系統之研製”,國立成功大學電
機工程學系碩士論文,p25,2004。

[22] 蔡美文,不同電流型式之舒適度比較,中華物療誌 第 18 卷 第 2 期
1993。

39
附錄A 經皮神經電刺激

一、 TENS 的定義

由於絕大多數低頻脈衝電療法都是經過皮膚進行電刺激的,因此
TENS 這一名稱容易和其他低頻脈衝電療法混淆,加上這種療法的理
論基礎與電刺激周圍神經中的粗纖維有密切關係,因此也可將 TENS
稱為周圍神經纖維電刺激療法,但為簡便起見,仍用 TENS 來做為這
一療法的簡稱。

二、 TENS 的理論基礎

在周圍神經中,纖維有的直徑粗細不同、傳導速度、功能也不一
致,如下表所示:

表 4、神經纖維的分類

40
Aα、Aβ 是直徑較粗的纖維,主要傳導非痛感。粗纖維興奮閾低、傳導速度
快,因而易於興奮,而且其衝動又能較快地傳入中樞。閘門控制理論認為:
粗纖維興奮時同時興奮了脊髓後角中的閘門--膠質細胞,閘門興奮後,關閉
了衝動向中樞傳入的閘,因而痛衝動就不再能順利地進入,結果產生了鎮
痛效應。另一種可能電刺激周圍神經粗纖維引起的衝動傳入到腦和腦下垂
體之後,引起腦內嗎啡樣多太的釋放,因而產生鎮痛效果。
藉由電刺激興奮神經纖維使其產生鎮痛作用的機轉下,我們可將TENS細分
為以下三類[3]:
Conventional TENS:

其機制與在疼痛部位的周圍區域撫摸或輕輕按摩可獲得止痛為同樣的
效果。以刺激並活化較大直徑的Aβ神經纖維(皮膚的機械感受器傳入纖維
(觸、壓、振動感受器傳入纖維))而不去刺激到直徑較小的Aδ神經纖維(皮膚
痛溫覺傳入纖維,肌肉的深部壓覺傳入纖維)和C纖維(無髓的痛覺纖維,溫
度、機械感受器傳入纖維),在臨床上常使用高頻率低強度的脈衝電刺激刺
激人體,產生的效應為電刺激活化了較大直徑的纖維,興奮Aβ後傳入神經
纖維,因脊髓機制可產生鎮痛作用,一般而言,Conventional TENS輸出頻
率通常為 10~200Hz之間,但強度較弱(能引起粗纖維興奮的強度),輸出脈
衝波的寬度介於 100~200μs之間,輸出波形的方式以連續波為主,
Conventional TENS其作用於神經纖維產生鎮痛作用的示意圖如圖A.1所示。

41
圖 A.1、Conventional TENS

AL-TENS:

AL-TENS(經皮神經穴位電刺激,Acupuncture-like Transcutaneous
Electrical Nerve Stimulation;簡稱 AL-TENS)是結合了 TENS 及中醫
的針灸理論所衍生出的一種治療方法,將刺激點選擇在相對病症的治
療穴位(Acupoint)上,增加人體對於痛的閾值或是腦內啡的產生,以
達到止痛效果的一種治療方式[3]。作用機制為一種非傷害性的刺激,其鎮
痛作用不是通過C纖維引起的,主要是通過GI類Aα(肌梭及腱器官的傳入
纖維)神經纖維引起的。AL-TENS的作用為選擇刺激活化大直徑的Aα纖
維,使其發生肌肉收縮,藉由肌肉的收縮產生的電位傳入至GⅢ類Aδ神經
纖維,經由脊髓機制而產生止痛的效果,AL-TENS輸出頻率相對於
Conventional TENS較低以 1~10Hz且強度較強。輸出脈衝波的寬度介於 100
~200μs之間,輸出波形的方式以尖銳突起的脈衝波為主,其作用於神經纖
維產生鎮痛作用的示意圖如圖A.2所示。

42
圖 A.2、AL-TENS

Intense TENS:

能引起粗纖維興奮的強度,定為 Conventional TENS;能引起細


纖維(Aδ 和 C)興奮的強度的 TENS 定為 Intense TENS。研究證明
Conventional TENS 興奮 Aβ 類傳入纖維,因脊髓機制可產生鎮痛作
用,而 Intense TENS 興奮 Aδ 和 C 類傳入纖維引起的鎮痛作用則更
強。有研究證明,興奮的傳入纖維愈細,引起的鎮痛作用愈強。也有
研究證實,使用 Intense TENS 已達到傷害性刺激的程度。而正是這種
傷害性刺激引起了鎮痛作用,Intense TENS 的本質正是以小痛制大痛
的治療手段。鎮痛的效應則包括了脊髓機制和脊髓上機制。一般
Intense TENS 輸出頻率以 150Hz 為主且強度較強,其作用於神經纖維
產生鎮痛作用的示意圖如圖A.3所示。

43
圖 A.3、Intense TENS

44
附錄B 神經肌肉電刺激

一、 NMES 的定義

神經肌肉電刺激(neuromuscular electrical stimulation;簡稱 NMES),主


要是指利用電流引起肌肉的收縮,早期多用以刺激癱瘓的肌肉,期使維持
該肌肉的生機(vitality),或是促進支配神經的再生(regeneration),比較少的
研究是針對興奮神經、或藉由刺激周圍神經以達到引起肌肉收縮為目的;
不過,近幾年來更多的基礎與臨床研究對具神經支配肌肉(innervated
muscles)的電刺激產生興趣且愈益接受其產生的生理效果,而逐漸被廣泛地
應用於骨科及神經肌肉系統的復健治療和運動醫學的領域[22]。

二、 NMES 的理論基礎

神經肌肉電刺激是經由完整的周邊神經系統傳導電流,使肌肉收縮的一
種方式。人體中的神經及肌肉組織,都是可以被興奮的組織,也就是可以
傳導電流的組織。將適當的電流由體表加諸在神經或肌肉組織上,會使神
經細胞膜或肌肉細胞膜興奮產生脈波,也就是神經衝動,並將這個電流傳
下去,最後產生肌肉收縮。並不是所有的電流都可產生肌肉收縮。雖然,
人體中的神經及肌肉組織,都是可以被興奮的組織,但他們產生神經衝動
的閾值不同。通常神經比肌肉容易被興奮,所以需要的電流量比較小。神
經中,感覺神經比運動神經粗,興奮性較高,所以又比運動神經所需要的
電流小,這也是為什麼在做神經肌肉電刺激,病患都先感覺到電流的麻刺
感,然後才有肌肉收縮。合適的神經肌肉電刺激,電流強度最高可達 30~
80mA 不等,刺激波寬為 100~1000μs,刺激頻率介於 20~80Hz 間。如果
要直接刺激肌肉,所需要的刺激波寬較寬,多為 1000μs 以上,有時甚至超
過 1 秒。另有一些神經肌肉電刺激儀器利用頻率教高的中頻電刺激(1KHz

45
~10KHz)調幅成較低頻率,也可產生肌肉收縮,即是一例。

三、 NMES 醫療的應用

神經肌肉電刺激的應用非常廣泛,可以用來使關節產生動作,避免關節
僵硬。特殊的刺激方式,也可增強肌肉耐力。有學者發現利用電刺激產生
收縮 10 秒及放鬆 50 秒,對大腿股四頭肌做六週的訓練,肌肉的耐力有增
強。對於中樞神經損傷患者,神經肌肉電刺激也可以成為誘發工具,以教
育肌肉收縮。神經肌肉電刺激對用於肌肉無法自主收縮的患者,也可以減
緩肌肉萎縮的速度。神經肌肉電刺激的使用,不僅限於病人的治療。要使
用神經肌肉電刺激,必須擁有沒有受損的周邊運動神經及肌肉。中風或脊
髓損傷患者是屬於中樞神經損傷,因此都可使用神經肌肉電刺激,但如果
有感覺缺失或異現象,則要小心使用,以免引發電燒傷。相反的,對於周
邊神經損傷患者,如:臂神經叢拉傷患者,比較不適宜做神經肌肉電刺激,
而較適合使用波寬較長的電刺激,以直接刺激肌肉。

46
附錄C 調制中頻電流

一、 中頻電流的定義

中頻電流是頻率為 1000~100000Hz 的電流。這種電流具有蠻多優點,


因而使用也日益廣泛。目前在臨床上已有干擾電流療法、脈衝中頻電療法
和音頻電療法,所使用的中頻電流頻率多在 2000~5000Hz 之間。

二、 中頻電流的生理學特點

1、 單個電流周期不能引起一次興奮
在中頻範圍內,必需綜合多個周期的連續作用才可以引起能夠傳播的興
奮,這即所謂中頻電刺激的綜合效應。
2、 無極性區別
由於交流電的正、負極性不斷快速地變化,因此正負兩半周都對
稱的中頻交流電在治療中無所謂陰、陽極之分。
3、 對感覺神經的作用
中頻交流電能進入體內深處而不致強烈地刺激皮神經和感受器。當電流
強度高時也只有針刺感。
4、 對橫紋肌的作用
經皮的中頻電刺激在強度足夠的情況下可以引起強烈的肌肉收,但主觀
感覺上卻比低頻電流引起的要舒適的多,這可能是因為中頻電流對痛纖
維來說是一種頻率過高的刺激,其頻率遠遠超過了該種組織的機能靈活
性,所以不易引起興奮。因此利用這種頻率就有可能使肌肉發生強烈的
收縮而不引起疼痛。
5、 對局部血液循環的影響
許多研究均證明中頻電流能改善局部血液循環。

47
三、 由低頻調制的中頻電流

幅度恆定的中頻電流雖有許多優點,但它由於幅度無變化易為人體所適
應,目前臨床上已用低頻(0~150Hz)電流調製中頻電流,使中頻電流的
幅度隨低頻電流的頻率發生變化(圖C.1)。因此,這種電流兼有低、中頻
電流的特點,且由於其波形、波幅、頻率、調幅度的不斷變化,人體不易
適應。目前應用於臨床的這類電流有干擾電流和調製中頻電流,經過整流
的脈衝中頻電又可進行藥物離子導入治療。

圖 C.1、等幅中頻電流與由低頻調制的中頻電流

四、 調制中頻電刺激療法

調制中頻電刺激是 60 年代中期用於臨床的一種較新的電療法。
在這種電流中,其中頻頻率範圍為 2000~5000Hz,調制用的低頻率為
10~150Hz,治療時基本上用兩極法。

48
1、 調制中頻電流的類型

調制中頻電流可細分為以下四種主要型式:

(1) 連續調幅: 簡稱連調(圖C.2A)


(2) 斷續調幅: 簡稱斷調(圖C.2.B)
(3) 等幅與調幅交替出現: 簡稱等調(圖C.2.C)
(4) 頻率交變的調幅: 簡稱變調(圖C.2.D)

圖 C.2、調制中頻電流的主要形式
(T1、T2 為一種波形內兩種不同調幅形式的持續時間)

圖C.2.A 中,調幅波連續出現,故稱連調;圖C.2.B 中,T1 期間


出現調幅波,但 T2 時間內斷電。斷電與調幅交替出現,故稱斷調。
圖C.2.C 中,T1 期間出現調幅波,T2 期間出現等幅波。等幅與調幅
波交替出現,故稱等調。圖C.2.D 中,雖均為調幅波,但T1 期間內
頻率低些,T2 期間頻率高些,是一種頻率交變的調幅波,故稱變調。
T1,T2 的持續時間是可以調節的。T1 可為 0.5、1、2、3、4 或 5 秒。
T2 亦可持續 0.5、1、2 、3 、4 或 5 秒。

49
除此以外還可以以半波形式出現,當等調波以半波形式出現時如
圖C.3。其他各型均類似,而且除正半波形式以外,還有負半波形式,
即削去上半部,保留下半部。加上述組合共計有十二種變化即全波的連調、
斷調、等調、變調四種,正半波的連調、斷調、等調、變調四種,負半波
的連調、斷調、等調、變調四種,除上述以外還可以有調幅度的變化。調
幅後電流的幅度可比等幅時高(圖C.4)。

圖 C.3、正半波的等調波

圖 C.4、調幅後電流幅度的變化
(I:等幅時的電流幅度,Im:調幅後比 I 高出的電流幅度)

2、 調制中頻電流的特點及其生理意義
選用 2000~5000Hz 中頻電流,其目的在於:
(1) 減少人體的電阻,使電流的作用的深度較大。
(2) 消除電解作用,減少電流對皮膚的刺激。
(3) 發揮中頻電流特有的生理和治療作用。

50
3、 用 10~150Hz 的低頻電流調制,其目的是使中頻電流具有低頻的特徵。
4、 不同的波型或頻率交替出現,可以克服人體對電流的適應。
5、 選用半波型的整流型電流時,有類似直流電的作用。
6、 由於調制電流的頻率不同而有不同的生理效應。
對運動神經和肌肉:
1~10Hz:可引起肌肉單收縮
25~50Hz:可引起肌肉強直收縮
100Hz:可引起收縮減弱或消失
對感覺神經:
50Hz:振顫感明顯
100Hz:止痛
對血管:
1~20Hz:增高血管張力
50~100Hz:擴張血管
對植物神經:
4~10Hz:興奮交感神經
20~40Hz:興奮迷走神經
100~250Hz:抑制交感神經

51
附錄D 硬體電路圖

52
//*********************************//
附錄E 程式碼
//********************************//
// six keys define pin //
#include <mega8535.h> //********************************//
#include <delay.h> #define POWER_KEY PIND.2
#include <stdlib.h> #define EXIT_KEY PINC.6
#include <string.h> #define UP_KEY PIND.6
#include <ks0715.h> #define DOWN_KEY PINC.0
#include <sleep.h> #define SELECT_KEY PIND.3
#define ENTER_KEY PINB.7
//*********************************// //*********************************//
// LCD control define pin //
//*********************************// // DDS Variableunsigned char t0_k=0;
#define LCM_PUMP PORTC.7 unsigned long int t0_1c=0,t0_1p=1,t0_0c=0,t0_0p=1;
#define SI PORTB.0 unsigned char t0_k=0, out_buf=0;
#define SCL PORTB.1 unsigned int counter=0;
#define RS PORTB.2
#define CS2 PORTB.4 // CH1 & CH2 PWM Variables
#define RESETB PORTB.6 unsigned char PwmCH0cnt=0x00,PwmCH1cnt=0x00;
//*********************************// unsigned char PwmCH0top=0xff,PwmCH1top=0xff;
unsigned char PwmCH0lvl=0x00,PwmCH1lvl=0x00;
//*********************************//
// wave output define pin // unsigned int duration_all_time=0, duration_on_time=0;
//*********************************// unsigned char on_cycle=0, off_cycle=0, i=0;
#define CH1_A PORTC.1 unsigned int on_time=0, off_time=0, all_time=0;
#define CH1_B PORTC.2
#define CH2_A PORTC.4 unsigned long int freq_tmp=0;;
#define CH2_B PORTC.5 unsigned char freq_index=0;
#define PWMCH1 OCR1AL
#define PWMCH2 OCR2
53
unsigned long int left_index_tmp=0; unsigned char *buffer5="0";
unsigned char left_index=0; unsigned char *buffer6="0";
unsigned char on_buffer[4];
// LCM Variable //******************************************//
unsigned char t0_i=0,T0_lcm=30;
// External Interrupt 0 service routine
unsigned char sel_index=0; interrupt [EXT_INT0] void ext_int0_isr(void)
unsigned char menu_index=0; {
// Place your code here
bit aa_index=0; TIMSK=0x02;
bit mode_index=0; }
bit outport_temp=0;
bit ch_index=0; // Timer 0 output compare interrupt service routine
bit enter_index=0; interrupt [TIM0_COMP] void timer0_comp_isr(void)
bit start=0, en=0; {
unsigned char pre_status0,pre_status1;
unsigned char leftbuffer[]="00";
//******************************************// TCNT0=0x00;
// All_time define variable //
//******************************************// //LCM Inverter 5V->7V
unsigned char number1=0,number2=0,number3=0; if (t0_i>T0_lcm) {t0_i=0; LCM_PUMP=0x01;} else
unsigned char *buffer1="0"; {t0_i++; LCM_PUMP=0x00;}
unsigned char *buffer2="0";
unsigned char *buffer3="0"; PORTC=(PORTC & 0xc9) | out_buf;
unsigned char all_buffer[4];
//******************************************// switch(mode_index)
{
//******************************************// case 0: //NMES Mode
// On_time define variable // if(start==1)
//******************************************// {
unsigned char number4=0,number5=0,number6=0; switch(ch_index)
unsigned char *buffer4="0"; {

54
case 0: if(en == 1)
t0_0c=t0_0c+freq_tmp; {
break; if((t0_0c & 0x8000000) | (t0_1c &
0x8000000))
case 1: {
t0_1c=t0_1c+freq_tmp; if(ch_index == 0)
break; {out_buf=0x02;} else {out_buf=0x10;}
} }
else
counter++; {
if(ch_index == 0)
/* if (t0_0c == all_time) {out_buf=0x04;} else {out_buf=0x20;}
{ };
t0_0c=0; };
}
else if (t0_0c < on_time) if(counter > on_time)
{ {
if((t0_0c%2) == 0) en=0;
{ out_buf=0x00;
if(ch_index==0) };
out_buf=0x02;
else out_buf=0x10; if(counter > all_time)
} {
else if((t0_0c%2) == 1) en=1;
{ counter=0;
if(ch_index==0) t0_0c=0; t0_1c=0;
out_buf=0x04; };
else out_buf=0x20;
} left_index_tmp++;
}
else out_buf=0x00; //off_time */ if(left_index_tmp==300000)
{

55
left_index++; if ((t0_0c & 0x80000000) &&
left_index_tmp=0; (!(pre_status0 & 0x80)))
} ; { if
}else {out_buf=0x00; counter=0;}; (PwmCH0cnt>=PwmCH0top) PwmCH0cnt=0; else PwmCH0cnt++; }
break; //PwmCH0++

case 1: //IFC Mode if (PwmCH0cnt>PwmCH0lvl)


if(start==1) {
{ if (t0_0c & 0x80000000)
t0_k++; {out_buf=0x10; } else {out_buf=0x20;}
pre_status0=t0_0c >> 24; //save dds counter previous }
status else {out_buf=0x00;}
pre_status1=t0_1c >> 24; };
t0_0c=t0_0c+t0_0p;
t0_1c=t0_1c+t0_1p; left_index_tmp++;
if (t0_k & 0x01)
{ if(left_index_tmp==1200000)
if ((t0_1c & 0x80000000) && {
(!(pre_status1 & 0x80))) left_index++;
{ if left_index_tmp=0;
(PwmCH1cnt>=PwmCH1top) PwmCH1cnt=0; else PwmCH1cnt++; } };
//PwmCH1++ 調整脈寬 };
break;
if (PwmCH1cnt>PwmCH1lvl)
{ default:
if (t0_1c & 0x80000000) out_buf=0x00;
{out_buf=0x02; } else {out_buf=0x04;} break;
} };
else {out_buf=0x00;} }
}
else void key_scan(void)
{ {

56
/***************************************************/ init_state();
if(SELECT_KEY==0)
{ menu_index=0;
delay_ms(110); };
if(SELECT_KEY==1) };
{
sel_index++; /*******************************************************/

if(menu_index==0) sel_index = sel_index % 2;


else if(menu_index!=0) sel_index = sel_index; /*******************************************************/
} if(ENTER_KEY==0)
{
if(SELECT_KEY==1) delay_ms(110); delay_ms(110);
while(SELECT_KEY==0); if(ENTER_KEY==1)
}; {
if(menu_index==0)
/*****************************************************/ {
if(sel_index==0)
{
/*****************************************************/ mode_index=0;
if(POWER_KEY==0) menu_index=1;
{ }
delay_ms(110); else if(sel_index==1)
if(POWER_KEY==1) {
{ mode_index=1;
sleep_enable(); menu_index=3;
powerdown(); lcm_clear_data();
}
lcm_showpic(logo);
delay_ms(1000); lcm_clear_data();
lcm_clear_data(); }

57
else if((menu_index==1)&(sel_index==5)) {
{ menu_index=0;
menu_index=2; lcm_clear_data();
enter_index=0; sel_index=0;
start=1; }
} else if(menu_index==2)
else if((menu_index==2)^(menu_index==3)) {
{ menu_index=1;
out_buf=0x00; lcm_clear_data();
enter_index=1; sel_index=0;
start=0; on_cycle=0; off_cycle=0;
left_index_tmp=0; }
left_index=0; else if(menu_index==3)
}; {
menu_index=0;
if(ENTER_KEY==1) delay_ms(110); lcm_clear_data();
while(ENTER_KEY==0); sel_index=0;
}; };
};
if(EXIT_KEY==1) delay_ms(110);
/******************************************************** while(EXIT_KEY==0);
****/ };
};

/******************************************************** /********************************************************
****/ *******/
if(EXIT_KEY==0)
{
delay_ms(110); /********************************************************
if(EXIT_KEY==1) *******/
{ if(UP_KEY==0)
if(menu_index==1) {

58
delay_ms(110); };
if(UP_KEY==1) };
{
if((menu_index==1)&(sel_index==1)) if((menu_index==1)&(sel_index==2))
{ {
/* if(number1<10) /* if(number4<10)
{ {
number1=number1+10; number4=number4+10;
} }
if(number1>=10) if(number4>=10)
{ {
number1=0; */ number4=0; */

if(number2<10) if(number5<10)
{ {
number2=number2+1; number5=number5+1;
}; };
// } // }
if(number2>=10) if(number5>=10)
{ {
number2=0; number5=0;

if(number3<10) if(number6<10)
{ {
number3=number3+1; number6=number6+1;
}; };
}; };
if(number3>=10) if(number6>=10)
{ {
number1=0; number4=0;
number2=0; number5=0;
number3=0; number6=0;

59
};
}; /********************************************************
*******/
if((menu_index==1)&(sel_index==3)) if(DOWN_KEY==0)
{ {
freq_index++; delay_ms(110);
if(DOWN_KEY==1)
if(freq_index>=3) freq_index=0; {
}; if((menu_index==1)&(sel_index==1))
{
if((menu_index==1)&(sel_index==4)) /* if(number1<10)
{ {
outport_temp=~outport_temp; number1=number1-10;
}
if(outport_temp==0) if(number1>=10)
{ {
ch_index=0; number1=0; */
}
else if(number2<10)
{ {
ch_index=1; number2=number2-1;
}; };
}; // }
if(number2>=10)
if(UP_KEY==1) delay_ms(110); {
while(UP_KEY==0); number2=0;
}
}; if(number3<10)
{
/******************************************************** number3=number3-1;
*******/ };
};

60
if(number3>=10) if(number6>=10)
{ {
number1=0; number4=0;
number2=0; number5=0;
number3=0; number6=0;
}; };
}; };

if((menu_index==1)&(sel_index==2)) if((menu_index==1)&(sel_index==3))
{ {
/* if(number4<10) freq_index--;
{
number4=number4-10; if((freq_index!=0)&(freq_index>=3)) freq_index=2;
} };
if(number4>=10)
{ if((menu_index==1)&(sel_index==4))
number4=0; */ {
outport_temp=~outport_temp;
if(number5<10)
{ if(outport_temp==0)
number5=number5-1; {
}; ch_index=0;
// } }
if(number5>=10) else
{ {
number5=0; ch_index=1;
};
if(number6<10) };
{
number6=number6-1; if(DOWN_KEY==1) delay_ms(110);
}; while(DOWN_KEY==0);
}; };

61
}; lcm_putstring(buffer1,1);
lcm_putchar('m',0);
/******************************************************** lcm_putchar('s',0);
******/
} itoa(number4,buffer4);
itoa(number5,buffer5);
void lcd_refresh(void) itoa(number6,buffer6);
{
key_scan(); strcpy(on_buffer,buffer6);
strcat(on_buffer,buffer5);
if(menu_index==0) strcat(on_buffer,buffer4);
{ duration_on_time=atoi(on_buffer);
gotoxy(0,0);
lcm_putstring(STR9,12); gotoxy(0,1);
} lcm_putstring(STR5,9);
else if(menu_index==1) lcm_putstring(buffer6,1);
{ lcm_putstring(buffer5,1);
key_scan(); lcm_putstring(buffer4,1);
lcm_putchar('m',0);
itoa(number1,buffer1); lcm_putchar('s',0);
itoa(number2,buffer2);
itoa(number3,buffer3); if(aa_index==0)
{
strcpy(all_buffer,buffer3);
strcat(all_buffer,buffer2); on_cycle=duration_on_time/10;
strcat(all_buffer,buffer1);
duration_all_time=atoi(all_buffer); off_cycle=(duration_all_time-duration_on_time)/10;

gotoxy(0,0); for(i=0;i<=on_cycle;i++)
lcm_putstring(STR4,9); {on_time=on_time+199;}
lcm_putstring(buffer3,1);
lcm_putstring(buffer2,1); for(i=0;i<=off_cycle;i++)

62
{off_time=off_time+199;}
gotoxy(0,3);
all_time=on_time+off_time; lcm_putstring(STR7,3);

} if(outport_temp==0)
aa_index=1; {
gotoxy(18,3);
gotoxy(0,2); lcm_putchar('1',0);
lcm_putstring(STR10,6); }
else
switch(freq_index) {
{ gotoxy(18,3);
case 0: lcm_putchar('2',0);
lcm_putstring(STR11,4); };
//2500 Hz
freq_tmp=0x01000000; if(sel_index!=5)
break; {
case 1: gotoxy(30,3);
lcm_putstring(STR12,4); lcm_putchar(' ',0);
//5000 Hz lcm_putchar(' ',0);
freq_tmp=0x02000000; lcm_putchar(' ',0);
break; lcm_putchar(' ',0);
case 2: lcm_putchar(' ',0);
lcm_putstring(STR13,5); lcm_putchar(' ',0);
//10000 Hz lcm_putchar(' ',0);
freq_tmp=0x04000000; lcm_putchar(' ',0);
break; lcm_putchar(' ',0);
}; lcm_putchar('O',0);
lcm_putchar('K',0);
lcm_putchar('H',0); };
lcm_putchar('z',0); }
lcm_putchar(' ',0); else if(menu_index==2)

63
{ lcm_putstring(STR8,11);
key_scan(); };
}
// start=1; else if(menu_index==3)
{
if(left_index==10) if(enter_index==0)
{ {
enter_index=1; gotoxy(72,3);
start=0; lcm_putchar('S',1);
}; lcm_putchar('T',1);
lcm_putchar('O',1);
gotoxy(0,0); lcm_putchar('P',1);
lcm_putstring(STR6,13); }
//Consume time: else
{
itoa(left_index,leftbuffer); gotoxy(30,3);
lcm_putstring(STR8,11);
gotoxy(78,0); start=0;
lcm_putstring(leftbuffer,3); };
lcm_putchar('s',0); };

if(enter_index==0) switch(sel_index)
{ {
gotoxy(72,3); case 0:
lcm_putchar('S',1); if(menu_index==0)
lcm_putchar('T',1); {
lcm_putchar('O',1); gotoxy(10,2);
lcm_putchar('P',1); lcm_putchar('N',1);
} lcm_putchar('M',1);
else lcm_putchar('E',1);
{ lcm_putchar('S',1);
gotoxy(30,3);

64
gotoxy(50,2); if(menu_index==1)
lcm_putchar('I',0); {
lcm_putchar('F',0); gotoxy(85,0);
lcm_putchar('C',0); block_flash(1);
}
break; gotoxy(85,1);
block_flash(0);
case 1: }
if(menu_index==0) break;
{
gotoxy(10,2); case 3:
lcm_putchar('N',0); if(menu_index==1)
lcm_putchar('M',0); {
lcm_putchar('E',0); gotoxy(85,0);
lcm_putchar('S',0); block_flash(1);

gotoxy(50,2); gotoxy(85,1);
lcm_putchar('I',1); block_flash(1);
lcm_putchar('F',1);
lcm_putchar('C',1); gotoxy(85,2);
} block_flash(0);
else if(menu_index==1) }
{ break;
gotoxy(85,0);
block_flash(0); case 4:
if(menu_index==1)
gotoxy(85,1); {
block_flash(1); gotoxy(85,0);
} block_flash(1);
break;
gotoxy(85,1);
case 2: block_flash(1);

65
lcm_clear_data();
gotoxy(85,2); sel_index=1;
block_flash(1); }
break;
gotoxy(25,3); case 6:
block_flash(0); if(menu_index==1)
} sel_index=1;
break; break;
}
case 5: }
if(menu_index==1)
{ void main(void)
gotoxy(85,0); {
block_flash(1); // Input/Output Ports initialization
// Port A ,
gotoxy(85,1); // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In
block_flash(1); Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T
gotoxy(85,2); State0=T
block_flash(1); PORTA=0x00;
DDRA=0x00;
gotoxy(25,3);
block_flash(1); // Port B initialization
// Func7=In Func6=Out Func5=In Func4=Out Func3=In Func2=Out
gotoxy(72,3); Func1=Out Func0=Out
lcm_putchar(' ',0); // State7=T State6=T State5=T State4=T State3=T State2=T State1=T
lcm_putchar(' ',0); State0=T
lcm_putchar('O',1); PORTB=0x80;
lcm_putchar('K',1); DDRB=0x57;
}
else if(menu_index==2) // Port C initialization
{ // Func7=Out Func6=In Func5=Out Func4=Out Func3=Out

66
Func2=Out Func1=Out Func0=In TCCR1A=0x81;
// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 TCCR1B=0x09;
State0=T TCNT1H=0x00;
PORTC=0x41; TCNT1L=0x00;
DDRC=0xBE; ICR1H=0x00;
ICR1L=0x00;
// Port D initialization OCR1AH=0x00;
// Func7=Out Func6=In Func5=Out Func4=In Func3=In Func2=In OCR1AL=0xFF;
Func1=In Func0=In OCR1BH=0x00;
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T OCR1BL=0x000;
State0=T
PORTD=0x4C; // Timer/Counter 2 initialization
DDRD=0xA0; // Clock source: System Clock
// Clock value: 8000.000 kHz
// Timer/Counter 0 initialization // Mode: Fast PWM top=FFh
// Clock source: System Clock // OC2 output: Non-Inverted PWM
// Clock value: 1000.000 kHz ASSR=0x00;
// Mode: CTC top=OCR0 TCCR2=0x69;
// OC0 output: Disconnected TCNT2=0x00;
TCCR0=0x0A; OCR2=0xFF;
TCNT0=0x00;
OCR0=0x31; //0.05ms // External Interrupt(s) initialization
//OCR0=0xC7; //0.2ms interrupt time // INT0: On
// INT0 Mode: Low level
// Timer/Counter 1 initialization // INT1: Off
// Clock source: System Clock // INT2: Off
// Clock value: 8000.000 kHz GICR|=0x40;
// Mode: Fast PWM top=00FFh MCUCR=0x00;
// OC1A output: Non-Inv. MCUCSR=0x00;
// OC1B output: Discon. GIFR=0x40;
// Noise Canceler: On
// Input Capture on Falling Edge // Timer(s)/Counter(s) Interrupt(s) initialization

67
TIMSK=0x00; //duration_all_time=30;
//duration_on_time=10;
// Analog Comparator initialization //*******************//
// Analog Comparator: Off t0_0p=0x04000000;
// Analog Comparator Input Capture by Timer/Counter 1: Off t0_1p=0x04100000;
ACSR=0x80;
SFIOR=0x00; while (1)
{
// Global enable interrupts lcd_refresh();
#asm("sei")
sleep_enable();
sleep_enable(); idle();
powerdown(); };
}
lcm_init();

lcm_clear_data();

//****************//
// company logo //
//****************//
lcm_showpic(logo);
delay_ms(1000);
lcm_clear_data();
//****************//

// initial frame
init_state();

//*******************//
// initial value //
//*******************//

68

You might also like