1、脑机接口论文 电子课程设计报告 题 目 基于51单片机的心音采集系统 学 院 生物医学工程学院 专 业 生物医学工程 (仪器) 年 级 11级 姓 名 张双柱 学 号 11161062 指导老师 谢勤岚 1、设计背景.12、设计目的.23、设计思路.24、系统框图.35、系统主控模块原理.46、软件设计.77、结果仿真.12八、报告总结.13九、参考文献.141、设计背景 随着人们的生活水平不断提高,自我保健的意识和要求不断加强。通过心脏诊断实现心脏病的预防就更为重要。这可减少心脏病的死亡人数,继而改进防治技术将有极大的经济社会价值。 心音是能反映心脏正常或者病理的音响,是由心脏搏动工程中各瓣
2、膜的开闭以及心肌和血液运动所产生的震动形成的。它含有关于心脏各个部分如心房、心室、大血管、心血管及各个瓣膜功能状态的大量病理信息,是临床评估心脏功能状态的最基本方法,是心脏及大血管机械运动状况的反映。它是人体最重要的生理信号之一,是临床评估心血管系统功能状态的一种基本方法,是心脏及大血管机械运动状况的反映。在一些心血管疾病尚未发展到足以产生病理形态学改变及临床症状以前,心音中出现的杂音和畸变是重要的诊断信息,可以通过对这些病理特征进行分析而提前对疾病进行预防。当心血管疾病尚未发展到足以产生临床及病理改变(如ECG变化)以前,心音中出现的杂音和畸变就是重要的诊断信息。更值得一提的是,心音在心血管
3、疾病中具有重要价值,是心血管疾病无创性检测的重要方法,具有心电图、超声心电图不可取代的优势。因此,进行心音分析具有重要的意义。2、设计目的(1)培养生医仪器设计的专业素养;(2)了解信号采集与显示装置的设计步骤;(3)掌握A/D转换与单片机的接口方法;(4)了解单片机如何进行数据采集;(5)熟练掌握keil和LABVIEW软件的使用;(6)学会软件设计与编程;(7)基于51单片机设计一个心音采集装置。3、设计思路 采集系统首先要解决的是如何将心音信号转化为电信号,进行数字处理,由于心音的频率较低20Hz600Hz,在人耳所能听到的低频段,因此首先要选用一个声音传感器,从人体采集心音信号。对传感
4、器的选取原则是:灵敏度高,抗干扰能力强,除了要提取微弱的心音信号外,还要求它不受人声、工频等信号的干扰。由于心音和脉搏传感器输出的信号微弱并夹杂着噪声干扰,所以完成了信号的初步采集之后,就要将信号经前置放大、滤波、后置放大、A/D转换和进一步处理。而在本学期的课程设计内容中,我们要做的重点工作就是在已有的硬件电路基础上,以AT89C51单片机为核心,完成系统主控电路的设计。而这一部分内容主要是将前期处理后的心音信号经过A/D转换器传给单片机控制存储、输出,最后通过串口通信输出到PC机,直接显示出来。4、系统框图 心音传感器心音信号前置放大电路 心音后置放大电路心音信号低通滤波电路 PC显示机
5、串口通信电路 单片机 A/D转换电路 心音采集系统的整体设计框图5、系统主控模块原理1、CPU的选择本次设计我们采用的是C51单片机,主要的芯片型号是12C5A32S2。引脚图如下:芯片功能介绍:P0.0P0.7(3932):P0口是一个漏极开路型准双向I/O口。在访问外部存储器时它是分时多路转换的地址(低8位)和数据总线,在访问期间激活了内部的上拉电阻。在EPROM编程时,它接收指令字节,而在验证程序时,则输出指令字节。验证时,要求外接上拉电阻。P1.0P1.7(1-8):P1口是带内部上拉电阻的8位双向I/O口。在EPROM编程和程序验证时,它接收低8位地址。P2.0P2.7(21-28)
6、:P2口是一个带内部上拉电阻的8位双向I/O口。在访问外部存储器时,它送出高8位地址。在对EFROM编程和程序验证期间,它接收高8位地址。P3.0P3.7(10-17):P3口是一个带内部上拉电阻的8位双向I/O口。 在12C5A32S2上的ADC模块具有十位精度,8个输入通道(对应P1.0P1.7口),最高采样率可达250KHZ。参考电压源为Vcc,如果Vcc电压不稳定,会影响ADC转换结果精度,可外接稳定参考电压。2、A/D转换模块 ADC是一个将模拟信号转变为数字信号的电子元件。通常的模数转换器是将一个输入电压信号转换为一个输出的数字信号。由于数字信号本身不具有实际意义,仅仅表示一个相对
7、大小。故任何一个模数转换器都需要一个参考模拟量作为转换的标准,比较常见的参考标准为最大的可转换信号大小。而输出的数字量则表示输入信号相对于参考信号的大小。在本次设计的中我们主要的任务是将采集的心音信号转化成数字信号并用软件显示其波形和大小。输入电压与ADC转换结果的关系如下: Vin:输入电压 Vref:参考电压(在STC51系统上是5V)AD_RES:ADC转换结果 ADC的软件处理流程图:ADC初始化开启ADC转换中断或查询读取转换结果返回采样结果并显示软件滤波处理是否达到采样次数否是 3、串口通信模块 串口通信是指外设和计算机间,通过数据信号线 、地线、控制线等,按位进行传输数据的一种通
8、讯方式。我们的串口主要是用于数据的交换传输。对串口通信的设置有以下几个关键参数:波特率,数据位,停止位,校验方式,。通信两端的参数设置要严格一致才可以实验数据传输。一般设置成8位数据位,1位停止位,无校验。关于波特率的计算:在我们使用的单片机中方式0和方式2的波特率是固定的,而方式1和方式3的波特率是可变的。方式0的波特率fosc12方式2的波特率=方式l和方式3的波特率方式1和方式3的移位时钟脉冲由定时器T1的溢出率决定,故波特宰由定时器T1的溢出率与SMOD值同时决定,即:方式1和方式3的波特率6、软件设计在本次课程设计中,要求实现的功能是:(1)将从示波器输出的模拟信号转换成能够在Lab
9、view软件中观察到的波形。(2)实现采集心音信号,并能够在Labview软件中观察到的波形。 (3)实现串口的基本参数设定,如波特率、缓存区大小,奇偶校验位、数据数和是否包含结束比特等;(4)实现计算机与PC之间的数据传输。本程序中,波特率选用9600,8bit数据比特,不进行奇偶校验,1bit停止比特,每次通信的间隔为0.5s。ADC程序设流程图:开始芯片初始化启动ADAD完好吗芯片数据输出 是否 串口通信框图:源代码: #include #include #define FOSC 11059200#define BAUD 9600typedef unsigned char BYTE;ty
10、pedef unsigned int WORD;sfr ADC_CONTR = 0xBC;sfr ADC_RES= 0xBD;sfr ADC_LOW2 = 0xBE;sfr P1ASF = 0x9D;#define ADC_POWER 0x80#define ADC_FLAG 0x10#define ADC_START 0x08#define ADC_SPEEDLL 0x00#define ADC_SPEEDL 0x20#define ADC_SPEEDH 0x40#define ADC_SPEEDHH 0x60void InitUart(); void SendData(BYTE dat);
11、 void Delay(WORD n); void InitADC();BYTE ch = 0; void main() InitUart(); InitADC(); IE = 0xa0; while (1);void adc_isr() interrupt 5 using 1 ADC_CONTR &= ! ADC_FLAG; SendData(ADC_RES); SendData(ADC_LOW2); if (+ch 7) ch = 0; ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch;void InitADC() P1ASF = 0
12、xff; ADC_RES=0; ADC_CONTR = ADC_POWER | ADC_SPEEDLL | ADC_START | ch; Delay(2); void InitUart() SCON = 0x5a; TMOD = 0x20; TH1 = TL1 =0xfd -(FOSC/12/32/BAUD); TR1 = 1; void SendData(BYTE dat) while (!TI); TI = 0; SBUF=dat; void Delay(WORD n) WORD x; while(n-) x = 5000; while(x-); 7、结果仿真测试的时候我们输入的是:10
13、HZ的频率 输入电压为:2V8、报告总结 通过本次课程设计,有效运用课时所学专业知识,以及多方面查找资料,基本实现了基于51单片机的心音信号采集系统的设计与仿真,从信号的采集、放大、滤波再到A/D 转换、串口通信发送、PC端的labview软件显示。但是由于各种误差,我们的实验结果始终不理想。本次实验,让我明白了动手能力的重要性。并且,最主要的是自己主动去研究,自己要感兴趣要专注。自己主动去学,就会记住很多知识,但是如果自己不愿意去记,别人告诉自己多少遍,仍然是记不住的。只有自己认真去记住的去学的,才是自己的东西。不管做什么,基础很重要。有了基础,再往上积累就是很简单的事情,但若是基础不牢靠,只是就没有串联,需要用的时候总是零零散散的,无法贯通。9、参考文献单片机原理及接口技术 艾学忠 主编 机械工业出版社51单片机实践教程 吴银琴、陈锟 编 科学出版社LabVIEW宝典 陈树学 、刘萱 编 电子工业出版社电工电子实训指导书 陈军波