电子信息工程专业毕业论文基于51单片机的数字心率计的设计.docx

上传人:b****5 文档编号:11873892 上传时间:2023-04-08 格式:DOCX 页数:31 大小:426.47KB
下载 相关 举报
电子信息工程专业毕业论文基于51单片机的数字心率计的设计.docx_第1页
第1页 / 共31页
电子信息工程专业毕业论文基于51单片机的数字心率计的设计.docx_第2页
第2页 / 共31页
电子信息工程专业毕业论文基于51单片机的数字心率计的设计.docx_第3页
第3页 / 共31页
电子信息工程专业毕业论文基于51单片机的数字心率计的设计.docx_第4页
第4页 / 共31页
电子信息工程专业毕业论文基于51单片机的数字心率计的设计.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

电子信息工程专业毕业论文基于51单片机的数字心率计的设计.docx

《电子信息工程专业毕业论文基于51单片机的数字心率计的设计.docx》由会员分享,可在线阅读,更多相关《电子信息工程专业毕业论文基于51单片机的数字心率计的设计.docx(31页珍藏版)》请在冰豆网上搜索。

电子信息工程专业毕业论文基于51单片机的数字心率计的设计.docx

电子信息工程专业毕业论文基于51单片机的数字心率计的设计

数字心率计的设计

摘要:

本文是基于51单片机数字心率计的设计,采用了红外对管传感器和光电转换原理进一步实现对心率的检测。

心率计通过感知手指内的微弱波动来接收信号,可以避免人工听诊器所带来不必要的麻烦。

心率传感器采样脉搏信号,采用AT89S51单片机作为控制器,心率传感器输出方波传入单片机,单片机每接收一个脉冲波形,数码管就计数一次。

心率次数超限时用蜂鸣器报警。

三极管加大功率,驱动器件工作。

这样就实现了心率计数的功能,进一步达到了检测疾病的目的。

关键词:

AT89S51单片机、心率计数器、LM358P

DESINGOFDIGITALHEARATRATEMETER

Abstract:

Thispaperisthedesignof51single-chipdigitalratemeterbasedontheinfraredtube,sensorandphotoelectricconversionprincipletodetectheartrate.Heartratemetertoreceivesignalsthroughtheweakfluctuationinthefingerofperception,soastoavoidunnecessarytroublecausedbytheartificialstethoscope.Aheartratesensorsamplingpulsesignal,usesAT89S51astheMCU,aheartratesensoroutputFangBoincomingMCU,MCUeachreceivesapulsewaveform,digitaltubecountingtime.Thenumberofbeatsoverrunwithbuzzeralarm.Increasepowertriode,drivetowork.Soastorealizetheheartratecountingfunctions,furthercandetectdiseasespurpose.

Keywords:

Heartcounter、AT89S51、LM358P

 

1引言

随着社会的发展,人们的生活节奏越来越快了,面对越来越繁忙的工作,人们并不能像以前那样去做定期的体检啦。

事实上我们身体承受的压力越来越大啦,相比以前其实我们的身体需要更多的关注。

身体是否健康在很多方面都能体现出来。

一个人的心率值基本能反映出他心脏的健康状况,心脏是我们身体中最重要的器官之一,它为我们提供源动力。

所以我们要时刻理解他的状态。

由于我们不能定时的去体检,所以我们需要一个操作简单,准确率高的仪器来帮助我们。

从脉搏波中提取人体的生理病理信息作为临床诊断和治疗的依据,历来都受到中外医学界的重视。

几乎世界上所有的民族都用过“摸脉”作为诊断疾病的手段。

脉搏波所呈现出的形态(波形)、强度(波幅)、速率(波速)和节律(周期)等方面的综合信息,在很大程度上反映出人体心血管系统中许多生理病理的血流特征,因此对心率波采集和处理具有很高的医学价值和应用前景。

脉搏波所呈现出来的形态、强度、速率和节律等方面的综合信息,能反映出人体心血管系统中许多生理疾病的血流特征。

本系统采用AT89S51单片机为核心而制作的一种实用型心率测量仪。

采用红外对管脉心率感器作为传感器对人体的脉搏心率警醒数据采集。

得到的信号送入AT89S51单片机进行处理。

单片机将采集到的脉搏心率在LCD1602上实时显示出来,同时还设置了心率测量仪的上下限报警电路。

2系统方案选择与论证

2.1任务

