简单心电图仪设计论文

合集下载

毕业设计(论文)-基于单片机便携式心电图仪的研究与设计

毕业设计(论文)-基于单片机便携式心电图仪的研究与设计

基于单片机便携式心电图仪的研究与设计便携式心电监护仪摘要本系统以TI公司的高精度仪表放大器INA2331和低功耗AT89C51单片机为核心,实现了两路心电信号的采集和显示。

设计采用右腿驱动电路和高通负反馈滤波器等抑制干扰措施,提高了放大器的共模抑制比;选用内部资源丰富的AT89C51单片机和12864液晶显示器LCD 实现了心电信号的动态显示。

结果表明系统各项技术指标达到了设计要求,具有低功耗低成本的特点。

AbstractThe system which takes the high-precision instrumentation amplifier INA2331 and low-power AT89C51 MCU as the core has realized two_channel ECG’s detection, storage and display 。

It adopts a right-leg -driven circuit、a high-pass filter with reverse feedback and so on,which makes the CMRR of the preamplifier higher 。

By adopted the inner resourceful AT89C51 single chip and 12864 LCD the ECG can be recorded and playbacking demonstrated 。

The results indicate that the major technical specifications of the system meet the design equirements, The system has the following features, such as low-power、and low-cost 。

基于单片机的心电图仪系统设计

基于单片机的心电图仪系统设计

简易心电图仪的设计方案摘要心电图是临床疾病诊断中常用的辅助手段。

心电数据采集系统是心电图检查仪的关键部件。

人体心电信号的主要频率范围为0.05Hz~100Hz,幅度约为0~4mV,信号十分微弱。

由于心电信号中通常混杂有其它生物电信号,加之体外以50Hz工频干扰为主的电磁场的干扰,使得心电噪声背景较强,测量条件比较复杂。

为了不失真地检出有临床价值的干净心电信号,往往要求心电数据采集系统具有高精度、高稳定性、高输入阻抗、高共模抑制比、低噪声及强抗干扰能力等性能。

本设计利用89C51和A/D转换以及多路模拟开关设计了一种符合上述要求的多路心电数据采集系统。

一、方案的提出与比较1、方案的提出图1所示是一个心电数据系统的组成框图,其中心电信号由专用电极拾取后送入前置放大器初步放大,并在对各干扰信号进行一定抑制后送入带通滤波器,以滤除心电频率范围以外的干扰信号。

主放大器可将滤波后的信号进一步放大到合适范围后,再经50Hz陷波器滤除工频和肌电干扰,然后将符合要求的心电模拟信号由模拟输入端送入高速ADC,以进行高精度A/D转换和数据的采集存储。

方案一:采用模拟分立元件,可以产生心电波,但采用模拟元件太大,即使使用单片机电路参数也与外部元件有关,外接的电阻电容对参数影响很大,在滤波过程中会出现很大的干扰,使得输出不精确,即此电路抗干扰能力低,成本也高;而且灵活性差,不能实现各种输出的智能化。

,方案二:采用以89C51为核心,采用INA128芯片作为前置放大,运用多级运放电路来提取信号。

它在一定的程度上可以达到题目要求。

但是,共模抑制比很难达到发挥80db以上,而且精确度不高,在以后的输出中会出现很多的毛刺。

由于这些原因,我们不采用这种方法。

方案三:以89C51为中心、采用性能优良的AD620管作为前置放大,既可以提高放大倍数,也可以提高共模抵制比、电路结构简单。

然后通过A/D和D/A转换,输出给示波器,若合理的选择器件参数,可使其输出波形失真小。

基于STM32的简易心电图仪设计

基于STM32的简易心电图仪设计

基于STM32的简易心电图仪设计作者:孙晓铮刘颖刘霁宇来源:《中国科技博览》2016年第06期[摘要]本文设计了一个简易的心电信号(ECG)仪,可以测量人体心电信号并放大,经过后续电路处理后在液晶屏上显示出来心电信号和每分钟脉搏跳动的频率。

[关键词]ECG;AD620;低通滤波;带阻滤波;STM32;中图分类号:TH772.2 文献标识码:A 文章编号:1009-914X(2016)06-0141-011 引言人体心电信号含有大量反映人体健康状况的信息,通过分析人体脉搏信息来诊断病症,是传统中医学中的重要组成部分。

当代以来,随着电子技术和计算机技术的发展,人们能够将人体心电信号提取出来,直观地显示在各种显示器上。

特别是ECG测量仪的出现,大大推动了医学的发展,为人类的身体健康做出了巨大贡献。

人类通过观察和分析人体心电信号波形,能够更快更精准地诊断各种病症。

