红外线脉搏自动测量仪论文.doc_第1页
红外线脉搏自动测量仪论文.doc_第2页
红外线脉搏自动测量仪论文.doc_第3页
红外线脉搏自动测量仪论文.doc_第4页
红外线脉搏自动测量仪论文.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I - 红外线脉搏自动测量仪 II - 摘 要 现代医学认为心血管疾病己经成为危害人类健康的第一杀手因此寻找更加安 全,有效和无创伤的心血管诊疗方法是当前医学界人士迫切的需求。 从单片机发出的测量信号经光源驱动电路进行功率放大后,送到指套式光电 传感器的红光和红外发射二极管上,使它们发射光脉冲。测量时将人的中指夹在 指套里,光脉冲透过手指,通过分析测量部位的血液随脉搏波动引起光吸收的变 化推算人体的脉搏。 通过对信号放大,消抖,用 555 接成施密特触发器,整形成方波接入单片机 T1 口,通过 TR0 定时,TR1 计数对数据处理,把脉搏数据传输给数码管输出。数 码显示电路采用动态显示,采用 74HC244 锁存器作为驱动,用弹片机 P2 口作为 数据输出端,P1 口进行位选。 文章给出了系统的功能特点、设计原理、硬件电路及软件设计等。该系统在 提高精度的同时也大大提高了系统的响应速度;该仪器成本低,可靠性高,操作方 便。 关键词:红外线;脉搏;单片机 I - Abstract The illness of heart is the first killer to health of human race in the modern medicines. The study of pulse wave, including its quantitative diagnose and propagation is one of the hot topics in the fields of clinical medicine, such as how to detect cardiovascular diseases and make early diagnosis without harm. The signal that is from the microprocessor be blew up by lamp-house circuit sent to the glow and infrared diode of the photoelectric sensor and beamed the ray pulse. Putting the middle finger in the fingertip when the ray pulse permeates the finger and analyzing the signal be absorbed. The pulse is calculated by measuring the variance of light absorption resulted from blood current waving in the measured part of human body .The signal be made blow up and face lifting by TR0 timing and TR1 taking count The article gives the systems function, design principle hardware electric circuit and software design etc. It adopts the method of ANGA (Avoiding Noise and Gliding Average) to filter the orderly signal; In the exaltation accuracy it increase the response. The test result express that the steady error is smaller1%. Key words: pulse test digital filtering;infrared ray;microprocessor 1 - 目 录 摘摘 要要 .IIIIII 第第 1 1 章章 绪绪 论论 .3 3 1.1 概述 .3 1.2 本课题设计的要求和实现的方案 .3 第章第章 硬件电路设计硬件电路设计 .6 6 2.1 脉搏自动测量系统总图 .6 2.2 脉搏信号的数据采集 .6 2.3 脉搏信号的处理 .8 2.4 89C51 单片机红外线脉搏测量系统.11 2.5 LED 脉搏信号数码显示.12 2.6 串行口通信 .14 2.7 本章小结 .15 第第 3 3 章章 系统软件设计系统软件设计 .1616 3.1 总体的软件流程图 .16 3.2 数码显示 .17 3.3 定时器/计数器 .19 3.4 中断 .20 3.5 本章小结 .21 第第 4 4 章章 脉搏自动测量系统调试脉搏自动测量系统调试 .2222 4.1 脉搏信号采集、处理的调试 .22 4.2 单片机系统定时器/计数器程序的调试 .22 4.3 脉搏信号数码显示电路的调试 .23 4.4 本章小结 .25 结结 论论 .2626 致致 谢谢 .2727 2 - 参考文献参考文献 .3232 3 - 第 1 章 绪 论 1.1 概述 从80年代单片机引入我国到现在,单片机已广泛的应用于电子设计中,使智 能化水平在广度和深度上产生了质的飞跃,而且单片机体积小,功能强,性价比 高的特点在智能仪表和工业控制领域获得广泛的应用。数字式脉搏测量系统的特 点是以微处理器为核心,利用微处理器的控制、运算功能、具有智能化的特点。 数字式脉搏测量电路显示不仅直观,测量精度高,而且便于进行自动控制,所以 获得广泛的应用。 脉搏是人体活动最重要、最灵敏和最可靠的信源。早在两千年前,我们的祖 先就开始用切脉诊治疾病医生在3公分长的手腕部位动脉管段上,用手指作为 拾取脉搏信号的传感器,就能断定五脏六腑之疾,诊治内、外、妇、儿之症,这 其中必定蕴含着深奥的科学道理有待揭示。随着现代科学技术的发展,数字化、 智能化、简单化成为必然趋势。使我们不懂医学的人,也能够及时容易地了解自 己的身体状况。 现在取脉搏得方式一般都是用压力传感器,依靠脉搏的搏动带来压力变换来 检测,来实现测脉搏。日常生活中,智能化电子产品将成为新的潮流趋势。目前 市场上所推出的家庭医疗电子产品大多以测量血压为主,智能脉搏测试仪器尚不 多见。本文针对市场上的家用医疗设备的需要及目前仪器所存在的缺陷, 1.21.2 本课题设计的要求和实现的方案 (1)功能要求及性能指标: 1)功能要求: 测量人体的脉搏数 能随时察看数据 脉搏过高过低有报警功能 2)性能指标: 测量范围:18-300次分 测量精度:3次 4 - 测量时间:30S 温度要求:常温下正常工作 (2)实现方案 光电测量利用动脉血的氧饱和度的不同带来透光性的差异来测量脉搏。人体 动脉在心脏驱动下的搏动引起全身动脉血曾的扩张收缩和血液流量变化反映在被 测位就相应地引起光吸收的变化。通过检测血浓容量波动引起的光吸收量的变 化并消除非血液组织的影响测得脉搏信号。 通过对采集信号光电转换以及波形处理,对信号进行计数实现脉搏的测量。 人体生理物理学理论研究表明:氧合血红蛋白HbO2和还原血红蛋白 (HB)对光普的吸收特性截然不同。如图1-1所示 图 1-1 红光和红外光吸收曲线 考虑到机体组织对测量精度的影响在选择光波波长时,要求氧合血红蛋白 HbO2和还原血红蛋白Hb对该波段的吸光性能相对于非血液组织要强,但不能选择 吸光系数太大的波段,那样透射光极弱,很难检测环境光的变化可能会对测量结 果造成很大影响。由于氧合血红蛋白Hb02和还原氧合蛋白Hb对600nm以下波长光 的吸光系数过大,不适宜权饱和度检测从图1-1看到该光波波长应该在805nm左 右,要做到理论上绝对相等是很难实现的。而该点的吸光系数随波长变化幅度比 较大,这样当发光管存在个体差异时很不利于调试替换而在900950nm这个波 段,两曲线变化缓 慢且接近重合所以一般将波长选在此波段。光波长选在650nm 附近.因为在该段波长处,光对氧合血红蛋白HbO2和还原血红蛋白Hb吸收不数之 差最大。本课题选用660nm红光和905nm红外光的两种单色光。1 反射式血氧饱和度检测系统是将反射式的传感器贴在人体表面,入射光经过 人体组织后,由于组织对光的吸收和散射作用,从与入射光位于同一表面的接收 部分收集经过了血管床中的血流调制的反射光信号,经过信号的放大、分离、有 源滤波后,削抖。在单片机的控制下通过数码管正确的显示。 5 - 人体耳廓、指尖、脚趾、额头等处毛细血管丰富,组织比较薄,光容易透过 组织吸光影响比较小,通常选择这些地方作为测量部位。光传感器,一般连用采 用体积小、光波长单一性较好的发光二极管做光源一般有透射式和反射式两种光 传感器。投射式探头选用弹性较好的软橡胶作长夹子形状,光源和光敏元件镶嵌 在其中,它能够较稳定地夹在耳廓、脚趾或者指尖部位,并能保持测量部位血液 地正常流动反射式深头轻贴在血液较丰富地皮肤表面,如额头等。 6 - 第章 硬件电路设计 2.1 脉搏自动测量系统总图 硬件电路共分四部分:脉搏信号的采集、处理、单片机系统以及数码显示串 行通信部分。系统总图如下: 图 2- 脉搏自动测量系统总图 2.2 脉搏信号的数据采集 脉搏信号的采集主要通过红外传感器来实现,红外线传感器主要部分是光源 控制和驱动电路。 光源控制和驱动电路原理如下图所示。它主要是产生序列脉冲,驱动传感器 上的两个波长分别为660nm和905nm的发光二极管(LED)。方波发生器产生频率 7 - 为572Hz、占空比为1/6的方波A经过二分频后产生信号C,C和C与A共同控制产生 信D和E,再由D和E信号通过驱动器控制两个发光二极管LED和LED2按时序发光和 熄灭,这里的D和E信号还将在后面的信号。2 分离电路中作为模拟开关的控制信号以完成电路对红光和红外光信号的分离。 图 2-2 光源控制和驱动电路 信号时序如图2-3所示。这样我们就可以按时序形成红光、红外光、不发光 三个工作状态,以便消除背景光的干扰,减少误差,提高测量的准确性。 驱动 器的作用是为发光二极管提供合适的工作电流,具体电路中由具有电流放大作用 的三极管实现;为保证两发光管的光强在同一能级,需注意两个三极管的参数应 较为接近。 图 2-3 信号时序 8 - 2.3 脉搏信号的处理 脉搏信号的处理包括信号的放大、低通滤波、高通滤波、方波整形等部分。 2.3.1 脉搏信号的放大 透过动脉血管床的混合光信号经过传感器的接收器件光敏二极管后转换为电 信号,该信号包括红光、红外光和暗光信号。由于该信号比较微弱,我们先用一 个预放大电路将信号放大。该放大电路是具有较高抑制共模干扰能力的测量放大 器,它因具有高输入阻抗、低失调电压、稳定放大倍数和低输出阻抗等优点,而 被广泛应用于生物医学测量以及那些提供微弱信号而共模干扰较大的场合。3 为了消除外界环境光的干扰影响,采用了同步检波的正负极性切换电路将 暗光信号从有用信号中减去,它由一个运放和模拟开关4066组成,如图2.5所示。 其原理是:模拟开关受A控制,当A0时开关断开,运放的同相输入端为高阻抗 输入,输入信号未经衰减而输入,受运放控制,使其反相输入端电位为正电位, 其输入和输出电位相同,R上没有电流流过,相当于一个同相缓冲器,输出的信号 和输入信号相同。当A1时开关导通,运放此时作为反向放大器工作,增益为- 1,输入和输出信号反向。经过同步检波的正/负极性切换电路后暗光信号转换为 负信号,而有用信号为正,再通过后面电路的积分作用使两信号极性相反的成分 相减,从而从有用的复合信号中除去暗光信号。经过同步检波的正负极性切换 电路后,运用传感器控制部分产生的信号D和E控制模拟开关4066闭合和断开,使 信号分成红光和红外光两路,然后我们分别对这两路信号进行低通滤波和高通滤 波。 图 2-4 信号放大 9 - 图 2-5 同步检波 2.3.2 低通滤波 采用低通滤波器主要是消除容积脉搏波信号中高频噪声的干扰。为了得到更 好的滤波效果,采用了一个截止频率为40HZ的二阶低通滤波器,如图2-6所示。 图 2-6 低通滤波 2.3.3 高通滤波 经过低通滤波后容积脉搏波信号含有伏特级的直流信号和毫伏级的容积脉搏 波交流信号,将此信号采集进计算机后就可以作为计算脉搏血氧饱和度所需要的 直流成分。高通滤波器采用了截止频率为0.1Hz的二阶高通滤波器,如图2-7所示。 最后,将高通滤波后的信号进行交流放大就可以采集进计算机作为计算脉搏血氧 饱和度所需要的交流成分。 图 2-7 高通滤波 10 - 2.3.4方波整形 图 2-8 施密特触发器 只要将555定时器的2号脚和6号脚接在一起,就可以构成施密特触发器。我 们简记为“二六一搭“。这个施密特触发器的电压传输特性是反相的。5号脚悬 空时,正向阈值电压和负向阈值电压分别为2/3Vcc和1/3Vcc。5号脚接控制电压 Vco时,正向阈值电压和负向阈值电压分别为Vco和1/2Vco。能实现波形整,整形 成方波。 图 2-9 波形图 11 - 2.4 89C51 单片机红外线脉搏测量系统 89C51 单片机承担系统各项功能管理和数据处理的任务。经过转换后的数字 信号由单片机通过 T1 采集,并以串口(RS-232)通信方式送入计算机进行处理, 脉搏数字也可由数码管直接显示。本系统采用的单片机是美国 ATmel 公司的 AT89C51 芯片,主要负责在定时计算。AT89C51 单片机性能介绍 AT89C51 是一种 带 4K 字节闪烁可编程可擦除只读存储器。(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压,高性能 CMOS8 位微处理器,俗称单片 机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片 中,ATMEL 的 AT89C51 是一种高效微控制器,为很多嵌入式控制系统提供了一种 灵活性高且价廉的方案。4 2.4.1 主要特性 与 MCS-51 兼容 ;4K 字节可编程闪烁存储器;寿命:1000 写/擦;循环数据 保留时间:10 年;全静态工作:0Hz-24Hz;三级程序存储器锁 128*8 位内部 RAM;32 可编程 I/O 线;两个 16 位定时器/计数器;5 个中断源; 可编程串行通道;低功耗的闲置和掉电模式;片内振荡器和时钟电路。5 2.4.2 管脚说明 VCC:供电电压。 GND:接地。 P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储 器,它可以被定义为数据/地址的第八位。在 FIASH 编程时,P0 口作为原码输入 口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接 收输出 4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口 被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程 和校验时,P1 口作为第八位地址接收。6 P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收, 输出 4 个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作 为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内 部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存 取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当 对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 12 - 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输 入,由于外部下拉为低电平,P3 口将输出电流(ILL)这是由于上拉的缘故。 2.4.3 振荡器特性 XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为 片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件, XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部 时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 2.4.4 芯片擦写 整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保 持 ALE 管脚处于低电平 10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且 在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89C51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种 软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计数 器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡 器,禁止所用其他芯片功能,直到下一个硬件复位为止。7 2.5 LED 脉搏信号数码显示 P2 口作为驱动口,P1 口实现位选。数据从 P2 口输出后经过 74HC244 缓冲器 对信号的放大,驱动数码管显示。通过 P1 口决定哪一个数码管亮。本电路采用 的是动态显示。动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。 其接口电路是把所有显示器的 8 个笔划段 a-h 同名端连在一起,而每一个显示器 的公共极 COM 是各自独立地受 I/O 线控制。CPU 向字段输出口送出字形码时,所 有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于 COM 端,而这 一端是由 I/O 控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态 扫描就是指我们采用分时的方法,轮流控制各个显示器的 COM 端,使各个显示器 轮流点亮。 13 - 图 2-10 缓冲器实现数码显示 也可以采用移位寄存器来实现动态显示穿行输入并行输出。信号从 P2.0 输 出,只有一位数据输出端。每一个数是 8 位的所以要传输一个数字要输出 8 次, 而后通过 74LS164 并行输出。由 P1 口决定哪一个数码管点亮。 图 2-11 移位寄存器实现数码显示 14 - 2.6 串行口通信 串行接口的一般概念 单片机与外界进行信息交换称之为通讯。 8051 单片机 的通讯方式有两种: 并行通讯:数据的各位同时发送或接收。 串行通讯:数据一位一位顺序发送或接收。 图 2-12 并行通讯与串行通讯 异步通讯:它用一个起始位表示字符的开始,用停止位表示字符的结束。其 每帧的格式如下: 在一帧格式中,先是一个起始位 0,然后是 8 个数据位,规定低位在前,高 位在后,接下来是奇偶校验位(可以省略)最后是停止位 1。用这种格式表示字 符,则字符可以一个接一个地传送。8 波特率即数据传送的速率,其定义是每秒钟传送的二进制数的位数。例如, 数据传送的速率是 120 字符/s,而每个字符如上述规定包含 10 数位,则传送波 特率为 1200 波特。 同步通讯:在同步通讯中,每个字符要用起始位和停止位作为字符开始和结 束的标志,占用了时间;所以在数据块传递时,为了提高速度,常去掉这些标志, 采用同步传送。由于数据块传递开始要用同步字符来指示,同时要求由时钟来实 现发送端与接收端之间的同步,故硬件较复杂。 在异步通讯中,CPU 与外设之间必须有两项规定,即字符格式和波特率。字 符格式的规定是双方能够在对同一种 0 和 1 的串理解成同一种意义。原则上字符 格式可以由通讯的双方自由制定,但从通用、方便的角度出发,一般还是使用一 些标准为好,如采用 ASCII 标准。9 通讯方向:在串行通讯中,把通讯接口只能发送或接收的单向传送方法叫单 工传送;而把数据在甲乙两机之间的双向传递,称之为双工传送。在双工传送方 式中又分为半双工传送和全双工传送。半双工传送是两机之间不能同时进行发送 15 - 和接收,任一时,只能发或者只能收信息。 8051 串行接口是一个可编程的全双工串行通讯接口。它可用作异步通讯方式 (UART),与串行传送信息的外部设备相连接,或用于通过标准异步通讯协议进 行全双工的 8051 多机系统也可以通过同步方式,使用 TTL 或 CMOS 移位寄存器来 扩充 I/O 口。 8051 单片机通过引脚 RXD(P3.0,串行数据接收端)和引脚 TXD(P3.1,串 行数据发送端)与外界通讯。SBUF 是串行口缓冲寄存器,包括发送寄存器和接收 寄存器。它们有相同名字和地址空间,但不会出现冲突,因为它们两个一个只能 被 CPU 读出数据,一个只能被 CPU 写入数据。 2.7 本章小结 本设计实现了一种基于单片机的脉搏测量系统,在硬件结构上分为信号采集 电路、信号处理电路、单片机小系统、显示电路。它们各司其职,密切完成整个 脉搏测量显示功能。通过软件编程进行控制,实现整个设计的要求:单片机进行 控制,发送和接受命令;传感器将脉搏信号量转化为电信号发送给单片机处理; 显示电路将单片机发来的数据显示出来。硬件设计简单易行,成本低;硬件部分 各电路紧密相连,调试容易进行;各部分电路完成的功能明确,对完成脉搏测量 都有不可或缺的作用。10 16 - 第 3 章 系统软件设计 3.1 总体的软件流程图 图 3-1 总体软件流程图 首先打开控制开关,系统开始工作,显示缓冲区清零,这时候数码管被点亮, 17 - 显示全零;判断开关是否接高电平,如果不为高电平则继续判断,数码显示继续 为零,如果接高电平计数器/定时器开始工作初始化,开中断启动定时器/计数器; 定时时间到显示脉搏数;继续判断开关是否接低电平,如果接低电平,则关闭定 时器/计数器,如果接高电平则继续显示脉搏数。11 红外线脉搏测量单片机系统,采用汇编语言。汇编语言是一种与硬件紧密相 关的程序语言,是机械语言的便于记忆和理解的符号化形式。但计算机的 CPU 不 能直接识别机械语言,故交由计算机前,必须将他们翻译成机械语言,这一编译 过程称之为汇编。12 3.2 数码显示 在单片机系统中,通常用 LED 数码显示器来显示各种数字或符号。由于它具 有显示清晰、亮度高、使用电压低、寿命长的特点,因此使用非常广泛。 共阴和共阳结构的 LED 显示器各笔划段名和安排位置是相同的。当二极管导 通时,相应的笔划段发亮,由发亮的笔划段组合而显示的各种字符。8 个笔划段 hgfedcba 对应于一个字节(8 位)的 D7 D6 D5 D4 D3 D2 D1 D0,于是用 8 位二进 制码就可以表示欲显示字符的字形代码。例如,对于共阴 LED 显示器,当公共阴 极接地(为零电平),而阳极 hgfedcba 各段为 0111011 时,显示器显示P字符, 即对于共阴极 LED 显示器,“P”字符的字形码是 73H。如果是共阳 LED 显示器, 公共阳极接高电平,显示“P”字符的字形代码应为 10001100(8CH)。 八段 LED 显示器由 8 个发光二极管组成。基中 7 个长条形的发光管排列成 “日”字形,另一个贺点形的发光管在显示器的右下角作为显示小数点用,它能 显示各种数字及部份英文字母。LED 显示器有两种不同的形式:一种是 8 个发光 二极管的阳极都连在一起的,称之为共阳极 LED 显示器;另一种是 8 个发光二极 管的阴极都连在一起的,称之为共阴极 LED 显示器。13 在单片机应用系统中,显示器显示常用两种方法:静态显示和动态扫描显示。 所谓静态显示,就是每一个显示器都要占用单独的具有锁存功能的 I/O 接口用于 笔划段字形代码。这样单片机只要把要显示的字形代码发送到接口电路,就不用 管它了,直到要显示新的数据时,再发送新的字形码,因此,使用这种方法单片 机中 CPU 的开销小。 动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。其接口电 路是把所有显示器的 8 个笔划段 a-h 同名端连在一起,而每一个显示器的公共极 COM 是各自独立地受 I/O 线控制。CPU 向字段输出口送出字形码时,所有显示器 接收到相同的字形码,但究竟是那个显示器亮,则取决于 COM 端,而这一端是由 I/O 控制的,所以我们就可以自行决定何时显示哪一位了。而所谓动态扫描就是 指我们采用分时的方法,轮流控制各个显示器的 COM 端,使各个显示器轮流点亮。 18 - 在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约 1ms), 但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非 同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不 会有闪烁感。14 3.2.1 显示子程序流程图: 图 3-2 显示子程序 把 R0 对应存放数据的首地址,R2 附值 0FEH,R3 对应 03H;关显示器通过位 选置高电平来实现,应为采用的是共阴极数码管;调用延时子程序;查表;继续 调用延时子程序;R0 指向下一位地址,R2 不带进位左移,R3 减 1;判断 R3 是否 为零,不为零则继续位选管脚置高电平,为零则指向把 R0 对应存放数据的首地 址进行下一轮次的扫描动态显示。15 3.2.2 显示子程序 DD: MOV R0,#60H MOV R2,#0FEH MOV R7,#03H MOV DPTR,#TAB; DI: 19 - MOV P1,#0FH MOV R3,#20 DJNZ R3,$ MOV A,R0; MOVC A,A+DPTR; MOV P2,A; MOV A,R2 ANL P1,A DELAY1: MOV R5,#0FH; DL6: MOV R6,#0BH; DL5: NOP; NOP; DJNZ R6,DL5; DJNZ R5,DL6; INC R0; MOV A,R2 RL A MOV R2,A DJNZ R7,DI LJMP DD TAB: DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH 3.3 定时器/计数器 89C51 单片机中有两个计数器,分别称之为 T0 和 T1,这两个计数器分别是 由两个 8 位的 RAM 单元组成的,即每个计数器都是 16 位的计数器,最大的计数 量是 65536。只要计数脉冲的间隔相等,则计数值就代表了时间的流逝。由此, 单片机中的定时器和计数器是一个,只不过计数器是记录的外界发生的事情,而 定时器则是由单片机提供一个非常稳定的计数源。计数源是由单片机的晶振经过 12 分频后获得的一个脉冲源。晶振的频率当然很准,所以这个计数脉冲的时间间 隔也很准。我们采用预置数的方法实现任意定时及计数。计数器的容量是 16 位, 也就是最大的计数值到 65536,因此计数计到 65536 就会产生溢出。我们采用预 置数的方法,我要计 100,那我就先放进 65436,再来 100 个脉冲,不就到了 65536 了。 单片机中的定时/计数器都可以有多种用途,这就要通过定时/计数器的方式 控制字来设置。在单片机中有两个特殊功能寄存器与定时/计数有关,这就是 TMOD 和 TCON。TMOD 和 TCON 是名称,我们在写程序时就可以直接用这个名称来指 定它们,当然也可以直接用它们的地址 89H 和 88H 来指定它们 20 - 图 3-3 TMOD 从图 3-3 中我们可以看出,TMOD 被分成两部份,每部份 4 位。分别用于控制 T1 和 T0。 图 3-4 TCON 从 图 3-4 中我们可以看出,TCON 也被分成两部份,高 4 位用于定时/计数器, 低 4 位则用于中断。而 TF1(0)当计数溢出后 TF1(0)就由 0 变为 1。 计数脉冲要进入计数器要层层过关要,就是 TR0(1)要为 1,开关才能合上, 脉冲才能过来。因此,TR0(1)称之为运行控制位,可用指令 SETB 来置位以启 动计数器/定时器运行,用指令 CLR 来关闭定时/计数器的工作。 图 3.5 计数器 3.4 中断 中断响应可以分为以下几个步骤:1、保护断点,即保存下一将要执行的指 令的地址,就是把这个地址送入堆栈。2、寻找中断入口,根据 5 个不同的中断 源所产生的中断,查找 5 个不同的入口地址。以上工作是由计算机自动完成的, 与编程者无关。在这 5 个入口地址处存放有中断处理程序(这是程序编写时放在 那儿的,如果没把中断程序放在那儿,就错了,中断程序就不能被执行到)。 21 - 3、执行中断处理程序。4、中断返回:执行完中断指令后,就从中断处返回到主 程序,继续执行。 外部中断请求源:即外中断 0 和 1,经由外部引脚引入的,在单片机上有两 个引脚,名称为 INT0、INT1,也就是 P3.2、P3.3 这两个引脚。在内部的 TCON 中 有四位是与外中断有关的。IT0:INT0 触发方式控制位,可由软件进和置位和复 位,IT0=0,INT0 为低电平触发方式,IT0=1,INT0 为负跳变触发方式。这两种 方式的差异将在以后再谈。IE0:INT0 中断请求标志位。当有外部的中断请求时, 这位就会置 1(这由硬件来完成),在 CPU 响应中断后,由硬件将 IE0 清 0。IT1、IE1 的用途和 IT0、IE0 相同。(2)内部中断请求源 TF0:定时器 T0 的 溢出中断标记,当 T0 计数产生溢出时,由硬件置位 TF0。当 CPU 响应中断后,再 由硬件将 TF0 清 0。TF1:与 TF0 类似。TI、RI:串行口发送、接收中断,在串口 中再讲解。2、中断允许寄存器 IE 在 MCS51 中断系统中,中断的允许或禁止是 由片内可进行位寻址的 8 位中断允许寄存器 IE 来控制的。16 其中 EA 是总开关,如果它等于 0,则所有中断都不允许。ES 串行口中断允 许 ET1 定时器 1 中断允许 EX1 外中断 1 中断允许。ET0定时器 0 中断允许 EX0 外中断 0 中断允许。 中断有关的特殊功能寄存器、中断入口、顺序查询逻辑电路等组成,包括 5 个中断请求源,4 个用于中断控制的寄存器 IE、IP、ECON 和 SCON 来控制中断、 中断的开、关和各种中断源的优先级确定。 3.5 本章小结 基于单片机的红外线脉搏测量系统功能的实现是依靠软硬件结合设计来完成 的,硬件的主要功能是完成对光电传感器的控制、对数据的采集、处理,以及 LED 的显示。而软件的实现对信号得处理、削抖,对数据的分离、定时、计数最 后实现正确的数码显示。整个设计过程都禀着充分利用单片机的内部资源的原则 进行。本章在介绍整体原则和设计思想后,对各个子环节进行了详细的分析和阐 述,将各部分的功能和实现方案都清楚地表达出来了,最后附上一些程序以更好 的进行解释设计思路。 22 - 第 4 章 脉搏自动测量系统调试 4.1 脉搏信号采集、处理的调试 脉搏波是低频、微弱的生理信号,必需滤波和放大,以满足采集的要求。动脉 脉搏信号频率基本限制在 0.120Hz 以内,为了去除高频干扰,尤其是 50Hz 的工 频干扰,我们设计了一个一阶 RC 低通滤波器,其截止频率为 45Hz。对放大器电路, 要求运放具有较高的输入阻抗,低输入失调电压,小的漂移。采用 TL072(双动放) ,可以较好地满足要求。A/D 转换器要求输入信号是单极性的(05V),我们将 TL072 的另一个放大器用作加法器,对放大后的信号作直流校正,以满足极性要求。 另外采样频率确定为 125Hz。波峰是这样确定的:首先设定门限。在每一数据 段 512 个样本数据中,寻找最大值 Max,定义门限 t=0.8Max。如果某点满足下面两 个条件,则认为此点为波峰。17 此点及前后各 5 点,共 11 个样本均值大于门限 t。 此点为 11 个样本点中的局部最大值。确定了波峰,就可按上面的公式计算出 脉率。实际应用表明,此算法是简单而实用的。 4.2 单片机系统定时器/计数器程序的调试 这部分调试过程中遇到问题就是关于中断的理解不够清楚什么时候中断,程 序怎么运行不清楚,导致调试了很长时间。中断有关的特殊功能寄存器、中断入 口、顺序查询逻辑电路等组成,包括 5 个中断请求源,4 个用于中断控制的寄存 器 IE、IP、ECON 和 SCON 来控制中断、中断的开、关和各种中断源的优先级确定 应该足够的认识理解。 五个中断源的自然优先级与中断服务入口地址外中断 0:0003H 定时器 0:000BH 外中断 1:0013H 定时器 1:001BH 串口 :0023H 它们的自然优先级由 高到低排列。 中断程序完成后,一定要执行一条 RETI 指令,执行这条指令后,CPU 将会把 堆栈中保存着的地址取出,送回 PC,那么程序就会从主程序的中断处继续往下执 行了。注意:CPU 所做的保护工作是很有限的,只保护了一个地址,而其它的所 有东西都不保护,所以如果你在主程序中用到了如 A、PSW 等,在中断程序中又 23 - 要用它们,还要保证回到主程序后这里面的数据还是没执行中断以前的数据,就 得自己保护起来。 定时器与计数器初始值的设定也应该足够的理解。我在这部分调试的时候定 时部分采用了一段程序如下: LED: MOV TH1,#00H MOV TL1,#00H MOV 50H,#20 MOV 51H,#30 MOV TH0,#3CH MOV TL0,#0B0H MOV TMOD,#51H SETB EA SETB ET0 SETB TR0 SETB TR1 L3:JBC TF0,L4 SJMP L3 L4:MOV TH0,#3CH MOV TL0,#0B0H DJNZ 50H,L3 MOV 50H,#20 DJNZ 51H,L3 MOV 51H,#30 由于在定时部分缺少了把 51H 再次付给初值 30 导致定时不正常,因为这部 分是个循环语句,如果不给他再次付给初值 30 程序执行过程就会,每调用一次 30 减少 1,直到为零,而后不给付初值就会变成负数直到 255 溢出。所以定时时 间就会很长。18 4.3 脉搏信号数码显示电路的调试 本部分花费很长时间,开始硬件电路设计有问题,对单片机的 P0 口没有深 刻的理解,P0 口做驱动没有接上拉电阻。原图如下: 24 - 图 4-1 错误的数码显示 导致信号不能正确的输出,加上连线比较多,硬件电路比较杂乱。一开始调 试没有多少经验,以为只是软件的问题,改程序好几天没有效果。于是开始怀疑 硬件电路的设计。结果发现 P0 口与 P1,P2 口不同,内部没有接上拉电阻,不能 直接驱动。19 于是决定重新设计电路。74HC244 用了三个浪费资源,一个就能驱动多个数 码管。而数码显示部分可以用集成的共阴管。这样数码显示部分的电路就比较简 单,连线也省了好多。电路图如下: 图 4-2 缓冲器驱动的数码显示 采用的动态驱动的方式。在这部分调试过程中,试验了多种显示方法比如用移位 寄存器驱动。穿行输入并行输出,只占用了单片机 6 个管脚就能实现输出。 25 - 图 4-3 移位寄存器驱动的数码显示 无论是哪种方法都是动态显示,发现这种显示方法硬件比较节省,软件实现 起来想对于静态显示比较复杂,并且占用 CPU 比较多,所以要看情况决定选择 哪种方式。在程序设计与调试的时候采取如下进程。先用简单的程序判断 CPU 是否工作。比如付给管脚数值看看各个管脚的输出是否正常。注意 P0 口要接上 拉电阻才能正确的输出。检查数码管能否正常的工作,先让他每一位都能正确的 输出,显示。让他们先能够静态的显示一个数字。而后在复杂一起显示。20 4.4 本章小结 通过对脉搏信号的采集与调试,以及对单片机系统数码显示程序的调试,实 现了脉搏的正确的测量显示,能正确的输出结果。对于搭建硬件系统以及软件的 调试有了足够的理解和认识。硬件是整个系统的最基础的部分,所以它必须保证 足够的正确。深入的了解各个元器件的性能是搭建硬件系统的前提。本系统在搭 建的过程中曾犯了致命的错误,而本人没有注意到就进行了软件的调试,以至花 费了很大的精力。 26 - 结 论 本实验能够实现脉搏的自动测量和实时显示的功能要求,能够较为准确地测 量数据。实验电路简单,占用的空间比较小,满足了便携要求,能够较为方便的 为用户及时提供自己的心率数据。消除干扰是本课题系统设计中需要重点解决的 问题是关系到测量准确性、精度。 (1)对于环境光干扰,可以通过软件去暗光方法和改进探头结来消除。 (2)对于心率不齐,可以通过检波程序进行取舍采集的峰峰值来消除。 (3)对于电源工频干扰,采用工频整数倍采样频率进行消除。 (4)对于一般性电磁干扰,采用高阻抗、输入以提高信噪比、低通滤波来 削除高频来实现。 目前主要在以下几个方面做的还不够理想: 传感器部分受外界环境影响较大由于脉搏波是一种以低频成分为主的生理信 号,不像心电信号中有一个频率相对比较高的 QRS 波群,如之受生理状态、个 体差异和传感检测手段等因索的形响脉搏波信号在形态上往往差异很大而且常常 伴随着比较大的基线漂移和噪声干扰如何对脉搏波进行有效的处理,准确识别 脉搏波以正确划分脉搏波周期,并在相应周期内提取脉搏波峰峰值。 软件设计方面:加强抗干扰的算法。 滑动平均值法:采用先进先出的循环队列作为测量数据缓冲器,其长度固定为 L,每 进行一次新的采样,把测量结果放入队尾,而扔掉队首的数据,再将新队列的算术平 均值作为输入数据。此方案大大提高了系统的响应速度,但是受到脉冲干扰的采样 数据会平均到结果上去从而降低了精度。 防脉冲干扰平均值法:在读入 L 个采样数据后先滤去其中的最大值和最小值, 再将剩下数据的平均值作为输入数据,这样就大大提高了系统精度和稳定性。实际 设计上中,可以将上述两种算法结合起来,既有效地抑制了干扰信号,保证了系统精

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论