一種基于AT89S52的可視電子聽(tīng)診器的研制 (1)
一種以AT89S52單片機(jī)為核心,利用駐極體式聲音傳感器實(shí)現(xiàn)的心音數(shù)據(jù)采集系統(tǒng),利用圖形液晶模塊實(shí)現(xiàn)顯示的新型可視電子聽(tīng)診器。介紹了電子聽(tīng)診器的系統(tǒng)結(jié)構(gòu)圖,給出了硬件電路原理和軟件流程。該系統(tǒng)在進(jìn)行常規(guī)心臟聽(tīng)診的同時(shí)可通過(guò)液晶顯示屏直觀地顯示心率和心音波形。
心音是能反映心臟正?;蛘卟±淼囊繇?,它是由于心臟搏動(dòng)過(guò)程中各瓣膜的開(kāi)閉以及心肌和血液運(yùn)動(dòng)所產(chǎn)生的震動(dòng)形成的。心音聽(tīng)診是診斷心臟疾病的重要依據(jù)。傳統(tǒng)的方法是采用聽(tīng)診器聽(tīng)診心音,診斷的依據(jù)主要是醫(yī)師的經(jīng)驗(yàn)。這種方法比較簡(jiǎn)單,但由于人耳對(duì)聲音的感知是聲強(qiáng)與頻率的綜合效應(yīng),因而有些病理特性難以捕捉,且準(zhǔn)確性較差。設(shè)計(jì)一種新的電子聽(tīng)診器對(duì)聽(tīng)診音進(jìn)行定量、準(zhǔn)確的分析很有必要。目前,國(guó)內(nèi)電子聽(tīng)診器產(chǎn)品的價(jià)格和功能與國(guó)外相比還存在較大差距,多數(shù)只是將心音采集后放大,雖然在一定程度上改良了聽(tīng)診器,但是還不能很好地反映心音波形。本文研制的可視聽(tīng)診器實(shí)現(xiàn)了這一功能。它集聽(tīng)診和心電信號(hào)監(jiān)測(cè)功能于一體,可以實(shí)時(shí)記錄并顯示心率及心音圖,使診斷更準(zhǔn)確,且便于醫(yī)學(xué)教學(xué)。同時(shí)具有可存儲(chǔ)、實(shí)時(shí)顯示、簡(jiǎn)單易用、成本低、體積小等優(yōu)點(diǎn)。本文對(duì)該可視聽(tīng)診器的結(jié)構(gòu)及工作原理作了較詳細(xì)的介紹。
1 硬件設(shè)計(jì)
可視聽(tīng)診器的系統(tǒng)結(jié)構(gòu)圖如圖1所示。該可視聽(tīng)診器由采集處理和波形顯示二部分組成,具體由聲音傳感器、信號(hào)調(diào)理采樣電路和鍵盤(pán)顯示電路組成。
1.3 信號(hào)采樣
心音頻率f在20Hz~600Hz之間,根據(jù)香農(nóng)(Shannon)采樣定理,只要采樣的頻率高于或等于原來(lái)頻率的2倍,就可以完整地重現(xiàn)原波形,因此選擇的A/D轉(zhuǎn)換器的轉(zhuǎn)換速率應(yīng)在1 200Hz以上,故設(shè)計(jì)中選用了串行A/D轉(zhuǎn)換器TLC0831。
信號(hào)采樣電路的工作原理:把調(diào)理電路的模擬輸出信號(hào)用A/D轉(zhuǎn)換器變成數(shù)字量后,再由單片機(jī)送到液晶顯示屏顯示。
1.4 鍵盤(pán)顯示
本系統(tǒng)選用了精電蓬遠(yuǎn)的QH12864T點(diǎn)陣式液晶顯示(LCD)模塊。該模塊由控制器T6963C、列驅(qū)動(dòng)器T6A39、行驅(qū)動(dòng)器T6A40及與外部設(shè)備的接口等部分組成,它既能顯示字符(中文和西文字符),又能顯示圖形,還能夠?qū)⒆址c圖形混合顯示。
LCD與單片機(jī)的接口方法分為直接訪問(wèn)方式和間接控制方式。直接訪問(wèn)方式是把液晶模塊作為存儲(chǔ)器接在CPU的數(shù)據(jù)線、地址線和控制線上,同時(shí)把它的數(shù)據(jù)總線接在89S52的P0口上,片選以及寄存器選擇信號(hào)線由P2口提供,讀寫(xiě)操作由單片機(jī)的讀寫(xiě)操作信號(hào)控制。這種方式是以訪問(wèn)存儲(chǔ)器的方式來(lái)訪問(wèn)液晶顯示模塊。間接控制方式不使用單片機(jī)的數(shù)據(jù)系統(tǒng),而是利用它的I/O口來(lái)實(shí)現(xiàn)與顯示模塊的通信,即將液晶顯示模塊的數(shù)據(jù)線與單片機(jī)的P0口連接作為數(shù)據(jù)總線,另外3根時(shí)序控制信號(hào)線通常利用89S52的P3口中未被使用的I/O口來(lái)控制。這種訪問(wèn)方式不占用CPU的存儲(chǔ)器空間,它的接口電路與時(shí)序無(wú)關(guān),其時(shí)序完全靠軟件編程實(shí)現(xiàn)。間接控制方式的速度較直接訪問(wèn)方式快,所以本設(shè)計(jì)中采用的是間接控制方式,具體連接如圖3所示。
一個(gè)正常人的心音圖如圖4所示,其中s1是第1心音,s2是第2心音;Systole代表心臟收縮期,Diastole代表心臟舒張期。
經(jīng)過(guò)信號(hào)調(diào)理電路后的心音變成如圖5所示的波形。
3 系統(tǒng)軟件設(shè)計(jì)
系統(tǒng)選用的LCD是在圖形工作方式下,通過(guò)建立坐標(biāo)系,利用位操作實(shí)現(xiàn)對(duì)心音波形的逼真顯示。下面詳細(xì)介紹液晶顯示屏繪圖編程的算法和波形連續(xù)顯示。
3.1 繪圖編程的算法
系統(tǒng)選用的是128×64點(diǎn)陣式圖形液晶顯示模塊。要繪制心音波形只要根據(jù)A/D轉(zhuǎn)換來(lái)的數(shù)據(jù)在液晶顯示器的對(duì)應(yīng)位置上繪點(diǎn)顯示。首先在液晶平面上建立如圖6所示的顯示坐標(biāo)系。
圖中畫(huà)出了液晶顯示器在圖形工作方式下液晶平面的每一處所對(duì)應(yīng)的顯示緩沖區(qū)地址情況,數(shù)據(jù)為十六進(jìn)制,并建立以左下角為坐標(biāo)原點(diǎn)的坐標(biāo)系。這樣坐標(biāo)(X,Y)的值都為正值,簡(jiǎn)化了算法。其中X表示1~128個(gè)點(diǎn),Y表示各個(gè)點(diǎn)所對(duì)應(yīng)的幅值。由于A/D采樣的數(shù)值為0~255,而LCD的行取值為0~63,所以把幅值縮小一定的倍數(shù),即Y=D/B,D為A/D采集的數(shù)字量,B為該數(shù)縮小的倍數(shù)。由圖可以看出幅值Y加1,顯示緩沖區(qū)地址K就減少10H,從而得到緩沖區(qū)地址的表達(dá)式:K=X/8-10H*Y+0BF0H。而緩沖區(qū)地址字節(jié)中對(duì)應(yīng)X除以8的余數(shù)的位就正好是要繪點(diǎn)的位置。只要利用位操作命令對(duì)它置位就可實(shí)現(xiàn)繪點(diǎn)。
3.2 波形顯示
把采集的數(shù)據(jù)存放在RAM中,RAM共存了8KB波形數(shù)據(jù)。而液晶顯示器1次只能顯示128個(gè)點(diǎn),因此可以通過(guò)改變?cè)赗AM中讀數(shù)間隔來(lái)控制波形的橫向顯示,即每顯示完1個(gè)數(shù)據(jù),RAM地址加N,通過(guò)改變N的大小來(lái)拉開(kāi)或回縮信號(hào)波形,以便于觀察。
如果相鄰2個(gè)點(diǎn)的幅值稍有不同,2個(gè)點(diǎn)的距離就會(huì)分開(kāi),造成顯示不連續(xù),影響視覺(jué)效果。因而怎樣使波形顯示連續(xù),是顯示信號(hào)波形中一個(gè)很重要的問(wèn)題。本系統(tǒng)中對(duì)這一問(wèn)題的解決方法:在LCD上每顯示完1個(gè)點(diǎn)后,判斷它與前1個(gè)點(diǎn)的幅值差距,即Y值值差,若大于8,就要在2點(diǎn)之間插入若干點(diǎn)(X值不變,只變Y值),使2點(diǎn)連續(xù)起來(lái),然后再進(jìn)行下1個(gè)點(diǎn)的顯示。利用這種方法,可很好地實(shí)現(xiàn)心音波形的顯示。波形顯示程序流程圖如圖7所示。
4 結(jié)束語(yǔ)
本文介紹的可視聽(tīng)診器能實(shí)時(shí)顯示心率和心音波形,并能進(jìn)行波形拉伸、變換和回放,形象直觀、操作方便,適合向臨床教學(xué)和醫(yī)療領(lǐng)域推廣應(yīng)用。