【《基于单片机的某心率监测装置硬件和软件设计案例》8400字】_第1页
【《基于单片机的某心率监测装置硬件和软件设计案例》8400字】_第2页
【《基于单片机的某心率监测装置硬件和软件设计案例》8400字】_第3页
【《基于单片机的某心率监测装置硬件和软件设计案例》8400字】_第4页
【《基于单片机的某心率监测装置硬件和软件设计案例》8400字】_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于单片机的某心率监测装置硬件和软件设计案例目录TOC\o"1-3"\h\u13790基于单片机的某心率监测装置硬件和软件设计案例 126535第1章硬件电路的设计 2248291.1主控模块电路设计 282851.1.1主控模块介绍 265971.1.2主控模块外围电路设计 466281.2直流电机调速模块电路设计 5234701.2.1直流电动机模块介绍 5313051.2.2电机模块接线图 6131201.3测速模块电路设计 6184231.1.1测速模块介绍 643971.1.2测速模块接线图 833021.4心率监测模块电路设计 929091.2.1心率监测模块介绍 951221.2.2心率监测模块接线图 1289931.5显示模块电路设计 1269241.5.1显示模块的介绍 1287391.5.2LCD液晶显示电路图 14256691.6系统整体原理图设计 14276101.7本章总结 1411932第2章软件设计 16203532.1主程序流程图 1641612.2测速测心率程序流程图 1717652.31602液晶显示程序流程图 17201612.4本章总结 1812421第3章调试 19269093.1编程语言及KEIL介绍 19183973.1.1C语言简介 19275103.1.2Keil集成开发环境介绍 19299033.2STC-ISP烧录软件介绍 2085203.3CH340串口烧写模块 2187773.4调试过程 2182603.5调试结果 22第1章硬件电路的设计1.1主控模块电路设计1.1.1主控模块介绍主控模块选用的单片机STC89C52RC,它由STC集团研发,其优势在于性能强、能耗小,是一个CMOS8位微控制器,其内存为8K字节,为可编程FLASH存储器。该单片机采用MCS-51内核,并对其进行了一定优化,与51单片机相比,其功能得到了丰富。对于单芯片,其内部包括可编程的FLASH以及8位CPU,这种STC89C52单片机在很多嵌入式控制系统中广泛运用,具有较好的效果与灵活性。其功能包括:512字节RAM,8K字节FLASH,32位I/O口线,内置4KEEPROM,看门狗定时器,3个16位定时器/计数器,MAX810复位电路,全双工串行口,4个外部中断,一个7向量4级中断结构,并与51单片机的5向量2级中断完全兼容。而且这个单片机支持0Hz的静态逻辑工作,其内部装有2种软件,支持节电功能。当单片机处于空闲状态时,CPU不运行,但定时器/计数器、RAM、串口、中断不会停止运行。当处于掉电保护模式时,将存储RAM内容,振荡器停止工作,整个单片机的全部进程都不运行,这个状态持续到硬件复位或下一个中断。工作频率的最大值为35MHz,包括6T/12T两种内存[15]。STC89C52的特征包括:程序存储容量为8K字节;数据存储容量为512字节;包含4KBEEPROM存储空间;能够利用串口进行直接下载。STC89C52重要参数包括:强化后的8051单片机,可在6个时钟/机周期与12个时钟/机周期进行转换,指令码和8051单片机的兼容性好;运行电压:3.5V~1.3V(5V单片机)/1.8V~2.0V(3V单片机);运行频率区间:0~40MHz,与一般8051型单片机的0~80MHz相似,实际最大运行频率为48MHz;具有8K字节的客户应用程序空间;内部含有512字节的RAM;具有32个通用I/O口,经过复位:P1/P2/P3表示准双向端口/弱上拉,P0表示漏极开路输出,当起到总线扩展功能时,不必引入拉阻,但起到I/O端口作用时需要拉阻;REF_Ref19854\r\h[8]具有ISP/IAP两个模式,不需要专用的仿真器与程序,利用串口(RxD/P1.0,TxD/P1.1)就可对程序进行直接下载,时间在几秒之间;支持EEPROM功能;包含3个16位定时器/计数器。依次为T0、T1、T2;包含4个外部中断,当处于低电平或中断时,电路将被启动,在PowerDown模式下,利用可外部中断能够唤醒低电平启动中断模式;通用异步串行口(UART),可通过定时器来支持UART;运行温度区间:工业级为-40~+85℃,商业级为0~75℃;PDIP封装。STC89C52单片机的主要引脚及其内容阐述,如图3-1所示:图3-1STC89C52单片机引脚原理图GND表示接地。VCC表示供电电压。P1.1/TXD表示串行输出口。P1.0/RXD表示串行输入口。P1.3/INT1表示外部中断1。P1.2/INT0表示外部中断0。P1.5/T1表示记时器1外部输入。P1.4/T0表示记时器0外部输入。P1.7/RD表示外部数据存储器读选通。P1.6/WR表示外部数据存储器写选通。RST表示复位输入。如果振荡器对部件进行复位,需要控制RST脚2个机器周期处于高电平状态下的时长。REF_Ref20089\r\h[9]ALE/PROG:对外部存储器进行访问的过程中,地址锁存器的输出电平对地址的状态字节进行锁存。当处于闪存编程阶段,它起来了输入编程脉冲的作用。一般而言,ALE输出频率只有为1/6的振荡器频率,其为周期不变的一个正脉冲信号。所以,我们将其用于定时、外部输出脉冲。但是我们需关注,该引脚充当外部数据存储器功能时,将跳过ALE脉冲。想要确保ALE输出不存在,则将SFR8EH地址调整为0。这个阶段,ALE只有运行MOVX,同时MOVC指令对ALE提供服务。而且,稍被局部向上拉起。当微处理器为外部执行状态ALE禁止时,这个调整不起作用。PSEN在外部程序存储器中起到选通信号作用。外部程序存储器运行过程中,各个机器周期中PSEN的有效次数为2。对外部数据存储器进行访问过程中,则不存在2个有效的PSEN信号。EA/VPP:如果EA处于低电平状态,此时不管内部程序内存的存在与否,都将开始运行外部程序内存(0000h-ffffh)。但需重视:如果处于加密模式1,EA将对内部进行锁定并重置;如果EA处于高电平状态时,则采用内部程序存储器。处于闪存编程过程中时,它也在12V编程电源(VPP)内运用。XTAL1表示内部时钟工作电路与反向振荡放大器的输入。XTAL2表示反向振荡器的输出[16]。1.1.2主控模块外围电路设计在选定了主控芯片后,还需要对其外围电路进行设计,使其能够具有时钟电路、复位电路与电源电路、下载电路等外围模块,如图3-2所示为主控模块外围电路原理图。图3-2主控模块外围电路原理图复位电路的构成包括电解电容EC1、按键S1与电阻R1。支持上电自动复位与手动按键复位两种。当上电复位按键接口获取两个高端信号,此时为手动复位;如果电压从低电平增强为高电平并保持一定时间,那么这个时间之后,系统在电阻和接地两者间将构成通路,可以将高电平自动降低,将单片机由高电位转换成低电位,这种自动复位就是上电复位。时钟电路的构成部件包括瓷片电容C1、C2与晶振Y1。数字电路具有控制芯片时,必须存在时钟电路的支持,该电路可以自动显示系统时间,确保控制芯片能够稳定运行,将时钟信号发送给控制芯片的过程就是“拍”,它是保证控制系统可以稳定运行的关键。因此我们大部分都结合30PF电容与11.0592MHZ晶振的方式,来确保系统的稳定运行,以及增强系统运行性能。其中电容的的作用在于为晶振提供起振服务,确保数字控制器上电之后系统的稳定运行。单片机的下载接口是JD1,该下载模块的主要实现原理为串口,通过与上位机的串口通信实现程序下载。1.2直流电机调速模块电路设计1.2.1\t"/item/%E7%94%B5%E5%8A%A8%E9%A9%AC%E8%BE%BE/_blank"直流电动机模块介绍直流电机运行机制:直流电动机的具体工作状态,实际上是基于带电导体于磁场力所产生运动的机制运行,其中励磁线圈和电流相连,但要反向,所以线圈即可基于此扭转运动,要确保该位置电磁转矩方向不变,最重要的是线圈因为极性不同的刺激做出变化需要第一时间让线圈通过的电流方向所改变,也就是实现电流换向,具体的运行原理如图3-3所示。图3-3直流电机工作原理图利用电刷,直流电源为电枢绕组供电,此时,电枢表面的N极下导体流动方向保持一致,按照左手定律,导体会因为逆时针转矩受到相应干扰,而另外在S极下的导体,随之产生同方向的移动,按照这样的规律,结合左手定律,导体因为逆时针转矩干扰而产生变化,所以电枢绕组实际上会出现逆时针运动,而所输入的直流电能,被处理以后,即转子轴机械能REF_Ref20253\r\h[10]。直流电机优势体现在以下几个方面:较大的调速区域,而且具有较好平滑性;有较大的启停和过载转矩;方便调控,有良好可靠、稳定性;调速能耗比较低。1.2.2电机模块接线图如图3-4所示,系统利用纯模拟电路对电机的运行速度进行控制,SW2表示电源开关,DC表示电源插座,PR是一个10K的大功率电阻。如果系统上电,闭合电源开关,控制电位器PR,就可以对速度进行控制。当控制PR时,此时电机电压处于0-5V,对电机电压进行控制也可以实现电机速度的控制。电位器在电机上的电压直接决定了电机的最高转速[17-18]。图3-4直流电机调速电路原理图1.3测速模块电路设计1.1.1测速模块介绍测速模块所选传感器,按照霍尔元件A3144展开研发得到的模块,A3144属于磁传感器,在实际应用里也比较常见,所以传感器可通过半导体集成技术、霍尔效应原理实现相应的功能。其包含了多个部分,比如差分放大器、电压调节器、温度补偿电路、电压发生器、施密特触发器等,其中,霍尔器件的优势体现在:重量小、频率高、污染物少、体积小、功耗低、结构坚固、频率高、不受水蒸气影响、便于安装、耐振动性好等。和LM393比较器联合应用,对比传感器采集到的信号和电位器分压数据,即可按照需求,传输电平信号,信号具有较理想的波形,并且噪音少,具有良好的驱动性。本次所选的传感器模块整体而言,具有较好的灵敏性,并且其空间占用小,精度和可靠性,都远比其他同类产品理想。模块的参数:其运行的电压值不超过5V,也不能在1.3V之下。其为3144E开关型霍尔传感器。传感器获取磁场信息即可输出低电平,此时信号灯点亮,否则输出的就是高电平,灯不亮。设备里包含了信号、电源指示灯。输出包括了数字开关量以及模拟量,前者即0、1接口输出,而后者AO口不参与传输。结合LM393比较器,信号具有较理想的波形,并且噪音少,具有良好的驱动性,在15mA以上。电机位置、速度等检测,都可应用。接口介绍:VCC、GND分别和电源的正、负极相连。DO、AO分别输出数字量、模拟量,前者主要是磁感应信号,一般为低电平,后者则根据距离,决定所输出的电压信号。应用简介:A3144霍尔开关元件具有较高的集成性,对于该传感器而言,通过这一开关元件,不但可以让模块芯片所传输的电压信号进行放大处理,而且还能驱动电路。另外,所输出的电压信号,处理以后,可转换成方脉冲信号。传感器外形、对应的磁场可参考如图示3-5。在该装置里,磁钢形成了磁场,因为在应用时,磁钢和传感器是同时运行的,具体设计是把磁钢置于材料表面,一般位于其盘边缘。当传感器运行,输出脉冲时,其对应的频率即圆盘转速。图3-图3-5A3144霍尔传感器测转速示意图对于传感器而言,还配置了LM393比较器,因为要确保输出信号有效、稳定,所以整个模块的输出波形,可参考如图示3-6:图3-6霍尔传感器波形示意图霍尔传感器模块电路图可参考如图示3-7。根据图示3-7,其R1是分压电阻,功能为传感器模块所获取的电磁场数据,以得到模拟信号AO,该信号传输至LM393比较器,然后和模拟电压对比,模拟值出自LM393里的芯片的电位器分压输出,对比以后,所得结果即数字信号,包括了高电平、低电平两种。另外,该模块包含了2个滤波电容,其中C1是电源滤波,提升电源质量,而C2是模拟信号滤波,可以让输出更为可靠。模块还有2个限流电阻,主要作用是避免电流过高,让LED灯受损或是出现危险情况,低电平时LED灯亮,另外上拉电阻即R4,可以利用电阻钳位,让未知信号处于高电平,而且还可以限流,以确保比较器可以按照要求传输相关信号,保持系统连接电路的安全,同时也保证整个系统的运行,更为可靠。图3-7霍尔传感器原理图如图3-8a)所示为本设计选用的传感器模块的相关接口介绍,3-8b)所示为霍尔传感器实物图:a)接口介绍b)霍尔传感器实物图图3-8霍尔传感器实物介绍1.1.2测速模块接线图如图3-9所示为本设计的测速模块原理图,如图3-9可见本文选用的测速模块为霍尔传感器A3144,其数据引脚DO接到控制模块的P33引脚以实现数据的交互,其电能通过引脚接到主控模块的VVC和GND引脚。图3-9测速模块接线原理图1.4心率监测模块电路设计1.2.1心率监测模块介绍对于医学领域而言,心率传感器是不可或缺的医疗器材之一,其包含了噪音消除器、放大器,基于光学理论设计。在实际应用中-,利用该传感器实现心率相关检查和工作。一般传感器比较小,可戴于手指或是耳垂即可。传感器能够转换原本的脉冲信号传递电信号,在使用时,手指和其中的刻度盘接触,并且另外一侧设计了可发光二极管。在脉搏跳动的过程中,人体的动脉血会随之出现周期性的改变,REF_Ref20488\r\h[11]所以利用传感器的光来检测其变化,还有一侧设计了光电三极管,这一器件则是收集红外光信号并处理得到电信号。Pulsesensor脉搏心率传感器的实物图,如图示3-10,即:图3-1图3-10Pulsesensor脉搏心率传感器实物图在相关资料里,脉搏心率传感器所传输的信号波形,理论图即如图示3-11:图3-11图3-11心率脉搏传感器输出波形图进行具体应用时,基于示波器,能够对所收集的脉搏心率传感器传输的信号进行检测,其波形可参考图示3-12,基本和理论波形相差不明显。图3-12图3-12心率脉搏传感器实际输出信号波形从图示3-12来看,所呈现的波形不属于标准方波,而要满足单片机的传输要求和其辨识格式,可通过LM393比较器做滤波处理,把传感器信号处理为标准方波,提高单片机的有效采集,促进信号检测的稳定性提升。波形处理以后,即如图示3-13。图3-13心率脉搏传感器经比较器滤波后输出的波形图LM393比较器的具体原理,可参考图示3-14。根据图示,其R1是分压电阻,功能为转换模块所获取的模拟数据,以得到电压信号,该信号传输至比较器,然后和模拟电压对比,模拟值出自装置里的芯片的电位器分压输出,对比以后,所得结果即方波信号。另外,该模块包含了2个滤波电容,其中C1是电源滤波,提升电源质量,而C2是模拟信号滤波,可以让输出更为可靠。还有2个限流电阻,主要作用是避免电流过高,让LED灯受损或是出现危险情况,低电平时LED灯亮,另外上拉电阻即R4,可以利用电阻钳位,让未知信号处于高电平,而且还可以限流,以确保比较器可以按照要求传输相关信号,同时也保证整个系统的运行,更为可靠。图3-14LM393比较器模块内部电路图LM393比较器如图示3-15:图3-15LM393比较器模块实物图1.2.2心率监测模块接线图心率检测传感器模块接口电路原理图如图3-16所示:图3-16心率传感器接口电路原理图1.5显示模块电路设计1.5.1显示模块的介绍显示模块选用的字符型液晶显示,它的功能是对数字、字母、图像等进行输出,通常其控制器是LCD,并且集成了存储器、驱动器等设备,连接液晶屏构成了整个显示模块,便于安装应用,在市场中非常受欢迎[19-20]。在本次所应用的液晶显示模式里,其引脚数量为十六。具体的功能即如下表格3-1内容:表3-1LCD引脚表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极LCD1602液晶屏的运行流程:(1)明确其显示模式在所选液晶屏中,对于显示模式,是利用相关的命令,完成控制器操作而实现相应的内容显示。具体命令为以下表格3-2内容:表3-2LCD1602常用的控制指令指令名称指令功能指令的二进制代码显示模式设置设置为16×2显示,5×7点阵,8位数据接口00111000显示开/关及光标设置D=1,开显示;D=0,关显示C=1,显示光标;C=0,不现实光标B=1,光标闪烁;B=0,光标不闪烁00001DCB输入模式设置N=1,光标右移;N=0,光标左移S=1,文字移动有效;S=0,移动无效000001NS(2)字符的ASCII码通过程序,对字符、字符串常量进行界定的过程里,通常选择C语言进行,而该情况能够自动生成对应的ASCII码。在得到了该码以后,单片机可以基于I/O口,把所要传输的内容发送至DDRAM。(3)明确字符显示位置在所选显示屏里,对于具体内容的显示,有相关的规定:80H+地址码(00H~0FH,40H~4FH),如图3-17所示。图3-17显示内容地址码所选液晶屏具体操作的相关条件,归纳为表格3-3内容:表3-3LCD1602液晶屏的读写操作规定读状态输入RS=0,R/W=1,E=1输出D0~D7=状态字写指令输入RS=0,R/W=0,D0~D7=指令码,E=高脉冲输出无读数据输入RS=1,R/W=1,E=1输出D0~D7=数据写数据输入RS=1,R/W=0,D0~D7=指令码,E=高脉冲输出无1.5.2LCD液晶显示电路图系统中采用LCD1602作为显示期间输出相关信息。在本电路中电位器可以调节业界显示器的对比清晰度,其具体电路原理图如图3-18所示:图3-18LCD液晶显示电路原理图该液晶屏和单片机相连,其3个接口(RS、R/W、E)和单片机的P2.0--P2.2三个引脚连接,利用编程,所连接的引脚即可实现置“0”或“1”,由此完成液晶屏读写操作,对于字符的显示而言,具体的流程是:“读状态→写指令→写数据→自动显示”。LCD1602液晶实物图如图3-19:图3-图3-19LCD1602液晶实物图1.6系统整体原理图设计在完成系统的主控模块电路图设计、直流电机测速模块电路设计、测速模块电路设计、心率检测模块电路设计、显示模块电路设计后得出本系统的原理图,见附录一。1.7本章总结本章主要完成了整个系统的电路设计,分别对主控模块及其外围电路、直流电机调速模块电路,测速模块电路,心率检测模块电路,显示模块等进行详细阐述和电路设计,最后再根据每一个子模块的电路设计得出本系统整体的原理图,为我们的实物制作提供了理论依据。第2章软件设计2.1主程序流程图本设计主要用C语言实现程序编写,利用Keil5软件编译平台和串口组手完成系统的调试工作,系统运行流程图如图4-1所示,主要由初始化函数和循环函数组成。循环函数的功能为当系统上电后,控制器根据编写的程序完成个IO引脚的初始化,并对定时器进行初始化,设定定时器的中断中间作为心率传感器和霍尔测速传感器的采样时间。在循环函数中不断去检测是否发生定时器中断,若中断发生会在中断处理程序中完成对数据的处理,控制器再将跟新后的数据传递给LCD模块进行显示,不断循环完成数据的采集、处理和显示工作[21]。图4-1系统运行主程序流程图2.2测速测心率程序流程图如图4-2所示为测速测心率程序流程图,在该子程序中,首先完成所需硬件的I/O引脚配置,完成初始化配置后,在循环函数中不断去判断采集是否开始,若开始则不断计数,并通过主控模块对数据进行计算处理和存储,并在完成处理后将数据传递给数码管进行显示。图4-2测速测心率读取程序流程图2.31602液晶显示程序流程图如图4-3所示为LCD1602液晶显示程序流程图,在该子程序中,首先完成所需硬件的I/O引脚配置,完成初始化配置后,在循环函数中不断去判断是否有数据传递过来,并将最新的数据与上次数据做对比。如果与上次数据不一样,判断为新数据,通过LCD的读函数和写晚熟完成新数据的显示工作。图4-3LCD1602程序流程图2.4本章总结本章主要完成了系统的程序设计。首先对该系统的主程序进行设计并确立了主程序流程图。其次,对测速和测心率子程序进行设计确立起流程图。最后,实现LCD1602实现模块的程序设计。第3章调试3.1编程语言及KEIL介绍3.1.1C语言简介随着电子科技的不断进步和人工智能时代的到来,未来社会中计算机必将成为主流发展,做为计算机之间相互交流的途径—编程语言越来越受到重视。就拿现在主流编程语言来说,C++、Java是面向对象的编程语言,C语言是面向过程的编程语言,以编译方式简单、处理低级存储器、运行环境要求低的设计目标被大部分编程工作者所喜爱。C语言由美国肯汤普森设计的B语言为基础发展而来,基本结构包括数据类型、数组、指针、字符串等结构,定义了顺序结构、选择结构、循环结构三大语法结构,具有语言简单、数据类型丰富、控制语句结构化、代码可移植、物理地址直接操作等特点。与汇编语言相比,C语言具有问题描述速度快、工作量小、可读性好、代码生成效率高、易于调试、修改和移植等优点,运行结果与汇编语言相当。就目前的计算机领域而言,C语言主要用于计算机系统设计和应用编程,在编程语言中处于不可替代的重要的地位。同时,C语言绘图能力强、移植性好、数据处理能力强。它是一种高级语言,适合于三维图形的数值计算、系统软件编写、动画制作。在应用方面,C语言相对于其他高级语言有着明显的优势,因为大部分大型应用软件都是以C语言进行编写的,非常适合未来人工智能的需求。3.1.2Keil集成开发环境介绍Keil提供的开发方案相对而言是比较完整的,包括C编译器、宏汇编、连接器等,在集成开发环境的基础上,以上部分能够组合。它可以完成整个开发过程,包括编辑、编译、链接、调试和仿真。首先使用编辑器编写程序,然后调用编译器进行编译。连接后,可以直接运行。它缩短了开发周期,因为在过去它是一个用编译器编译的重复过程,然后退出编辑状态进行编译、调试,然后调用编辑器[22-24]。使用Keil开发应用软件的流程图如下图5-1所示:图5-1Keil5软件开发流程图3.2STC-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论