版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1基于单片机的人体健康监测系统设计摘要自从改革开放后,中国人民渐渐不再满足于生活水平,对生活质量也提出了要求,而人体的健康状况是衡量生活质量的一个重要的标准,许多人通过运动来保持自己的身体状况。伴随着新型冠状病毒的肆虐,全球的每个密集场所都要对人体温度进行监测,来防止病毒的快速传播,因此针对大面积的密集流动人群场所,快速且准确地进行精准的体温测量,非常有必要,并且可穿戴便携式测量也成为了主流,例如运动手表的出现,使得人们可以随时随地观察到自己的生理状态,可以在运动中随时观察自己的心率、呼吸状态。2020年疫情肆虐,使人们意识到了人体健康状况的重要性,2021年疫情仍有卷土重来的趋势,设计一个基于STC89C52单片机为核心的人体监测系统,将硬件和软件相结合,对疫情的防控有着十分重要的作用。先用Proteus进行仿真,再通过Keil4进行程序的编写,最后进行硬件的调试。通过DS18B20温度传感器监测人体温度,ST188光电传感器监测心率,温度和心率通过集成电路显示在LCD1602液晶屏幕上。当发生人体健康问题,例如心率超过指定的上限和下限时,蜂鸣器将开始发出警报。本次设计具有较强的使用价值,能够在医学领域提供一定的贡献。关键词:STC89C52单片机;DS18B20温度传感器;ST188光电传感器;LCD1602液晶显示屏目录第1章 引言 第一章引言在2020年,新型冠状病毒的传播使得越来越多人注重身体健康,为了防止新冠的传播,在人群密集场所都要进行体温检测,传统的检测需要人的完全参与,测量出的误差也就比较大,因此,许多自动测量方法便浮出水面。例如:利用物体发出辐射能监测体温、密集场合都会通过热成像来监测体温等。这些测温仪不需要与人体相接触,具有测温速度快、无接触测量和精度高等特点,广泛应用于工业或民用温度测量中。就人体健康指标而言,除了体温,心率、血压也是衡量一个人健康与否非常重要的生理指标。在21世纪,年轻人越来越忙,许多老年人面临着看病难、活动难等方面的问题,而新型的人体监视仪可以做到通过远距离来判断心率、血压等情况。智能健康仪的出现可以使医疗领域在一定程度上得到快速的提升,通过互联网与医疗服务的结合形成一系列智慧医疗服务方案,新型医疗技术使疾病预防更加及时,病变监测更加简单方便,能够开辟医疗诊断的崭新模式,继而大力推进高精度医疗的步伐。在目前,国内外市场上都大量出现了智能手环或手表,该智能仪器可通过手腕上丰富的动静脉血管,来监测各类体征如血压、心率与体温。该设备的思想和雏形是在二十世纪60年代由美国麻省理工学院媒体实验室提出,是指采用具有先进的功能、特点的技术制造的可以佩戴在用户身上的产品和电子设备,可以用来记录整理日常生活活动或监测保护用户的身体健康状况[1]。可穿戴设备主要应用于医疗保健和运动健身领域。由于手腕上有大量的动脉和静脉,因此手腕是大多数可穿戴智能仪的归属地。其内部设有的传感器可以监视用户在步行,跑步和其他活动中的心脏和血压,从而防止突发疾病。由于人在运动中有新陈代谢,所以可穿戴传感器还可以通过感应用户在运动时心率的变化、运动行走的步数以计算用户消耗的热量和卡路里,从而评估用户的身体健康水平,并且为用户量身制定一套合理的健身计划[2-4]。除了可穿戴的监测仪,非接触健康检测仪也渐渐崭露头角。该系统可以在不穿戴任何设备情况下进行交互式监测,能够便捷监测人体健康状况,监测结果可靠性高[5]。关于非接触式人体监视仪,目前常见无非是红外线探测仪和雷达探测仪。人体存在红外辐射,但人体的红外辐射特性与周围环境有所不同。热成像温度检测器就是利用它们之间的差异,通过成像将要监测的目标从背景中分离出来。除了体温这一指标,通过获取脉搏的数值,以此为基础来判断人体健康状况,一直是中外医学界关注的焦点。设计出一款以单片机为核心能够进行人体温度和心率测量的监测系统,在Keil软件中对单片机进行功能的编程,通过温度传感器来测得人体温度,光电传感器测得人体心率,并且将采集到的数据显示在LCD显示屏上,当人体温度超过正常温度或人体心率不正常时,引发报警装置。其中光电脉冲传感器是基于光电体积法的脉冲传感器,可以通过监视指尖的光透射率来间接检测脉冲信号。具有内部结构不复杂、不损害人体、较高的精确度、可多次利用等优点。由光电脉冲传感器开发的脉搏测量仪已应用于临床医学等各个方面,并收到了理想的效果。但是,在强噪声的背景下,人体的大多数生物信号属于低频弱信号,脉搏波信号相对于正常的信号更为低频,并且很弱,难以采集,还是生理信号,不是电信号,因此必须对其进行放大和滤波,以满足集成电路的传输要求。本设计初医疗监测仪的销售额从28亿元增到60亿元,根据国内医疗系协会的预测,2015年全球医疗监测设备的市场需求量将超过68亿美元。立思考问题的能力。因此,对本课题的研究在生活和教学方面的都有着积极的意义[6]。第二章人体健康检测系统的总体设计2.1课程设计目标(1)实现对人体体温、心率的测量;(2)实现心率报警功能;(3)检测到的体温和心率显示在LCD屏幕上。2.2主控模块的分类及选择本次设计为基于单片机的人体健康监测系统的设计。单片机种类丰富,各自特点也不相同,目前市场上常用的有以下两种单片机:MCS-51系列的单片机和STM32单片机,现对它们的功能特点进行简要的分析,进而选择本系统的主控单片机。方案一:51系列的单片机。51单片机可以说为是其他微控制器的基础,同时也是应用最广泛的一种。该单片机为8位的单片机,具有2K-4K的内部存储器,控制方便,价格优良,并且可以进行仿真,进行在线编程、调试,在工业设计中受到了广泛的应用。方案二:STM32系列的单片机。STM是意法半导体单片机的缩写,其处理器的数据长度是32位,具有丰富的外围接口,强大的速度和功能以及32K-512K闪存。但STM32单片机价格昂贵,因此不适合用作设计开发。因此,从设计性、实用性和可开发性三个方面进行考虑,虽然STM32系列的单片机的功能与51单片机相比的更为强大,但本次设计的目的凭借51单片机就可达到,并且51单片机的成本更为理想,所以本次设计的主控芯片选用51系列的单片机。2.3传感器的分类及选择2.3.1温度传感器选型通过本科所学过的知识,温度传感器可分为接触式和非接触式。接触式温度传感器常见的有:热电偶、热电阻和总线式数字温度传感器DS18B20,非接触传感器常见的有:红外测温仪和光学辐射式高温计[7]。现对Pt100热电偶、DS18B20和红外温度探测器进行比较与分析,进而选择本系统的传感器。方案一:Pt100热电偶温度传感器。该传感器测温范围非常宽,温度范围为-250℃到850℃之间,然而外界环境容易对冷端温度造成影响,从而对测量结果造成一定的误差,因此导致测量准度下降。并且从接线方式上来看,热电偶要将测量的温度转换为数字量进而传输到CPU,需要对采集的信号信号进行放大、补偿、线性化模数转换,才能够对温度进行采集。方案二:新型温度传感器。以DS18B30为例,该传感器具有三个引脚,测温范围为-55℃到+125℃之间,可进行仿真编程,可直接输出数字量,并且和微处理器连接方便,只需要一根端口线便可将两者连接起来,便可完成对温度的采集,因此可节省大量的引线和逻辑电路。由于它的高灵敏度和快速的反应速度而被广泛使用。方案三:红外温度探测器。该传感器可不用与被测物理接触,可将收集到的热辐射强度转换为电信号,测温范围为0℃到400℃之间,可进行远距离的测量,对于测量运动中的物体有一定的优势,但其成本较高。综上所诉,选择数字温度传感器,该类型的传感器可以降低成本,并且采集电路更为简单,可直接进行仿真,因此本次设计选用DS18B20温度传感器来采集人体温度。2.3.2脉搏采集的方法及选型正常情况下,心率与脉搏的数值是相同的,心率是指心脏每分钟跳动的次数,而脉搏是指每分钟动脉搏动的次数,其单位为:次/min。正常人的脉搏跳动每分钟通常为60-100次。由于现在社会压力越来越大,通常不会花费一分钟的时间来测量脉搏,一般都是测量十秒内的脉搏跳动值,然后将其乘以六,得到一分钟的脉搏值。常见的脉搏测量方法有:心电信号法、光电体积法、压力传感器测量等[8]。方法一:心电信号法。心电图一般用于临床医学中,医生通过分析心电图来进行脉搏值的计算。方法二:光电体积法。该方法需要采用一个光电传感器,其原理可以概括为追踪可见光在人体组织中的反射。以人的手指组织为例,可见光穿透人的皮肤、肌肉、骨骼、脂肪等血液组织和非血液组织后,可见光会产生一定的能量衰弱,其衰弱通常为固定值。然而毛细血管和静脉动脉会传送一定的血红蛋白,会使脉搏的容积产生变化,因此通过检测光强来间接检测人体的脉搏信号,其原理图如图2-1所示。图2-1脉搏传感器的机理方法三:压力传感器检测。这种测量方法的灵感主要来自于中医学中的诊脉,通过血压的变化来检测心率。然而压力传感器在市场中不易买到,而且其设计不适合用作测量人体的脉搏。因此,选用方法二:光电体积法来监测人体心率。由于现在市场上通常选用ST188光电传感器,选则该光电传感器,将采取到的信号进行放大、滤波、转换后,形成电信号,进而测得人体的心率值。2.4显示模块的分类及选型由本次设计的目的可以看出,本次的显示模块既要显示数字,也要显示字符,常用的显示模块有:LED数码管、LCD液晶显示屏[9]。方案一:LED数码管。该显示器是由发光二极管组装而成的,可以显示数字0-9,并且占用单片机总线少,并且程序简答,易于仿真,适用于进行人体温度的显示。但由于无法进行字符的显示,因此不纳入考虑范围。方案二:LCD液晶显示屏。该类显示器即可显示字符,也可显示数字和图形,市场上常用的有:LCD1602和LCD12864。其中,LCD1602成本较低,相对于LCD12864来说控制简单,连接较为方便,并且该设计不需要涉及到图形的显示,因此选择LCD1602作为显示模块即可。因此,选择方法三:LCD1602液晶显示屏来显示心率和体温的数值。。2.5总体设计方案本设计中选择STC89C52作为主控芯片,温度传感器DS18B20用于采集人体温度,光电传感器ST188用于采集人体脉搏。收集模拟量后,将其处理并转换为数字量,并通过LCD1602显示当前的体温和脉搏。同时,设置脉冲警报模块,设置上限和下限,并通过按键更改其范围。当超过指定范围时,蜂鸣器会发出警报,以实现对人体健康的监控。其总体结构图如图2-2显示。图2-2系统结构图第三章系统硬件电路设计3.1主控模块设计MCS-51单片机是Intel公司于1980年推出的8位微处理器,MCS-51系列共有两种类型,其中一种为51子系列,另一种为52子系列[10]。两者在结构、功能上没有什么差别,主要区别是在于:51子系列的片内ROM容量为4KB、片内RAM容量为128B,51子系列的片内ROM增加到8KB,片内RAM增加到256B,并且定时/计数器、中断源的个数也不同。从整理上来说,52子系列属于51系列的增强型,所以选用STC89C52作为主控模块[11]。3.1.1STC89C52芯片介绍图3-1为STC89C52的基本结构。图3-1单片机基本结构其主要性能入下:(1)具有一个8位CPU。(2)具有256B的片内RAM,可以用来读/写数据。(3)具有4KB的FlashE2PROM,用来存放程序、采集到的数据等。(4)具有4个8位并行I/O口,分别为P1、P2、P3、P4,用来传输或者接受数据。(5)具有一个全双工的串行I/O口。(6)具有3个16位的定时/计数器。通过编程可以控制其工作方式。(7)具有6个或7个中断源。(8)具有片内振荡器,最高允许的的振荡频率fosc可达到12MHz,最低允许的振荡频率fosc为1.2MHz。(9)具有111条指令,有较强的位寻址和微操作能力。(10)片内采用单总线的结构其引脚图如图3-2所示。图3-2STC89C52的引脚图现对引脚进行说明:(1)XTAL1和XTAL2(19/18脚):为时钟电路引脚。与晶体振荡器相连接,构成时钟电路,这种连接方法所产生的信号方法为内部时钟的方式,若采用外部时钟的工作方式,此时XTAL2引脚输入时钟方波,XTAL1引脚接地[10]。本次设计采用内部时钟的工作方式,晶振电路如图3-3所示。图3-3晶振电路(2)RST(9脚):RST为复位引脚。若该引脚输入了持续两个Tcy(机器周期)的高电平,单片机便可进行复位,恢复到原始状态。大部分引脚复位后变为低频,P0/P1/P2/P3初始化为FFH,SP初始化为07H,PSW.3和PSW.4回到0号寄存器组,其余均为00H。(3)PSEN(29脚):该引脚为程序存储选择信号输出引脚,作为外部程序存储器选择信号,接入低电平时读取片外存储器。本次设计没有使用到该引脚。(4)ALE(30脚):地址锁存允许信号。该信号跟是否外接存储器有关。单片机连接外部存储器时,若该口连接的信号等于1时,即输入高电平的时候,此时,P0.0-P0.7口就输出低8位的地址信号。反之,P0口就输出低8位的数据信号。当单片机没有接外部存储器时,则改变晶体频率。(5)EA(31脚):片内外存储器选用端。该引脚接入的信号等于0,即接入低电平时,只使用外部ROM。反之,介入高电平时,先使用内部ROM,再使用外部ROM。(6)P0.0-P0.7(39脚~32脚):P0口。可作为数据线,也可当作地址线。具体功能由ALE引脚的状态来决定。(7)P1.0-P1.7(1脚~8脚):P1口。作为标准的双向I/O接口使用。(8)P2.0-P2.7(21脚~28脚):P2口。外接存储器时,其作为地址线的高8位使用。(9)P3.0-P3.7(10脚~17脚):P3口。可作为标准的双向I/O口,但其还具备第二功能(控制功能)。P3.0:(RXD)串行数据接收。P3.1:(RXD)串行数据发送。P3.2:(INT0)外部中断0输入。P3.3:(INT1)外部中断1输入。P3.4:(T0)定时/计数器0的外部计数输入。P3.5:(T1)定时/计数器1的外部计数输入。P3.6:(WR)外部RAM写控制。P3.7:(RD)外部RAM读控制。3.1.2主控系统的设计先设计晶振电路,该设计采取外部时钟的工作方式,设置晶振工作频率为12MHZ,如图3-5所示,所以其机器周期Tcy=12÷12=1us。机器周期的定义为:微处理器CPU完成一个独立操作所需要的时间[10]。机器周期可以说是6个状态周期所组成(S1~S6),也可以说是12个振荡周期所组成(S1P1、S1P2、……、S6P1、S6P2)。如图3-4所示。图3-4单片机工作周期的关系图3-5晶振频率的设定图3-6为设计的复位电路。在复位RET脚上接上一个按钮,按下按钮达到2us即可使主芯片进行复位。在单片机接通电源后,由于按钮没有按下,所以电压会持续给电容C3充电。由于电容的特性,它通直流,隔交流,所以R2两端的电压基本相等。当按下复位按钮时,C3被按钮短路了,此时C3就会向R2放电。按钮按下超过2us,单片机即可完成复位。图3-6复位电路单片机最小系统电路图如图3-7所示。图3-7单片机最小系统电路3.2体温采集模块的设计本次设计体温采集通过温度传感器DS18B20来完成。3.2.1DS18B20的介绍DS18B20是DALLAS公司推出一线式数字温度传感器,它可将采集到的温度高准确高精度转换为数字信号[13]。其优点为:误差小、抗干扰能力强、接口简单等特点。图3-8为其管脚图,该传感器共有三个引脚。其中VDD为工作电源,GND为接地引脚,DQ为数字信号输出端。3-8DS188B20引脚图3.2.2DS18B20的测温原理DS18B20的原理图如图3-9所示。图3-9DS18B20的原理图计数门接收到的工作指令由温度传感器发送(我们通常选用对温度敏感的高温度系数振荡器),开始工作前,查询温度基数表格,将指定温度的实验参数分别输入到减法计数器与温度寄存器中。具体的工作原理如下:低温系数晶振所发出的脉冲信号经过减法计数器产生一次减法基数运算,减法计数器设置的初始参考参数归零时温度寄存器的数值随之上升1,同时减法计数器的参数将会再次刷新至初始参考参数,减法计数器继续接收来自低温度系数晶振的输出频率转化而成的电信号工作运算。图3-10为DS18B20的内部结构图。图3-10DS18B20的内部结构该传感器内部有一个64位的ROM,图3-11所示。CRC为循环冗余校验码,是为了检验传输的数据是否有误而设计的。图3-1164位ROM传感器内部还有一个高速缓存器,如图3-12所示。DS18B20的精度就是由高速缓存器中的第五个字节配置寄存器中的R0和R1所确定。如图3-13所示,该设计中的分辨率为0.0625。图3-12高速缓存器图3-13配置寄存器该传感器收到温度转换的命令之后,就会开始执行命令,转换后的温度就会存在高速缓存器中的第1和第2个字节中,一共有16位,如果温度大于0,则前5位均为0,若温度小于0,则这五位为1。例如,若显示的数据为07D0H(0000011111010000),转换为十进制为2000,将其乘以0.0625等于125,又由于数据的前五位为0,所以实际温度为+125℃。3.2.3体温采集电路设计体温采集电路设计如图3-14所示。图3-14温度采集电路由于DS18B20为单总线传感器,输入和输出为同一个通道,发送时是开漏输出,即低电平时接地,高电平时不接地。当输出高电平时,DQ点的电压就会等于上拉电阻的电源电压。所以需要加一个上拉电阻,来保证信号的完整性。由DS18B20手册可以知道上拉电阻为4.7KΩ左右[14]。若传感器不需要对存储器进行写操作或者进行数模转换时,可不接上拉电阻。在本次设计中,加一个上拉电阻保证其可靠性[15]。3.3脉搏采集模块的设计本次设计选择ST188光电传感器来采集脉搏信号。采集到的信号要经过放大电路,先对该信号进行放大,才能够达到滤波整形电路所需要的电压值。再经过滤波整形后我们才能够更好的对其进行观察和研究。我所使用的Proteus的版本无法进行仿真,所以再设计一个按键电路,来模拟脉搏的跳动。如图3-15所示。图3-15脉搏采集模块原理图3.3.1ST188传感器的介绍ST188主要指通过收集红外线的强度,通过强度的大小的差异,进而输出大小不同的电信号。而红外线的强度主要是由可见光穿透人体,经反射后的发送回传感器的强度决定,通过和特定的光电强度相比较,经过放大整形电路后,输出的也就是不同的电压。其内部电路如图3-16所示。图3-16ST188内部结构3.3.2脉搏采集电路的设计由于版本落后,无法进行红外线仿真,因此设计一个按键电路,图3-17就是所设计的电路。图3-17脉搏采集电路P3.2与按钮连接,来模拟脉搏的输入。通过规定在10s内用户按下的次数来计算一分钟内心脏跳动的次数。由于本设计还安装报警系统,所以P3.4、P3.5、P3.6连接一个按键,其功能分别为:减小报警心率值、增加报警心率值、改变报警心率值,P3.7连接蜂鸣器,当超过规定的上下限时,进行报警。3.4显示模块的设计LCD(LiquidCrystalDisplay)为液晶显示屏的英文简称,该元件可以用来进行计算机的屏幕显示。本次设计选择LCD1602进行数据显示。3.4.1LCD1602的介绍HD44780作为LCD1602的控制器,能够实现多种功能,例如让字符左移、右移,并且还能够让字符闪烁。该显示模块为16×2的字符型显示单元,与主控芯片共有两种传输方式:8位并行传输和4位并行传输。本次设计采用8位并行传输的方式来完成单片机与液晶显示的连接。其引脚图如图3-18所示。图3-18LCD1602引脚图3.4.2LCD1602的引脚介绍该显示器是由两块平行导电玻璃构成,在两块板子中填入液晶材料。当通电时,液晶分子受到电场的作用会进行扭曲变形,以不同的方式进行排列,在遮光和透光比例不同的情况下,形成错落有致的图像。在本次设计中,采用LCD1602液晶显示模块,即16×2的字符型显示单元,显示字母、数字、符号等点阵式LCD,其引脚说明如图3-19所示。图3-19LCD1602引脚说明(1)VSS引脚:接地引脚。(2)VDD引脚:接+5V引脚。(3)VEE引脚:偏压信号引脚。为液晶显示器对比度调整端。电位器对比度调得太低会导致屏幕没有显示;若调得过高,会使16×2个点全黑。使用时通过一个2K的电位器来调整对比度。(4)RS引脚:寄存器选择引脚。高电平时选择数据寄存器,低电平时选择指令寄存器。(5)R/W引脚:读写信号引脚。高电平时进行读操作,低电平时进行写操作。可与RS引脚配合工作。当RS和R/W共同为低电平时可以写入指令寄存器。当RS为低电平、R/W为高电平时可以读DB7,还可以读取DB0-DB6的值。当RS为高电平、R/W为低电平时可以显示各种字型等。当RS和R/W共同为高电平时,可以读取数据。如图3-20所示。图3-20RS、R/W引脚操作说明(6)EN引脚:E端为使能端。当E端由1跳变成0时,液晶模块就执行命令。(7)D0-D7引脚:数据引脚。3.4.3显示模块的电路设计显示模块的设计如图3-21所示。在图中,可调节电阻RV1用来调节显示器对比度。RP1为排阻,即作为D0~D7引脚的上拉电阻,和DS18B20相似,当P0口作为输出时,为开漏电路,所以为了保证单片机能够给LCD1602信号,一定要上拉电阻,才能够保证显示。P1.0与显示屏的RS引脚相连接,P1.1与R/W引脚相连接,P1.2与EN引脚相连接,之后在程序里可通过P1口对LCD1602进行初始化操作,P0口向显示屏传输数据。图3-21显示模块电路所以,总的系统电路图,如图3-22所示。图3-22系统总电路图第四章系统仿真与调试4.1主程序设计本次设计中共有四个模块,分别为体温采集模块、脉搏采集模块、报警模块和显示模块。其中,LCD1602、DS18B20、STC89C52都要进行初始化操作,将程序初始化后,便可进行功能的编程,例如:读取体温、脉搏,改变报警上下限等,其流程图如图4-1所示。图4-1系统主流程图其主要思想为:调用子函数先对元件初始化设置,需要对元件从初始参数有一定的了解,之后判断用户是否按下按键,若没有按下与P3.6相连的按键,则读取当前的体温和心率值,显示在LCD1602液晶显示屏上。若用户按下与P3.6相连的按键,则根据用户按的对应的按钮来进行上下限的改变。在本次仿真中,通过按键来模拟人的心跳,读取10s内按键按下的次数,再转换为一分钟的脉搏值。4.2子程序设计4.2.1LCD1602初始化程序本模块设计要点如下:(1)可以通过定义写入时序和RS引脚来设置清屏操作和写入操作。写数据和写指令的区别在于RS引脚的电平:RS为高电平时,写数据,RS为低电平时,写指令;(2)屏幕初始化:写指令38H;(3)打开显示,关闭光标:写指令0CH;(4)设置显示光标移动位置:写指令06H,延时;(5)设置字符显示位置:编写指令,调用子程序,设置字符或者数字显示的起始位置[16]。write_com(0x38); //屏幕初始化 write_com(0x0c); //屏幕初始化 write_com(0x06); //当读或写一个字符是指针后一位 delay_uint(1000); write_string(1,0,"000/min00.00"); write_string(2,0,"H:000L:000"); write_sfm3(2,4,rate_h); //显示脉搏上限 write_sfm3(2,11,rate_l); //显示脉搏下限 write_zifu(1,14,0xdf);//显示度在编写子程序时,要记得光标的位置,为正向增量且不位移,否则就会造成不显示数字或者黑块乱闪的情况。4.2.2LCD1602读写程序要在LCD1602上显示想要的字符,实际上就是将相应的数据写入对LCD1602的DDRAM上。DDRAM地址与显示位置如下,1602为16×2的字符型显示单元,所以1602只用到前16个,共两行,如图4-2所示。图4-21602内部存储器地址根据1602的指令功能,DB6-DB0为地址位的7位,BB7恒为1,如图4-3所示。图4-3LCD1602指令功能若我们想要在规定的位置显示我们想要的字符时,我们就要先定义它的地址。若我们想要在第一行第一列输出内容,则指定其位置:为0000000,由于DB7恒为1,则其地址为10000000(80H)。若我们想要在第二行第一列开始显示,则先指定其位置:1000000,由于DB7恒为1,则其地址为11000000(C0H)。所以显示定义显示字符或者数字位置的程序如下图所示。 if(hang==1) write_com(0x80+add); else write_com(0x80+0x40+add);然后读取事先存在存储器的内容便可,令EN由1变为0,便可显示出字符或数字。其流程图如图4-4所示。图4-4LCD读写程序流程图4.2.3DS18B20初始化设计要初始化DS18B20,就要对其时序图有一定的了解,因为该传感器的输入输出为同一个接口,所以什么时候为低电平输入,什么时候为高阻态输出,都要有一定的了解。其初始化时序图如图4-5所示。其具体步骤为:通过单片机的P3.3引脚向DQ输入低电平,需要维持480us以上,设计的程序中保持了800us。之后将DQ置一,设置延时程序,需要等待15到60us,之后DS18B20就会变为低电平。若DS18B20没有变为低电平,则初始化失败。图4-5初始化时序图其初始化代码如下:voidinit_18b20(){ bitq; dq=1; //把总线拿高 delay_uint(1); dq=0; //给复位脉冲,大于480us delay_uint(80); dq=1; //把总线拿高等待 delay_uint(10); q=dq; //读取18b20初始化信号 delay_uint(20); dq=1; //把总线拿高释放总线 return(q);}4.2.4DS18B20读写程序DS18B20的读程序时序图如图4-6所示。要完成读程序,从主机上拉下单条总线DQ之后,需要在15us内释放单条总线,以便DS18B20可以将数据传输到单条总线。DS18B20至少需要60us才能完成读取序列。图4-6读程序时序图DS18B20的写程序时序图如图4-7所示,主机写“0”时序和写“1”时序的时序图不相同,因此在编写程序时,也有一定的差别。当主机写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15到45us之间正确地采集I/O总线上的“0”电平,当主机写1时序时,单总线被拉低之后,在15us之内须释放单总线[17]。图4-7写程序时序图DS18B20的分辨度为0.0625,所以若测得的温度大于零度,就要将所测得的数值乘以0.0625来得到真实值[7]。4.2.5按键程序其流程图如图4-8所示。按键一按一下代表改变脉搏报警上限值,按两下表示改变脉搏报警下限值。当按完按键一后,判断按键二是否按下。若按键二按下,则对其值进行加一操作,若没有,则判断案件三是否按下,若按键三按下,则对其值进行减一操作,直到按完两次按键一,退出改变上下限的操作。图4-8按键程序流程图4.3程序的调试该设计为一个多功能的创新设计,程序的编写对于我来说有很大的困难。通过查找资料对其进行参考,在调试中还是遇到了很大的困难。问题1:仿真的时候,LCD液晶显示只有亮度,没有数字或者字符的显示。解决:LCD亮了只能表示电源接通了,没有显示数字的原因有两种:(1)对比度电压(模块第三脚)没有调好,如果对比度电压不全适,字符将完全看不见。(2)代码有误。因为对于显示屏的读写代码,不能只盯着放在存储器里的字符或数字,显示光标位置的位置也很重要。刚开始就是因为光标的代码没有搞清楚,所以导致了显示屏没有显示,并且出现黑块闪烁的情况。问题2:当用户按下按键的时候,无改变其心率的上下限。解决:再次检查矩阵键盘电路的连接并建立新的对应关系。。通过修正,通过DS18B20实现温度采集,通过按键实现心率模拟,可以通过LCD1602成功显示对应的值,并通过按键改变心率值的上下限。当警告率低于或高于设定范围时,单片机控制蜂鸣器发出警报。4.4硬件的调试焊接对于我们来说是一件大工程。在大四上学期的时候曾经亲自焊接过Pt100热电阻温度器。焊接是一件细活,若导线的铜线露的太多容易导致短路,又由于元件实物的引脚都十分细致,很容易造成相邻引脚短路等困难,所以焊接对于我们来说可以算是一座大山。本设计的PCB图如图4-9所示。图4-9系统设计PCB图在本脉搏计的设计调试中遇到了很多的问题。回想这些问题只要认真多思考都是可以避免的,以下为主要的问题:问题1:在仿真连接电路时,单片机是直接接着蜂鸣器的,但是在调试中,蜂鸣器不发出声音。解决:蜂鸣器需要连接一个三极管,依靠三极管来对其进行驱动,才可进行报警。问题2:进人测量状态,但测量值不稳定。解决:主要是ST188传感器受到外接电磁波等干扰,造成采集信号不稳定。其次是损坏或有虚焊。4.5调试结果实物图如图4-10所示。图4-10系统实物
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖北黄石市黄石港区欢乐堡培训学校招聘15人建设笔试模拟试题及答案解析
- 2026山东枣庄仲裁委员会仲裁秘书招聘4人建设笔试备考题库及答案解析
- 2026年投资建设项目组织题库检测试卷(培优A卷)附答案详解
- 2026年医学伦理学期末真题附答案详解(研优卷)
- 2026年高中美术新学考题库高频重点提升带答案详解(精练)
- 沪教牛津版初中一年级英语下册Unit 5阅读课教案
- 小学二年级下册语文《找春天》大单元主题教学设计
- 小学三年级数学下册《面积》单元操作探究教案
- 初中英语七年级下册 Unit 1 Animals friends Section A(1aPronunciation)主题式融合教案
- 统编版初中历史七年级下册《清朝的边疆治理》教学设计
- 辅导员考试中笔试、面试常考题附答案
- T-CITS 235-2025 循环肿瘤细胞检测技术规范
- 剖析我国大学城发展困境与突破路径:基于多案例的深度洞察
- 企业流程管理与操作指导书文档集
- 2024年四川省党校研究生考试真题(附答案)
- 解决旅游纠纷的法律制度12课件
- 2025届北京市西城区北京师范大第二附属中学八下英语期中学业水平测试模拟试题含答案
- 支架教学法在中职英语写作教学中的应用:理论、实践与成效
- 物联网导论(第四版)课件:移动互联网
- 重大科技专项项目中期自评估报告(样式)
- 东南大学版三基内科
评论
0/150
提交评论