实用型脉搏心率、体温计设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2011—2012 学年第一学期
《单片机原理及接口技术》
课程设计报告
题目:实用型脉搏心率、体温计设计
专业:电子信息工程
班级: 09电信2班
姓名:尹兵
指导教师:周珍艮
成绩:
电气工程系
201 1年12 月24日
课程设计任务书
目录
摘要 (3)
ABSTRACT ............................................................................ 错误!未定义书签。
正文 (3)
1引言 (3)
2设计要求 (4)
2.1硬件电路部分 (4)
2.2程序设计 (4)
3方案设计 (4)
3.1总体设计 (4)
3.2系统硬件选择及模块分析 (4)
3.3软件部分 (11)
3.4硬件电路实现 (11)
3.5实物及测试图 ........................................................... 错误!未定义书签。
4系统测试分析 .. (12)
5结束语 (12)
参考文献................................................................................. 错误!未定义书签。
附录.. (13)
致谢................................................................................. 错误!未定义书签。
文献综述................................................................................. 错误!未定义书签。
参考文献.. (18)
实用型脉搏心率、体温计设计
摘要
随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本设计采用AT89S52作为核心控制器件,控制并接收和处理DS18B20传回的数据,把得到的温度值存储在指定单元等待显示;接着T1口接收到整形电路传过来的电压信号,遇到第一次下降沿启动T0计时器计时,遇到第二次下降沿关闭T0计数器,经处理后得到实际时间间隔,再经过单片机处理得到脉搏次数并存储在指定单元等待显示;最后AT89S52控制数码管先显示温度再显示脉搏次数;然后重复上述步骤。
经测试本设计可以正常显示体温,但也有不足之处。
关键词:AT89S52单片机;脉搏计;DS18B20;
正文
1引言
随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。
在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技术)中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术和脉搏测量技术,在我国各领域已经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的身体健康与自身的体温和脉搏息息相关。
本设计采用AT89S52作为核心控制器件,控制并接收和处理DS18B20传回的数据,把得到的温度值存储在指定单元等待显示;接着T1口接收到整形电路传过来的电压信号,遇到第一次下降沿启动T0计时器计时,遇到第二次下降沿关闭T0计数器,经处理后得到实际时间间隔,再经过单片机处理得到脉搏次数并存储在指定单元等待显示;最后AT89S52控制数码管先显示温度再显示脉搏次数具有极高的研究价值。
2设计要求
2.1 硬件电路部分
1)完成AT89S52最小系统焊接(晶振电路,上电复位电路等);
2)利用单片机I/O口方式控制数码管显示数据,驱动用74ls04;
3)完成脉搏波形采集电路的焊接;
2.2 程序设计
1)掌握单片机与四位数码管之间接口电路的设计方法及编程;
2)完成主程序的设计及对应的子程序设计;
3)完成总调试;
4)本设计最后显示“温度度数和脉搏次数”。
3方案设计
3.1 总体设计
总体设计框图如图3-1所示
图3-1系统电路框图
从理论上说,四位数码管可以显示0--F的数字和字母,只要段码输入合适就可以得到我们想要的结果。
由于所有位的段选码由一个I/O口控制,因此要使每位显示不同的字符,必须采用扫描显示方式,即每一时刻选通一个显示位。
同时段选控制I/O口输出要显示字符对应的段选码,使该位显示相应的字符。
显示一段时间后,再选通下一显示位。
特点:每一时刻只能选择一位,如此便可将温度及脉搏次数显示出来。
3.2 系统硬件选择及模块分析
由图3-1可知此次设计的硬件选择如下:AT89S52最小系统、电源、74LS04、4位7段共阳极LED数码管,18B20,LM324,电容,电阻等一些单片机外围应用电路组成。
其中的LED驱动是LED显示设计的关键部分,驱动电路设计的好坏直接关系到LED 显示的亮度、稳定度等重要指标。
LED数码管的数据传输方式主要有串行和并行两种。
日
前普遍采用并行控制技术,实现起来容易简单。
采用这种方式的驱动IC种类较少,可减
少显示单元的数据传输驱动元件,从而提高整个系统的可靠性和性价比,具体工程实现也
较为容易。
LED数码管实现显示信息的刷新技术有动态扫描和静态锁存两种方式。
LED动态显示
就是将所有显示位的段选线并联在一起,由一个8位I/O口控制,而位选线则由其他的I/O
口控制,实现各位的分时选通,利用人眼的反应时间差达到显示目的。
静态显示方式就是
把每一位数码管分别控制让其同时显示不通的内容,其特点:每块显示器件都处于选通状
态,只要控制显示位的段选码,就可显示出相应的字符,每一位都可独立显示,在同一时
刻每一位显示的字符可以不同。
静态显示方式的缺点:需要N×8根I/O口线,占用的I/O
资源较多;显示位比较多时,硬件线路比较复杂,成本增加。
本次设计中LED的驱动是采用74ls04实现的。
(1)18B20资料及测温电路
TO-92封装的DS18B20的引脚排列见图3-2,其引脚功能描述见下:
采用DALLAS公司温度传感器DS18B20,这个芯片的显著优点是与单片机的接口简
单,该温度传感器为单总线技术,测量温度范围为-55℃~+125℃,在-10℃~+8℃5范围
DS18B20内部结构主要由四部分组成:4位光刻ROM、温度传
感器、非挥发的温度报警触发器TH和TL、配置寄存器。
DS18B20温度传感器是美国DALLAS半导体公司最新推出的一
种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,
它能直接读出被测温度,并且可根据实际要求通过简单的编程实
现9~12位的数字值读数方式。
DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;图3-2
●无须外部器件;
●可通过数据线供电,电压范围为3.0~5.5V;
●零待机功耗;
●温度以9或12位数字;
●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。
DS18B20的测温原理是器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改
脚接地,2脚作为信号线,3脚接电源。
如图3-3
图3-3
(2)LM324资料及以其为核心的整形电路
LM324 系列运算放大器是价格便宜的带差动输入功能的四运算放大器。
单电源下,电压范围是3.0V~32V或16V.
LM324 的特点:短跑保护输出,真差动输入级,可单电源工作:3V~32V,低偏置电流:最大100nA(LM324A)每封装含四个运算放大器,具有内部补偿的功能,共模范围扩展到负电源,行业标准的引脚排列,输入端具有静电保护功能。
本设计的脉搏采集大致有三种。
第一种,利用吸附电极这是心电图仪采用的方法;第二种,声学检测,但在运动时无法完成检测;第三种,光学检测此次设计采用的是光学检测,其原理是:人体组织的半透明性随心跳做周期性变化,心脏收缩时人体组织的透明度较低,舒张时较高,因此可以利用这一点;光源用红外LED,检测器件用一红外光敏管,它们构成一混合光栅,将它们接到人体多少有些透明的地方如手指和耳廓,即可检测。
此时还需要将其波形整形成单片机可识别的电压以便单片机计数。
C1和R2构成的低通滤波器用来抑制正在处理的高频分量,双极性耦合电容C2、C3之值与低频相适应,还起到隔直流的作用,第一个运放用做线性放大,其上边的电容和电阻组成低通滤波器进一步抑制干扰,第二个运放负责将上一个运放的输出信号转换成纯净的矩形波,再经过第三个运放后就得到单片机可识别的信号。
整形电路图(如图3-4)
图3-4
(3)AT89C51资料
51系列是指是兼容Intel公司51指令集的单片机系列
的统名称。
这里所提到的AT89C51就是51系列的一种,
它与AT89S52完全兼容,因此以它为例也完全可以让我们
了解AT89S52。
它是一种带4KB闪存可擦可编程只读存储
器(FalshProgrammableandErasableReadOnlyMemory,
FPEROM)的低电压、高性能CMOS型8位微处理器,俗称
单片机。
该器件采用ATMEL高密度非易失存储器制造技
术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
其外形及管脚如3-5所示图3-5 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。
当P1口的管脚第一次写1时,被定义为高阻输入P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
在FIASH编程时,P0 口作为原码输入口,当FIASH 进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。
P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
P2口:P2口为一个内部上拉电阻的8位双向I/O,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。
并因此作为输入时,P2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。
P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。
在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。
P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。
当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为AT89C51的一些特殊功能口,如下表所示:
P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉
宽无任何要求,但必须保证脉冲的高低电
平要求的宽度。
(4)最小系统介绍:
电源供电模块(如图3-6):
对于一个完整的电子设计来讲,首要问
题就是为整个系统提供电源供电模块,电源
模块的稳定可靠是系统平稳运行的前提和
基础。
51单片机虽然使用时间最早、应用范
围最广,但是在实际使用过程中,一个和典型的问题就是相比其他系列的单片机,
图3-6电源模块电路51单片机更容易受到干扰而出现程序跑飞的现象,克服这种现象出现的一个重要手段就是为单片机系统配置一个稳定可靠的电源供电模块。
此最小系统中的电源供电模块的电源可以通过计算机的USB口供给,也可使用外部稳定的5V电源供电模块供给。
电源电路中接入了电源指示LED,图中R11为LED的限流电阻。
S1 为电源开关。
图3-7为复位电路:
图3-7
单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值。
单片机复位电路原理是在单片机的复位引脚RST上外接电阻和电容,实现上电复位。
当复位电平持续两个机器周期以上时复位有效。
复位电平的持续时间必须大于单片机的两个机器周期。
具体数值可以由RC电路计算出时间常数。
复位电路由按键复位和上电复位两部分组成。
1)上电复位:AT89S52系列单片及为高电平复位,通常在复位引脚RST上连接一个电容到VCC,再连接一个电阻到GND,由此形成一个RC充放电回路保证单片机在上电时RST脚上有足够时间的高电平进行复位,随后回归到低电平进入正常工作状态,这个电阻和电容的典型值为10K和10uF。
2)按键复位:按键复位就是在复位电容上并联一个开关,当开关按下时电容被放电、RST也被拉到高电平,而且由于电容的充电,会保持一段时间的高电平来使单片机复位。
图3-8振荡电路
图3-8
单片机系统里都有晶振,在单片机系统里晶振作用非常大,全程叫晶体振荡器,他结合单片机内部电路产生单片机所需的时钟频率,单片机晶振提供的时钟频率越高,那么单片机运行速度就越快,单片接的一切指令的执行都是建立在单片机晶振提供的时钟频率。
在通常工作条件下,普通的晶振频率绝对精度可达百万分之五十。
高级的精度更高。
有些晶振还可以由外加电压在一定范围内调整频率,称为压控振荡器(VCO)。
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
单片机晶振的作用是为系统提供基本的时钟信号。
通常一个系统共用一个晶振,便于各部分保持同步。
有些通讯系统的基频和射频使用不同的晶振,而通过电子调整频率的方法保持同步。
晶振通常与锁相环电路配合使用,以提供系统所需的Array时钟频率。
如果不同子系统需要不同频率的时钟信号,可
以用与同一个晶振相连的不同锁相环来提供。
AT89S52使用11.0592MHz的晶体振荡器作为振荡
源,由于单片机内部带有振荡电路,所以外部只要连接一
图3-11
4 系统测试分析
本设计最后的结果是:不能检测到脉搏但其它设计目的都已达到,经过测试证明程序是可行的,设计思路的方向也是正确的,而且在测体温方面优于传统的体温计。
经过反复的测试和研究最终得到以下结论(如下表所示),该结论是通过与他人做的温度计比较,还有和体温计比较(体温计和温度传感器都是拿在手里所以要比实际体温低一些如表4-1),经过比较本次体温计的设计还是比较成功的。
在设计中出现的许多以前未曾遇到的问题为我增加了很多实际经验,相信这些经验在以后的工作实践中会发挥巨大的作用。
较为遗憾的是由于本人水平有限没有添加报警功能以及其它一些提示功能,没有充分利用单片机资源。
毕业后我会努力实现所有功能。
5 结束语
本次设计结束了,在这次设计中,我清楚的认识到了实践和理论和结合相结合的重要性。
在此次设计中通过查阅大量的相关资料,详细了解了LED的发光原理、18B20使用
方法和LM324的用途及工作原理,了解了LED的现状。
通过这次毕业设计,重新复习并进一步学习了MCS-51;熟练掌握了WORD软件的使用。
进一步提高了自己在实际设计过程中研究问题、发现问题、解决问题的能力。
但是从中也存在不足之处:对知识的积累还不够,有些问题自己不能够独立解决,对实验操作还要进一步熟练,只有这样才能让自己在不断的学习中提高自己。
附录
编译、装载、连续运行程序,显示模块应循环显示脉搏、温度。
程序源代码:
DQ EQU P3.7
WENDU_L EQU 29H;用于保存读出温度的低字节
WENDU_H EQU 28H;用于保存读出温度的高字节
XIAOSHU EQU 27H;用于保存温度的小数部分
ZHENGSHU EQU 26H;用于保存整数部分
BIAOZHI BIT 50H;18B20检查位1为存在,0为不存在
dh equ 60h
dl equ 61h
ch equ 62h
cl equ 63h
org 0000h
ljmp start
org 000bh
ljmp its
org 100h start:
mov sp,#60h
setb tr0
setb tr1
setb ea
mov th0,#3ch
mov tl0,#0afh
mov tmod,#51h
ljmp main its:
inc 65h
mov th0,#3ch
mov tl0,#0afh
reti
main:
LCALL DUWEN
LCALL ZHENGHE
LCALL BCD
MOV 50H,#00H MAIBO:
mov 69h,#02h
mov 68h,#0ffh
mov 65h,#00h
mov 64h,#00
mov th0,#3ch
mov tl0,#0afh
setb et0
mov tl1,#00h
mov th1,#00h loop:
mov a,tl1
cjne a,#1,loop
clr a
loop1:
mov a,65h
cjne a,#0c8h,l01
ljmp return
l01:
mov a,tl1
cjne a,#2,l01
cpl et0
cpl et1
mov 66h,th0
mov 67h,tl0
clr c
mov a,65h
mov b,#50
mul ab
mov ch,b
mov cl,a
clr c
mov a,67h
subb a,#0afh
mov 67h,a
jnc dx1
dec 66h
dx1: mov a,66h
subb a,#3ch
mov 66h,a
clr c
mov a,cl
add a,66h
mov cl,a
clr c ;除法,得到脉搏次数
mov dh,#0eah
mov dl,#60h
d1:
mov a,dh
subb a,ch
mov dh,a
jc d4
inc 64h
clr c
mov a,dl
subb a,cl
mov dl,a
jnc d3
dec dh
d3: sjmp d1
d4: clr a
mov a,64h
mov b,#100
div ab
mov 54h,a mov a,b mov b,#10 div ab mov 55h,a
mov 56h,b return:
lcall disp
ajmp main DUWEN:SETB DQ
ACALL FUWEI
JB BIAOZHI,CUNZAI
RET
CUNZAI:
MOV A,#0CCH
ACALL XIE
MOV A,#44H
ACALL XIE
ACALL TIME1
ACALL FUWEI
MOV A,#0CCH
ACALL XIE
MOV A,#0BEH
ACALL XIE
ACALL DUSHU
NOP
RET
FUWEI:SETB DQ
NOP
CLR DQ
MOV R0,#3
INTE:MOV R1,#107
KK1: DJNZ R1,KK1
DJNZ R0,INTE
SETB DQ
NOP
NOP
NOP
MOV R0,#25 INTE1:JNB DQ,INTE2
DJNZ R0 ,INTE1
AJMP INTE3
INTE2:SETB BIAOZHI
NOP
AJMP INTE4
INTE3:CLR BIAOZHI
AJMP INTE5
INTE4:MOV R0,#120
KK: DJNZ R0,KK
INTE5:SETB DQ
RET
XIE:MOV R2,#8
CLR C
LP:CLR DQ
MOV R3,#6
LL1:DJNZ R3,LL1
RRC A
MOV DQ,C
MOV R3,#23
LL: DJNZ R3,LL ;
SETB DQ
NOP
NOP
DJNZ R2,LP
SETB DQ
RET
DUSHU:MOV R4,#2
MOV R1,#WENDU_L
RE: MOV R2,#8 R
E1: CLR C
SETB DQ
NOP
NOP
CLR DQ
NOP
NOP
NOP
SETB DQ
MOV R3,#9
DJNZ R3,$
MOV C,DQ
MOV R3,#23
NN: DJNZ R3,NN
RRC A
DJNZ R2,RE1
MOV @R1,A
DEC R1 ;高位存入28H
DJNZ R4,RE
RET
ZHENGHE:MOV A,#0FH
ANL A,WENDU_L
MOV XIAOSHU,A
MOV A,WENDU_L
MOV C,40H
RRC A
MOV C,41H
RRC A
MOV C,42H
RRC A
MOV C,43H
RRC A
MOV ZHENGSHU,A
RET
BCD:MOV A,ZHENGSHU
MOV B,#10
DIV AB
MOV 51H,A
MOV 52H,B
MOV A,XIAOSHU
MOV B,#10
MUL AB
MOV B,#16
DIV AB
MOV 53H,A
RET
DISP:
MOV DPTR,#TAB
MOV R0,#51H
MOV A ,@R0
MOVC A,@A+DPTR
MOV P2,#0feH
MOV P0,A
inc R0
lcall delay
MOV A ,@R0
MOVC A,@A+DPTR
ANL A,#01111111B
CPL P2.0
cpl p2.1
MOV P0,A
inc R0
lcall delay
MOV A ,@R0
MOVC A,@A+DPTR
cpl P2.1
cpl P2.2
MOV P0,A
lcall delay
cpl P2.2
cpl P2.3
MOV P0,#0c6h
cpl p2.4
lcall delay
mov r7,68h
dec 68h
djnz r7,DISP
mov 68h,#05fh
mov r5,69h
dec 69h
djnz r5,disp
mov 68h,#0ffh
mov 69h,#02h
disp1:
MOV DPTR,#TAB
MOV R0,#54H
MOV A ,@R0
MOVC A,@A+DPTR
MOV P2,#0feH
MOV P0,A
inc R0
lcall delay
MOV A ,@R0
MOVC A,@A+DPTR
CPL P2.0
cpl p2.1
MOV P0,A
inc R0
lcall delay
MOV A ,@R0
MOVC A,@A+DPTR
cpl P2.1
cpl P2.2
MOV P0,A
lcall delay
cpl P2.2
cpl P2.3
cpl p2.4
MOV P0,#0c6h
lcall delay
mov r7,68h
dec 68h
djnz r7,disp1
mov 68h,#05fh
mov r5,69h
dec 69h
djnz r5,disp1
ret
TIME1:MOV R6,#4
LOOP2:MOV R5,#250
LOOP11:ACALL D1MS
DJNZ R5,LOOP11
DJNZ R6,LOOP2
RET
TIME:MOV R6,#200
LOOP3:ACALL D1MS
DJNZ R6,LOOP3
RET
D1MS:MOV R7,#250
LOOP0:NOP
NOP
NOP
DJNZ R7,LOOP0
RET
delay: MOV R5,#2
L1: MOV R6,#200
DJNZ R6,$
DJNZ R5,L1
ret
tab: db
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8
H,80H,90H;
end
参考文献
[1]李朝青.单片机原理及接口技术(简明修订版).杭州:北京航空航天大学出版社,1998
[2]李广弟.单片机基础[M].北京:北京航空航天大学出版社,1994
[3]阎石.数字电子技术基础(第三版). 北京:高等教育出版社,1989
[4]廖常初.现场总线概述[J].电工技术,1999.数字温度计程序清单
[5] 李世朋.单片机课程设计报告数字温度计, 2005
20。