引 言
目前,国际上每年每人的静脉输液量平均为2.5-3.3瓶,就我国而言,每年每人平均输液量8瓶,总量超过100亿瓶,其中每年约有39万人死于输液不良反应 。在如今新冠肺炎疫情持续的情况下,静脉输液仍是临床医学中最常用的辅助医治方法之一 。大量的输液患者极大地增加了护士的工作量,根据相关数据表明,输液工作时间占护士每天工作时间的75%以上 。高强度的工作使得护士无法顾及所有的输液患者,这将使得患者在输液过程中存在一定的安全隐患 。患者输液过程中,若输液速度不当,可能会使患者身体感到不适、发热、寒战增加血量及心脏负荷,甚至导致心衰 [6] ,严重危及患者生命。一些患者一天可能需要输入多组药液,长时间卧床会使患者困乏甚至熟睡,若是此时输液完成但未及时进行换瓶或拔针操作,就会出现空气进入血管内形成空气栓塞、凝血堵针的现象,轻则延误治疗,重则危及患者安全,甚至发生医疗事故 。现今我国大部分医院的静脉输液仍然采用传统的人工看护方式 ,大量的陪护人员给医院的管理工作带来困难,同时也增加了患者的经济负担 。若是能设计一款自动检测患者输液速度、液尽情况并及时将此信息传输到护士站的系统,将能在很大程度上减少护士的工作量,提高患者输液过程中安全性。
针对以上问题,本文设计了一款以51单片机为控制核心,通过光电传感器对输液速度以及液尽情况进行实时监测,使用电机模块对输液杆的伸缩进行调整进而调节输液速度的大小,采用蜂鸣器模块使患者能够及时报警护士或进行输液速度的调节,减轻护士们的工作量。该系统能从患者心率客观角度以及患者感受主观角度对输液速度进行调节,极大地确保了患者输液过程的安全性,同时也提高了输液过程的舒适度,让患者拥有更佳的就医体验。
方案选择
单片机的选择
方案一:AT89C52是美国ATMEL公司生产的低电压,高性能CMOS型8位单片机,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。其片内的8K程序存储器是FLASH工艺的,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护我们的劳动成果。再者,AT89C52目前的售价比8031还低,市场供应也很充足。AT89C52可构成真正的单片机最小应用系统,缩小系统体积,增加系统的可靠性,降低系统的成本。只要程序长度小于8K,四个I/O口全部提供给用户。可用5V电压编程,而且擦写时间仅需lOms。AT89C51芯片提供三级程序存储器加密,提供了方便灵活而可靠的硬加密手段,能完全保证程序或系统不被仿制。PO口是三态双向口,通称数据总线口,因为只有该口能直接用于对外部存储器的读/写操作。
方案二:STC89C52系列单片机的指令系统和AT89C52系列的完全兼容,但实际操作起来却存在很多问题:
(1)AT89C52不带ISP下载,要用下载器才行,STC89C52可以用你的USB转串口下载,下载软件可以到STC厂家网上去下。
(2)STC单片机执行指令的速度很快,大约是AT的3-30倍,尽管快是好事,但这样一来,你在AT上好使的程序在STC上不一定好用,最典型的例子就是那些对时序有严格要求的模块,用STC时注意得加长延时,大约是AT的10—30倍就差不多,这一点自己调试就知道了。
(3)STC单片机对工作环境的要求比较低,电压低于5伏时仍然正常工作,甚至3伏到4伏之间都还可以工作,然而这样的环境下AT肯定不行了,所以当一个系统用STC单片机好用,但用AT的单片机不工作时,直接查最小系统,看单片机的供电是否正常。
比较这两种方案,由于在学校期间学过数字电路、单片机原理、C语言程序设计,综合考虑单片机的各部分资源和作为学生能够获得的资源,经过对比此次设计要求,我选择用STC系列芯片完成。而且学校也提供了相应的硬件操作平台,实际操作起来比较方便,故STC为更合理的选择。本系统选择STC89C52单片机作为主控芯片。足够本设计运行,且价格便宜,下载程序方便。
显示器选择方案
方案一:采用12864液晶显示屏。液晶显示模块是128×64点阵的汉字图形型液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。可与CPU直接接口,提供两种界面来连接微处理机:8-位并行及串行两种连接方式。具有多种功能:光标显示、画面移位、睡眠模式等。
方案二:采用LCD1602液晶显示屏。LCD1602A 是一种工业字符型液晶,能够同时显示16x02 即32个字符。(16列2行)。1602只能显示字母、数字和符号能显示16*2个字符,但寄存器不止32个,有一些显示效果,如字符一个个显示、字符从左到右或从右到左显示等等,显示效果简单。
总结:在编程使用方面,两者难度差不多,原理差不多,都是写指令、写地址、写数据等等。当然12864液晶屏显示更全面、字符更多。相比于1602液晶屏、12864能更形象具体的实现显示功能。不过1602液晶屏也能实现设计的要求。网上买比较廉价,最低的六块钱左右。而12864液晶显示屏最便宜的也要四十块钱。从造价方面考虑,当然是价格低廉的优先。而LCD1602A就是最好的选择。
一、硬件方案
硬件构成:本系统由51单片机、按键、红外对管模块、LCD1602液晶、ULN2003步进电机驱动及电源组成。
二、设计功能
单片机型号:STC89C52/51、AT89C52/51、AT89S52/51 都可通用。
1、输液瓶体积单位默认mL。每一滴的液滴的体积默认1mL。
2、通过红外对管模块实时检测液滴的滴速,并通过将滴速和液体的剩余容量实时显示在液晶LCD1602显示。
3、可以通过按键设置输液瓶的体积(量程为0-999mL)。
4、可以通过按键设置滴速,设置确认后,如果设置的滴速超过当前滴速,则步进电机正转一周,如果设置的滴速不超过当前滴速,则步进电机反转1周。
5、LCD1602实时显示输液瓶总体积、剩余液体体积、瞬时滴速、
6、设置容量、设置速度、单位信息,方便实时查看,设置阈值存储到单片机Flash中,具有掉电不丢失,无需重新设置。
7、当输液瓶的体积为0时,声光长鸣报警。
三、实物图
51单片机核心系统电路设计
51单片机一种低功耗、高性能CMOS8位微控制器,具有8K字节系统可编程Flash存储器。 51单片机使用经典的MCS-51内核,但是做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得 51单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外51单片机可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。
一、STC89C52主要特性如下:
(1)8K字节程序存储空间;
(2)512字节数据存储空间;
(3)内带4K字节EEPROM存储空间;
(4)可直接使用串口下载。
二、STC89C52主要参数如下:
(1)增强型8051单片机,6时钟/机器周期和12 时钟/机器周期可以任意选择,指令代码完全兼容传统8051;
(2)工作电压:5.5V~3.3V(5V单片机)/3.8V~2.0V(3V 单片机);
(3)工作频率范围:0~40MHz,相当于普通8051的0~80MHz,实际工作 频率可达48MHz;
(4)用户应用程序空间为8K字节;
(5)片上集成512 字节RAM;
(6)通用I/O 口(32个),复位后为:P1/P2/P3 是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O口用时,需加上拉电阻;
(7)ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器,可通过串口(RxD/P3.0,TxD/P3.1)直接下载用户程序,数秒即可完成一片;
(8)具有EEPROM功能;
(9)共3个16 位定时器/计数器。即定时器T0、T1、T2;
(10)外部中断4路,下降沿中断或低电平触发电路,Power Down 模式可 由外部中断低电平触发中断方式唤醒;
(11)通用异步串行口(UART),还可用定时器软件实现多个UART;
(12)工作温度范围:-40~+85℃(工业级)/0~75℃(商业级);
(13)PDIP封装。
三、STC89C52单片机相关引脚说明:
(1)VCC:供电电压。
(2)GND:接地。
(3)P3.0 RXD(串行输入口)
(4)P3.1 TXD(串行输出口)
(5)P3.2 /INT0(外部中断0)
(6)P3.3 /INT1(外部中断1)
(7)P3.4 T0(记时器0外部输入)
(8)P3.5 T1(记时器1外部输入)
(9)P3.6 /WR(外部数据存储器写选通)
(10)P3.7 /RD(外部数据存储器读选通)
(11)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
(12)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
(13)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
(14)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
(15)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
(16)XTAL2:来自反向振荡器的输出。
单片机最小系统
单片机芯片内还有一项主要内容就是并行I/O口。STC89C51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。
单片机的4个I/O口都是8位双向口,这些口在结构和特性上是基本相同的,但又各具特点。
STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。在单片机内部有一振荡电路,只要在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5-30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2-12MHz间选择,典型值为12MHz和11.0592MHz。
当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。
复位电路通常采用上电自动复位和按钮复位两种方式。最简单的上电自动复位电路中上电自动复位是通过外部复位电路的电容充电来实现的。只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。时钟频率用6MHZ时C取22uF,R取1KΩ。除了上电复位外,有时还需要按键手动复位。本设计就是用的按键手动复位。按键手动复位有电平方式和脉冲方式两种。其中电平复位是通过RST端经过电阻与电源Vcc接通而实现的。
28BYJ-48步进电机ULN2003驱动电路设计:
步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度,称为“步距角”,它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
虽然步进电机已被广泛地应用,但步进电机并不能像普通的直流电机,交流电机在常规下使用。它必须由双环形脉冲信号、功率驱动电路等组成控制系统方可使用。因此用好步进电机却非易事,它涉及到机械、电机、电子及计算机等许多专业知识。步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个国民经济领域都有应用。
本系统选择4相5线的5V步进电机。型号为28BYJ-48。其具体参数如下。
(1)直径:28mm
(2)电压:5V
(3)步进角度:5.625 x 1/64
(4)减速比:1/64
由于单片机的驱动能力弱,故选择ULN2003来驱动步进电机。ULN2003 是高耐压、大电流复合晶体管阵列,由七个硅NPN 复合晶体管组成ULN2003 的每一对达林顿都串联一个2.7K 的基极电阻,在5V 的工作电压下它能与TTL 和CMOS 电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。
ULN2003 工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V 的电压,输出还可以在高负载电流并行运行。
ULN2003内部还集成了一个消线圈反电动势的二极管,可用来驱动继电器。通常单片机驱动ULN2003时,上拉2K的电阻较为合适,同时,COM引脚应该悬空或接电源。
四、原理图
在本设计做的过程中,硬件和软件方面都遇到了许多问题,但是相比于软件,在硬件方面还是比较快解决的方面,因为硬件是比较容易检查出来错误的,软件比较晦涩难懂,还是有一定难度。
在硬件调试问题上,首先焊接好了元器件实物板后,先用万用表测量这个工业板子的电源方面,电源方面是最重要的问题,应该是特别需要检查的地方,以防止电源的短路和正负极的错误。然后在仔细检查电路的连接是否有问题,或者有没有虚焊或者没有焊接到的地方,然后核对一下元器件的安装是否有问题,安装上去是否符合规定,由于已经是大学四年都是做过了很多实训过来了,对于这些还是游刃有余的,但是在上机调试后还是发现了很多的问题。
五、PCB图
在本设计做的过程中,硬件和软件方面都遇到了许多问题,但是相比于软件,在硬件方面还是比较快解决的方面,因为硬件是比较容易检查出来错误的,软件比较晦涩难懂,还是有一定难度。
在硬件调试问题上,首先焊接好了元器件实物板后,先用万用表测量这个工业板子的电源方面,电源方面是最重要的问题,应该是特别需要检查的地方,以防止电源的短路和正负极的错误。然后在仔细检查电路的连接是否有问题,或者有没有虚焊或者没有焊接到的地方,然后核对一下元器件的安装是否有问题,安装上去是否符合规定,由于已经是大学四年都是做过了很多实训过来了,对于这些还是游刃有余的,但是在上机调试后还是发现了很多的问题。
六、程序源码
Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、链接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果你使用C语言编程,那么Keil几乎就是你的不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。