本设计侧重于弱信号检测,涵盖了放大器设计、噪声抑制、有源滤波的技术。

系统结构如图所示。

设计核心在于符合要求的放大电路设计,采用仪用放大器作为前置级较为适宜;同时为了消除高、低频噪声并进一步提高电压增益,还应设计有源滤波电路作为后续电路。

2 硬件电路设计2.1 前置放大器设计由于人人体心电信号幅值约为50μV~5mV,属于微弱信号。

人体电阻、检测电极与皮肤的接触电阻等为信号源内阻,一般为几十千欧,为了减轻微弱的心电信号在内阻上的衰减,要求心电放大器具有很高的输入阻抗;另外人体相当于一个导体,会受到包括50Hz工频干扰在内的各种电磁信号的干扰,因此要求心电放大器具有较高的共模抑制比,并且具有低噪声、低漂移等特性。

AD620是一款低成本、高精度仪表放大器,仅需要一个外部电阻来设置增益,增益范围为1至10000。

此外,AD620采用8引脚SOIC和DIP封装,尺寸小于分立电路设计,并且功耗更低(最大工作电流仅1.3mA),因而非常适合电池供电及便携式应用。

移动式心电信号检测分析仪的设计毕业设计论文

移动式心电信号检测分析仪的设计毕业设计论文

摘要本文介绍了一种微型移动式心电图机。

该仪器具有强大的功能:显示监测、存储、回放、打印、记录管理、电源报警、电话或者互联网络传输。

与其他心电图机的突出不同之处在于,本系统采用新型低功耗的16位单片机--MSP430 F135作为整个系统的控制核心,该心电图机必须具有节能的特点,能用干电池供电,并配备相应的16位低功耗存储器AT29LV1024和液晶显示模块LMS0192A,AT29LV1024 是一种3V系统供电的闪速可编程可电擦除的16位存储器(PEROM),具有1M位的存储空间.液晶显示模块LMS0192A工作电压低、功耗极低,特别适用于便携式的仪器仪表中。

该电路中用到的所以器件均为节能高效器件,从而简化了系统硬件电路,同时也大大降低了系统成本,因而该心电图机具有极为广阔的应用前景。

关键词:心电图机;存储器;节能; MSP430AbstractIn this paper,I will Introduct a new ECG Analyzer。

The instrument has a powerful feature : Show monitoring, storage, playback, printing, records management, power alarm, telephone or Internet transmission. Electrocardiogram machines and other conspicuous difference is, The system uses a new low-power 16-bit microcontroller - MSP430 F135 as the core of the whole system of control, the ECG machine must have the characteristics of energy-saving,Batteries can power,And corresponding with the 16 low-power memory AT29LV1024 and LCD module LMS0192A, AT29LV1024 a 3 V power supply system programmable Flash, can erase the memory of the 16 (PEROM), With 1 M bit of storage space. LCD module LMS0192A low-voltage, low power consumption, especially for portable instrumentation in. The circuit used in the device are therefore highly efficient energy-saving devices, thus simplifying the system hardware, but also greatly reduce the cost of the system, thus the ECG machine has extremely broad prospects.Key words: ECG machine; Memory; Energy conservation; MSP430毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。

心电图论文-医学检验论文-基础医学论文-医学论文

心电图论文-医学检验论文-基础医学论文-医学论文

心电图论文-医学检验论文-基础医学论文-医学论文——文章均为WORD文档,下载后可直接编辑使用亦可打印——心电图是医学诊断的重要依据,心电图主要是利用心电图机从体表记录心脏每一心动周期所产生的电活动变化图形的技术。

下面我们就为大家介绍几篇心电图论文,来看看心电图在医学上的应用价值。

心电图论文精选范文第一篇:PICC心电图定位在临床应用中的研究进展作者:黄蕊作者单位:昆明市第一人民医院甘美医院摘要:从心电图(ECG)定位下PICC置管的原理和意义、ECG定位下PICC置管在临床病人中的应用、ECG定位下PICC置管的禁忌证等方面进行综述,提出ECG引导下PICC的置管具有精确度高、安全性高、费用花费少、操作时间短、学习周期短、后期可追踪性强等优势,但ECG引导PICC置管的限制主要存在于P波显示不清楚以及无法辨认P波的病人,同时置管时P波无变化的病人。

对于这类人群,要达到更为广泛的应用,需要进一步的临床探索以及方法的改进,使ECG引导PICC置管更具普遍性。

关键词:腔内心电图;PICC; 研究进展;综述;作者简介:黄蕊,副主任护师,本科,单位:650051,昆明市第一人民医院甘美医院;;何本一,单位:650051,昆明市第一人民医院甘美医院。

