版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 脉搏检测器设计与制作摘要:脉搏波所呈现出来的形态、强度、速率和节律等方面的综合信息,能反映出人体心血管系统中许多生理疾病的血流特征。本系统采用AT89S52单片机为核心而制作的一种实用型脉搏测量仪。采用红外发射和接收二极管作为传感器对人体的脉搏心率警醒数据采集。得到的信号经过整形和放大后送入AT89S52单片机进行处理。单片机将采集到的脉搏心率在LCD液晶显示器上实时显示出来,同时还设置了脉搏测量仪的上下限报警电路。本文首先描述本设计的整体思路,然后介绍各个部分设计中的细节问题,最后提出一些完善本设计的改进意见。关键字:脉搏计单片机AT89S52人体脉搏信号实时显示目录TOC o 1-5 h
2、 z HYPERLINK l bookmark6 系统方案选择与论证3 HYPERLINK l bookmark8 任务3 HYPERLINK l bookmark10 要求3 HYPERLINK l bookmark12 1.3系统基本方案3 HYPERLINK l bookmark14 各部分电路的方案选择及论证3系统各模块的最终方案5 HYPERLINK l bookmark16 系统硬件设计6 HYPERLINK l bookmark18 信号采集整形部分设计6 HYPERLINK l bookmark20 矩阵键盘的设计7 HYPERLINK l bookmark22 液晶显电路7
3、HYPERLINK l bookmark24 3系统软件设计8 HYPERLINK l bookmark26 系统主程序的设计8脉搏波动频率测量子程序的设计9 HYPERLINK l bookmark28 键盘扫描子程序12 HYPERLINK l bookmark30 4.调试与分析13 HYPERLINK l bookmark32 5.收获与体会13附录1(硬件电路原理图):14附录2(主要程序):141.系统方案选择与论证1.1任务设计并制作一个脉搏检测器1.2要求(1)、通过脉搏传感器采样脉搏信号,设计脉搏波检测电路,通过示波器显示出来(2)、将整形后的脉冲波送入单片机,采用单片机构成
4、脉搏检测仪,要求实时显示脉率变化,脉率超限时用蜂鸣器报警,报警范围可以通过键盘设定。1.3系统基本方案根据题目的要求系统模块可以基本划分为:脉搏传感器部分、信号放大整形电路部分、单片机处理电路部分及显示电路部分。为实现各模块的功能,分别做了几种不同的设计方案病进行了论证各部分电路的方案选择及论证(1)脉搏传感器部分传感器又称为换能器、变换器等。脉搏传感器是脉搏检测系统中重要的组成部分,其基本功能是将切脉压力和桡动脉搏动压力这样一些物理量(非电量)转换成为便于测量的电量。脉搏传感器的精度、灵敏度、抗干扰能力及安装方式决定了脉搏测量精度,因此其选型对整个设计具有决定性的作用。目前,脉搏信号的测量方
5、式主要有:1、光电脉搏波传感器。血管不受压力时,血流均匀,反射光也比较均匀,故传感器无脉搏信号输出;当血管受压血液不流动时,传感器也无输出信号;只有当血管受到挤压,血管中的血液断续流动时,反射光也随之变化,这时传感器输出脉搏信号,达到了测量脉搏的作用。这种传感器的特点是结构简单、可靠性高、抗干扰能力强,主要用于测量脉搏的跳动次数。人体不同部位的脉搏波波形存在差异,光电脉搏波传感器不适合用于提取不同部位的脉搏波信号。2、力传感器测量。其测量原理是,将测力传感器的受力端压在人体桡动脉处,模仿人的指头。这种方式通常采用压阻式传感器,它具有抗干扰能力强的特点,但由于动脉血管产生的力很小,故量程小,抗冲
6、击力不强。3、脉搏信号还表现为皮肤振动,因此可以用加速度传感器进行检测,其特点是结构简单、体积小、波形测量精度较高。本设计中,采用第一种脉搏传感器,即广电脉搏波传感器。(2)信号放大整形电路部分脉搏传感器出来的电压信号较弱,一般在毫伏级,需要对其进行放大。所以,设计信号放大电路,将脉搏传感器出来的信号进行放大,使之成为一个幅值适当的信号,便于后续电路的处理。由于本设计对于脉搏波的整形要求比较低,只需要将每个脉搏波整形成为一个标准的方波,送入单片机中进行计数,即可。所以这部分电路采用了比较简单的方法,只需用6个反向器对从传感器得到的信号进行放大和整形就可以的了。(3)单片机选择本设计作为一个简单
7、脉搏测量仪,最后需给出脉搏波动频率。以单片机作为信息处理中心,通过对单片机进行编程,完成信号输入检测、信息分析处理及信息显示。1、AVR单片机AVR单片机是ATMEL公司生产的单片机。高速度(50ns)、低功耗,硬件应用Harward结构,具有预取指令功能,使得指令可以在一个时钟周期内执行,而MSC-51要12个时钟周期执行一条指令。AVR单片机如LPC2131等。2、凌阳单片机凌阳是台湾凌阳公司推出的单片机,具有高速度、低价、可靠、实用、体积小、功耗低和简单易学等特点,如SPCE061等。3、51单片机51单片机是INTEL公司生产的。它具有结构简单,价格便宜,易于开发的特点。通用型,有总线
8、扩展,有较强的位处理功能,有全双工异步串行通信口。但是其功能相对较少,访问外部数据有瓶颈,作电压范围窄。本设计中,单片机只需要对脉搏信号的波动频率进行测量、计算和显示,对单片机的要求不是很高。而对51单片机,本人比较熟悉,所以,本设计中选择51单片机作为信息处理中心。在51系列单片机中,AT89系列单片机是美国ATMEL公司推出的一种新型高性能低价位、低电压低功耗的8位CMOS微型计算机。AT89S52就是其中一款,它可以完全满足本设计的设计要求,而且,AT89S52的价格较低。键盘与显示部分根据题目要求,设计出来的系统是可以设定报警的范围的。对键盘和显示部分采用以下方案:米用液晶显示屏和通用
9、矩阵键盘。液晶显示屏(LCD)具有功耗小、轻薄短小无辐射危险,平面直角显示以及影象稳定不闪烁,可视面积大,画面效果好,抗干扰能力强,并可灵活的现实多种状态。根据以上论述,51单片机资源丰富,根据需要,我们选用方案一。1.3.2系统各模块的最终方案根据以上分析,结合器件和设备等因素,确定如下方案:采用AT89S52单片机作为控制器,分别对输入、显示、信号的处理控制。传感器部分米用光电脉搏传感器,该器件结构简单、可靠性高、抗干扰能力强信号的处理采用六个反向器对其进行放大和整形显示用LCD液晶显示实时脉搏数和报警上下限数值。系统的基本框图如下图所示。脉搏传感|器信号放大电路单片机处理电二.路ZX键盘
10、输入电路2.系统硬件设计信号采集整形部分设计本部分由传感器部分和整形电路部分组成。传感器由红外线发射二极管和接收而以机关组成,测量原理如下:由于手指放在光的传递路径中,血管中血液的饱和度的变化将引起光的传递强度变化,此变化和心跳的节拍相对应,因此红外接收二极管的电流也跟着心跳的节拍改变,使得红外接收二极管输出与心跳节拍相对应的脉冲信号。该脉冲信号经过U7U5,R3R5,Cl、C2等组成的低通放大器放大,U4、R6、R7、C3组成的放大器进一步放大后,送给由U3、U2、RV1、R8等组成的施密特触发器整形后输出,作为单片机的外部中断信号。电路中的可变电阻RVl用来调整施密特触发器的灵敏度,RVl
11、越小,该触发器就会越灵敏。矩阵键盘的设计由于控制键位较多,方便程序设计,硬件安全可靠,我们设计4X4矩阵键盘,与单片机P1口相连,电路如图2.2所示。OO11OO11OO*IOO图2.2矩阵键盘电路液晶显电路我们用单片机P0口作为1602的数据传输口,P2.0为数据命令选择端、P2.1读写、P2.2使能端。硬件电路如图2.3所示。图2.3液晶硬件电路图3系统软件设计3.1系统主程序的设计系统主程序控制单片机系统按预定的操作方式运行,是单片机系统程序的框架。系统主程序流程图如图:图系统主程序流程图上电后,首先进行整机初始化处理。主程序的初始化模块主要完成仪器硬件、软件的初态设置,单片机内专用寄存
12、器的设定,单片机工作方式及各端口的工作状态的规定。整机初始化结束后,检测P3.2口的状态,如果检测到上升沿,则进入脉搏波动频率测量子程序,测得脉搏波动频率之后,送到LCD显示单元进行显示。3.2脉搏波动频率测量子程序的设计本设计中对脉搏频率的测量采用周期测量法。可将单片机内定时/计数器T0定为16位定时器,对内部机器周期计数,即方式控制字为#01H。定时器的开关由程序根据P3.2口上的状态进行控制,检测到上升沿时开TO计数,当紧接着的另一个上升沿被检测到时关TO计数。TO中的计数值为nx,则被测脉搏信号周期错误!未找到引用源。(对于12MHz晶振,Ts=l“s),每分钟跳动次数错误!未找到引用
13、源。考虑到脉搏的频率很低,大约为1HZ左右,而16位定时/计数器的最高计数值为65535,这样定时/计数器将发生溢出,且最后脉搏波动频率的计算涉及到双字节除法,编程较复杂。为此,采用定时器中断方式,即在一个脉搏周期内,隔一段时间T1,T1即为中断周期,且T1ji-R5rcwr-BUZ1R8ED.附录2(主要程序):主程序:unsignedcharkey_value;/存放键盘返回unsignedcharkey_flag=O;/定义有键按下的标志unsignedchari,j,t,m,DispBuf10=M,a,i,B,o,:,0,0,0,0;unsignedintn,mb,w,f;voiddi
14、splay_times();#includereg52.h#includelcd.c#includehardware.c#includeuser1.h#includekey.csbitP3_0=P3A0;voidmain()EA=0;sys_init();LCD_Initial();delay_20ms(10);LCD_Write(0,0 x01);/清屏LCD_Print(5,0,Welcome!);delay_20ms(10);LCD_Print(0,0,MaiBoCeLiang);LCD_Print(0,1,eControl!);delay_20ms(10);LCD_Write(0,0
15、x01);/清屏LCD_Print(0,0,LSTC);LCD_Print(0,1,byLWL&MZL);delay_20ms(10);LCD_Write(0,0 x01);/清屏LCD_Print(0,0,XuanZeFanWei:);LCD_Print(0,1,MoRenwei:50120);while(1)unsignedintw=0;key_value=kbscan();if(key_flag=1)key_command(key_value);w=1;if(w=1)break;LCD_Write(0,0 x01);/清屏delay_20ms(10);displayHL();LCD_Pr
16、int(0,1,Testing.);delay_20ms(20);LCD_Write(0,0 x01);/清屏displayHL();TMOD=0 x01;/定时器T0工作于方式1TH0=0 xec;TL0=0 x78;/T0定时时间为5msIE=0 x83;/开中断IT0=1;/外部中断0为边沿触发方式TR0=1;/开定时器T0for(;)/脉搏指示灯控制if(P3_0=0)delay_20ms(50);P3_0=1;/useralarm();external0()interrupt0/外部中断服务程序P3_0=0;/点亮指示灯if(n=0)mb=0;elsemb=12000/n;/计算每分
17、钟脉搏数f=mb;DispBuf8=mb%10+0 x30;取个位数mb=mb/10;DispBuf7=mb%10+0 x30;取十位数DispBuf=mb/10+0 x30;取百位数LCD_Print(3,1,DispBuf);n=0;Timer0()interrupt1/定时中断服务程序TH0=0 xec;TL0=0 x78;n+;if(n=2000)/10秒钟测不到心率,n复位n=0;键盘扫描程序:#include#includeunsignedcharkey_value;unsignedcharkey_flag;/7,8,9,EUP/4,5,6,Ddown/1,2,3,CSET/0到F
18、的16个键植/A.,0,F+/-,Bcharcodetab44=.,1,4,7,0,2,5,8,F,3,6,9,B,C,D,E;OKvoiddelay(unsignedchara)unsignedchari;while(a-)for(i=100;i0;i-);unsignedcharkbscan()/键盘扫描unsignedcharhang,lie,key;key_flag=0;P1=0 x0f;if(P1!=0 x0f)delay(10);if(P1!=0 x0f)key_flag=1;P1=0 x0f;switch(P1&0 x0f)case0 x0e:lie=0;break;case0
19、x0d:lie=1;break;case0 x0b:lie=2;break;case0 x07:lie=3;break;P1=0 xf0;switch(P1&0 xf0)case0 xe0:hang=0;break;case0 xd0:hang=1;break;case0 xb0:hang=2;break;case0 x70:hang=3;break;P1=0 x0f;while(P1!=0 x0f);key=tabhanglie;return(key);elsereturn(key_value);voidsetmaibo(void)unsignedchari;LCD_Write(0,1);G
20、otoXY(0,0);Print(H_Maibo:);for(i=0;i3;i+)key_flag=0;while(key_flag=0)key_value=kbscan();while(1)if(key_value!=B&key_value!=C&key_value!=D&key_value!=E&key_value!=F&key_value!=.)break;elsekey_value=kbscan();get_hti=key_value;LCD_Write(1,key_value+0 x30);GotoXY(0,1);Print(L_Maibo:);for(i=0;i2;i+)key_f
21、lag=0;while(key_flag=0)key_value=kbscan();while(1)if(key_value!=B&key_value!=C&key_value!=D&key_value!=E&key_value!=F&key_value!=.)break;elsekey_value=kbscan();get_lti=key_value;LCD_Write(1,key_value+0 x30);while(1)key_value=kbscan();if(key_value=C)break;mh=get_ht0*100+get_ht1*10+get_ht2;ml=get_lt0*
22、10+get_lt1;LCD_Write(0,0 x01);GotoXY(0,0);Print(SetSucess!);delay_20ms(50);LCD_Write(0,0 x01);voidkey_command(unsignedcharkey_value)switch(key_value)caseC:setmaibo();break;default:break;液晶显示程序:#include/1%J、*J*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1*1
23、*1*1*1*1*1*1*1*1*1*1*1*1*/PortDefinitions*sbitLcdRs=P2A0;sbitLcdRw=卩2人1;/P0=0 x80,P1=0 x90,P2=0 xA0,P3=0 xB0数据端口sbitLcdEn=P2A2;sfrDBPort=0 x80;voidlcd_delay(unsignedchart)unsignedchari,j;for(i=0;it;i+)/内部等待函数for(j=0;j100;j+);TxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxT
24、xTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxvoidLCD_Wait(void)/读忙状态LcdRs=0;LcdRw=1;_nop_();LcdEn=1;_nop_();LcdEn=0;/向LCDTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTx#defineLCD_DATA1/Data#defineLCD_CLEAR_SCREEN0 x01/清屏#defineLCD_HO
25、MING0 x02/光标返回原点写入命令或数据#defineLCD_COMMAND0/CommandvoidLCD_Write(bitstyle,unsignedcharinput)/写数据1/命令0LcdEn=0;LcdRs=style;LcdRw=0;_nop_();DBPort=input;_nop_();LcdEn=1;_nop_();lcd_delay(10);LcdEn=0;_nop_();LCD_Wait();/.7J,!II*t*i9t1*/设置显示模式*#defineLCD_SHOW0 x04/显示开#defineLCD_HIDE0 x00/显示关#defineLCD_CUR
26、SOR0 x02/显示光标#defineLCD_NO_CURSOR0 x00/无光标#defineLCD_FLASH0 x01/光标闪动#defineLCD_NO_FLASH0 x00/光标不闪动voidLCD_SetDisplay(unsignedcharDisplayMode)LCD_Write(LCD_COMMAND,0 x08|DisplayMode);/设置输入模式TxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxT
27、xTxTxTxTx#defineLCD_AC_UP#defineLCD_AC_DOWN#defineLCD_MOVE#defineLCD_NO_MOVE0 x020 x00/default0 x01/画面可平移0 x00/defaultvoidLCD_SetInput(unsignedcharInputMode)LCD_Write(LCD_COMMAND,0 x04|InputMode);/初始化LCD*voidLCD_Initial(void)/初始化LCDLCD_Write(0,0 x38);LCD_Write(0,0 x38);/8位数据端口,2行显示,5*7点阵lcd_delay(300);LCD_SetDisplay(LCD_SHOW|LCD_NO_CURSOR);/显示模式LCD_Write(0,0 x01);/清屏LCD_SetInput(LCD_AC_UP|LCD_NO_MOVE);/TxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 细胞凋亡与骨关节炎
- 基于设计思维教学法的小学语文项目式学习理念与实践模型
- 护理硕士研究生心理资本潜在剖面分析及与情绪幸福感的关系
- 国际志愿者日活动策划
- 湖南省张家界市桑植县2024-2025学年七年级上学期道德与法治期末试卷(含答案)
- 第十八章 平行四边形 评估测试卷(含答案)2024-2025学年数学人教版八年级下册
- 二零二五年度房产共同债权债务处理离婚协议3篇
- 贵州盛华职业学院《影视栏目包装专题设计》2023-2024学年第一学期期末试卷
- 贵州黔南科技学院《设计原理》2023-2024学年第一学期期末试卷
- 新疆巴音郭楞蒙古自治州(2024年-2025年小学六年级语文)人教版课后作业(下学期)试卷及答案
- 英法核动力装置
- GB/T 41837-2022温泉服务温泉水质要求
- YS/T 79-2006硬质合金焊接刀片
- 考研考博-英语-山东师范大学押题密卷附带答案详解篇
- 实用性阅读与交流任务群设计思路与教学建议
- 中医诊疗器具清洗消毒(医院感染防控专家课堂培训课件)
- 通风设施标准
- 药厂生产车间现场管理-PPT课件
- 轴与孔标准公差表
- 防火门施工方案
- 人教PEP版2022-2023六年级英语上册期末试卷及答案(含听力材料)
评论
0/150
提交评论