基于单片机的心率测量仪设计,采用传感器,量脉搏的跳动,出微弱的信号,入放大器中放大;后通过滤波器滤除干扰信号后,将形整形为方波或脉冲信号;后经过倍频器增加信号的频率,输入计数器中计数,通过定时器控制计数的时间,后得出一分钟内脉搏次数即为心率。

计数器计数值输入到显示器中显示[3]。

2.2心率计的选用

心率计大体分为压电式和红外传感器式的,在各方面俩者各有利弊,在做论文之前,通过资料的了解,感觉红外的在应用上比较方便与快捷,所以选用了红外心率计的设计。

随着心脏的跳动,在人体组织内半透明度也随之改变。

当血液流到人体组织内时,人体内的半透明度会发生改变随之减小。

当血液回流到心脏时,人体组织内的半透明度会增大。

手指尖和耳垂的组织是最薄的,所以在这两个部位这种现象尤为明显。

心率计将发光二极管的红外线照射到上述部位,并用另一侧的红外光电管进行接收转化为电信号。

此信号的频率与人体心脏的跳动成正比,将它转换成脉冲进行显示,就能达到显示心率的目的[1]。

2.3各个电路的选择

根据题目的要求系统模块可以基本划分为:

脉搏传感器部分、单片机处理电路部分及显示电路部分。

为实现各模块的功能,分别对所需器件进行了挑选。

2.3.1脉搏传感器部分

传感器又称为换能器、变换器等。

脉搏传感器是脉搏检测系统中重要的组成部分,其基本功能是将切脉压力和桡动脉搏动压力这样一些物理量(非电量)转换成为便于测量的电量。

脉搏传感器的精度、灵敏度、抗干扰能力及安装方式决定了脉搏测量精度,因此其选型对整个设计具有决定性的作用。

本设计中,采用红外对管脉搏传感器,红外对管传感器价格低廉可以采集人体手指微弱的脉搏信号,再进行放大,模拟信号输出,输出同步于脉搏波动的脉冲信号,脉搏波动一次输出一正脉冲。

可用于心率检测[4]。

2.3.2单片机选择

在单片机的选择方面,51单片机是INTEL公司生产的。

它具有结构简单,价格便宜,易于开发的特点。

通用型,有总线扩展,有较强的位处理功能,有全双工异步串行通信口。

而我们接触到的单片机大多数为8051和80c51,通过资料的查询与阅读发现80c51已将处在淘汰的阶段了,相对于c51现在s51才是市场上新的宠儿。

89s51比89c51有着更高的性能而价格方面则没有变化;在编程方面89s51能够直接改写存储器里的程序而不需要把芯片从工作环境中剥离,这一点对于我们这些还不能熟练运用的学生来说是非常易用的功能;在频率方面s51具有更高的频率,从而比c51具有更快的计算速度;s51还具有双工UART串行通道、内部集成看门狗计时器、双数据指示器、电源关闭标识等功能;在安全方面,s51具有全新的加密算法,这是s51更有效的保护知识产权不被侵犯。

2.3.3显示部分

通过对显示器的观察和了解,最终采用LCD1602液晶显示器,LCD1602在显示数字和字母上比较方便;在控制上比较简单;而且成本相对较低。

2.3.4系统各模块的最终方案

根据以上分析,结合器件和设备等因素,确定如下方案:

1.采用AT89S51单片机作为控制器,分别对输入、显示、信号的处理和控制。

2传感器部分采用红外对管脉搏传感器,该器件结构简单、可靠性高、价格低。

3.显示用LCD1602液晶显示实时脉搏数和蜂鸣器报警上下限数值。

3系统简述

如图3-1所示本系统由心率传感电路、单片机AT89S51、LCD及一些外围器件组成。

系统的框图结构[7]。

 

 

图3-1系统结构图

 

4本系统核心器件简介

4.1AT89S51单片机

AT89S51是一个低功耗高性能CMOS8位单片机片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器器件采用ATMEL公司的高密度、非易失性存储技术制造兼容标准MCS-51指令系统及80C51引脚结构芯片内集成了通用8位中央处理器和ISPFlash存储单元功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案[9]。

AT89S51系列单片机是宏晶科技推出的新一代超强抗干扰、高速、低功耗的单片机,指令代码与传统8051单片机完全兼容。

MCS-51的主要特点为:

1.CPU为8位;

2.片内带振荡器,频率范围为1.2~12MHz;

3.片内带128字节的数据存储器;(RAM)

4.片内带4KB的Flash程序存储器;(ROM)

5.程序存储器的寻址空间为64KB;(需要扩展ROM)