;杨晓燕,单位:650051,昆明市第一人民医院甘美医院。

;经外周静脉置入中央静脉导管(peripherally insertedcentral venous catheter, PICC)的位置对于避免置管相关并发症的发生十分重要,异位置管可能导致导管漂移、静脉血栓或心律失常。

目前PICC 置管的定位有多种方式,如传统的胸部X线片定位、腔内心电图定位以及荧光染色定位等,而胸部X线片定位是最为广泛的定位方式,被称为PICC置管的金标准[1,2].但是对于胸部X线片也存在一定的限制,异位导管由于需要调整,病人常反复暴露于X射线之下,同时对于置管后位置的定位会延迟病人疾病的治疗,以及反复操作可能导致血源性感染概率增加[3].根据美国静脉输液护理协会标准:目前PICC尖端理想的放置位置为上腔静脉的下1/3,上腔静脉与右心房连接处3~4 cm内[4].异位导管放置在临床中达到9%~27%.如果导管尖端过高(位于上腔静脉中1/3或上1/3)可出现管道功能障碍和增加静脉血栓的风险,而导管尖端太低(位于右心房或心室)可导致心律失常、心脏壁损伤、三尖瓣功能损伤和障碍,以及心内血栓[5].所以,对于PICC尖端位置的确定对病人后期治疗以及并发症的发生尤为重要。

便携式心电图记录仪的设计

便携式心电图记录仪的设计

收稿日期 :2002 - 12 - 05. 作者简介 :杨俊春 (1979 - ) ,女 ,硕士研究生 ,主要研究方向 :计算机控制应用技术.
·38 ·
应 用 科 技 第 30 卷
电信号自动记录仪 ,而 PC 机内还需要设计相应 的软件 ,供医生对记录仪中的心电信号进行诊断. 记录仪采集的信号为双通道心电信号 ,大容量数 据存储器扩展采用串行的存储器芯片 ,以减少连 线的数目 ,提高抗干扰的能力 ,增强系统的稳定 性.
为了使记录仪尽量方便易携 ,在配带记录仪 记录心电信号时不影响患者的正常工作和日常活 动 ,作者在设计时使用了最少的芯片数 ,使最后开 发出来的记录仪体积小 ,实现真正的携带方便.
1 功能设计
为了使此系统的功能设计得尽量完善 ,在系 统内固化了精心设计的专家分析系统软件 ,全自 动地监测佩带者的心电信息 ,自动进行分析 、判
心电图是心脏疾病诊断的重要工具之一 ,然 而在临床中一些心脏病患者在短期内其心电图并 无异常. 这样就要花相当长的时间在医院中做观 察诊断 ,从而给病人和医院都造成了不必要的麻 烦. 为此 ,动态心电图分析处理系统便应运而生. 该系统可分为两大部分 ,一是携带在被检查者身 上的袖珍心电信号自动记录仪 ,另一为由微机系 统组成的心电图处理诊断系统. 被检查者配带了 心电信号自动记录仪后可离开医院 ,其一天的动 态心电信号由自动记录仪记录下来 ,然后交院方 将记录的数据回送微机心电图处理系统中进行分 析 ,做出正确的诊断.
在此程序中 ,要用到 ADC 模数转换器和 SPI 串行口 ,因此应首先对相应的寄存器进行初始化.
对 ADC 采 用 查 询 方 式 工 作 , 通 过 不 断 地 查 询 AD IF 位来判断 ADC 转换是否已经完成 ; 对 SPI 采用中断方式工作. 程序流程图如图 3 所示.

简易心电图仪的设计【文献综述】

简易心电图仪的设计【文献综述】

文献综述电子信息工程简易心电图仪的设计前言随着社会的发展和物质生活水平的不断提高 ,人们对健康的重视程度与日剧增 ,特别是近年来社会老龄化的加剧 ,而且每年心血管疾病的发病率也不断上升。

目前心血管疾病成了威胁人类生命的主要疾病 ,心脏病已经成了世界上死亡率最高的疾病。

鉴于这种严峻形势 ,提高预防和监测该疾病的手段势在必行。

而心电信号检测是发现心脏病的最直接手段 ,但目前医院用的心电监护仪价格昂贵 ,维护费用高 ,患者检查的经济负担重 ,不能做到随时随地都能检查[1]。

因此设计一种便携式、价格便宜且实用的心电监护仪器具有重要意义。

