华中科技大学生命科学与技术学院医学仪器设计课程设计报告-1-数字心率计设计摘要:心率测量是现代日常生活中一个很常见的问题,本论文从生活实际出发,设计出了一个一个基于单片机技术的可以迅速准确测量出心率的数字心率计。首先,我们把待测信号经过放大整形;然后把信号送入单片机的定时计数器里进行计数,获得频率值;最后把测得的频率数值送入显示电路里进行显示。本文从心率计的原理出发,介绍了基于单片机的数字心率计的设计方案,选择了实现系统的各种电路元器件,主要对硬件电路进行了仿真。关键词:单片机心率计计数器TheHeartRateMeterDesignX.Zhang(BME0801)J.Zheng(BME0801)Abstract:Nowadaysitiscommonforpeopletomeasureheartrateindailylife.Thisthesisisasinglechipmicyocoheartratemeasuresystem.Wecanmeasureourheartrateeasilywiththissystem.Theworkingprocedureisasfollowing.First,wesendthesignalcollectedwiththesensortoamplifyingcircuit.Thentothewaveshapingcircuit.ThentheSCMcontrolsthedisplayunittoshowtheheartratemeasuredtous.HardwaredesignpartcontainsSignalExtractionCircuit,SignalAmplificationCircuit,SCMcontrolDisplayCircuit.Keywords:SCMHeartRateMeterCounter1.引言1.1问题的提出华中科技大学生命科学与技术学院医学仪器设计课程设计报告-2-现代生活中越来越多的人遇到心脏疾病问题,心率的测量在日常生活中也变得很普遍,而如何简单快速的进行心率测量成了我们考虑的课题。1.2设计目的本课题从生活实际出发,设计出了基于8051单片机的简易心率测量和显示系统。2.系统设计与原理2.1结构设计与分析[1]图表1整体电路结构分析:本设计包括信号提取电路,信号初级放大电路,低通滤波电路,比较整形电路,单片机控制电路,显示电路构成。采用正弦波作为输入信号来进行仿真测试。2.2单元设计与分析华中科技大学生命科学与技术学院医学仪器设计课程设计报告-3-图表2信号放大电路和低通滤波电路分析:信号放大电路选择NE5532运放做放大器,其中初级放大倍数为R2/R1=10倍,低通滤波电路3db截止频率为4HZ,同时具有将信号放大2倍的作用。图表3比较整形电路分析:比较整形电路选择741做比较器,参考电压为1v。华中科技大学生命科学与技术学院医学仪器设计课程设计报告-4-图表4单片机控制电路分析:本系统选用AT89C51单片机作为控制核心。图表5显示电路分析:显示电路采用7SEG-MPX4-CA作为显示器件,P2口输出位选信号,P0口输出字形信号。2.3接口设计与分析(1)P2口输出位选信号,因为位选信号需要高电平,故在P2口P2.0-P2.3位后加上7404非门。(2)P0口输出字形码,因为共阳极显示器低电平输入有效,故在P0口加上下拉电阻。(3)P3.7/T1口作为整形后信号的输入端,计数器。华中科技大学生命科学与技术学院医学仪器设计课程设计报告-5-3.设计结果与数据3.1单元电路调试(1)1.1HZ信号输入电路图表61.1HZ信号初级放大图表71.1HZ信号通过低通滤波华中科技大学生命科学与技术学院医学仪器设计课程设计报告-6-图表81.1HZ信号比较整形图表9显示心率为66华中科技大学生命科学与技术学院医学仪器设计课程设计报告-7-(2)50HZ信号输入图表10低通滤波器对工频有效抑制3.2系统联调图表11系统联调结果华中科技大学生命科学与技术学院医学仪器设计课程设计报告-8-3.3数据分析仿真时输入信号为1.1HZ,理论显示数据为66,实际显示数据为66,显示正确。4.结论与心得4.1设计结论本设计基于51单片机,信号放大,滤波,整形,显示均到达要求。4.2心得本系统在仿真测试中显示正确,是经过多次调试与修改的结果。由于单片机采用T0定时中断,T1计数,在实际调试时,定时时间越长,延时越长,故实际定时并非60s,经过多次调试,定时45.5s,正好可以显示60s时的计数值。如果做出实际电路,定时时间也需要做相应的修改参考文献[1]康华光.电子技术基础模拟部分[M].5版,北京:高等教育出版社,2006:418-419.[2]胡健.单片机原理及接口技术教程[M].北京:机械工业出版社,2004:171-175.附件(电路图、程序清单、任务分工)附件一:电路图华中科技大学生命科学与技术学院医学仪器设计课程设计报告-9-附件二:程序清单#includereg52.h#includeintrins.h#defineucharunsignedchar#defineuintunsignedintucharseg_du[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//数码管的段选uchardbuf[4]={0,0,0,0};//用来装显示数据的空数组uintcount;uintcou,cou1;voiddelay(void)//延时函数用于数码管动态扫描{uchari;for(i=0;i20;i++);}voiddisplay()//数码管显示函数{P2=0xfe;P0=seg_du[dbuf[3]];delay();P0=0xff;P2=0xfd;P0=seg_du[dbuf[2]];delay();P0=0xff;P2=0xfb;P0=seg_du[dbuf[1]];delay();P0=0xff;P2=0xf7;华中科技大学生命科学与技术学院医学仪器设计课程设计报告-10-P0=seg_du[dbuf[0]];delay();P0=0xff;}voidtimer0(void)interrupt1//定时器中断,用与定时计数{count++;if(count==910)//定时45.5s,{count=0;//将定时标志清零TR1=0;//关闭计数器cou1=TL1-6;//将小于250次脉冲的计数加上dbuf[3]=(cou*250+cou1)/1000;dbuf[2]=((cou*250+cou1)%1000)/100;dbuf[1]=((cou*250+cou1)%100)/10;dbuf[0]=(cou*250+cou1)%10;//显示处理函数cou=0;//计数器清零TL1=6;//打开计数器中断TR1=1;//开启计数器,使之工作}}voidtime1(void)interrupt3//计数器中断,用于计数{cou++;}voidtime0_init()//定时器0初始化{TMOD=0x61;//设置定时器0,和计数器1的模式TH0=(65536-50000)/256;TL0=(65536-50000)%256;//定时器的初值,用于中断一次计时250usET0=1;//开定时器0中断TR0=1;//开定时器0}华中科技大学生命科学与技术学院医学仪器设计课程设计报告-11-voidtime1_init()//计数器1初始化{TH1=6;TL1=6;//装载计数器的初值ET1=1;//开计数器1中断TR1=1;//开计数器1EA=1;//开总中断}voidmain(){count=0;time0_init();time1_init();while(1){display();}}