6.片外数据存储器的寻址空间为64KB;(需要扩展RAM)

7.128位(16字节)用户位寻址空间;(在128个字节中)

8.18个字节特殊功能寄存器SFR(MCS—52子系列为21个);

9.4个8位的并行I/O接口:

P0、P1、P2、P3;

10.2个16位定时器/计数器T0、T1;(MCS-52子系列为3个,T2)

11.2个优先级别的5个中断源;(高、低2个)

12.1个全双工的串行I/O接口,可多机通信;

13.片内采用单总线结构;

14.有较强的位处理能力;

图4-1DIP引脚图

89S51有40个引脚

引脚按其功能可分为如下3类:

1.源及时钟引脚—-VCC、VSS;XTAL1、XTAL2;

2.控制引脚—-RST/VPD、ALE/PROG、PSEN、和EA/VPP;

3.I/O口引脚——P0、P1、P2、P3,为4个8位I/O口。

4.1.1电源引脚

VSS(20脚):

接地,0V参考点。

VCC(40脚):

5V电源。

4.1.2外接晶体引脚

XTAL1(19脚):

接外部晶体振荡器的一端。

当使用芯片内部时钟时,此脚用于外接石英晶体振荡器和微调电容;当使用外部时钟时,对于HMOS单片机,此引脚接地;对于CMOS单片机,此引脚作为外部振荡信号的输入端。

XTAL2(18脚):

接外部晶体振荡器的另一端,当使用芯片内部时钟时,此脚用于外接石英晶体振荡器和微调电容。

当使用外部时钟时,对于HMOS单片机,此引脚接外部振荡源;对于CMOS单片机,此引脚悬空不接。

89C51晶体振荡器频率可在6MHZ~40MHZ之间选择,常选6MHz或12MHz的石英晶体。

电容的值没有严格要求,但其取值对振荡器的频率输出的稳定性、大小、振荡电路起振速度稍有影响,C1、C2可在20pF~100pF之间选择。

当外接晶体振荡器时,电容可选30pF±10pF;外接陶瓷振荡器时,电容可选40pF±10pF。

4.1.3控制信号或与其它电源复用引脚

(1)

(9脚):

复位端。

当输入的复位信号持续2个以上机器周期(12个晶体振荡周期)高电平即为有效,用于完成单片机的复位初始化操作。

正常工作时,此脚电平应≤0.5V。

在VCC发生故障、降低到电平规定值掉电期间,此引脚可接备用电源VPD(电源范围5V±0.5V),由VPD向内部RAM供电,以保持内部RAM中的数据。

(2)

(30脚):

地址锁存使能。

ALE(AddressLatchEnable);PROG(Program)

为CPU访问外部程序存储器或外部数据存储器提供地址锁存信号,将低8位地址锁存在片外的地址锁存器中。

引脚第二功能,对片内Flash编程,为编程脉冲输入端。

(3)

(29脚):

(ProgrammerSavingENable),外部程序存储器读选通信号。

在读外部程序存储器时有效(低电平),以实现外部程序存储器单元的读操作。

在每个机器周期中、当

有效时,程序存储器的内容被送上P0口(数据总线)

(4)

(31脚):

(EnableAddress/VoltagePulseofProgramming)

访问程序存储控制信号。

=“0”时,表示读外部程序存储器。

只读取外部的程序存储器中的内容,读取的地址范围为0000H~FFFFH(64KB),片内的4KBFlash程序存储器不起作用。

=“1”时,表示对程序存储器的读操作是从内部程序存储器开始,并可延至外部程序存储器。

在PC值不超出0FFFH(即不超出片内4KBFlash存储器的地址范围)时,单片机读片内程序存储器(4KB)中的程序,但当PC值超出0FFFH(即超出片内4KBFlash地址范围)时,将自动转向读取片外60KB(1000H-FFFFH)程序存储器空间中的程序。

对于EPROM(或FLASH)型单片机,在EPROM编程期间,此引脚需加12.75V或21V的编程电压。

4.2复位电路

4.2.1单片机复位电路

图4-2单片机复位电路图

如图4-2所示时钟电路工作后,在REST管脚上加两个机器周期的高电平,芯片内部开始进行初始复位。

4.2.2按键电路

图4-3测试复位电路图

如图4-3所示单片机程序里通过检测该口,判断是否有按键按下,如按下开始计数工作,如一直未按则一直在此等待。

4.2.3振荡电路

如图4-4所示本设计晶振选择频率为12MHz,电容选择30pF。