主题根据简易心电图仪设计的要求,并充分考虑各种因素,制定了整体设计方案:以前置小信号放大模块、滤波网络模块、数字处理模块三大部分为主体系统:图1.1心电图仪基本框架输入模块为了满足临床诊断的要求,对心电图仪的电极位置和引线以及与放大器的连接方式有统一规定,称为心电图的导联系统。

目前广泛应用的是 12 导联系统。

其中,又分为双极肢体导联、单级肢体导联和单级胸前导联。

考虑到题目要求,我们仅采用双极肢体导联,这组导联方式又称为标准导联[2]。

在此模块设计方案中引入屏蔽驱动和右腿驱动,以提高系统的共模抑制能力,进而使系统抑制干扰的能力大大增强。

①屏蔽驱动。

与人体相接触的电极到前置放大器之间有两根约1.5m 的导联引线,导联引线用屏蔽电缆。

信号线和电缆屏蔽之间存在分布电容,而两根导联线的分布电容不可能完全相等,加之电极阻抗的不平衡,导致包括输入回路在内的整个放大系统的共模抑制能力降低,从而使抑制干扰的能力下降,为了消除屏蔽层电容的不良影响,可使导联线的屏蔽层不接地,从而取出放大电路的共模电压端,与屏蔽层连接。

②右腿驱动。

人体自身通过各种渠道从环境中拾取工频50Hz交流电压,在心电测量中,形成交流干扰,这种交流干扰常在几伏以上。

为了消除这一交流干扰,采用右腿电极经电阻与放大器接地端相连,以降低人体的共模电压。

一种基于单片机的简易心电图仪设计-

一种基于单片机的简易心电图仪设计-

一种基于单片机的简易心电图仪设计-
心电图仪是一种用于检测人类心脏电传导情况的医疗设备。

随着科技的不断发展,单片机技术已经逐渐被应用在心电图仪的设计中。

本文将介绍一种基于单片机的简易心电图仪设计。

1. 设计思路
本设计采用单片机作为主控制器,通过采集人体心电信号转化为数字信号进行处理。

具体实现过程如下:
(1)通过心电传感器采集人体心电信号,将信号转化为模拟信号。

(2)将模拟信号通过运算放大电路,使其变为数字信号。

(3)通过单片机将数字信号进行处理和分析,并将结果通过显示屏进行呈现。

2. 设计过程
(1)硬件设计
硬件设计包括传感器电路、模拟电路、通信接口和显示屏等。

其中,传感器电路用于采集心电信号,模拟电路用于将模拟信号转换为数字信号,通信接口用于与主控制器通信,显示屏用于显示处理后的心电信号。

(2)软件设计
软件设计主要包括单片机中的程序设计和信号处理。

程序设计需要对心电信号进行采样、滤波、放大、数字化等处理,以保证采集到高质量的心电信号。

信号处理过程中需要进行适当的算法处理,比如检测心脏跳动次数、识别心跳节律等。

3. 总结
本文介绍了一种基于单片机的简易心电图仪设计。

该设计具有硬件简单、软件易实现、数值精准等优点。

虽然其无法取代专业心电图仪,但其可方便地用于居家医疗和自我监测等方面,成为日常健康管理的重要工具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易心电图仪摘要:本系统主要以TI公司的低功耗msp430单片机为控制核心,由放大电路、右腿驱动电路、滤波网络、心电波形显示、存储与回放等模块组成。

利用高精度仪表放大器INA128和精密放大器OP07级联的方式对两路心电信号放大。

采用有源高低通滤波电路对心电信号进行综合处理。

设计还采用了右腿驱动电路抑制干扰,提高了放大器的共模抑制比。

单片机和液晶显示器实现了对心电波形的显示、存储与回放。

最终达到各项指标的要求,实现了低功耗的特点。

关键字:示波器滤波网络右腿驱动OP07 NE5532目录一、绪论 (3)(一)研究背景 (3)(二)心电图仪的发展现状 (3)(三)研究意义 (4)二、总体设计 (4)(一)便携式要求 (4)(二)设计框图 (5)三、硬件设计 (5)(一)电极的选择 (5)(二)导联方式的选择 (6)(三)放大电路 (7)(四)滤波网络 (8)四、软件设计 (9)(一)软件设计框图 (9)(二)程序源代码 (11)五、测试 (11)(一)测试仪器 (11)(二)系统测试 (11)(三)测试结果 (12)附录 (13)附录一 (13)附录二 (13)一、绪论(一)研究背景有很多病情较轻或者处在康复期内的心脏病患者,在较长时期内都离不开心电监护系统;或者有些心脏病偶发患者需要长期、连续观察心电参数,以捕捉某一瞬间出现的症状;也有些偏远地区的医院遇到疑难病症,病人在较长时间内需要得到上级医院专家的观察。

