基于光电式简易心率测量仪.docx

上传人:b****5 文档编号:6891497 上传时间:2023-01-12 格式:DOCX 页数:14 大小:166.36KB
下载 相关 举报
基于光电式简易心率测量仪.docx_第1页
第1页 / 共14页
基于光电式简易心率测量仪.docx_第2页
第2页 / 共14页
基于光电式简易心率测量仪.docx_第3页
第3页 / 共14页
基于光电式简易心率测量仪.docx_第4页
第4页 / 共14页
基于光电式简易心率测量仪.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

基于光电式简易心率测量仪.docx

《基于光电式简易心率测量仪.docx》由会员分享,可在线阅读,更多相关《基于光电式简易心率测量仪.docx(14页珍藏版)》请在冰豆网上搜索。

基于光电式简易心率测量仪.docx

基于光电式简易心率测量仪

 

《单片机原理与应用及C51程序设计》

课程设计

 

题目电子时钟设计

学院机电与汽车工程学院

班级13级汽服一班

姓名王守瑞

学号20137040119

摘要

单片机作为微型计算机的一个分支,产生于20世纪70年代,经过二三十年的发展,在各行各业中已经广泛应用。

心率是指单位时间内心脏跳动的次数,一般指每分钟的心跳次数,是临床常规检查的生理指标。

心率测量仪在我们的日常生活中已经得到了非常广泛的应用。

在医学上,通过测量人的心率,便可初步判断人的健康状况。

当心脏泵血时,血液的粘稠度会改变,使得皮肤的透光性发生改变,因此可以通过测量皮肤的透光性变化来间接测量心率。

而对于皮肤的透光性,可使用光电系统来测量,然后将测量得到的信号经过放大,滤波,AD转换后送入AT89C52单片机系统进行信号处理,信号显示与记录。

该系统具有方便、显示直观、功耗低等优点。

关键词:

AT89C52发光二极管放大器滤波器AD

1.设计任务

心率是身体体征的重要参数之一,心率的测量由以前的把脉到现在的科学仪器测量,发生了重大变化,古时把脉只有医生才能做到,而现在的测量仪器一般只有医疗机构才有。

本设计主要是开发一款便携、简易的心率测量仪,实现普通群众在足不出户的情况下测量心率的目的。

1.1功能要求

心率测量仪用LCD液晶显示器显示出实时的心率,并用按键来控制实现1分钟和3分钟的测试。

1.2工作原理

本设计采用单片机AT89C52为控制核心,实现心率测量仪的基本测量功能。

当手指放在红外发射二极管和接收三极管中间,随着心脏的跳动,血管中血液的流量将发生变换,红外接收三极管的电流也跟着改变,这就使红外接收三极管输出信号。

该信号经放大、滤波、整形后输出,输出的信号作为单片机外部中断信号。

单片机电路对输入的信号进行计算处理之后把结果送到LCD液晶显示器显示。

1.3整体设计框图

2.系统硬件设计

2.1AT89C52简介

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

AT89C52除了有AT89C51所有的定时/计数器0和定时/计数器1外,还增加了一个定时/计数器2。

AT89C52单片机引脚图

AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xC52相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

主要管脚有:

XTAL1(19脚)和XTAL2(18脚)为振荡器输入输出端口,外接12MHz晶振。

RST/Vpd(9脚)为复位输入端口,外接电阻电容组成的复位电路。

VCC(40脚)和VSS(20脚)为供电端口,分别接+5V电源的正负端。

P0-P3为可编程通用I/O脚,其功能用途由软件定义。

P0口:

是双向8位三态I/O口,也即地址/数据总线复用口。

在访问外部数据存储器或程序存储器时,可分时用作低8位地址线和8位数据线;在FlashROM编程时,P0口接收(输入)指令字节;而在验证程序时,P0口输出指令字节。

 

P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

 

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

在访问外部程序存储器或16位地址的外部数据存储器时,P2送出高8位地址数据。

在访问8位地址的外部数据存储器时,P2口输出P2锁存器的内容。

 

P3口:

P3口是一个带有内部上拉电阻的8位双向I/O口。

P3口能驱动4个LSTTL门电路。

在单片机中这8个引脚都有各自的第二功能,而在实际工作中,大多情况下都使用P3口的第二功能。

 

RST:

复位信号输入端。

要保持RST脚两个机器周期以上的高电平时间,才能使单片机复位。

ALE/PROG:

地址锁存允许信号。

PSEN:

外部程序存储器的读选通信号。

EA/VPP:

当EA保持低电平时,则在此期间外部程序存储(0000H-FFFFH),不管是否有内部程序存储器。

当EA端保持高电平时,此间CPU访问并执行内部程序存储器的指令。

2.1光源与传感器电路

将手指放在红外发射二极管和接收三极管中间,随着心脏的跳动,血管中血液的流量发生变换来采集信号。

P20与单片机P2.0引脚连接,控制LED的亮度。

2.2放大电路

放大器将LED采集来的信号进行放大、整形,传送到滤波器,由滤波器消除干扰,传送至单片机。

可通过查看示波器波形图检查电路是否出现问题。

2.3显示电路

显示电路是LCD和上拉电阻连接,由电源供电,D0-D7接单片机P0口,所以用上拉电阻拉至高电平。

2.4按键与指示灯电路

P21和P22分别与单片机P2.1和P2.2引脚连接,当开关S1按下时,指示灯D3点亮,进行1分钟测量。

当开关S2按下时,指示灯D2点亮,进行3分钟测量。

2.5硬件原理图

3.系统软件设计

3.1软件设计

系统软件采用模块化设计方法,每个功能由一个或多个函数实现,方便软件的调试,其中初始化主要完成1602的设置以及在1602屏幕上显示测试提示信息。

按键连接至单片机P2口,并且按键在常开状态时通过上拉电阻拉为高电平,所以在按下时,该引脚变为低电平。

3.2系统软件流程图

3.3C程序

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

//这三个引脚参考资料

sbitE=P2^7;//1602使能引脚

sbitRW=P2^6;//1602读写引脚

sbitRS=P2^5;//1602数据/命令选择引脚

sbitCS=P1^0;//ADC0831

sbitCLK=P1^1;

sbitDO=P1^2;

uintTimeOver=0;

voiddelay()

{

inti,j;

for(i=0;i<=100;i++)

for(j=0;j<=20;j++);

}

voidenable(uchardel)

{

P0=del;

RS=0;

RW=0;

E=0;

delay();

E=1;

delay();

}

voidwrite(uchardel)

{

P0=del;

RS=1;

RW=0;

E=0;

delay();

E=1;

delay();

}

voidL1602_init(void)

{

enable(0x01);

enable(0x38);

enable(0x0c);

enable(0x06);

enable(0xd0);

}

voidL1602_char(ucharhang,ucharlie,charsign)

{

uchara;

if(hang==1)a=0x80;

if(hang==2)a=0xc0;

a=a+lie-1;

enable(a);

write(sign);

}

voidL1602_uint(ucharhang,ucharlie,uintn)

{

L1602_char(hang,lie++,(n/1000)+'0');

L1602_char(hang,lie++,(n/100)%10+'0');

L1602_char(hang,lie++,(n/10)%10+'0');

L1602_char(hang,lie++,n%10+'0');

}

voidL1602_string(ucharhang,ucharlie,uchar*p)

{

uchara;

if(hang==1)a=0x80;

if(hang==2)a=0xc0;

a=a+lie-1;

enable(a);

while

(1)

{

if(*p=='\0')break;

write(*p);

p++;

}

}

ucharRead_ADC0831()//根据时序图写出的模拟数据输出

{

uchari,temp;

DO=1;

_nop_();

_nop_();

CS=0;

_nop_();

_nop_();

CLK=0;

_nop_();

_nop_();

CLK=1;

_nop_();

_nop_();

CLK=0;

_nop_();

_nop_();

CLK=1;

_nop_();

_nop_();

CLK=0;

_nop_();

_nop_();

for(i=0;i<8;i++)

{

CLK=1;

_nop_();

_nop_();

temp<<=1;

if(DO)

{

temp++;

}

CLK=0;

_nop_();

_nop_();

}

CS=1;

_nop_();

_nop_();

return(temp);

}