经计算得单片机工作机器周期为:

12×(1÷12M)=1us。

图4-4振荡电路图

4.2.4液晶电路

1602液晶用于实时显示心率测量结果。

其主要参数为:

显示容量32个字符,芯片工作电压(4.5-5.5V),各管脚的功能表1所示

表4-1LCD1602管脚功能介绍表

引脚图

符号

状态

功能

1

VSS

电源地

2

Vdd

电源+5V

3

V0

对比度控制端

4

RS

输入

寄存器选择

5

R/W

输入

读、写操作

6

E

输入

使能信号

7

DB0

三态

数据总线(LSB)

8

DB1

三态

数据总线

9

DB2

三态

数据总线

10

DB3

三态

数据总线

11

DB4

三态

数据总线

12

DB5

三态

数据总线

13

DB6

三态

数据总线

14

DB7

三态

数据总线(MSB)

15

LEDA

输入

背光+5V

16

LEDK

输入

背光地

LCD1602控制指令

1.清屏指令

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

0

0

0

0

1

功能:

<1>清除液晶显示器,即将DDRAM的内容全部填入"空白"的ASCII码20H;

  <2>光标归位,即将光标撤回液晶显示屏的左上方;

   <3>将地址计数器(AC)的值设为0。

2.显示开关控制

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

0

1

D

C

B

功能:

设置显示,光标使能和闪烁使能,关

其中:

D为显示使能:

1为开,0为关;

C为光标使能:

1为开,0为关

D为闪烁使能:

1为开,0为关

3.光标,画面移动

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

0

0

S/C

R/L

*

*

功能:

光标,画面移动,DDRAM中内容不变

其中:

S/C=1,画面向右移动一位

S/C=0,光标向右移动一位

R/L=1:

右移;R/L=0:

左移

4.功能设置:

RS

R/W

DB7

DB6

DB5

DB4

DB3

DB2

DB1

DB0

0

0

0

0

1

DL

N

F

*

*

功能:

工作方式设置

其中:

DL=1,8位并口传输;DL=0四位串口传输;

N=1,双行显示;N=0,单行显示

1602LCD的一般初始化过程

1.延时15mS

2.写指令38H

3.写指令08H:

显示关闭

4.写指令01H:

显示清屏

5.写指令06H:

显示光标移动设置

6.写指令0CH:

显示开及光标设置

4.3LM358P放大器

LM358P里面包括有两个高增益、独立的、内部频率补偿的双运放,适用于电压范围很宽的单电源,而且也适用于双电源工作方式,它的应用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运放的地方使用[2]。

图4-5LM358P的引脚图

358的引脚功能;

1.8脚是正电源;

2.4脚是负电源(双电源工作时)或地(单电源工作时);

3.1、2、3脚是一个运放通道,1脚是输出端,2脚是反相输出端,3脚是同相输入端;

4.5、6、7脚为另一运放通道,7脚是输出端,6脚是反相输出端,5脚是同相输入端;

358的特点;

1.内部频率补偿 

2.低输入偏流 

3.低输入失调电压和失调电流 

4.共模输入电压范围宽,包括接地 

5.差模输入电压范围宽,等于电源电压范围 

6.直流电压增益高(约100dB)  

7.单位增益频带宽(约1MHz)  

8.电源电压范围宽:

单电源(3—30V) ;双电源(±1.5 一±15V) 

9.低功耗电流,适合于电池供电  

10.输出电压摆幅大(0 至Vcc-1.5V)

 

5程序设计

在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。

把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。

应用系统的程序由包含多个模块的主程序和各种子程序组成。

各程序模块都要完成一个明确的任务,实现某个具体的功能,在具体需要时调用相应的模块即可。

如图5-1所示这里采用顺序结构,通过对按键的扫描,判断要实现什么功能。

N

 

Y

 

Y

 

N

 

图5-1程序流程

 

 

N

 

Y

 

图5-2程序流程

 

图5-3程序流程

 

N

 

Y

 

图5-4程序流程

6软件的调试

在软件调试方面我用的是美国KeilSoftware公司出品的KeilC51,是51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。

KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。

另外重要的一点,KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

通过keil的检测就确保了程序的正确性和功能的顺利实现。

7结束语

脉搏检测中关键技术是单片机设置与传感器输出的信号提取问题,本文设计系统模拟电路简单,由AT89S51芯片实现脉搏信号采集,信号处理,脉搏计数等功能,因此体积小,功耗低,系统稳定性高。