基于上述情况,开放一种便携的家用心电图仪,使得病人在家里可以观察并记录自己的心电信号,以备医生检查需求。

本设计介绍的就是一款体积小、重量轻、成本低、质量高、操作简单的便携式心电图仪。

(二)心电图仪的发展现状20世纪80年代心电图仪的特点是小型化、记录时间长,回放系统使用了计算机,并能够准确计算心率、异位心搏和ST段改变,打印系统已经普遍配备激光打印机。

20世纪90年代后的心电图仪的特点是体积小、佩戴舒适、存储容量打、电波保真度搞等。

进入21世纪之后,心电图仪采用当今高速发展的无线网络,提高了系统报警及时性和全面性;采用数字信号处理器(DSP)以及ARM 作为处理核心,以强大的运算能力处理心电信号,省去大量模拟硬件电路;采用图形操作系统,为用户提供了友好界面,直观方便;存储器向着大容量发展,对于心电信号的存储显得游刃有余,为用户保存数据提供了方便;对低功耗的技术的深入,大大延长了系统的工作时间;将其他生理参数监护集成与动态心电监护系统中,实现了一机两用甚至多用,为有特殊需求的患者提供全面的监护;分析系统的发展促进了动态心电监护系统的智能化,大大减少人工劳动。

经过50年的发展,动态心电监护仪的功能和性能早已今非昔比,并且朝着人性化的方向发展,已经成为临床上一种不可缺少的医用电子仪器,对医疗事业的发展有着重大的意义。

(三)研究意义基于对心电图仪研究背景,可以看出便携式心电图仪的研究具有非常重要的意义。

在我国,心血管疾病逐年上升的趋势随着人民生活水平的提高、肥胖人群的增加而呈现加速,加上人民的保健意识也逐渐增强,因此需要一种可家庭自用且具有功耗低、存储量大、可显示等特点的便携式心电图仪来满足市场需求。

该便携式心电图仪的出现主要有以下几个意义:1.普及心电监护仪在家庭中的使用,缓解医院有限资源的压力。

2.该仪器采用电池供电,并采用低功耗设计,可长时间工作,加上便于携带满足现代人对生活的要求。

总之,该便携式心电图仪的成功研制将为我过的家庭保健做出相应的贡献。

二、总体设计(一)便携式要求1.电池供电设计时应根据设备的使用环境,充分考虑电池供电的负载能力和连续工作时间。

目前,可采用普通干电池供电,以利于随地采购。

2. 低功耗由于采用电池供电,便携式设备的低功耗设计显得尤为重要。

设计中应尽量采用低电压、低功耗器件,降低电路的电能耗,在电池电量固定的情况下增加仪器工作的时间,并根据不同的功能允许一些器件进入休眠(低功耗)状态,采取积极措施降低系统功耗。

3. 操作简单具有良好的人机界面,易学易用。

(二) 根据设计要求以及设计思路得以下设计框图图1:图1设计框图 三、硬件设计 (一) 电极的选择 电极的选择对信号的采用是非常重要的一个环节。

有下列几个选择原则: 1. 灵敏度高; 导联选择前置放大 后级放大滤波网络 示波器 单片机 液晶显示 右腿驱动2.电极失调电位低;3.电极噪声低;4.电极极化效应低;为了达到上述要求,采用卤化银材料制作的电极达到的效果最好,市面上的电极通常都是采用该材料制作,其次选择舒适度较为良好的,让患者长时间佩戴不会产生不良反应。

(二)导联方式的选择心电活动是心脏内部的电势连续变化而形成的,反映到人的整个躯体内,可以将其看成是一个随时间连续变化的空间矢量。

在人体适当部位贴上电极,将这个变化记录下来,就形成了心电波形。

在图2(a)中,心脏内部周期性的电荷计划作用在体内形成了如空心粗箭头所示的电极化矢量。

这个矢量在空中划出了一个如图3(b)中用粗黑虚线所示的轨迹。

三根长长的实线箭头组成了一个倒置的等边三角形,三个顶点代表在人体的两个手臂和一条腿上安防的电极,每一个边在代表三个不同的坐标轴。

而心电矢量在这些轴上的投影随时间不停的变换。

(a)(b)图2 三维心电矢量在三条坐标轴上的投影由此可知,采用不同的导联方式得到的心电波形会有所不同。

如果只采用某一个导联得到的波形反应的只是一维的,并不能完全反应心电在整个三维空间的活动,只有通过到个导联采集到的心电波形放在一起综合分析,才能得到完整的心电信息。

