序
🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。
为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的是:基于51单片机心率脉搏测量仪的设计与实现
第3章 硬件电路设计
3.1 元器件介绍
STC89C52单片机
这次设计的控制核心是STC89C52单片机,它实际上也就是一款工作可靠性高,电压低的单片机,能够充分满足这次设计的需求。
STC89C52单片机一共有四组I/O口,三个电源定时器和八个电源中断器。逐渐完善的通用半导体制造工艺技术使传统单片机的系统功耗水平变得越来越低。在不同封装实际应用的研究下例如STC89C52也是因为具有多种不同的双列封装设计方法,考虑到这个课题的实际应用情况,需要单片机不断更换不同的封装,所以我们要选择双列直插式的sdip-40封装设计方法。该系列单片机可以用于在计算机上的并口进行下载,操作简单,而且该系列单片机正常运行工作的输出电压可以达到4-5v,属于一个较宽的电压范围。下面简单的来介绍一下智能定时开关系统几个开关管脚的主要作用[1]。
p0口,是一个同时具有八位高压漏极阻抗开路的双向高压I/O口,当它本身能够用来作为低压输出输入端时,有高压的阻抗开路输入时,p0口的端口值定义为1。
p1端口,它是同时具有两个内部上拉电阻的输入式I/O口,在以I/O口作为输出器时,4个逻辑电平在内部能够同时使用,当它作为外部输入的拉高端使用时,其内部上拉电阻会变成外部拉高电平,这个端口的时候内部p1口为1,当它作为外部输入拉低端使用时,受到内部上拉电阻的影响,会把它的输出转换成电流。
P2口,p2口是双向I/O口,它的工作状态和p1口的工作状态一样,写1时为输入端输入,这个时候输出电流。
p3口,当给p3口置1时,它的内部输出电平就会从一个低电平变成一个高电平,作为一个输入口,当输入时,输出电流。
RST:数字即复位器对机器的数字输入。振荡器在高电平开始工作运行的这个周期时,高电平二次重置已经远远超出2个复位单片机器的正常工作周期,单片机将来会有很大可能会对这个振荡器开始发生一个高电平的二次重置。
(1)STC89C52单片机的封装形式,如图3-1所示。
图3-1 STC89C52单片机的封装形式
(2)STC89C52引脚功能介绍,引脚各功能表如3-2所示。
图3-2 引脚各功能介绍
(3)本设计选用STC89C52芯片,能够非常迅速的对数据进行计算,同时能进行有效的编程,故障率比较低。单片机处理电路设计如图3-3所示。
图3-3 单片机处理电路设计
3.2 LM358简介
LM358放大器是双运算放大器,内部包括有两个独立的、高增益、内部频率补偿技术,适合在电源电压范围较大的单电源下使用或者双电源工作模式下使用,在相同的电源电压环境下,电源原件输出的工作电流与其他电源原件输出的工作电压之间没有任何关系。
LM358放大器主要应用于以单个电源方式供电的场合,例如:声音放大器等。LM358放大器实物图如图3-4所示。
图3-4 放大器模块实物
3.3 ST188简介
本设计采用ST188型号的传感器模块。它可以检测出一定距离范围内的物体有无,最近和最远都有一定距离限制,过近的话,物体也是不能将红外光发射到光敏三极管那边的。过远的话,即便物体反射红外线也会由于反射回来的红外线过于微弱而实现得不好,要么检测不到,要么抗干扰能力差;它检测的方式是:在手指不接触传感器的情况下,当传感器的红外光照射到指尖时,去观察血管内血液流动的情况,然后把检测到的脉搏跳动信号转换为电信号。AT188实物图如图3-5所示。
图3-5 ST188实物图
3.4 整体电路分析
硬件电路设计系统是实现这次测试系统主要功能的重要组成部分之一,采取了主控制模块对系统信号进行控制,液晶显示屏模块对测量的心率数进行数据显示,传感器对的脉搏信号进行了采集,运放控制电路为系统接收到的测量脉搏信号和数据进行数字化处理,电源控制器为系统工作时提供电压[2]。硬件电路原理图如图3-6所示。
图3-6 硬件电路原理图
3.5 脉搏信号采集电路
给电源接上电之后,发光二极管会发射红外光,把手轻轻放在传感器上时,红外光照射到指尖上会反射出光信号被光敏三极管接收,然后把接收到的光信号转换成电信号,然后把电信号送入电子网络中去测量血液在血管中的流动状态。如果人体内的血液能够顺畅流通,那么发光二极管释放出来的光线就会通过接收管进行反射,这时,接收处就没有输出任何信号。当血管内由于高压的作用,血液无法流通时,该传感器也不会输出任何信号。只有轻轻按压手指,血管会受到一定的压力作用会产生间歇性的断续,反射光也会发生变化,并且会直接影响接收管的电流,之后这个传感器就会向脉搏输入一个信号。脉搏采集电路如图3-7所示。
图3-7 脉搏采集电路
3.6 脉搏信号处理电路
通过这个传感器的一个输出信号就是低频信号,同时也会产生一个干扰信号,当这个干扰信号通过R5和R4时,高频干扰被自动滤除,然后在一个放大输入端分别连接了电容器C5和C6,C5和C6能够对现有的电流进行信号的传递,将传递得到的信号切换到运算放大器的电路中进行处理,然后就可以产生一个相应的电压信号,通常称为脉冲信号。在传输时必须同时具有两级放大,即滤波放大和整形放大。先进行滤波放大,但是滤波放大后得到的都是不规则的电压信号,并且也伴随着低频信号的干扰,所以为了能够将低频信号处理掉就必须进行整形放大。信号处理电路如图3-8所示。
图3-8 信号处理电路
3.7 显示模块
LCD1602液晶显示器,这种模块与单片机的接口简单,使用灵活方便,常用于单片机系统设计领域。LCD1602显示模块有标准的16脚接口。LCD1602与单片机接口电路如图3-9所示。
图3-9 LCD显示电路
3.8 时钟电路
时钟电路为单片机CPU提供时钟源。CPU的控制器在统一时钟源下,按照严格的时序控制,产生内部功能模块工作所需的控制信号,使功能模块完成指定的操作。时钟电路就是振荡电路。它与单片机的18和19引脚构成振荡器的反向放大器一起组成工作主频时钟电路。时钟电路如图3-10所示。
图3-10 时钟电路
3.9 手动复位电路
在单片机开始运行时,首先需要对单片机进行复位,主要就是为了使整个系统的各个部件都能够处于初始的运行状态。并且可以从程序存储器中的0000H单元开始执行一个指令。手动单片机的复位电路由两个主要部分共同组成:单片机的复位按键和一个放电电阻,当系统发生死机时,我们就可以按下复位按键,按下按键后,电容C就会与放电电阻一起形成一个回路,当放电电阻越少时,C放电速度也就越快,电容C的电压也就变为0V,此时输入RST引脚的变为高电平,使得单片机复位。手动复位电路如图3-11所示。
图3-11 手动复位电路
3.10 蜂鸣器电路
将蜂鸣器连接到单片机的24引脚上,在测量之前,需要先设置测量仪的最高限度和最低限度,当所测量的心率超过自己设置的最值时,蜂鸣器就会开始进行报警工作。但有时测量会受到其他因素的干扰,导致蜂鸣器会自动进入报警状态,为了解决这一问题我添加了一个自动开关来控制蜂鸣器。但由于单片机端口输出的蜂鸣器信号较弱,所以直接添加蜂鸣器会因为电流传递能力弱等问题使得蜂鸣器无法正常运转,甚至也没有发出任何声响,因此必须想办法对输出的信号进行放大处理,我决定增加一个三极管,用增大功率的方式来驱动蜂鸣器。蜂鸣器电路如图3-12所示。
图3-12 蜂鸣器电路
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
第5章 软件仿真与系统实物
5.1 程序调试
本次调试程序使用的是Keil4软件应用程序,Keil4容易操作,非常容易上手。按以下的调试流程步骤对程序进行调试:在一个新的project下重新启动新建一个新的file文件,最后将程序输入进去后保存为.c文件,设置时钟脉冲频率为12MHZ,在output下通过软件勾选产生16进制数文件,也就是.hex文件;对程序执行器进行编译直至没有错误后,就已经完成了对程序的编译和开发,然后把生成的.hex文件直接烧到STC89C52单片机中。
5.2 脉搏测量仪原理图调试
绘制原理图和调试原理图在AltiumDesignner软件中进行,首先我们需要在元器件库中找到所需要的器件,然后一一将元器件拉到工作界面,在工作界面把各个元器件相互连接起来,绘制完成后,使用Compile对绘制完成的原理图进行编译,然后对检查出的错误进行修改,最终的到满足设计要求的原理图。绘制好的原理图如图5-1所示。
图5-1 原理图
5.3 PCB板生成过程
生成PCB板在AltiumDesignner软件中可以进行,当元器件的原理图连线好后,确定每一个元器件的封装和接线都无误之后,就已经可以直接生成一个网络报表,在这个网络报表中没有出现任何错误,就可以直接生成PCB板了。新生成的PCB板中,所有的封装都不在我所需要的工作区,并且布线非常的杂乱无章,所以我需要一个一个的将所有元器件的封装慢慢都加到工作区里面,并按照一定的规律将整个封装的位置进行重新排列,然后进行连线,并且需要保证线路没有跳线就可以得到完整的PCB图了。制作好的PCB图如图5-2所示。
图5-2 PCB图
5.4 系统调试
在我们进行整个系统再次调试之前,我们首先需要对各个硬件系统模块依次的进行一次测试,在硬件调试模块调试确认有效无误之后,再对整个系统的整体电路进行测试,在系统整体电路测试确认无误后,才能将全部程序烧写进STC89C52单片机去进行系统调试。
硬件调试
硬件调试主要分为四个部分,分别是线路的检查、元器件接线核对、电路电压核对,和在线调试。
线路的检查:首先使用万用表检查系统的各个线路有没有发生断路、短路或虚焊等情况,以免通电后造成元器件损坏或电路不通的情况。
元器件接线核对:检查元器件是否有损坏等,比如LCD液晶显示屏、ST188传感器、LM358放大器等是否都能正常使用。
电路电压核对:首先用万用表测量核对好电压,在确认电压是处于稳定的状态之后,再将元器件进行安装。
在线调试:单片机最小系统进行在线调试,烧录程序,观察是否能顺利烧录进程序正常运行,按下复位键是否能正常复位、按下启动键是否能正常启动等。各个模块单独进行测试:烧录对应程序,对各个模块单独进行测试,检查是否都能正常工作。
软件调试
将各个子程序代码仔细编写完毕后,接下来需要对程序进行进行编译,当看到程序出现0错误的时候,不能觉得是最终的结果,不要忽略掉程序中出现的警告,要尽量去排查每一条警告产生的原因。
完成以上的调试步骤之后,根据系统框图将各个程序模块整合到一起,把全部程序都烧录到STC89C52单片机,然后确保没有遗漏之后将整个系统上电进行初始化。(1)系统上电后等待测试状态如图5-3所示。
图5-3 等待上电状态
(2)心率脉搏测量仪1分钟测量到的脉搏数据如图5-4所示。
图5-4 脉搏数据
(3)测量结束后LCD显示屏显示的数据如图5-55-5所示。
如果学弟学妹们在毕设方面有任何问题,随时可以私信我咨询哦,有问必答!学长专注于单片机相关的知识,可以解决单片机设计、嵌入式系统、编程和硬件等方面的难题。
愿毕业生有力,陪迷茫着前行!