本系统可实现脉搏次数的实时存储并可实现与脉搏次数报警,因此可作为简单医院脉搏测量仪。

通过这次课程设计,加强了我动手、思考和解决问题的能力。

本人觉得做课程设计同时也是对课本知识的巩固和加强,平时看课本时,有时问题老是弄不懂,做完设计,那些问题就迎刃而解了。

而且还可以记住很多东西。

比如单片机管脚用途,平时看课本,这次看了,下次就忘了,主要是因为没有动手实践过吧!

认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。

在内容设计方面,比较深入的学习了单片机方面的知识,补充了自己知识上的不足,更重要的是给自己找到了一个新的发展方向。

不积跬步,无以至千里;不积小流,无以成江海。

这次的设计为让我的学到的东西定会在我以后的人生中起到非凡的作用。

参考文献

[1]刘云丽,徐可欣等.微功耗光电式脉搏测量仪[J].电子测量技术.2005.第二期

[2]李世馨.模拟电子技术基础[M].高等教育出版社.2001.123

[3]朱国富,廖明涛,王博亮.袖珍式脉搏波测量仪[J].电子技术应用.1998.第一期

[4]欧阳俊.基于BL-410的指端脉搏波采集系统应用研究[J].2004.第11卷第二期

[5]程咏梅,夏雅琴,尚岚.人体脉搏波信号检测系统[J].北京生物医学工程.2006.第25卷

[6]任为民.电子技术基础课程设计[M].中央广播电视大学出版社.1997年5月第1版

[7]张毅坤.单片微型计算机原理及应用[M].西安电子科技大学出版社.1998.9第1版

[8]刘文,杨欣,张铠麟.基于AT89C2051单片机的指脉检测系统的研究[J].医疗装备.2005

[9]朱月秀.单片机原理与应用[M].科学出版社.2004.2

[10]韩文波.光电式脉搏波监测系统.长春光学精密机械学院学报[J].1999.第22卷第4期

谢辞

在这次课程设计的过程中,我的指导老师马惠铖老师给予了我很大的帮助,在设计的初期我遇到了比较大的麻烦,可以说毫无头绪一度对论文失去的信心。

多亏马老师提供了相关的资料,对我的课程设计作品给予了指导和支持。

使我顺利圆满的完成了此次课称设计。

在此,向马老师表示衷心的感谢!

同时,也要感谢一起做设计的同学们。

是他们在我遇到问题时,及时的给与我提示与帮助才使我少走了很多弯路。

最后还要感谢学院提供场地等设施,使我的设计得以顺利完成。

古人云:

预则立,不预则废。

祖先曾经教导我们:

一年之计在于春,一日之计在于晨。

作为即将走向社会的我们又何尝不是如此?

一个没有规划的人生,就像一场没有球门的足球赛,满场乱踢;一个没有规划的人生,就像一叶在茫茫大海上漫无目标的小舟,随波飘荡。

在我们即将走向社会的时候,我们必须对自己的职业生涯进行规划。

罗素曾说:

选择职业就是选择你自己的将来。

因此我们要针对社会需要,结合自身的情况及早做好相应准备,为我们走向社会打下坚实的基础。

俗话说:

磨刀不误砍柴功。

为适应社会需要,促进自我发展,我们除了学好本专业外,还应辅修相关专业知识,积极参加社会实践活动,培养工作能力,努力提高综合素质,同时努力培养特长,形成自身竞争优势。

最后,再次感谢学院给了我这次机会,以及学院的各位老师和许多的朋友、同学在各个方面给予了我很多的帮助和支持,让我坚持到了最后,谢谢你们!

附录1程序清单

#include

#include

#defineuintunsignedint

#defineucharunsignedchar

#defineulongunsignedlong

#defineLCD_DATAP0

sbitLCD_RS=P2^5;

sbitLCD_RW=P2^6;

sbitLCD_E=P2^7;

sbitXintiao=P1^0;

sbitspeaker=P2^4;

voiddelay5ms(void);//误差0us

voidLCD_WriteData(ucharLCD_1602_DATA);/********LCD1602数据写入***********/

voidLCD_WriteCom(ucharLCD_1602_COM);/********LCD1602命令写入***********/

voidlcd_1602_word(ucharAdress_Com,ucharNum_Adat,uchar*Adress_Data);/*1602字符显示函数,变量依次为字符显示首地址,显示字符长度,所显示的字符*/

voidInitLcd();

voidTim_Init();

ucharXi

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

当前位置:首页 > 党团工作 > 其它

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

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