根据设计要求和设计条件,本次设计采用右腿驱动的导联方式。

如图3所示,将人体的左臂、右臂作为负信号分别接入放大器的正负输入端。

而右腿则与放大器的参考端子RF相连接,作为放大器的接地端。

图3 右腿驱动导联方式示意图(三)放大电路电路由两级放大构成。

精密仪表放大器INA128作为前级放大,放大100倍。

调节INA128的外围电阻,可以改变增益。

电压增益:G=1+50K Ω/Rg,G=100,则Rg=50KΩ/99=0.505KΩ。

此时,INA128的共模抑制比为120dB,已满足题目的共模抑制比大于80dB的要求。

虽然INA128可以实现放大1000的目的,但是考虑到增益过大INA128芯片的极化现象,故采用了前级放大100倍,后级放大10倍的方案。

后级放大仿真图见图4。

后级放大电路是OP07构成的同比例放大电路,比例系数:K=[(R4+R3)/R3]*[R1/(R2+R1)]=[(19k+1k)/1k]*[10k/(10k+10k)]=10。

为了抑制其他干扰信号,在放大电路的前级增加了右腿驱动,即比例系数为1的正比例电路。

右腿驱动电路仿真图见附录1。

图4 后级放大仿真图(四) 滤波网络 滤波网络的仿真图见图5。

滤波网络是二阶高通滤波电路和一阶低通滤波电路串联的三阶滤波电路。

题目要求低频截止频率为0.05HZ ,高频的截止频率500HZ ,所以可以设计一个截止频率为0.05HZ 的二阶高通滤波器和一个截止频率为500HZ 的一阶低通滤波器。

高通滤波的截止频率的计算公式:22112/1R C R C f π==363610301010010301010014.32/1⨯⨯⨯⨯Ω⨯⨯⨯⨯⨯--f f =0.05HZ低通的截止频率计算公式:HZf R C f 500102107.414.32/1532/136=Ω⨯⨯⨯⨯⨯==-π把高通滤波器和低通滤波器串联即可满足题目的要求。

图5 滤波网络仿真图四、软件设计(一) 软件设计框图YN YN图6 软件设计框图主程序开始系统初始化 扫描键值 存储键是否按回放键是否按执行存储子程序 执行回放子程序 执行回放子程序 按键,进入中断,LCD 显示“心电波形回放”,单片机从FLASH 中读取存储值,由单片机内部D/A 转换输出,并在示波器上清晰显示波形。

执行存储子程序 按键,进入中断,LCD 显示“心电波形存储开始”,单片机内部A/D 采样,读取并写入单片机的FLASH 中,完成后LCD 显示“存储完毕”。

软件设计介绍1.系统初始化系统初始化部分主要是对msp430单片机的I/O口的出入,这里将P1.0~P1.3设置为输入状态,P1.4~P1.7设置为输出状态。

同时,将单片机外部中断、定时器、液晶显示器等等进行初始化设置。

以上部分是为后面的模块使用。

在此模块中还将心电图测试仪的欢迎词写入。

达到打开仪器的时候液晶显示器上就会显示“欢迎使用心电测试”的效果。

2.键值扫描这一部分主要主要利用嵌套的循环函数,不断的检测外部有没有键被按下,如果没有,则进行下一次的循环扫描;如果有,则就判断是存储键被按下还是回放键被按下。

如果是存储键被按下,则程序进入存储子程序执行,如果是放键被按下怎程序进入回放子程序执行。

如果两个都不是,这程序继续进行循环扫描。

3.存储子程序与回放子程序这两个子程序事实上是单片机外部中断的子程序。

当存储键按下引起中断发生,程序控制单片机内部的A/D读取并写入单片机的FLASH,以实现图形的存储。

存储完成后能够在显示器上显示“存储完毕”。

当回放键按下引起中断发生,程序控制单片机读取存储在单片机FLASH中的数据,并通过单片机内部的D/A将数字信号转化为模拟信号,在液晶显示器上显示存储的心电波形图。

(二)程序源代码程序源代码见附录二。

五、测试(一)测试仪器1.EE1640C型函数信号发生器2.4位半数字万用表3.DS1062C示波器(二)系统测试人体心电图测试,按照标准I导联实测心电图,测得波形见图7。

图7 测试波形图(三)测试结果系统的整体测试结果和各个模块的测试结果都基本符合要求。

系统实现了心电信号放大1000倍,电路共模抑制比大于80dB的目的。

同时,系统也满足了低频截止频率为0.05HZ,高频的截止频率500HZ的滤波要求。

总之,系统可以正常放大显示心电信号。

由于软件的原因,系统没能实现心电信号的存储回放功能。

