馮忠嶺,童英華,陳學煌
(1.青海師范大學 物理系,青海 西寧 810008;2.青海師范大學 計算機系,青海 西寧 810008)
心音和脈搏是反映人體生理及病理的兩項重要指標,它們分別是診斷人體疾病的重要手段之一,具有非常重要的臨床意義。只有將心音、脈搏信號進行有效的A/D轉換成數字量后,才能輸入單片機中進行處理,這也直接影響著PC端的波形顯示效果,以及后續的信號分析。因此筆者提出了基于ADC0809的心音、脈搏信號的A/D轉換。
ADC0809是帶有 8位 A/D轉換器、8路多路開關以及微處理機兼容的控制邏輯的CMOS組件,它的模數轉換原理采用逐次逼近型,芯片由單個+5 V電源供電,可以分時對 8路輸入模擬量進行 AD轉換,典型的 AD轉換時間為 100 μs左右。在同類型產品中,ADC0809模數轉換器的分辨率、轉換速度和價位都屬于居中位置,可以和單片機直接接口。
如圖1所示,它包含以下幾個部分。
1)8路模擬量選擇開關 根據地址鎖存與譯碼裝置所提供的地址,從8個輸入的0~5 V模擬量中選擇一個輸出。
2)8位A/D轉換器 能對所選擇的模擬量進行A/D轉換。
3)3位地址碼的鎖存與譯碼裝置 對所輸入的3位地址碼進行鎖存和譯碼,并將地址選擇結果送給8路模擬量選擇開關。
4)三態輸出的鎖存緩沖器 是TTL結構,負責輸出轉換的最終結果。此結果可直接連到單片機的數據總線上[1]。

圖1 ADC0809內部邏輯結構圖Fig.1 Internal logic structure diagram of ADC0809
1)IN0~IN7:8 路模擬電壓量輸入, 0~5 V 或者-5~+5 V或者-10~+10 V,用于輸入需轉換的模擬電壓;
2)D0~D7:8 位 A/D 轉換結果輸出口;
3)VREF(+)、VREF(-):參考電壓輸入線,VREF(+)常和VCC相連,VREF(-)常接地或負電源電壓;
4)ALE:地址鎖存允許輸入線,高電平有效;在 ALE=1時,鎖存ADDA-ADDC,選中模擬量輸入。
5)START:啟動A/D轉換控制輸入,加正脈沖后 A/D轉換開始;
6)CLOCK:實時時鐘,頻率范圍為 10~1 280 kHz,典型值為640 kHz。
7)ADDA、ADDB、ADDC:3 位地址輸入線, 其 8 個地址值分別選中8路輸入模擬量IN0~IN7之一進行模數轉換。ADDC是高位地址,ADDA是最低位地址;選擇結果如表1所示。
8)OE:轉換結果輸出允許線。
9)EOC:轉換結束信號。轉換開始時,EOC信號變低電平;轉換結束時,EOC信號返回高電平。該信號可以作為CPU查詢A/D轉換是否完成的信號,也可以作為向CPU發出中斷申請的信號。
10)VCC:+5 V 電源輸入線。
11)GND:芯片接地端。

表1 地址與模擬量通道之間的對應關系Tab.1 Correspondence between analog channel and address
1)地址線與數據線的連接 ADC0809的內部輸出電路有三態緩沖器,所以其8位輸出數據線可以直接和AT89C51的P1口相連。本系統中有兩路模擬量(心音、脈搏)的輸入,它的通道地址選擇信號ADDB、ADDC接地,而ADDA接到單片機的P2.6口,用于選擇輸入的模擬量IN0和IN1。
2)時鐘信號的連接 ADC0809必須外接時鐘,本系統借用AT89C51的ALE輸出,AT89C51的晶振率采用11.059 2 MHz,此時ALE的頻率約為2 MHz,經CD4013芯片四分頻后約為 500 kHz,與 ADC0809的CLK時鐘端相連[2-3]。
3)控制信號的連接 由于ADC0809的ALE和START均為正脈沖,而且基本同步,所以可以由AT89C51的P2.7和WR或非而成。同理,OE信號也可以由AT89C51的P2.7和RD或非而成。EOC信號經或非后與AT89C51的INT1相連,可申請中斷。在控制信號線的連接中,或非功能的實現可以借助芯片74LS02實現[4]。圖2是系統的部分原理圖。
A/D轉換程序用來控制對ADC0809兩路模擬輸入信號(心音和脈搏)的轉換,并將對應的數值分別存放到外存數據段1和外存數據段2中,數據的讀取方式采用中斷讀取。根據電路采用中斷讀取的方式,ADC0809的轉換控制如下:選擇通道并啟動轉換,等待中斷讀取轉換結果[5-6]。A/D轉換子程序的流程圖如圖3所示。

圖2 系統前端硬件原理圖Fig.2 Front hardware schematic of the system

圖3 ADC0809轉換子程序流程圖Fig.3 Flow chart of ADC0809 conversion subroutine
A/D轉換主要程序代碼為:
START: MOV SP,#60H
SETB EA
SETB IT1;∥外部中斷發生負跳變時激活IE1外
部中斷請求標志位
SETB EX1;∥外部中斷INT1響應允許位
MOV R1,#00H
CLR P2.6 ;∥使ADDA為0,選擇通道0
MOV DPTR,#DATA1
START1: CLR P2.5;∥外部存儲器6264的片選信號有效
CLR P2.7;∥使得A/D的ALE和START均為正
脈沖
MOVX@DPTR,A ;∥啟動 A/D轉換
LOOP1: SJMP$
INT_1: MOVX A,@DPTR ;∥讀取轉換結果,并存入外存
MOV A,P1
MOVX@DPTR,A
INC DPTR
INC R1
CJNE R1,#N,LOOP2;∥采樣數據個數為 N 個
JB P2.6,LOOP8
SJMP LOOP9
LOOP8:CPL P2.6
MOV R1,#00H
MOV DPTR,#DATA1
MOVX@DPTR,A ;∥啟動 A/D轉換
SJMP LOOP2
LOOP9:CPL P2.6
MOV R1,#00H
MOV DPTR,#DATA2
MOVX@DPTR,A ;∥啟動 A/D轉換SJMP LOOP2
LOOP2:RETI
調試結果表明,該A/D轉換模塊能有效地實現心音、脈搏信號的模數轉換。這就為以后輸入單片機處理,從單片機到PC機端的數據發送,以及信號波形的顯示和后續的信號分析奠定了基礎。
[1]張曄,王玉民,倪志蓮.單片機應用技術[M].北京:高等教育出版社, 2006:193-196.
[2]李詩海.CD4013 原理與應用[J].電子制作,2000(1):38.LI Shi-hai.Theory and application of CD4013[J].Electronic Production,2000(1):38.
[3]王卿.淺談器件 CD4013[J].新余高專學報,2005(2):34-36.WANG Qin.Simple analysis of CD4013[J].Journal of Xinyu Junior College[J],2005(2):34-36.
[4]周美娟.肖來勝.單片機技術及系統設計[M].北京:電子工業出版社,2007:215-227.
[5]張迎新.單片機原理及應用[M].北京:電子工業出版社,2008:141-157.
[6]趙領國,薛園園.51單片機開發與應用技術詳解[M].北京:電子工業出版社,2009:372-380.