voidSet_Timer(ucharn)//50ms

{

TimeOver=n;

TMOD=0x01;

IE=0x82;

TH0=0x15;

TL0=0xA0;

TR0=1;

}

voidTime0_Int()interrupt1

{

TH0=0x15;

TL0=0xA0;

TimeOver--;//长度加1

}

voidTest_1min()

{

uintd1=0;

uintd2=0;

uintt;

ucharflag=0;

P2|=0X01;

Set_Timer(1200);

for(t=0;t<20;t++)

d1+=Read_ADC0831();

d1=d1/20;

t=0;

d2=Read_ADC0831();

if(d2>d1)

flag=1;

else

flag=0;

while(TimeOver)

{

d2=Read_ADC0831();

if(d2

flag=0;

else

{

if(flag==0)

t++;

flag=1;

}

}

TR0=0;

L1602_uint(2,8,t);

}

voidTest_3min()

{

uintd1=0;

uintd2=0;

uintt;

ucharflag=0;

P2|=0X01;

Set_Timer(3600);

for(t=0;t<20;t++)

d1+=Read_ADC0831();

d1=d1/20;

t=0;

d2=Read_ADC0831();

if(d2>d1)

flag=1;

else

flag=0;

while(TimeOver)

{

d2=Read_ADC0831();

if(d2

flag=0;

else

{

if(flag==0)

t++;

flag=1;

}

}

TR0=0;

L1602_uint(2,8,t);

}

voidTest_over()

{

P2=P2&0xfe;

L1602_string(1,1,"Testover");

}

voidTest()

{

if(!

(P2&0x02))

{

P2=P2|0x08;

L1602_string(1,1,"Mode:

1min");

Test_1min();

Test_over();

}

if(!

(P2&0x04))

{

P2=P2|0x10;

L1602_string(1,1,"Mode:

3min");

Test_3min();

Test_over();

}

}

voidMain()

{

P2=P2&0xfe;

L1602_init();

L1602_string(1,1,"BeginTest");

L1602_string(2,1,"Result:

");

while

(1)

{

Test();

P2=P2&(~0x18);

};

}

4.总结

本次所设计的测量系统实现简单、功能稳定、使用方便,应用广泛,具有实际意义。

由于时间比较短,同时掌握的知识有限,本次设计还存在很多不足,如程序不够简练,LCD显示部分不够完美等,同时此次设计的测量仪功能比较单一,没有如语音系统实现自动读出心跳次数等人性化功能,且在设计过程中使用的运放数量也较多,加大了电源管理的复杂度。

但我相信科技的进步势必会使测量仪的功能日益强大和完善,应用领域会不断扩大,会给我们的生活带来更多的方便和精彩。

为了更好的进行心率测量仪的设计,认真收集有关资料,并做相关的整理和阅读,为这次的设计做好充分的准备。

经过此次设计,我受益良多:

1.无论做什么事都应该事先做好充分的准备;2.了解了心率测量仪在国内外发展之迅速、应用领域之广、市场前景之大;3.对硬件设计和各模块的功能有了更深的了解,同时提高了动手能力;4.体会到坚持不懈的毅力对完成一件事情起着巨大的作用;5.体会到团队合作精神的重要性及相互讨论过程中的乐趣。

5.参考文献

[1]谢龙汉莫衍编著.Proteus电子电路设计及仿真.北京:

电子工业出版社,2012.1

[2]赵佩华眭碧霞主编.单片机原理及接口技术.北京:

机械工业出版社,2012.6

[3]谢维成杨加国主编.单片机原理与应用及C51程序设计.第二版.北京:

清华大学出版社,2012.10

[4]张元良王建军编著.单片机开发技术实例教程.北京:

机械工业出版社,2011.1

[5]张靖武周灵彬编著.单片机原理,应用与PROTEUS仿真.北京:

电子工业出版社,2010.1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 远程网络教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1