一种基于AT89S52的可视电子听诊器的研制 (1)
扫描二维码
随时随地手机看文章
一种以AT89S52单片机为核心,利用驻极体式声音传感器实现的心音数据采集系统,利用图形液晶模块实现显示的新型可视电子听诊器。介绍了电子听诊器的系统结构图,给出了硬件电路原理和软件流程。该系统在进行常规心脏听诊的同时可通过液晶显示屏直观地显示心率和心音波形。
心音是能反映心脏正常或者病理的音响,它是由于心脏搏动过程中各瓣膜的开闭以及心肌和血液运动所产生的震动形成的。心音听诊是诊断心脏疾病的重要依据。传统的方法是采用听诊器听诊心音,诊断的依据主要是医师的经验。这种方法比较简单,但由于人耳对声音的感知是声强与频率的综合效应,因而有些病理特性难以捕捉,且准确性较差。设计一种新的电子听诊器对听诊音进行定量、准确的分析很有必要。目前,国内电子听诊器产品的价格和功能与国外相比还存在较大差距,多数只是将心音采集后放大,虽然在一定程度上改良了听诊器,但是还不能很好地反映心音波形。本文研制的可视听诊器实现了这一功能。它集听诊和心电信号监测功能于一体,可以实时记录并显示心率及心音图,使诊断更准确,且便于医学教学。同时具有可存储、实时显示、简单易用、成本低、体积小等优点。本文对该可视听诊器的结构及工作原理作了较详细的介绍。
1 硬件设计
可视听诊器的系统结构图如图1所示。该可视听诊器由采集处理和波形显示二部分组成,具体由声音传感器、信号调理采样电路和键盘显示电路组成。
1.3 信号采样
心音频率f在20Hz~600Hz之间,根据香农(Shannon)采样定理,只要采样的频率高于或等于原来频率的2倍,就可以完整地重现原波形,因此选择的A/D转换器的转换速率应在1 200Hz以上,故设计中选用了串行A/D转换器TLC0831。
信号采样电路的工作原理:把调理电路的模拟输出信号用A/D转换器变成数字量后,再由单片机送到液晶显示屏显示。
1.4 键盘显示
本系统选用了精电蓬远的QH12864T点阵式液晶显示(LCD)模块。该模块由控制器T6963C、列驱动器T6A39、行驱动器T6A40及与外部设备的接口等部分组成,它既能显示字符(中文和西文字符),又能显示图形,还能够将字符与图形混合显示。
LCD与单片机的接口方法分为直接访问方式和间接控制方式。直接访问方式是把液晶模块作为存储器接在CPU的数据线、地址线和控制线上,同时把它的数据总线接在89S52的P0口上,片选以及寄存器选择信号线由P2口提供,读写操作由单片机的读写操作信号控制。这种方式是以访问存储器的方式来访问液晶显示模块。间接控制方式不使用单片机的数据系统,而是利用它的I/O口来实现与显示模块的通信,即将液晶显示模块的数据线与单片机的P0口连接作为数据总线,另外3根时序控制信号线通常利用89S52的P3口中未被使用的I/O口来控制。这种访问方式不占用CPU的存储器空间,它的接口电路与时序无关,其时序完全靠软件编程实现。间接控制方式的速度较直接访问方式快,所以本设计中采用的是间接控制方式,具体连接如图3所示。
一个正常人的心音图如图4所示,其中s1是第1心音,s2是第2心音;Systole代表心脏收缩期,Diastole代表心脏舒张期。
经过信号调理电路后的心音变成如图5所示的波形。
3 系统软件设计
系统选用的LCD是在图形工作方式下,通过建立坐标系,利用位操作实现对心音波形的逼真显示。下面详细介绍液晶显示屏绘图编程的算法和波形连续显示。
3.1 绘图编程的算法
系统选用的是128×64点阵式图形液晶显示模块。要绘制心音波形只要根据A/D转换来的数据在液晶显示器的对应位置上绘点显示。首先在液晶平面上建立如图6所示的显示坐标系。
图中画出了液晶显示器在图形工作方式下液晶平面的每一处所对应的显示缓冲区地址情况,数据为十六进制,并建立以左下角为坐标原点的坐标系。这样坐标(X,Y)的值都为正值,简化了算法。其中X表示1~128个点,Y表示各个点所对应的幅值。由于A/D采样的数值为0~255,而LCD的行取值为0~63,所以把幅值缩小一定的倍数,即Y=D/B,D为A/D采集的数字量,B为该数缩小的倍数。由图可以看出幅值Y加1,显示缓冲区地址K就减少10H,从而得到缓冲区地址的表达式:K=X/8-10H*Y+0BF0H。而缓冲区地址字节中对应X除以8的余数的位就正好是要绘点的位置。只要利用位操作命令对它置位就可实现绘点。
3.2 波形显示
把采集的数据存放在RAM中,RAM共存了8KB波形数据。而液晶显示器1次只能显示128个点,因此可以通过改变在RAM中读数间隔来控制波形的横向显示,即每显示完1个数据,RAM地址加N,通过改变N的大小来拉开或回缩信号波形,以便于观察。
如果相邻2个点的幅值稍有不同,2个点的距离就会分开,造成显示不连续,影响视觉效果。因而怎样使波形显示连续,是显示信号波形中一个很重要的问题。本系统中对这一问题的解决方法:在LCD上每显示完1个点后,判断它与前1个点的幅值差距,即Y值值差,若大于8,就要在2点之间插入若干点(X值不变,只变Y值),使2点连续起来,然后再进行下1个点的显示。利用这种方法,可很好地实现心音波形的显示。波形显示程序流程图如图7所示。
4 结束语
本文介绍的可视听诊器能实时显示心率和心音波形,并能进行波形拉伸、变换和回放,形象直观、操作方便,适合向临床教学和医疗领域推广应用。