从系统的设计到制作我们学会很多有关精密仪表放大器和滤波器的知识,以后会更加努力学习相关知识。

参考文献:[1]谢自美:《电子线路设计·实验·测试(第三版)》,华中科技大学出版社,2006。

[2]黄智伟:《全国大学生电子设计竞赛技能训练》,北京航空航天大学出版社,2007。

[3]罗亚非,凌阳:《16位单片机应用基础(第一版)》,北京航空航天大学出版社,2005。

附录附录一:右腿驱动电路附录二:程序源代码#include <msp430F149.h>#include "Keypad.h"#include "lcd.h"#define uint unsigned int#define uchar unsigned char unsigned int AD_result=0; unsigned int D[2000]={0}; unsigned int t=0;extern unsigned char key_val; extern int a[5];extern int weishu;int OSC_Delay;//int zy;unsigned char GAIN_FLAG; unsigned char FLAG1=1,FLAG2=1;void deelay(uint n){uchar i;for(i = n;i > 0;i--)_NOP();}void DAtransfer(uint data){uint i;P3DIR|=0xE0;P3SEL|=0X00; //设置为一般的I/O口;P3OUT&=~0x20; //将P3.5-P3.6设置为输出P3OUT|=BIT7;deelay(200);for(i=0;i<16;i++){if(data&0x8000)P3OUT|=0x40;else P3OUT&=~0x40;P3OUT&=~0x80;deelay(200);data<<=1;P3OUT|=BIT7;deelay(200);}P3OUT&=~0x80;P3OUT|=BIT5;}/****单通道多次转换*****Vr+=3.3v,Vr-=0*****/void ADC12(void){P6SEL |= 0x01; // Enable A/D channel A0ADC12CTL0 &= ~ENC;ADC12CTL0 = ADC12ON+SHT0_8+MSC; // Turn on ADC12, set sampling timeADC12CTL1 = SHP+CONSEQ_2; // Use sampling timer, set modeADC12IE = 0x00; // disable ADC12IFG.0ADC12CTL0 |= ENC; // Enable conversionsADC12CTL0 |= ADC12SC; // Start conversion}void Timer_A(){TACTL = TASSEL_1 + TACLR + MC_1; // ACLK:32K,up mode ,clear TAR CCTL0 = CCIE; // CCR0 中断允许CCR0 = 32; //1khz_BIS_SR(LPM0_bits + GIE); // Enter LPM0, Enable interrupts }#pragma vector=TIMERA0_VECTOR //定时器A0的中断函数__interrupt void TimerA_ISR(void){unsigned int temp1;int num[4]={0,0,0,0};while((ADC12IFG & 0x01)==0) ; //判断有没有转换结束ADC12CTL0 &= ~ENC; // 关闭转换AD_result = ADC12MEM0; //读到AD转换的12位二进制数DAtransfer(AD_result);// D[t ++]=AD_result;temp1=(AD_result*3300)/4095;//显示电压值num[3]=temp1/1000;num[2]=temp1%1000/100;num[1]=temp1%100/10;num[0]=temp1%10;Writedata(num[3]+'0');Writedata('.');Writedata(num[2]+'0');Writedata(num[1]+'0');Writedata(num[0]+'0');ADC12CTL0 |= ENC; // 允许AD转换ADC12CTL0|=ADC12SC; //开始新的转换}void main(void){WDTCTL = WDTPW + WDTHOLD; // Stop WDT Init_Keypad();Ini_Lcd();Clear_GDRAM();// 设置CPU MCLK/SMCLK时钟频率BCSCTL1 &= ~XT2OFF;//清OSCOFF/XT2do{IFG1 &= ~OFIFG;//清OFIFGOSC_Delay = 255;while(OSC_Delay --) ;//延时等待}while(IFG1 & OFIFG);//直到OFIFG=0为止BCSCTL1 |= RSEL2 + RSEL1 + RSEL0;//MAXDCOCTL |= DCO0+DCO1;//MCLK = DCO=3MHz/4BCSCTL2 |= SELS+DIVM_2; // SMCLK = XT2(8MHz)//Menu_F();Writecommand(0x01);Disp_HZ(1,1,"欢迎使用心电测试:");delay_Nms(100);ADC12();Timer_A();/* Init_Keypad();do{Key_Event();}while(key_val!=1&&key_val!=5&&key_val!=4); while(1){switch(key_val){//case 1://case 5:FLAG3=1;zybujin();break;//case 3:delay(200);break;}}*/}#include <msp430F149.h>#include "lcd.h"/*跳线说明:* P1.0~P1.3设置为输入状态,P1.4~P1.7设置为输出状态* P1.0~P1.3通过10kΩ电阻与+5v相接,P1.4~P1.7通过300Ω电阻与键盘相接* */typedef unsigned char uchar;typedef unsigned int uint;int a[5];//存储键盘扫描的数据int weishu;/***************全局变量***************/uchar key_Pressed; //按键是否被按下:1--是,0--否uchar key_val; //存放键值uchar key_Flag; //按键是否已放开:1--是,0--否//设置键盘逻辑键值与程序计算键值的映射uchar key_Map[] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};/*******************************************函数名称:Init_Keypad功能:初始化扫描键盘的IO端口参数:无返回值:无********************************************/void Init_Keypad(void){//P1高位必须接+5v电压// P1DIR =0Xff;// P1OUT =0X0f;P1DIR = 0xf0; //P1.0~P1.3设置为输入状态, P1.4~P1.7设置为输出状态P1OUT |= 0x0f; //输出为1key_Flag = 0;key_Pressed = 0;key_val = 16;}/*******************************************函数名称:Check_Key功能:扫描键盘的IO端口,获得键值参数:无返回值:无********************************************/void Check_Key(void){uchar row ,col,tmp1,tmp2;tmp1 = 0x10;for(row = 0;row < 4;row++) //行扫描{P1OUT = 0xf0; //P1.4~P1.7输出全1P1OUT -= tmp1; //P1.4~p1.7输出四位中有一个为0tmp1 <<=1;if ((P1IN & 0x0f) < 0x0f) //是否P1IN的P1.0~P1.3中有一位为0{tmp2 = 0x01; // tmp2用于检测出那一位为0for(col = 0;col < 4;col++) // 列检测{if((P1IN & tmp2) == 0x00) // 是否是该列,等于0为是{key_val = key_Map[row * 4 + col]; // 获取键值return; // 退出循环}tmp2 <<= 1; // tmp2右移1位}}}}/*******************************************函数名称:delay_15ms功能:延时约15ms,完成消抖功能参数:无返回值:无********************************************/void delay_15ms(){uint tmp;for(tmp = 12000;tmp > 0;tmp--);}/*******************************************函数名称:Key_Event功能:检测按键,并获取键值参数:无返回值:无********************************************/void Key_Event(void){uchar tmp;P1OUT &= 0x00; // 设置P1OUT全为0,等待按键输入tmp = P1IN; // 获取p1INif ((key_Pressed == 0x00)&&((tmp & 0x0f) < 0x0f)) //如果有键按下{key_Pressed = 1; // 如果有按键按下,设置key_Pressed标识delay_15ms(); //消除抖动Check_Key(); // 调用check_Key(),获取键值}else if ((key_Pressed == 1)&&((tmp & 0x0f) == 0x0f)) //如果按键已经释放{key_Pressed = 0; // 清除key_Pressed标识key_Flag = 1; // 设置key_Flag标识}else{_NOP();}}uchar zhi(uchar h){Key_Event();return key_val;}void para_input_display(void){int i=0;int return_flag=0;while(return_flag==0){Init_Keypad();do{Key_Event();} while(key_val==16);switch(key_val){case 0:Writedata('0');delay_Nms(300);a[i]=0;break;case 1:Writedata('1');delay_Nms(300);a[i]=1;break;case 2:Writedata('4');delay_Nms(300);a[i]=4;break;case 3:Writedata('7');delay_Nms(300);a[i]=7;break;case 4:Writedata('.');delay_Nms(300);a[i]=10;break;case 5:Writedata('2');delay_Nms(300);a[i]=2;break;case 6:Writedata('5');delay_Nms(300);a[i]=5;break;case 7:Writedata('8');delay_Nms(300);a[i]=8;break;case 8:return_flag=1;break;case 9:Writedata('3');delay_Nms(300);a[i]=3;break;case 10:Writedata('6');delay_Nms(300);a[i]=6;break;case 11:Writedata('9');delay_Nms(300);a[i]=9;break;case 12:break;case 13:break;case 14:break;case 15:break;}i++;}//weishu=i-1;}//************************************************************************ ******// 一、128*32液晶显示:(串行输出)// 1、可显示两行,每行显示8个汉字,// 2、跳线说明:// :(1)PSB=0(0V),LED+==+5V,LED-==+5V,VDD==+5V,VSS==0V// (2)P2.0|-->CS(可不接,如果不接,则CS=1(+5V))// P2.1|-->SID// P2.2|-->SCLK//////二、4*4键盘扫描显示:// 1、p1.0~1.3 需要上拉电阻10K接5v。

相关文档
最新文档