《毕业设计(论文)基于单片机控制的人体健康监测系统设计.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于单片机控制的人体健康监测系统设计.doc(44页珍藏版)》请在三一办公上搜索。
1、摘 要 本系统设计的是基于单片机控制的人体健康监测系统,本系统需要检测人体的三个健康体征:心跳、体温、血压。由硬件和软件两部分组成。首先是心跳检测,利用压电传感器将检测到的心跳信号转换为电信号再通过集成运放转换成单片机可以接收的信号。其次是温度检测,利用一线口温度传感器DS18B20进行温度检测,由于该芯片采用单总线模式,在编程过程中严格按照该芯片的读写时序进行温度检测。再次是血压检测,利用压力传感器BP01将血压转换成为电信号,通过ADC0809模数转换器转化为数字信号通过单片机处理显示出来。另外还包括单片机电源电路、超限报警电路、复位电路以及键盘电路。本系统的研究于开发有利于人体健康检测的
2、需要,对日常生活的改善有很多好处,具有很高的实用价值。 关键词单片机8051; DS18B20; BP01; A/D转换AbstractThis system design is the human body health monitor system whichcontrols based on the monolithic integrated circuit, this system needshealthily to examine the human body three health body drafts:Palpitation, body temperature, blood
3、pressure. Are composed by the hardware and the software two parts. First is the palpitation examines, will examine the palpitation signalusing the piezoelectric pick-up to transform into the electricalsignal transports again through the integration puts transforms thesignal which the monolithic inte
4、grated circuit will be allowed toreceive. Next is the temperature examination, uses mouth temperature sensorDS18B20 to carry on the temperature examination, because this chipuses the single main line pattern, strictly carries on the temperatureexamination in the programming process according to this
5、 chipread-write succession. Is the blood pressure examination once more, transforms into usingpressure transmitter BP01 the blood pressure the electrical signal,transforms through the ADC0809 modulus switch for the digital signaldemonstrates through monolithic integrated circuit processing. Moreover
6、 also includes the monolithic integrated circuit powercircuit, ultra limits the alarm circuit, repositions the electriccircuit as well as the keyboard electric circuit.This system research is advantageous to the development to the humanbody health examination need, has very many advantage to the dai
7、lylife improvement, has the very high practical valueKey wordMonolithic integrated circuit 8051; DS18B20; BP01; A/D transformation 目 录中文摘要及关键字-I-英文摘要及关键字-II-绪论- 1 -1. 总体方案- 2 -11方案论证及系统工作原理- 2 -12 总体方案图- 2 -2硬件设计- 3 -21主控芯片MCS51介绍- 3 -22 ADC0809的介绍- 8 -23心跳检测原理设计- 10 -24温度检测的原理及设计- 11 -25血压检测电路原理及设计
8、- 15 -26其他电路设计- 17 -27 硬件总电路图- 17 -3软件设计- 18 -31主程序流程图- 18 -32 子程序流程图- 19 -321心跳检测流程- 19 -322温度检测流程图- 20 -323血压检测流程图- 21 -33主程序清单- 22 -34子程序清单- 25 -341心跳子程序:- 25 -342温度检测子程序:- 27 -343血压检测子程序:- 31 -结论- 33 -致 谢- 35 -参考文献- 36 -附录一- 37 -附录二- 41 -绪论当今社会,随着科技发展的日新月异,特别是计算机技术突飞猛进的发展,计算机技术带来了科研和生产的许多重大飞跃,同时
9、计算机也越来越广泛的被应用到人们的生活、工作领域的各个方面。单片微型计算机以其其体积小、功能强、速度快、价格低等优点,在数据处理和实时控制等应用中有着无以伦比的优越性,可广泛地嵌入到如玩具、家用电器、机器人、仪器仪表、汽车电子系统、工业控制单元、办公自动化设备、金融电子系统、舰船、个人信息终端及通讯产品中。随着微控制技术(以软件代硬件的高性能控制技术)的日益完善和发展,单片机的应用必将导致传统控制技术发生巨大的变化。单片微型计算机的应用广度和深度,已经成为一个国家科技水平的一项重要标志。为了进一步加深对单片机及其接口的理解,掌握一般的软硬件的设计方法,巩固大学四年之所学,也给自己一个实践锻炼的
10、机会,几个月以来,我们全心投入本次毕业设计-人体基本健康监测器。本系统用于实时监测人体的基本生命体征:心跳、体温、血压。传统测量方法尤其是血压的测量,即使用血压计的测量,操作过程比较复杂需要有专业人士完成,不能完全满足对人体基本健康动态的一个随时掌握的要求。而人体基本健康监测器集测量心跳、体温、血压、为一体,并用单片机加以处理控制,普通人群都可以方便使用,而不需要具备专业的医疗知识,相信这一点肯定倍受广大群众的青睐。在不断的发现问题,思考问题,解决问题之后,我们基本完成了毕业设计任务。但由于时间以及经验有限加之缺乏实际的检验,我们的设计肯定有许多不足之处,望老师能给予进一步指正及帮助。在本次设
11、计中我与张锡阳同学一组,完成这个课题,他主要负责硬件部分设计,我本人主要负责软件部分的编写。所以本论文在介绍硬件部分的基础上将重点介绍软件部分的编写。1. 总体方案 1.1 方案论证及系统工作原理 本系统通过键盘设定三种工作方式:心跳检测,人体体温检测,血压检测。 心跳检测采用传感器将心跳转换成单片机可以接受的信号,每跳动一次就产生一个脉冲,让单片机产生一个中断,每中断一次就进行一次计数,每分钟进行一次采样进行统计心跳数。人体体温检测利用芯片DS18B20这个数字温度传感器进行温度测量。测的数据通过CD4511进行译码,输入数码管进行显示。测的数据如果超限则进行报警。血压检测利用BP01型压力
12、传感器将压力信号转化为电信号经过运放由ADC0809转化为数字量送入单片机处理。如果血压超限则报警。 该方案可以有效、实时的测量心跳、体温、血压这些要求监测参数,能够达到系统设计的各项指标,设计方案是切实可行的。 1.2总体方案图显示心跳,温度电路温度,心跳的超限报警电路键盘 单 片 机心跳的检测电路温度传感器电路 血压传感器 2 硬件设计2.1主控芯片MCS51介绍主要功能MCS-51单片机采用的是冯.诺伊曼提出的经典计算机体系结构框架,即一台计算机是由运算器、控制器、存储器、输入设备和输出设备共五个基本部分组成。MCS-51单片机在一块芯片上集成了CPU、RAM、ROM、定时器/计数器和多
13、功能I/O口等。MCS-51单片机的系统结构框图如图1所示。图MCS-51单片机系统结构框图 由图可以看出,单片机内部主要包含下列几个部件:8位CPU 片内带震荡器,震荡频率f范围为1.212MHz:可有时钟输出 128个字节的片内数据存储器 4K字节的片内程序存储器 程序存储器的寻址范围为64K字节 片外数据存储器的寻址范围为64K字节 4个8位并行I/O接口:P0、P1、P2、P3 2个16位定时器/计数器 中断系统有5个中断源 MCS51单片机内部结构 MCS51单片机芯片内部结构框图如图2所示。图 2 MCS51单片机芯片内部结构 CPU 中央处理器(CPU)是整个单片机的核心部件,是
14、8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。CPU是单片机的核心部件,由运算器和控制器两部分电路组成。 运算器电路 运算器电路包括ALU(算术逻辑单元)、ACC(累加器)、B寄存器、状态寄存器、暂存器1和暂存器2等部件,运算器的功能是进行算术运算和逻辑运算。运算电路以ALU为核心单元,可以完成半字节、单字节以及多字节数据的运算操作,其中包括加、减、乘、除、十进制调整等算术运算以及与、或、异或、求补和循环等逻辑操作,运算结果的状态由状态寄存器保存。 控制器电路 控制器电路包括程序计数器PC、PC加1寄存器、
15、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等。控制电路完成指挥控制工作,协调单片机各部分正常工作。 定时器/计数器 MCS51单片机片内有两个16位的定时/计数器,即定时器0和定时器1。它们可以用于定时控制、延时以及对外部事件的计数和检测等。(此次设计是通过定时器/计数器对编码器输入的脉冲进行计数)。 存储器 MCS51系列单片机的存储器包括数据存储器和程序存储器,其主要特点是程序存储器和数据存储器的寻址空间是相互独立的,物理结构也不相同。对MCS51系列(8031除外)而言,有4个物理上相互独立的存储器空间:即内、外程序存储器和内、外数据存储器。对于80
16、51其芯片中共有256个RAM单元,其中后128个单元被专用寄存器占用,只有前128个单元供用户使用。 并行I/O口 MCS51单片机共有4个8位的I/O口(P0、P1、P2和P3),每一条I/O线都能独立地用作输入或输出。P0口为三态双向口,能带8个TTL门电路,P1、P2和P3口为准双向口,负载能力为4个TTL门电路。 中断控制系统 MCS51单片机的中断功能较强,以满足控制应用的需要。8051共有5个中断源,即外中断2个,定时/计数中断2个,串行中断1个。所有中断分为高级和低级两个中断优先级。引脚信号 图3为MCS51系列单片机引脚图及逻辑符号,它们为标准的40脚DIP封装。这些引脚的功
17、能描述如下:图3 8051单片机引脚图 电源引脚Vcc和Vss Vcc:电源端,接5V。 Vss:接地端。1.输入/输出引脚(I/O接口) P0接口(P0.0P0.7);8位双向I/O接口,占3932脚.如果系统接有外部存储器,则P0接口作为数据总线和低8位地址各引脚功能简要说明如下:总线,通过分时操作达到复用的目的.CPU对外部存储器操作时,P0接口先用作地址总线,在ALE信号的作用下将地址锁存,然后再将P0接口转作为数据总线使用,P0接口能驱动8个LSTTL负载. P1接口(P1.0P1.7);8位准双向I/O接口,占18脚.准双向接口是指该接口内部有上拉电阻,能驱动4个LSTTL(低功耗
18、肖脱基晶体管逻辑电路)负载.P1接口一般作通用I/O接口线使用.控制信号引脚线a. PSEN(29脚);外部程序存储器读选通信号.在访问外部程序存储器时,PSEN作为外部程序存储器的选通信号(低电平有效).在访问外部程序存储器时.PSEN信号无效(高电平)b. ALE/PROG(30脚);地址锁存允许/编程信号.在访问片外存储器时,该引脚是地址锁存信号,而对8751内部EPROM编程时,该信号作为编程脉冲输入端。 8051单片机可寻址64KB,应有16根地址线,其中低8位地址线与数据共用P0接口,在作低8位的地址信号使用时,ALE有效,用以控制锁存器锁存P0接口的低8位地址;发出数据时,ALE
19、无效,P0接口输出数据,正常操作时,又因ALE能按主振频率的1/6发出固定频率,所以有时可以加以利用。c. RST/Vpd(9脚):复位信号/备用电源输入端。当振荡器工作时,若此引脚保持两个周期的高电平,就能使单片机复位。此引脚也可作为备用电源的输入端,当单片机电源失电期间,由Vpd向片内数据器提供电源,以保护其中的内容。时钟电路引脚XTAL1和XTAL2 XTAL1:接外部晶振和微调电容的一端,在片内它是振荡器倒相放大器的输入,若使用外部TTL时钟时,该引脚必须接地。 XTAL2:接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出,若使用外部TTL时钟时,该引脚为外部时钟的输入端
20、。第二功能P3口P3.0串行口输入端P3.1串行口输入端P3.2外部中断O请求输入端P3.3外部中断1请求输入端P3.4定时/计数器0外部计数信号输入端P3.5定时/计数器1外部计数信号输入端P3.6外部数据存储器写选通输出信号P3.7外部数据存储器读选通输出信号2. 2 ADC0809的介绍本系统使用ADC0809与压力传感器BP01组成血压检测部分。ADC0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 ADC0809的内部逻辑结构 图4 ADC0809内部结构图由上图5.1可知,ADC0809由一个8
21、路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。引脚结构 图5 ADC0809 引脚图IN0IN7:8条模拟量输入通道 ADC0809对输入模拟量要求:信号单极性,电压范围是05V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存
22、与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。通道选择表如下表所示。CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN7ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0
23、,输出数据线呈高阻状态。D7D0为数字量输出线。 CLK为时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ。VREF(),VREF()为参考电压输入。 ADC0809应用说明 ADC0809内部带有输出锁存器。 初始化时,使ST和OE信号全为低电平。 送要转换的哪一通道的地址到A,B,C端口上。(此次设计只选用第一通道IN0)。 在ST端给出一个至少有100s宽的正脉冲信号。 是否转换完毕,我们根据EOC信号来判断。 当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。23心跳检测原理设计检测心率脉冲信号的传感器采用压
24、电陶瓷(在压电陶瓷片上安装一海面垫以传递脉冲信号);将采集到的心率信号经过由CD4069的3个非门组成3级放大电路进行放大,然后通过由一系列电阻电容构成的2级梯形滤波电路进行滤波处理,即可获得人体心率范围的信号(约在0.66Hz-3.33Hz之间);再通过由二极管构成的检测电路以及由3个非门构成的整形电路处理后,就可得到单片机所需要的标准的0-5V脉冲信号。将它接到单片机的外部中断,每一个中断进行一次计数。每一分钟进行一次显示这一分钟的心跳。24温度检测的原理及设计DS18B20的介绍:DS18B20是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。与传统的热敏
25、电阻相比,他能够直接读出被测温度并且可根据实际要求通过简单的编程实现912位的数字值读数方式。可以分别在93.75 ms和750 ms内完成9位和12位的数字量,并且从DS18B20读出的信息或写入DS18B20的信息仅需要一根口线(单线接口)读写,温度变换功率来源于数据总线,总线本身也可以向所挂接的DS18B20供电,而无需额外电源。因而使用DS18B20可使系统结构更趋简单,可靠性更高。他在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进,给用户带来了更方便的使用和更令人满意的效果。DS18B20采用3脚PR35封装或8脚SOIC封装,如图6所视 图 6 DS18B2
26、0的管脚 DS18B20内部结构主要由四部分组成:64位光刻ROM、温度传感器、非挥发的温度报警触发器TH和TL、配置寄存器。ROM中的64位序列号是出厂前被光刻好的,它可以看作是该DS18B20的地址序列码,每个DS18B20的64位序列号均不相同。64位ROM的排的循环冗余校验码(CRC=X8X5X41)。ROM的作用是使每一个DS18B20都各不相同,这样就可以实现一根总线上挂接多个DS18B20的目的。内部结构2如图DS18B20的温度转化DS18B20中的温度传感器可完成对温度的测量,以12位转化为例:用16位符号扩展的二进制补码读数形式提供,以0.0625/LSB形式表达,其中S为
27、符号位。见表1:表1 温度的二进制补码形式Bit 7Bit 6Bit 5Bit 4Bit 3Bit 2Bit 1Bit 0Ls byteBit 15Bit 14Bit 13Bit 12Bit 11Bit 10Bit 9Bit 8Ms byteSSSSS这是12位转化后得到的12位数据,存储在18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,
28、-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。3见表2:表2 温度的转化1250000 0111 1101 000007D0H850000 0101 0101 00000550H25.06250000 0001 1001 00010191H10.1250000 0000 1010 001000A2H0.50000 0000 0000 10000008H00000 0000 0000 00000000H-0.51111 1111 1111 1000FFFFH-10.1251111 1111 0101 1110FF5EH-25.06251111 1110 0110 1111
29、FE6FH-551111 1100 1001 0000FC90HDS18B20的读写时序 DS18B20的一线工作协议流程是:初始化ROM操作指令存储器操作指令数据传输。其工作时序包括初始化时序、写时序和读时序,它的读写分4种类型:分别是写1、写0、读1、读0。DS18B20的初始化时序对1-wire器件的所有操作都是从初始化开始的,初始化过程由主机的复位脉冲和1-wire器件的应答脉冲组成。对1-wire器件的复位脉冲实际上是主机通过拉低总线来实现的,主机通过拉低总线480um以后再把总线拉高使总线上所有1-wire器件复位,总线上1-wire器件接到复位脉冲后便通过拉低总线告诉主机1-wi
30、re器件已经准备就绪。7如图3所示:图8 DS18B20的初始化时序 DS18B20的写时序写时序起始于单片机拉低总线。产生写1时序的方式:单片机在拉低总线后,接着必须在15us之内释放总线,由5k上拉电阻将总线拉至高电平;而产生写0时序的方式:在单片机拉低总线后,只需在整个时序期间保持低电平即可(至少60us)。在写时序起始后15-60us期间,单总线器件采样总线电平状态。如果在此期间采样为高电平,则逻辑1被写入该器件;如果为0则写入逻辑0。具体情况如图9 所示: 图9 DS18B20的写时序DS18B20的读时序单总线器件仅在单片机发出读时序时,才向主机传输数据,所以,在主机发出读数据命令
31、后,必须马上产生读时序,以便从机能够传输数据。所有读时序至少需要60us,且在两次独立的读时序之间至少需要1us的恢复时间。每个读时序都由主机发起至少拉低总线1us。在主机发起读时序之后,单总线器件才开始在总线上发送0或1。若从机发送1,则保持总线为高电平;若发送0,则拉低总线。当发送0时,从机在该时序结束后释放总线,由上拉电阻将总线拉回至空闲高电平状态。从机发出的数据在起始时序之后,保持有效时间15us,因而,主机在读时序期间必须释放总线,并且在时序起始后的15us之内采样总线状态。如图10所示:图10 DS18B20的读时序 DS18B20使用中注意事项DS18B20虽然具有测温系统简单、
32、测温精度高、连接方便、占用口线少等优点,但在实际应用中也应注意以下的问题:较小的硬件开销需要相对复杂的软件进行补偿,由于DS1820与微处理器间采用串行数据传送,因此,在对DS18B20进行读写编程时,必须严格的保证读写时序,否则将无法读取测温结果。2.5血压检测电路原理及设计BP01 型压力传感器是为监测血压而专门设计的,主要用于便携式电子血压计。它采用精密厚膜陶瓷芯片和尼龙塑料封装,具有高线性、低噪声和外界应力小的特点;采用内部标定和温度补偿方式,从而提高了测量的精度、稳定性以及可重复性,在全量程范围内,精度为1,零点失调不大于300V。BP01的主要性能参数表1所列为BP01在电源电压V
33、s为50V、环境温度TA为25时的主要性能参数BP01的极限参数如下:最大工作电压:20VDC; 最大耐压:1500 mmHg; 工作温度范围:070;引脚焊接温度(最大值):250(24秒)用BP01构成的便携式电子血压计的原理电路由偏置电源电路、前置处理电路、显示电路和压力传感器(BP01)组成,该血压计的血压测量范围为0200mmHg,分辨率为01mmHg,工作电源为一节9V迭层电池。a偏置电源电路 电源电路由带有内置参考电压的双运放LM10组成,A1构成同相放大器,A2构成跟随器,它们的作用是将内置的参考电压放大后用作压力传感器BP01的偏置电压Vs,其Vs的值由下式决定:VsVref
34、(1R2R3) 式中:Vref为LM10的内置参考电压。其值为200mV,将此值连同电路中的R2和R3的值代入上式即可求得偏置电压Vs的值为5V。 b前置处理电路 前置处理电路由A3A6四个运算放大器组成,其中A3构成失调偏置电路以对电路失调进行补偿;A5构成跟随器,用于对压力传感器BP01的输出信号进行隔离缓冲;A4、A6构成放大电路,其增益AV由下式决定:AV1(R1RT) 若忽略失调,前置处理电路的输出电压Vout为:Vout2(1R1RT)VIN 式中:VIN为压力传感器BP01的输出电压。 调试方法 a零压输出调整 在零压输出时,调整失调电位器RP1,在血压计的显示值为0000时,即
35、可认为完成了零压输出调整。 b前置电路增益的调整压力传感器BP01的满量程输出与偏置电压有一定的关系,当5V偏置时,在200mmHg压力下的输出为10mV,其对应的显示驱动电路的输入为200mV,因此前置电路的增益AV为200mV10mV,这样,利用前面Av的计算公式即可反推出增益电阻RT的值。 若选取电阻R1为10k,则增益电阻RT应为11k。调试时可先用电位器调整输出值,再用万用表测出该电位器的阻值,最后再换成固定电阻。 c满量程调整 满量程调整时,先在显示电路的输入端加上200mV电压,然后调整电位器RP2,使其读数为1999mmHg即可。 上调整完成之后,一般应多重复几次,以使显示值可
36、靠地符合精度要求。为保证测量精度,上述电路的外围元器件的选择也是一个不容忽视的重要环节。此属于硬件设计范畴在此不再鏊述。26其他电路设计 包括电源电路设计、复位电路设计、显示电路设计、报警电路设计、键盘电路设计。因为本人设计以软件部分为主,在此便不一一列出。 27硬件总电路图详见附录二3软件设计31主程序流程图开始初始化读键盘心跳检测温度检测血压检测结束K1键吗K2键K3键K4?键主程序的设计有上图可以看出,首先对系统和外接芯片进行初始化,然后程序反复对键盘进行读取,如果有键按下,则转入相应的处理程序。按下K1键时,转入对心跳的检测并显示,按下K2键时,转入对人体温度的检测并显示。按下K3键时
37、,转入对血压的检测并将其值显示出来。按下K4键时,所有程序结束。当心跳,血压,温度检测完了之后,重新返回读键盘程序,读取键盘并执行相应的程序,直到有结束键按下,则主程序结束。重新运行时,要等到下次开机。32 子程序流程图321心跳检测流程 中断流程图开始开始1分钟延时心跳数加1检查心跳数返回显示心跳报警心跳值超限报警返回有K5键按下吗?心跳程序流程图如上图,检测心跳采用中断完成,每次中断对心跳数进行加1,完成对心跳数的计数。心跳检测子程序,利用单片机中的两个定时计数器进行1分钟延时,检查心跳数为多少,如果超限则报警,提醒医生注意病人的心跳数。没有超限的话,通过单片机内部的处理程序将心跳数转换成
38、BCD码,在通过CD4511译码通过8段LED数码管进行心跳数的显示,并将心跳数清0。这时判断有没有K5键按下,如果有,则结束子程序,返回子程序,如果没有,则继续对心跳数的测量。322温度检测流程图开始数据线拉高500微秒释放数据线等待DS18B20发出60240微秒的脉冲发送R0M指令发送RAM指令发温度转换指令延时750微秒读温度并显示有K5键按下吗?返回温度检测图如上图,由于单片机与DS18B20采用单总线模式,所以编程时严格按照DS18B20的读写时序,首先是将数据线拉高500微秒左右时间,然后释放数据线,然后单片机等待DS18B20发出60240微秒的脉冲,一旦DS18B20发出该脉
39、冲,单片机接收到了该脉冲,则发出对DS18B20进行初始化,先发出ROM指令,再发出RAM指令,在发温度 转化指令,再延时750微秒,单片机这时读取温度值,如果超限进行报警提醒医生,如果没有超限则将温度用数码管显示出来。最后判断是否有K5键按下如果有该键按下,则退出该子程序,返回主程序,如果该键没有按下则继续检测温度。323血压检测流程图开始开始开中断读取A/D转换值将A/D转换值存放中断返回将A/D转换值转换成血压显示报警血压超限吗?返回K5键按下吗?继续检测血压 血压检测程序包括中断程序和血压处理程序。利用传感器BP01检测到的模拟信号通过ADC0809转化成数字量,每当ADC0809转化
40、完成就会发一个中断信号,单片机此时就会读取A/D转化值放入相应的内存地址,通过单片机内部的数据处理程序转化成相应的血压值。判断血压值是否超过人体正常血压值,如果超过正常血压值就报警提醒医生。如果没有则将血压显示出来。最后判断是否有K5 键按下,如果有则退出子程序,返回主程序;如果没有则继续检测血压。33主程序清单主程序:ORG 0000HFLAG BIT 00HLJMP 0030HORG 0003HLJMP INT0;中断服务程序,用于测量心跳ORG 0013H LJMP INT10030:START:NOPKAISHI:NOPJNB P1.2,XINTIAOJNB P1.3,WENDUJNB
41、 P1.4,XUEYAJNB P1.5,ENDDSJMP KAISHI XINTIAO: SETB EA SETB EX0LCALL XIN SJMP KAISHIWENDU:LCALL WENDU SJMP KAISHIXUEYA:LCALL XUE SJMP KAISHI DELY500:MOV R7,#250LOOP: NOPDJNZ R7,LOOPRETD547: CLR C ;;双字节除法单字节除子程序MOV A, R4SUBB A,R7JC DV50SETB OVRETDV50:MOV R6,#8 DV51:MOV A,R5RLC AMOV R5,AMOV A,R4RLC AMOV
42、 R4,AMOV F0,CCLR CSUBB A,R7ANL C,/F0JC DV52MOV R4,ADV52:CPL CMOV A ,R3RLC AMOV R3,ADJNZ R6, DV51MOV A,R4ADD A,R4JC DV53SUBB A,R7JC DV54DV53:INC R3DV54:CLR OVRETBAOJING:NOPKAI:JNB FLAG,NEXTMOV R2,#200DV:CPL P1.0LCALL DELY500LCALL DELY500DJNZ R2,DVCPL FLAGNEXT:MOV R2,#200DV1:CPL P1.0LCALL DELY500DJNZ
43、R2,DV1CPL FLAGJNB P1.6, KAIRETINT0: PUSH R0PUSH A MOV R0, #43H MOV A,R0 INC AMOV R0, APOP APOP R0RETIINT1:MOV A,P0 MOV R0,#51HMOV R0.A SETB F0RETIENDD: NOPNOP END34子程序清单341心跳子程序:XIN:NOPBEGIN:MOV R0,#43HMOVA,#0HMOV R0,AMOV TMOD,#01010001BREPEAT:MOV TH1,#15HMOV TL1,#A0HMOV THD,#0FCHMOV TL0,#18HCLR P3.5MOV IE,#88HSETB TR1SETB TR0LOOP:JNB,TF0,$CLR TF0JBC F0,ELSESETB P3.5MOV TH0,#0FCHMOV TL0,#18HCL