基于单片机的脉搏测量仪设计毕业论文.doc
基于单片机的脉搏测量仪设计目 录摘要IABSTRACTII引言1第一章 概述21.1 选题的背景和意义 21.2 脉搏测量仪的发展与应用 3第二章 总体方案的论证与设计52.1主控模块的选型和论证 52.2显示模块的选型和论证 52.3传感器的选型和论证 52.4系统整体设计概述 6第三章 系统硬件电路设计83.1主控模块 83.1.1 STC89C52单片机主要特性 83.1.2 STC89C52单片机的中断系统 123.1.3单片机最小系统设计 123.2 LCD液晶显示器简介 123.2.1液晶原理介绍 133.2.2液晶模块简介 133.2.3液晶显示部分与STC89C52的接口 143.3信号采集电路设计 163.3.1传感器简介 163.3.2滤波电路 173.3.3放大整形电路 17第四章 系统软件设计174.1系统软件总体设计 174.2程序设计原理 19第五章 系统调试215.1软件调试 215.2硬件调试 215.3调试结果 225.4误差分析 22结论24致谢25参考文献26附录27基于单片机的脉搏测量仪设计摘要: 脉搏测量仪在我们的日常生活中已经得到了非常广泛的应用,通过观测脉搏信号,可以对人体的健康进行检查,通常被用于保健中心和医院。为了提高脉搏测量仪的简便性和精确度,本课题设计了一种基于51单片机的脉搏测量仪。系统以STC89C52单片机为核心,以光电传感器利用单片机系统内部定时器来计算时间,由光电传感器感应产生信号,单片机通过对信号累加得到脉搏跳动次数,时间由定时器定时而得。系统运行中可以通过观察指示灯闪烁,若均匀闪烁说明测量值准确。系统停止运行时,能够显示总的脉搏次数和时间。经测试,系统工作正常,达到设计要求。本设计利用红外光电传感器产生脉冲信号,经过放大整形后,输入单片机内进行相应的控制,从而测量出一分钟内的脉搏跳动次数,快捷方便。系统可以供用户测量当时的脉搏次数,同时还可以设定上限次数和下限次数,当测量的范围超过设定的范围则驱动蜂鸣器报警提醒,除此外用户还可以设定每天闹钟提醒测量,时间可以自行设定,结果最终可以把采集到的脉搏信号显示在LCD1602上。关键词:STC89C52;脉搏测量仪;LCD显示器;光电传感器Design of pulse measuring instrument based on single chipAbstract:Pulse measurement apparatus has been widely used in our daily life. In order to improve the measurement apparatus is simple and accuracy, this paper designs a pulse measuring instrument based on 51 single chip microcomputer. System to STC89C52 microcontroller as the core, with photoelectric sensor, and calculates the internal timer SCM system, the signal from the photoelectric sensor, microcontroller based on the accumulated pulse beat frequency signal, by the time the timer. In the running of the system can be observed through the indicator lights out, if even flicker that accurate measuring value. The system stops running, can display the total pulse number and time. After testing, the system works normally, meet the design requirements.The design of the infrared photoelectric sensor generates a pulse signal, after plastic surgery to enlarge, the input of SCM within the corresponding control, which measured within a minute of the pulse beat frequency, fast and convenient. Through observing the pulse signal, can check the health of the body, usually used for health centres and hospitals. The system can be used for measuring the pulse number of users, but also can set the upper limit of the number of times and, when the range of the measurement range over the set of drive buzzer alarm, but users can also set the alarm clock to remind the daily measurement, time can be set, the results were finally able to pulse signal acquisition to display on the LCD1602.occurring. Keywords:STC89C52; photosensor; LCD display; Pulse measuring instrument37 引 言脉搏测量在有脉搏时遮挡光线,无脉搏时透光强,所采用的传感器是红外接收二极管和红外发射二极管。通过观测脉搏信号,可以对人体的健康进行检查,通常被用于保健中心和医院。系统可以供用户测量当时的脉搏次数,同时还可以设定上限次数和下限次数,当测量的范围超过设定的范围则驱动蜂鸣器报警提醒,除此外用户还可以设定每天闹钟提醒测量,时间可以自行设定1。从脉搏波中提取人体的生理病理信息作为临床诊断和治疗的依据,历来都受到中外医学界的重视。系统以STC89C52单片机为核心,以光电传感器利用单片机系统内部定时器来计算时间,由光电传感器感应产生信号,单片机通过对信号累加得到脉搏跳动次数,时间由定时器定时而得。系统运行中可以通过观察指示灯闪烁,若均匀闪烁说明测量值准确。几乎世界上所有的民族都用过“摸脉”作为诊断疾病的手段。脉搏波所呈现出的形态(波形)、强度(波幅)、速率(波速)和节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中许多生理病理的血流特征,但人体的生物信号多属于强噪声背景下的低频的弱信号, 脉搏波信号更是低频微弱的非电生理信号, 必需经过放大和后级滤波以满足采集的要求。第一章 概述1.1 选题的背景和意义脉搏携带有丰富的人体健康状况的信息,自公元三世纪我国最早的脉学专著脉经问世以来,脉学理论得到不断的发展和提高。在中医四诊(望、闻、问、切)中,脉诊占有非常重要的位置。脉诊是我国传统医学中最具特色的一项诊断方法,其历史悠久,内容丰富,是中医“整体观念”、“辨证论证”的基本精神的体现与应用。脉诊作为“绿色无创”诊断的手段和方法,得到了中外人士的关注。但由于中医是靠手指获取脉搏信息,虽然脉诊具有简便、无创、无痛的特点易为患者接受,然而在长期的医疗实践中也暴露出一些缺陷。首先,切脉单凭医生手指感觉辨别脉象的特征,受到感觉、经验和表述的限制,并且难免存在许多主观臆断因素,影响了对脉象判断的规范化;其次,这种用手指切脉的技巧很难掌握;再则,感知的脉象无法记录和保存影响了对脉象机理的研究。脉诊的这种定性化和主观性,大大影响了其精度与可行性,成为中医脉诊应用、发展和交流中的制约因素。为了将传统的中医药学发扬光大,促进脉诊的应用和发展,必须与现代科技相结合,实现更科学、客观的诊断1。医院的护士每天都要给住院的病人把脉记录病人每分钟脉搏数,方法是用手按在病人腕部的动脉上,根据脉搏的跳动进行计数。为了节省时间,一般不会作1分钟的测量,通常是测量10秒钟时间内心跳的数,再把结果乘以6即得到每分钟的心跳数,即使这样做还是比较费时,而且精度也不高。为了提高脉搏测量的精确与速度,多种脉搏测量仪被运用到医学上来,从而开辟了一条全新的医学诊断方法。早在1860年Vierordt 创建了第一台杠杆式脉搏描记仪,国内20世纪50年代初朱颜将脉搏仪引用到中医脉诊的客观化研究方面。此后随着机械及电子技术的发展,国内外在研制中医脉象仪方面进展很快,尤其是70年代中期,国内天津、上海、江西等地相继成立了跨学科的脉象研究协作组,多学科共同合作促使中医脉象研究工作进入了一个新的境界。脉象探头式样很多,有单部、三部、单点、多点、刚性接触式、软性接触式、气压式、硅杯式、液态汞、液态水、子母式等组成,脉象探头的主要原件有应变片、压电晶体、单晶硅、光敏元件、PVDF压电薄膜等,其中以单部单点应变片式为最广泛,不过近年来正在向三部多点式方向设计2。目前脉搏测量仪在多个领域被广泛应用,除了应用于医学领域,如无创心血管功能检测、妊高症检测、中医脉象、脉率检测等等,商业应用也不断拓展,如运动、健身器材中的心率测试都用到了技术先进的脉搏测量仪。1.2 脉搏测量仪的发展与应用随着科学技术的发展,脉搏测量技术也越来越先进,对脉搏的测量精度也越来越高,国内外先后研制了不同类型的脉搏测量仪,而其中关键是对脉搏传感器的研究。起初用于体育测量的脉搏测试集中在对接触式传感器的研究,利用此类传感器所研制的指脉、耳脉等测量仪各有其优缺点。指脉测量比较方便、简单,但因为手指上的汗腺较多,指夹常年使用,污染可能会使测量灵敏度下降:耳脉测量比较干净,传感器使用环境污染少,容易维护。但因耳脉较弱,尤其是当季节变化时,所测信号受环境温度影响明显,造成测量结果不准确。过去在医院临床监护和日常中老年保健中出现的日常监护仪器,如便携式电子血压计,可以完成脉搏的测量,但是这种便携式电子血压计利用微型气泵加压橡胶气囊,每次测量都需要一个加压和减压的过程,存在体积庞大、加减压过程会有不适、脉搏检测的精确度低等缺点。近年来国内外致力于开发无创非接触式的传感器,这类传感器的重要特征是测量的探测部分不侵入机体,不造成机体创伤,能够自动消除仪表自身系统的误差,测量精度高,通常在体外,尤其是在体表间接测量人体的生理和生化参数。其中光电式脉搏传感器是根据光电容积法制成的脉搏传感器,通过对手指末端透光度的监测,间接检测出脉搏信号。具有结构简单、无损伤、精度高、可重复使用等优点。通过光电式脉搏传感器所研制的脉搏测量仪已经应用到临床医学等各个方面并收到了理想效果。人体心室周期性的收缩和舒张导致主动脉的收缩和舒张,是血流压力以波的形式从主动脉根部开始沿着整个动脉系统传播,这种波成为脉搏波。从脉搏波中提取人体的心理病理信息作为临床诊断和治疗的依据,历来都受到中外医学界的重视。脉搏波所呈现出的形态(波形)、强度(波幅)、速率(波速)和节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中许多生理病理的血流特征,因此对脉搏波采集和处理具有很高的医学价值和应用前景。但人体的生物信号多属于强噪声背景下的低频的弱信号, 脉搏波信号更是低频微弱的非电生理信号,因此必需经过放大和后级滤波以满足采集的要求。第二章 总体方案的论证与设计2.1主控模块的选型和论证方案一:采用MSP430系列单片机,该单片机是TI公司1996年开始推向市场的一种16位超低功耗的混合信号处理器。其内部集成了很多模拟电路、数字电路和微处理器,提供强大的功能。不过该芯片昂贵不适合一般的设计开发3。方案二采用51系列的单片机,该单片机是一个高可靠性,超低价,无法解密,高性能的8位单片机,32个IO口,且STC系列的单片机可以在线编程、调试,方便地实现程序的下载与整机的调试。因此选用方案二中的51系列单片机作为主控芯片。2.2显示模块的选型和论证方案一:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较合适,如采用在显示数字显得太浪费,且价格也相对较高,所以不用此种作为显示。方案二:采用LED数码管动态扫描,LED数码管价格虽适中,对于显示数字也最合适,而且采用动态扫描法与单片机连接时,占用单片机口线少。但是由于数码管动态扫描需要借助74LS164移位寄存器进行移位,该芯片在电路调试时往往有很多障碍,所以不采用LED数码管作为显示。方案三:采用LCD液晶显示屏,液晶显示屏的显示功能强大,可显示大量文字,图形,显示多样,清晰可见,对于本设计而言一个LCD1602的液晶屏即可,价格也还能接受,需要的借口线较多,但会给调试带来诸多方便。所以本设计中方案三中的LCD1602液显示屏作为显示模块。2.3传感器的选型和论证方案一:采用压电传感器用来提取人的脉搏信号,压电传感器是利用某些电介质受力后产生的压电效应制成的传感器。所谓压电效应是指某些电介质在受到某一方向的外力作用而发生形变(包括弯曲和伸缩形变)时,由于内部电荷的极化现象,会在其表面产生电荷的现象。通过此现象可以提取出人的脉搏信号。方案二:采用光电传感器提取人体脉搏信号,授予手指组织可以分成皮肤、肌肉、骨骼等非血液组织和血液组织,其中非血液组织的光吸收量是恒定的,而在血液中,静脉血的搏动相对动脉血是十分微弱的,可以忽略,因此可以认为光透过手指后的变化仅由动脉血的充盈而引起,那么在恒定波长的光源的照射下,通过检测透过手指的光强将可以间接测量到人体的脉搏信号4。由于光电传感器较压电传感器容易在一般的地方可以买得到,因此这里选用光电传感器来提取人体脉搏信号。2.5系统整体设计概述系统总体设计由STC89C52、按键、LCD1602、光电传感器、时钟模块、运放等构成,如图2.1所示,系统设有四个按键,可以设置上下限脉搏数,当超过范围的时候单片机会驱动蜂鸣器发响,脉搏测量的时候需要人把手轻轻的按在光电传感器上面,由于人脉搏跳动的时候,血液的透光性不一样会导致接收器那边接收的信号强弱不一样,间接的把人脉搏信号传回,通过运放对其进行放大、整形后连接到单片机的IO口,单片机利用外部中断对其进行计数,最终换算成人一分钟脉搏的跳动次数,最终显示在液晶屏上。第三章 系统硬件电路设计3.1主控模块主控模块模块在整个系统中起着统筹的作用,需要检测键盘等各种参数,同时驱动液晶显示相关参数,在这里我们选用了51系列单片机中的STC89C52单片机作为系统的主控芯片。51系列单片机最初是由Intel 公司开发设计的,但后来Intel 公司把51 核的设计方案卖给了几家大的电子设计生产商,譬如 SST、Philip、Atmel 等大公司。因此市面上出现了各式各样的均以51 为内核的单片机6。这些各大电子生产商推出的单片机都兼容51 指令、并在51 的基础上扩展一些功能而内部结构是与51一致的。STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。STC89C52的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。STC89C52单片机的基本组成框图见图3.1所示。图3.1 STC89C52单片机结构图 3.1.1 STC89C52单片机主要特性1. 一个8 位的微处理器(CPU)。2. 片内数据存储器RAM(128B),用以存放可以读写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89 系列单片机最多提供1K 的RAM。3. 片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。但也有一些单片机内部不带ROM/EPROM,如8031,8032,80C31 等。目前单片机的发展趋势是将RAM 和ROM 都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。SST 公司推出的89 系列单片机分别集成了16K、32K、64K Flash 存储器,可供用户根据需要选用。4. 四个8 位并行IO 接口P0P3,每个口既可以用作输入,也可以用作输出。5. 两个定时器计数器,每个定时器计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。为方便设计串行通信,目前的52 系列单片机都会提供3 个16 位定时器/计数器。6. 五个中断源的中断控制系统。现在新推出的单片机都不只5 个中断源,例如SST89E58RD 就有9 个中断源。7. 一个全双工UART(通用异步接收发送器)的串行IO 口,用于实现单片机之间或单机与微机之间的串行通信。8. 片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。最高允许振荡频率为12MHz。SST89V58RD 最高允许振荡频率达40MHz,因而大大的提高了指令的执行速度。图3.2 STC89C52单片机管脚图STC89C52单片机管脚如图3.2所示,部分引脚说明:1时钟电路引脚XTAL1 和XTAL2:XTAL2(18 脚):接外部晶体和微调电容的一端;片内它是振荡电路反相放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时钟电路时,该引脚输入外部时钟脉冲。要检查振荡电路是否正常工作,可用示波器查看XTAL2 端是否有脉冲信号输出。XTAL1(19 脚):接外部晶体和微调电容的另一端;在片内它是振荡电路反相放大器的输入端。在采用外部时钟时,该引脚必须接地7。2控制信号引脚RST,ALE,PSEN 和EA:RST/VPD(9 脚):RST 是复位信号输入端,高电平有效。当此输入端保持备用电源的输入端。当主电源Vcc 发生故障,降低到低电平规定值时,将5V 电源自动两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。RST 引脚的第二功能是VPD,即接入RST 端,为RAM 提供备用电源,以保证存储在RAM 中的信息不丢失,从而合复位后能继续正常运行。ALE/PROG(30 脚):地址锁存允许信号端。当8051 上电正常工作后,ALE 引脚不断向外输出正脉冲信号,此频率为振荡器频率fOSC 的1/6。CPU 访问片外存储器时,ALE 输出信号作为锁存低8 位地址的控制信号。平时不访问片外存储器时,ALE 端也以振荡频率的1/6 固定输出正脉冲,因而ALE 信号可以用作对外输出时钟或定时信号。如果想确定8051/8031 芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出。如有脉冲信号输出,则8051/8031 基本上是好的。ALE 端的负载驱动能力为8 个LS 型TTL(低功耗甚高速TTL)负载。此引脚的第二功能PROG 在对片内带有4KB EPROM 的8751 编程写入(固化程序)时,作为编程脉冲输入端。PSEN(29 脚):程序存储允许输出信号端。在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引肢接EPROM 的OE 端(见后面几章任何一个小系统硬件图)。PSEN 端有效,即允许读出EPROMROM 中的指令码。PSEN 端同样可驱动8 个LS 型TTL 负载。要检查一个8051/8031 小系统上电后CPU 能否正常到EPROMROM 中读取指令码,也可用示波器看PSEN 端有无脉冲输出。如有则说明基本上工作正常。EA/Vpp(31 脚):外部程序存储器地址允许输入端/固化编程电压输入端。当EA 引脚接高电平时,CPU只访问片内EPROM/ROM并执行内部程序存储器中的指令,但当PC(程序计数器)的值超过0FFFH(对8751/8051 为4K)时,将自动转去执行片外程序存储器内的程序。当输入信号EA 引脚接低电平(接地)时,CPU 只访问外部EPROM/ROM 并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无片内ROM 的8031 或8032,需外扩EPROM,此时必须将EA 引脚接地。此引脚的第二功能是Vpp 是对8751 片内EPROM固化编程时,作为施加较高编程电压(一般12V21V)的输入端8。3输入/输出端口P0/P1/P2/P3:P0口(P0.0P0.7,3932 脚):P0口是一个漏极开路的8 位准双向I/O口。作为漏极开路的输出端口,每位能驱动8 个LS 型TTL 负载。当P0 口作为输入口使用时,应先向口锁存器(地址80H)写入全1,此时P0 口的全部引脚浮空,可作为高阻抗输入。作输入口使用时要先写1,这就是准双向口的含义。在CPU 访问片外存储器时,P0口分时提供低8 位地址和8 位数据的复用总线。在此期间,P0口内部上拉电阻有效。P1口(P1.0P1.7,18 脚):P1口是一个带内部上拉电阻的8 位准双向I/O口。P1口每位能驱动4 个LS 型TTL 负载。在P1口作为输入口使用时,应先向P1口锁存地址(90H)写入全1,此时P1口引脚由内部上拉电阻拉成高电平。P2口(P2.0P2.7,2128 脚):P2口是一个带内部上拉电阻的8 位准双向I/O口。P口每位能驱动4个LS 型TTL 负载。在访问片外EPROM/RAM 时,它输出高8 位地址。P3口(P3.0P3.7,1017 脚):P3口是一个带内部上拉电阻的8 位准双向I/O口。P3口每位能驱动4个LS型TTL负载。P3口与其它I/O 端口有很大的区别,它的每个引脚都有第二功能,如下:P3.0:(RXD)串行数据接收。P3.1:(RXD)串行数据发送。P3.2:(INT0#)外部中断0输入。P3.3:(INT1#)外部中断1输入。P3.4:(T0)定时/计数器0的外部计数输入。P3.5:(T1)定时/计数器1的外部计数输入。P3.6:(WR#)外部数据存储器写选通。P3.7:(RD#)外部数据存储器读选通。3.1.2 STC89C52单片机的中断系统STC89C52系列单片机的中断系统有5个中断源,2个优先级,可以实现二级中断服务嵌套。由片内特殊功能寄存器中的中断允许寄存器IE控制CPU是否响应中断请求;由中断优先级寄存器IP安排各中断源的优先级;同一优先级内各中断同时提出中断请求时,由内部的查询逻辑确定其响应次序。在单片机应用系统中,常常会有定时控制需求,如定时输出、定时检测、定时扫描等;也经常要对外部事件进行计数。STC89C52单片机内集成有两个可编程的定时/计数器:T0和T1,它们既可以工作于定时模式,也可以工作于外部事件计数模式,此外,T1还可以作为串行口的波特率发生器9。3.1.3单片机最小系统设计图3.3 单片机最小系统电路图 图3.3为单片机最小系统电路图,单片机最小系统有单片机、时钟电路、复位电路组成,时钟电路选用了12MHZ的晶振提供时钟,作用为给单片机提供一个时间基准,其中执行一条基本指令需要的时间为一个机器周期,单片机的复位电路,按下复位按键之后可以使单片机进入刚上电的起始状态。图中10K排阻为P0口的上拉电阻,由于P0口跟其他IO结构不一样为漏极开路的结构,因此要加上拉电阻才能正常使用。3.2 LCD液晶显示器简介由于本设计中要求显示界面显示一些参数,因此这里选用了LCD1602作为界面显示,可以把一些相关的参数进行显示。 3.2.1 液晶原理介绍液晶显示器(LCD)英文全称为Liquid Crystal Display,它一种是采用了液晶控制透光度技术来实现色彩的显示器。和CRT显示器相比,LCD的优点是很明显的。由于通过控制是否透光来控制亮和暗,当色彩不变时,液晶也保持不变,这样就无须考虑刷新率的问题。显示接口用来显示系统的状态,命令或采集的电压数据。本系统显示部分用的是LCD液晶模块,采用一个16×2的字符型液晶显示模块。 点阵图形式液晶由 M 行×N 列个显示单元组成,假设 LCD 显示屏有64行,每行有 128列,每 8列对应 1 个字节的 8 个位,即每行由 16 字节,共 16×8=128个点组成,屏上 64×16 个显示单元和显示 RAM 区 1024 个字节相对应,每一字节的内容和屏上相应位置的亮暗对应。一个字符由 6×8 或 8×8点阵组成,即要找到和屏上某几个位置对应的显示 RAM区的 8 个字节,并且要使每个字节的不同的位为1,其它的为0,为1的点亮,为0的点暗,这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了,可让控制器工作在文本方式,根据在LCD 上开始显示的行列号及每行的列数找出显示 RAM对应的地址,设立光标,在此送上该字符对应的代码即可。3.2.2液晶模块简介LCD1602液晶模块采用HD44780控制器,hd44780具有简单而功能较强的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用8位或4位并行传输两种方式,hd44780控制器由两个8位寄存器,指令寄存器(IR)和数据寄存器(DR)忙标志(BF),显示数RAM(DDRAM),字符发生器ROMA(CGOROM)字符发生器RAM(CGRAM),地址计数器RAM(AC)。IR用于寄存指令码,只能写入不能读出,DR用于寄存数据,数据由内部操作自动写入DDRAM和CGRAM,或者暂存从DDRAM和CGRAM读出的数据,BF为1时,液晶模块处于内部模式,不响应外部操作指令和接受数据,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系, CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM,LCD1602液晶模块的引脚图如图3.4所示。图3.4 LCD1602引脚图液晶寄存器选择控制如表3.1。表3.1寄存器选择控制RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据3.2.3液晶显示部分与STC89C52的接口 如图3.5所示。用STC89C52的P0口作为数据线,用P1.2、P1.1、P1.0分别作为LCD的EN、R/W、RS。其中EN是下降沿触发的片选信号,R/W是读写信号,RS是寄存器选择信号本模块设计要点如下:显示模块初始化:首先清屏,再设置接口数据位为8位,显示行数为1行,字型为5×7点阵,然后设置为整体显示,取消光标和字体闪烁,最后设置为正向增量方式且不移位10。向LCD的显示缓冲区中送字符,程序中采用2个字符数组,一个显示字符,另一个显示电压数据,要显示的字符或数据被送到相应的数组中,完成后再统一显示.首先取一个要显示的字符或数据送到LCD的显示缓冲区,程序延时2.5ms,判断是否够显示的个数,不够则地址加一取下一个要显示的字符或数据。图3.5 LCD1602与STC89C52的引脚连接图3.3信号采集电路设计此部分电路的功能是由传感器将脉搏信号转换为电信号,一般为几十毫伏,必须加以放大,以达到整形电路所需的电压,一般为几伏。放大后的信号波形是不规则的脉冲信号,因此必须加以滤波整形,整形电路的输出电压应满足计数器的要求。选择电路:所选放大整形电路框图如图3.8所示。图3.8放大整形电路框图3.4.1传感器简介传感器采用了红外光电转换器,作用是通过红外光照射人的手指的血脉流动情况,把脉搏跳动转换为电信号,其原理电路如图3.9所示。图3.9传感器信号调节原理电路如图3.9中,红外管VD采用ST188。用+5V电源供电,R1取150,R2取33k,当人把手指放在发光二极管和光电二极管之间的时候,光电二极管接收到的信号会随人脉搏强度的变化而变化11。3.4.2滤波电路图3.10放大滤波电路图3.10为脉搏计的放大滤波信号,由于脉搏信号输出的信号十分微弱,一般在uV级别,除此外输出的信号一般会伴随很大的噪声干扰,因此在这里用LM358搭建起一个放大和滤波电路。3.4.3放大整形电路经过放大滤波后的脉搏信号仍是不规则的脉冲信号,且有低频干扰,仍不满足计数器的要求,必须采用整形电路,这里选用了滞回电压比较器,如图3.11所示,其目的是为了提高抗干扰能力。集成运放采用了LM358,除此外LM358还接上了一个LED用作指示脉搏跳动的状态。图3.11波形整形电路第四章 系统软件设计4.1系统软件总体设计图4.1系统流程图主程序流程图如图4.1所示,单片机上电后先进行初始化,清楚一些参数的初值,然后等待用户按下对应的按键并进入对应的功能,当用户按下测量按键的时候流程如图4.1(c)所示,单片机通过定时15s测量人体的脉搏次数流程如图4.1(b)所示,然后再换算出对应的真实的脉搏次数再在液晶屏幕上显示流程如图4.1(a)所示,当用户按下设置脉搏范围设定按键后,单片机根据用户按下的按键进行增加或减少范围。首先先调用液晶自定义的字库,设置好DDRAM地址后在第一行显示,根据程序中的数据设置显示数据的首地址并设置循环量,在循环过程中不断的取字符代码直到终止,第二行的显示过程同一行的显示过程一样,两行显示完毕后便结束子程序,如图4.2所示15。图4.2 LCD1602初始化子函数流程图4.2程序设计原理软件任务分析和硬件电路设计结合进行,哪些功能由硬件完成,哪些任务由软件完成,在硬件电路设计基本定型后,也就基本上决定下来了。软件任务分析环节是为软件设计做一个总体规划。从软件的功能来看可分为两大类:一类是执行软件,它能完成各种实质性的功能,如测量,计算,显示,打印,输出控制和通信等,另一类是监控软件,它是专门用来协调各执行模块和操作者的关系,在系统软件中充当组织调度角色的软件。这两类软件的设计方法各有特色,执行软件的设计偏重算法效率,与硬件关系密切,千变万化。软件任务分析时,应将各执行模块一一列出,并为每一个执行模块进行功能定义和接口定义(输入输出定义)。在各执行模块进行定义时,将要牵扯到的数据结构和数据类型问题也一并规划好。各执行模块规划好后,就可以监控程序了。首先根据系统功能和键盘设置选择一种最适合的监控程序结构。相对来讲,执行模块任务明确单纯,比较容易编程,而监控程序较易出问题。这如同当一名操作工人比较容易,而当一个厂长就比较难了。软件任务分析的另一个内容是如何安排监控软件和各执行模块。整个系统软件可分为后台程序(背景程序)和前台程序。后台程序指主程序及其调用的子程序,这类程序对实时性要求不是太高,延误几十ms甚至几百ms也没关系,故通常将监控程序(键盘解释程序),显示程序和打印程序等与操作者打交道的程序放在后台程序中执行;而前台程序安排一些实时性要求较高的内容,如定时系统和外部中断(如掉电中断)。也可以将全部程序均安排在前台,后台程序为“使系统进入睡眠状态”,以利于系统节电和抗干扰。第五章 系统调试5.1软件调试基于单片机的脉搏计系统是多功能的数字型设计,所以对于它的程序也较为复杂,所以在编写程序和调试时出现了相对较多的问题。最后经过多次的模块子程序的修改,一步一步的完成,最终解决了软件。在软件的调试过程中主要遇到的问题如下:问题1:烧入程序后,LCD液晶显示闪动,而且亮度不均匀。解决:首先对调用的延时进行逐渐修改,可以解决显示闪动问题。其次,由于本作品使作动态扫描方式显示的数字,动态扫描很快,人的肉眼是无法看出,但是调用的显示程序时,如果不在反回时屏蔽掉最后的附值,则会出现很亮的现象,所以在显示的后面加了屏蔽子令,最后解决了此问题。问题2:当用户按下按键的时候,单片机读取的数值跟设定的数值不对。解决:重新检查矩阵键盘电路的连接,重新建立一个新的对应关系。5.2硬件调试基于单片机的脉搏计系统的电路较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便,而且电路的交线较多,对于各种锋利的引脚要注意处理,否则会刺破带有包皮的导线,则会对电路造成短路现象14。在本脉搏计的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:问题1:最开始的时候以为单片机IO口直接可以驱动蜂鸣器发声,后来调试的时候久久不能出声音(见附录C)。解决:经过查找相关资料,知道扬声器需要三极管来驱动,后来把三极管放大器加上系统便可以正常工作。问题2:开始的时候由于没想到脉搏信号十分微弱大概在uV级别,因此没有放大足够的倍数,单片机最后没有检测到脉搏的信号(见附录C)。解决:经过查找相关资料,确定脉搏信号的幅值范围后,增加放大器的放大倍数就解决问题。5.3调试结果1.放大倍数的增加 传感器的输出端经示波器观察有幅度很小的正弦波,但经整形输出后检测到的脉冲还是很弱,在确定电路没有问题的情况下,加强信号的放大倍数,调整电阻R23和R27的阻值。2.时钟的调试根据晶体振荡频率计算出内部定时器的基本参数,通过运行一段时间可通过秒表来校正后,看时间误差的量,以这个量为依据改变程序中的内部定时器基本参数,就可使时钟调准确。3.开机后无显示首先检查交流电源部分,有无交流,若无则可能保险管或变压器烧坏,如有继续查直流有无,如无则电源已烧坏,可更换解决。4.显示正常但经适当运动后测量,脉搏次数没有增加可能是前置放大级有问题,可采用更换的办法判断并排除。5.进人测量状态, 但测量值不稳定主要是光电传感器受到电磁波等干扰,其次是损坏或有虚焊。6.开机后显示不正常或按键失灵可查手指摆放的位置或按键电路,若无故障则是硬件损坏。经过一系列的问题查找后系统最终能正常工作,并完成所有的功能。5.4误差分析表5.1误差分析表实际的脉搏次数测量得出脉搏次数1测量得出脉搏次数2测量得出脉搏次数3测量得出脉搏次数4测量得出脉搏次数56564646365637270716969707676757574738180