医用注射液流量控制与检测系统设计含SW三维及10张CAD图
医用注射液流量控制与检测系统设计含SW三维及10张CAD图,医用,注射液,流量,控制,节制,检测,系统,设计,sw,三维,10,cad
摘要在医疗行业中,注射液是临床治疗中必不可少的。在当前的大环境下,医疗资源短缺,注射液的灌注主要还要依靠护士手工灌注,效率低下,病人的长时间等待容易产生医患矛盾。本系统旨在通过使用单片机控制蠕动泵,对注射液进行自动化,流速可调可检测可控制的灌注。本文基于51单片机为开发平台,通过键盘输入泵号,灌注量和灌注速度,实现注射液的自动化灌注。通过蠕动泵的工作原理,对注射液的灌注流量进行检测和控制。当灌注完毕后,通过蜂鸣报警和显示屏显示提示护士灌注完成。通过本设计可以极大的提升护士的工作效率,减轻护士站的工作负担,改善医患关系。关键词:51单片机 蠕动泵 注射液 流量检测 流量控制AbractIn the medical industry, injection is essential for clinical treatment. In the current general environment, there is a shortage of medical resources, and the infusion of injections mainly depends on manual infusion by nurses, which is inefficient, and long-term waiting of patients is prone to conflict between doctors and patients. Therefore, a device needs to be designed to reduce the workload of nurses, improve the efficiency of nurses, and improve the relationship between doctors and patients.This system aims to automate the injection solution by using a single-chip microcomputer to control the peristaltic pump. The flow rate can be adjusted to detect and control the perfusion.This article is based on 51 single-chip microcomputer as a development platform, through the keyboard to enter the pump number, perfusion volume and perfusion speed, to achieve automatic injection of injection liquid. Through the working principle of the peristaltic pump, the perfusion flow of the injection is detected and controlled. When the perfusion is completed, the beeper alarm and the display on the display screen will remind the nurse that the perfusion is complete. Can greatly improve the work efficiency of nurses and reduce their workload.Keywords: 51 single chip microcomputer;peristaltic pump;injection liquid flow detection;flow control.目录摘要IAbractII第1章 绪论11.1 本课题研究的目的,意义11.2 国内外研究现状11.2.1 国外研究现状11.2.2 国内研究现状21.2.3 国内外研究现状综述31.3 研究设想31.4 本文的研究的主要内容4第2章 开发平台52.1 单片机简介52.2 单片机选型52.3本章小结7第三章 流量控制与检测系统硬件设计83.1 流量检测控制系统方案设计83.1.1 流量检测控制系统的选型83.1.2 蠕动泵流量检测控制的实现83.2 系统的流程设计83.3 系统各模块的设计93.3.1 显示模块93.3.2 键盘输入模块103.3.3 步进电机驱动模块103.3.4 模式切换模块123.3.5 单片机电路133.4 本章小结13第四章 流量控制与检测系统软件设计144.1 软件设计语言选择144.2 延时程序设计144.3 显示模块程序设计144.4 键盘输入模块程序设计164.5 时钟脉冲信号输出模块174.6 其他模块程序设计184.7 本章小结18第五章 工程定额概算195.1 医用注射液流量检测控制系统的成本预算195.2 医用注射液流量控制系统的质量管理195.3 医用注射液对环境影响及其可持续性205.3.1 本系统材料对环境的影响205.3.2 本系统的可持续性20第六章 结论216.1 结论216.2 尚待解决的问题21致谢22参考文献23附录 124附录 236V第1章 绪论1.1 本课题研究的目的,意义我国是人口大国,人口基数大造成我国门诊病人的数量同样也很大,因此在就诊高峰阶段容易出现人手不足的现象。根据实地走访调查,一般社区医院的输液中心一般只配有3-5名护士,在患者人数多的时候,护士经常要同时承担配制注射液,打针和拔针等工作,人手严重不足。大多数病人在取药后并不能马上得到注射缓解病痛,注射完毕的病人需要等待一段时间才能拔针,在等待过程中容易产生医患矛盾。近年来,人工成本越来越高。随着机械智能化和自动化的发展,机器取代人工的优势越来越明显。机器可以24小时不停的运作,并且相较于人工,在某些领域具有无可比拟的精度和效率:人工容易受到操作方式不正确,读数方式不正确,劳动时间长疲劳等产生误差;机器而因为严格按照写入其中的程序运作,且工作时间再长也不会疲劳,不易产生误差和错误。人在长时间工作后,工作效率会逐渐下降,机器能长时间保持较高的工作效率。因此,机器取代人工是大势所趋,未来越来越多的生产过程会被机器所取代。本课题研究的意义和目的在于通过自动化灌注注射液,免去护士手工灌注注射液这一机械和重复的行动,减轻护士们的工作量,提高护士服务病人的效率,改善患者的注射体验,缓解紧张的医患关系,同时对未来机器在医疗行业的应用做出尝试。1.2 国内外研究现状1.2.1 国外研究现状国外现有多种注液泵,广泛地应用于石油开采,食品工业和医疗卫生行业。根据谷歌学术和专利搜索引擎的显示,一部分的输液泵被用于油气开采,由于开采环境恶劣,部分油井存在油稠,结蜡等状况,需要向油井中加药解决。人在此恶劣环境下无法完成任务,所以需要注液泵帮助完成。再者就是食品行业,是因为注液泵加料的精度高,生产出的产品质量好。医疗卫生行业所用的注液泵用于药品生产,药品配置较多。因为注射液等需要良好的配比,所以注液泵成为不二之选。在医院中,大多存在的是输液泵,应用于某些极端情况下,需要精确控制药品输出量和输入速度。它仍需要护士配置药液,再通过其进行注射。在谷歌专利上找到有类似本文讨论装置的器械,它采用电机挤压药袋的方式进行工作,存在精度低,卫生状况难以保证,效率低下的问题。图1-1国外注液泵1.2.2 国内研究现状国内的类似装置也用在了油井等环境恶劣不适合人工操作的场景和食品工业等需要精确加料的场景下。通过知网,百度学术等的搜索,国内暂时没有用于注射液灌注的产品。在各大医院,广泛存在的是用于婴幼儿注射使用的输液泵,护士手工配置好药液后,再通过此泵对患者进行注射,注射液仍需要护士手工进行灌注。从总体上看来,我国对本文所设计的产品的研发力度还不够大,没有减少灌注注射液这类机械又重复的工作,没有充分的解放劳动力用于更好地服务患者和减少患者的病痛。图1-2 国内实现类似功能的装置图1-3 国内实现类似功能的液体加注装置1.2.3 国内外研究现状综述结合百度学术、谷歌学术、谷歌专利等搜索引擎的查询,国内外相关装置并没有实际应用到临床治疗中。可能与以下原因有关:1.装置采用纯机械实现,加液装置精度较低,无法实现精确调节。2.不能对加液装置的流速实现检测。3.装置很难清洁,很难保证卫生。4.一个机器只能对一个注射瓶加液,效率很低。1.3 研究设想通过对国内外研究/发明成果的分析,该装置需要具备以下特点1. 加液装置的流速可检测,可调可控:因为注射瓶/袋有多种容量,如适合婴幼儿的容量,成人的容量,和住院部的大容量注射袋。而且它们的孔径也不尽相同,对于不同的注射瓶/袋,需要使用不同的速度进行灌注,以防产生灌注速度过快容量太小引起喷出或者孔径太小,灌注速度太快瓶内空气无法散佚出来的问题。2. 加液装置的机械结构要和注射液严格分离,保证卫生:注射液直接进入患者的血液,需要严格保证无菌的状态,以防病人发生感染和其他卫生问题。3. 装置有35个泵,能对多个注射瓶同时加注注射液,效率高:本文的装置旨在减轻护士的劳动强度,提高注射液灌注的效率,使其更好的能为患者服务。如果采用单泵便只能减轻护士的劳动强度,灌注效率不会得到大幅度的提升,采用多泵的设计能成倍的增长灌注的速度和效率,减少患者的等待。4装置的精度较高:部分药物需要有一定的浓度才能产生效果,因此装置加注注射液的量误差不能过大,影响药物对人体的效果。1.4 本文的研究的主要内容本文通过51单片机这个常用的平台,对注射液流量检测控制系统进行开发。51单片机作为这套系统的核心,控制着LCD显示模块,4*4矩阵键盘输入模块,步进电机驱动器等模块,从而实现整套系统的功能。在流量控制和检测方面,主要使用蠕动泵为主要元件,从而达成精确的流量检测和流量控制。本文的行文结构如下:第一章:绪论。主要介绍了注射液流量检测与控制系统的背景以及发展前景,简要说明了设计本套系统的意义,并对本套系统的结构进行了简要的介绍。第二章:开发平台简要的介绍了本套系统需要用到的单片机平台,并简要的介绍了单片机的组成和优点。并且比较了市售的主流单片机平台,选择了51单片机作为开发平台。第三章:流量控制与检测系统硬件设计。介绍了硬件系统的工作流程,并且对硬件系统的各项模块进行了构成和工作原理 的描述。第四章:流量控制与检测系统软件设计。介绍了本系统选用的程序设计语言,并且对LCD显示模块和矩阵键盘扫描模块的软件设计进行了简要的说明。第五章:结论。对本次设计做了总结,分析了本套系统完成的目标和尚待解决的问题。第2章 开发平台在本系统中,主要应用到了单片机系统。2.1 单片机简介单片机是一种采用了超大规模集成电路技术把一整个计算机系统集成到一个硅片上的集成电路芯片。单片机还可以叫做单片微控器,单片机主要由中央处理器(英文名为Central Processing Unit,缩写为CPU),随机存取存储器(英文名为Random Access Memory,缩写为RAM),只读存储器(英文名为Read-Only Memory,缩写为ROM),输入输出设备(英文名Input/Output,简称I/O)和写入只读存储器中的程序组成。单片机通过数据采集与控制系统完成各种繁琐的运算,无论是控制运算符号,还是下达运算指令,单片机都能圆满完成任务。因此,在智能设备领域,单片机凭借其强大的数据处理能力和不俗的计算能力占有一席之地。中央处理器由运算器,寄存器和控制器组成。它通过读取随机存取存储器和只读存储器中的指令,将指令“翻译”成机器语言并执行,控制单片机的各个组件实现相应的功能。随机存取存储器主要用于存取中央处理器计算的中间结果,进行数据和标志位的暂存和缓冲。它在掉电后会丢失其中的所有数据。只读存储器主要用来存放用户写入的程序,它在掉电后仍然能保留其中的所有数据。输入输出设备是单片机实现人机交互的主要途径,它能通过输入设备对外界(例如温度,湿度)和用户的指令做出相应的反应。通过输出设备实现程序设计的功能。2.2 单片机选型现阶段市售的单片机主要有以下几种产品:18051单片机及其兼容产品,如ST89C51,ATMEL AT89C51等51系列单片机拥有丰富的指令集,具备一些单片机不具备的除法和乘法指令,在乘除法时不需要编写子程序调用。它拥有位处理器(亦称布尔处理器),能进行位逻辑运算,并且能对片内的某些特殊寄存器进行按位运算,位寻址便捷。图 2-1 AT89S522意法半导体公司根据ARM架构开发的STM32系列单片机STM32系列单片机相较于其他的单片机有易于开发的特点,其开发公司推出的CUBEMX软件能帮助开发者完成初始化硬件,让开发者专注于功能的开发;它还拥有丰富的库函数,易于开发者调用。并且ARM处理器具有低功耗高性能的特点,极适用于嵌入式开发。图 2-2 STM323ATMEL公司开发的AVR单片机AVR在相同的时钟频率下拥有较快的处理速度,并且片内的存储空间和内部资源丰富,I/O的驱动能力较高。图 2-3 AVR4德州仪器MP430单片机MP430采用精简指令集,所以相比复杂指令集的单片机(如51单片机),执行指令的效率更高,在对运算和控制要求不高的嵌入式设备中应用较多。图 2-3 MP4305PIC系列单片机PIC系列单片机采用了双指令流水线结构,其他单指令流水线结构的单片机在执行完一条指令后才能取下一条指令,但是PIC单片机能在执行指令的过程中取下一条指令,提高了运行效率。综合性价比,处理速度,易用程度和扩展性,本系统决定采用51单片机为开发平台。2.3本章小结在本章中,简单地介绍了单片机的概况,叙述了单片机控制注射液流量的可行性和它的优点。根据对市场上所销售的主流单片机进行了对比,选择了51单片机作为本系统的开发平台。第三章 流量控制与检测系统硬件设计3.1 流量检测控制系统方案设计3.1.1 流量检测控制系统的选型传统的流量检测控制系统主要采用传感器来实现,通过传感器实时检测流体的流速来实现反馈调节。本系统是注射液流量控制,所以只讨论液体流速传感器。根据对市场现售液体流速传感器的调查,有霍尼韦尔(HoneyWell)公司生产的MBB30.2032,LLN865172-2,TE Connectivity公司生产的LS803-51,IDT公司生产的FS1012-1002-LQ等产品。根据对这些产品的数据手册进行分析,这些产品使用方便且提供了多种数据输出方式,例如FS1012系列产品有模拟输出和I2C输出两种方式。但是这些普遍没有进行校准,并且需要严苛的温度条件,需要后期人工校准进行函数拟合,并且它们能检测的流速范围有限,对小流量有较大的误差。并且他们价格较高,每片的价格不低于700人民币。通过查阅文献,笔者注意到一种名为蠕动泵的新型泵。它广泛应用于制药行业和医疗器械行业。它具有价格较低,维护方便,无污染,精度高等优点。结合精确度和价格方面的考虑,决定选择蠕动泵作为流量检测控制系统的实现方案。3.1.2 蠕动泵流量检测控制的实现蠕动泵由驱动器(主要是步进电机),泵头和软管组成。流体被隔离于软管中,步进电机转动时,通过压迫软管,将软管中的一部分液体泵出。因为步进电机根据脉冲严格转过一定的角度,因此单次脉冲步进电机转动压迫软管的长度是一定的,所以具有很高的精确度。同时软管将液体于蠕动泵的机械结构严格分离开来,所以具有无污染的特点,很适合应用于注射液的流量检测控制。通过对步进电机的每秒脉冲数进行控制,就能控制步进电机每秒转过的角度;通过控制步进电机每秒转过的角度,就能控制步进电机每秒压迫软管的长度L。在软管管径R和内径r确定的情况下,每秒泵出的液体体积V=LR2-r2因此能实现流量的控制和检测。3.2 系统的流程设计进入主界面,LED显示接入系统的四个泵的工作状态。初始状态下四个泵皆为等待WAIT状态。因为儿童和成人注射液的用量有很大差别,所以本系统分别提供了儿童和成人的灌注速度设置。如果不进行设置,系统默认采用内置的儿童和成人速度进行灌注。根据需要进行儿童和成人灌注速度设置后。用户按泵号键输入泵号确定需要使用的蠕动泵。用户确定泵号后,可以分别设置泵的灌注模式(成人或者儿童)和灌注量。在灌注模式和灌注量两者都设置完成的情况下,用户按确认开始,对应蠕动泵即开始工作。如果用户忘记设置其中任一一项,系统不会开始,会继续等待用户设置相应选项的值。在对应蠕动泵工作开始之前,按返回/停止键可以退出该阶段。在对应蠕动泵参数设置完毕后,对应蠕动泵驱动电路的电磁继电器吸合,模式选择电路的单刀双掷继电器吸合对应模式的脉冲输出接口。单片机对应I/O口拉高电平,使步进电机驱动芯片的使能端置高电平,蠕动泵开始工作。系统返回主界面显示四个泵的工作状态。对应蠕动泵工作状态显示为工作WORK。在泵的工作中,程序会实时查询四个泵的剩余灌注量(或已灌注量),当灌注量达到用户设置的值时,系统使相应蠕动泵驱动电路的电磁继电器断开,步进电机驱动芯片使能端置低电平,蠕动泵停止工作。刷新主界面显示状态,对应蠕动泵工作状态变为等待WAIT。流程图详见附录23.3 系统各模块的设计3.3.1 显示模块本系统的显示模块为一块12864 LED液晶显示屏,也被称为1602字符液晶,型号为LM016L,该型号在PROTEUS软件中有对应模型,方便模拟。LM016L模块采用的控制器为HD44780,它拥有功能强大且简单的指令集,可以通过控制引脚的高低电平实现简单的2行16列阿拉伯数字和英文字母的显示。本系统选用的LM016L有14个引脚,采用八位数据总线传输。需要用到的引脚有VDD,RS,RW,E,DB0DB7,总共12个引脚。其中:VDD引脚接5V电源,为显示器提供电源。RS引脚根据高低电平选择寄存器,高电平对应数据寄存器,低电平对应指令寄存器。RW引脚切换读写状态,高电平状态下进行读操作,低电平状态下进行写操作。E为使能端(ENABLE),高电平状态下根据DB0-DB7八个引脚的电平状态写入数据。分别改变D0-D7引脚的高低电平写入不同的数据。真值表如下图。图3-1 1602LCD真值表 3.3.2 键盘输入模块本系统的输入模块为一4*4的矩阵键盘。该模块使用4条I/O线作为行线,4条I/O线作为列线。在每条行线和列线相交的地方设置一个键盘按钮。键盘按钮为一个开关按钮。使用时,首先置行线都为高电平,列线都为低电平。当某一个按键被按下时,因为行线和列线被连接导通,该列线I/O口电平被拉高,可以得出该按键位于哪一列。再置列线都为高电平,行线都为低电平,因为行线列线因为按键被按下而被导通,对应行线I/O口电平被拉高,可以得出该按键位于哪一行。根据行号和列号即可得出对应的按键键值。因为单片机扫描的速度非常快,所以在实际应用中,按下按键的瞬间即可得出按键键值。3.3.3 步进电机驱动模块本系统的一组步进电机驱动模块由一块L297芯片,一块L298芯片,达林顿管阵列和一个两相四线步进电机组成。步进电机型号为28BYJ-48-12V。L297芯片是意大利SGS公司为了步进电机控制专门开发的一款步进电机控制芯片,它能产生四相的控制信号,可以用来控制一个两相或四相步进电机。它有单四拍、双四拍、四相八拍三种工作模式,内置的PWM斩波器可以根据脉冲信号控制步进电机工作。L298芯片是意大利SGS公司开发的与L297配套使用的一款步进电机驱动芯片,能驱动两个二相步进电机或一个四相步进电机工作,最高可驱动46V,2A的步进电机工作。由于单片机输出的脉冲信号电流较小,不足以驱动步进电机,达林顿管体积小,功率放大倍数高,故使用达林顿管阵列作为步进电机的脉冲电流功率放大器。步进电机驱动电路连线图如下图所示。图3-2 步进电机驱动电路连线图L297的ENABLE引脚控制步进电机是否工作,高电平时步进电机工作。RESET为步进电机的复位引脚,HALF/FULL引脚控制步进电机以半步或者一步转动,在本系统中默认以四相八拍工作,因此接地,引脚为低电平。CW/CCW引脚控制步进电机正反转,本系统中该引脚接地,低电平,默认正转。CLOCK引脚为脉冲信号输入引脚。ABCD引脚为分别输出四相的驱动信号。A相和B相的驱动极由INH1引脚控制,而C相和D相由INH2引脚控制。L298的IN1,IN2,IN3,IN4四个引脚分别用来接收L297输出的四相驱动信号。OUT1,OUT2,OUT3,OUT4四个引脚输出驱动信号驱动步进电机。在本系统中,L297和L298的组合只需要单片机提供脉冲信号和启动信号,极大的节省了单片机的I/O口和计算量。实际电路中,因为51单片机启动时,I/O默认为高电平,开机时步进电机会因为开机短暂的小电流使步进电机转动一定的角度,因此在使能(ENABLE)引脚前加了一个非门电路。以74LS04作为反相器,低电平下步进电机才能被驱动,解决了开机时步进电机不可控制地转动一定角度的问题。3.3.4 模式切换模块在本系统中,可以切换蠕动泵的工作速度以成人或是儿童模式工作。该模块的电路连线图如下所示。图3-3 模式切换电路连线图CLKCTL引脚连接单片机的模式控制I/O口,当高低电平变化时,控制单刀双掷电磁继电器切换脉冲信号输入。单刀双掷电磁继电器的两个输入引脚分别连接单片机儿童模式脉冲信号输出和成人模式脉冲信号输出。输出引脚接步进电机驱动电路中L297的CLOCK引脚。当单片机控制CLKCTL引脚电平变化时即可控制步进电机驱动电路以成人模式或儿童模式工作。因为单片机I/O口输出的信号电流较小,不足以驱动单刀双掷电磁继电器吸合,因此需要一个三极管放大电流。MPS6562为一PNP三极管,基极接单片机模式控制I/O口,发射极接单刀双掷电磁继电器线圈,集电极接5V电源。当单片机模式控制I/O口为低电平时,PNP三极管MPS6562导通,5V电源被加至单刀双掷电磁继电器的线圈上,电磁继电器吸合,常开触点吸合。当单片机模式控制I/O口为高电平时,PNP三极管MPS5652截止,单刀双掷电磁继电器的线圈两端没有电势差,线圈失电不工作,常开触点断开,电磁继电器常闭触点吸合。当三极管截止的瞬间,单刀双掷电磁继电器线圈中的电流并没有马上消失,容易产生反向电动势损坏电路。UF4004为一二极管,并联在单刀双掷电磁继电器线圈两端,作用为吸收并且释放单刀双掷电磁继电器线圈断电瞬间产生的反向电动势,保护电路。3.3.5 单片机电路为了方便在软件中模拟,本系统选用的是一块AT89C52单片机(本来应选用STC15系列的单片机,该系列单片机兼容51单片机程序,并且具备独立的PWM脉冲信号输出口,并且运算速度比AT89C52快。但是PROTEUS中没有该单片机的CAD模型,无法进行仿真,故使用AT89C52仿真)。它的引脚排布如下:1.两个时钟引脚:XTAL1和XTAL2为晶振的两个引脚。2.两个电源引脚:VCC引脚接5V电源,VSS引脚接地。3.四个信号控制引脚:PSEN引脚用来选择外部ROM通信信号输出;EA/VPP用来选择内外存储器,该引脚在高电平的情况下,单片机从内部存储器的起始端开始读取指令并执行,在低电平的情况下,从外部存储棋的起始端开始读取指令并执行。RST/VPD引脚用来输入复位信号或输入备用电源;ALE/PROG引脚用来输出地址锁存允许信号或输入编程脉冲。4.四组通用并行输入输出引脚:四组32个引脚都可作为通用输入输出引脚,其中P0.0P0.7也可以用作数据总线复位,P2.0P2.7也可以作为高位地址总线,P3.0P3.7也可以作为第二功能引脚。在本系统中:P1.0P1.7作为4*4矩阵键盘的信号输入。P1.0P1.3作为4*4矩阵键盘的行线输入引脚,P1.4P1.7作为4*4矩阵键盘的列线输入引脚。P0.0P0.7作为显示信号输出,连接1602液晶显示屏的D0D7引脚。P2.0P2.7作为控制信号输出,用来控制四个蠕动泵的工作模式和工作状态。P3.2和P3.3分别为儿童模式和成人模式的PWM脉冲信号输出口P3.4,P3.5,P3.6用来控制1602液晶显示屏的显示。P3.7接一蜂鸣器,用来完成灌注时的蜂鸣报警。3.4 本章小结在本章中,简要介绍了流量控制和检测的实现原理和本系统的运作流程。对该系统的所有模块的电路原理进行了描述,介绍了各模块的引脚分配和工作方式。第四章 流量控制与检测系统软件设计4.1 软件设计语言选择单片机程序的编写主要有汇编语言和C语言两种。汇编语言也被成为符号语言,是面向机器的程序设计语言,是适用于可编程器件的低级语言。在汇编语言中,机器指令的操作码被助记符所代替,指令和操作数的地址被地址符号或标号代替。因为汇编语言只是简单地对机器语言做了翻译,因此汇编语言程序很难被移植,但是它的效率比C语言高,适用于编写驱动程序和嵌入式操作系统。C语言相较于汇编语言来说有易于调试和修改移植,编写程序抽象化的特点。程序效率只比相同功能的汇编语言程序低10%20%。因此本系统使用C语言作为编写语言4.2 延时程序设计接下来的模块都需要用到延时程序,所以先编写一个延时程序。void delay(unsigned int z)unsigned int x,y;for(x=z;x0;x-)for(y=110;y0;y-);4.3 显示模块程序设计显示模块程序的任务主要是根据其他程序的指令,将需要显示的字符显示在要求的区域上。显示模块的程序主要有以下步骤:单片机将LM016L置写入数据状态,单片机将需要写入的字符数据写入LM016L的数据寄存器,LM016L根据数据寄存器中的数据在对应位置显示相应的字符。LM016L有两个寄存器,分别为指令寄存器和数据寄存器。RS引脚选怎寄存器,R/W引脚控制读写。当RS引脚为低电平,R/W引脚为低电平时,LM016L将指令数据写入指令寄存器;当RS引脚为低电平,R/W引脚为高电平时,LM016L将DB7标志位置BUSY(忙)状态,此时不可写入数据,同时分别读取DB0DB6位址计数器的值;当RS引脚为高电平,R/W引脚为低电平时,LM016L将字符数据写入数据寄存器;当RS引脚为高电平,R/W引脚为高电平时,LM016L从数据寄存器读取数据。在本系统中,只需用到写入指令和写入数据两个功能。写入指令函数如下:void LCD_write_cmd(unsigned char cmd) /cmd为需要写的命令RS = 0; RW = 0; /此时LM016L将指令数据写入指令寄存器P0 = cmd; /将命令内容的十六进制送到P0端口delay(5); /延时5ms给单片机反应时间E = 1; /使能端置高电平,LM016L开始写入数据delay(5); /延时5ms给LM016L反应时间E = 0; /使能端置低电平,写入指令结束写字符数据函数:void LCD_write_data(unsigned char dat) /dat为需要写的数据RS = 1; RW = 0; /此时LM016L将字符数据写入数据寄存器P0 = dat; /将数据内容的十六进制送到P0端口delay(5); /延时5ms给单片机反应时间E = 1; /使能端置高电平,LM016L开始写入数据delay(5); /延时5ms给LM016L反应时间E = 0; /使能端置低电平,写入字符数据结束LED加载函数:void LCD_init()LCD_write_cmd(0x38); /将设置“两行、八位数据、5*7的点阵”命令写入LCD的控制器LCD_write_cmd(0x0c); /开显示关光标LCD_write_cmd(0x06); /光标右移指令LCD_write_cmd(0x01); /清除显示LCD写显示地址函数:void LCD_write_address(unsigned char x,unsigned char y)x&=0x0f; /限制列地址在015之间y&=0x01; /限制行地址在01if(y=0)LCD_write_cmd(x|0x80) ; /数据指针=80+地址变量,写入列地址elseLCD_write_cmd(x+0x40)|0x80); /如果是第二行,将列地址写入LCD显示函数:void display(unsigned char x,unsigned char y,unsigned char buf)/x:列 y:行,buf:显示的字符LCD_write_address(x,y); /先将地址写入LCD_write_data(buf);/再写入要显示的数据LCD清屏函数:void reset()LCD_write_cmd(0x01);/向指令寄存器写入清屏指令4.4 键盘输入模块程序设计键盘输入模块程序的任务主要是扫描用户按下的按键并返回相应的键值,并且在一个按键已经按下的情况下,只向单片机返回一次键值数据,避免按下一次按键返回多次键值,影响用户输入结果。unsigned char getkey()unsigned char k=19;/如果没有键按下,返回无效值,此值可为除了0到15外任意值unsigned char h,l,z;staticpressed=0;/定义按下标志位P1=0x0f;/将行线都置高电平,列线都置低电平,开始行扫描if(P1!=0x0f)/如果键盘有按键被按下,那么P1不为0x0f状态if(pressed=0)/如果按下标志位为0,说明该按键刚被按下pressed=1;/置按下标志位为1,表示有按键被按下h=P1&0x0f; /保存行扫描状态P1=0xf0;/将行线都置低电平,列线都置高电平,开始列扫描l=P1&0xf0; /保存列扫描状态z=h|l;/比较行数和列数,得出键值switch(z)case 0xe7:k=1;break;case 0xd7:k=2;break;case 0xb7:k=3;break;case 0x77:k=10;break; /开始=10case 0xeb:k=4;break;case 0xdb:k=5;break;case 0xbb:k=6;break;case 0x7b:k=11;break;/泵号/模式=11case 0xed:k=7;break;case 0xdd:k=8;break;case 0xbd:k=9;break;case 0x7d:k=12;break;/速度=12case 0xee:k=13;break;/返回/清除=13case 0xde:k=0;break;case 0xbe:k=14;break;/确认=14case 0x7e:k=15;break;/容积=15elsepressed=0;/如果当前没有按键被按下,置按下标志位为0return(k);/返回当前按键键值4.5 时钟脉冲信号输出模块本系统所用的单片机为AT89S52,其本身没有原生的PWM输出I/O口,所以考虑采用定时器中断的方式输出PWM脉冲信号。当计时器时间到时,单片机执行中断程序,使脉冲信号输出口反相,由此可输出方波信号。通过改变自加参数的值,可以改变方波信号波峰和波谷之间的间隔时间,输出不同频率的脉冲信号。AT89C52在使用定时器中断时需要在主程序中允许中断,并且开启定时器。代码如下:EA=1;ET0=1;TR0=1;ET1=1;TR1=1;两个脉冲生成定时器的程序如下:void timer0() interrupt 1 /成年人速度TH0=(65536-20000)/256; TL0=(65536-20000)%256;adult+;if(adult=adultt) adult=0;adultclk=adultclk;void timer1() interrupt 3 /儿童速度 TH1=(65536-20000)/256; TL1=(65536-20000)%256;child+;if(child=childt) child=0;childclk=childclk;4.6 其他模块程序设计其他模块的程序请详见附录14.7 本章小结本章分析了汇编语言和C语言各自的优缺点,并确认了选择C语言为程序设计语言。并且详细介绍了LCD显示模块和4*4矩阵键盘按键扫描模块的程序。第五章 工程定额概算5.1 医用注射液流量检测控制系统的成本预算本系统电路各模块的元件如下:单片机:AT89S52;模式切换电路:三极管MPS6562,UF4004二极管,单刀双掷开关;显示模块:12864液晶显示屏,下拉电阻;驱动模块:L297芯片,L298芯片,达林顿管阵列(UF4004*8);输入模块:16个普通按键;其他:焊锡,焊锡膏,助焊剂,线材。表5-1 元件价格明细表 名称单价(元)数量总价(元)AT89S521.511.5三极管MPS65620.542二极管UF40040.24122.88单刀双掷开关14412864液晶212L2973412L2983.5414按键0.2163.2下拉排阻0.4510.45四相步进电机8030043201200补充说明:四相步进电机的价格根据实际需求(如精度,步数)为80300元不等根据明细表可以得出,一套可同时供四个点滴瓶灌注的本系统总价最低为1.5+2+2.88+4+2+12+14+3.2+0.45+320=362.03元性价比方面,因为没有采用传感器作为流量检测元件,节省了四片传感器的价格,约为2800元,且精度足以满足注射液的灌注,因此本系统具有很高的性价比。5.2 医用注射液流量控制系统的质量管理因为本系统是用于医用注射液,因此与注射液直接接触的元件需要严格达到医疗卫生标准,元件中的组成部分不能析出进入注射液,不会进入人体内对身体器官造成损害。与注射液直接接触的元件如下:点滴瓶接头(接头杆和接头螺栓),蠕动泵软管。蠕动泵软管应采用符合医用标准的聚氯乙烯(PVC)或热塑性弹性体(TPE)。这两种材料不溶于水,无毒,具有良好的弹性,符合本系统的要求。点滴瓶接头的材料应严格遵照国家标准/行业标准,如牌号为SUS304 的不锈钢。不合格的产品应直接废弃并无害化处理。5.3 医用注射液对环境影响及其可持续性5.3.1 本系统材料对环境的影响本系统中的控制驱动系统为成品元件采用环保焊锡焊接组装,对环境没有污染。蠕动泵软管采用无毒的PVC和TPE材料,金属件中不含重金属,不会对环境产生污染。5.3.2 本系统的可持续性首先电路部分的元件都采用严格符合国家标准的产品,重金属和污染物均达到国家标准,废旧元器件经回收能在此进行加工生产新的元件。蠕动泵软管采用PVC和TPE材质,在系统达到使用年限报废后,TPE和PVC经过回收能进行再次利用,符合可持续的理念。第六章 结论6.1 结论本文通过对现有的注射液流量检测与控制系统进行了分析,提出了一种以51单片机为平台,蠕动泵为核心部件的注射液流量检测与控制系统。研究设计了注射液流量检测控制的硬件系统和软件系统,进行了大量的软件仿真。不仅提高了注射液灌注的效率,减轻了护士的工作量,并且在应用中有较好的适应性。本文的设计研究得出以下结论:1.设计了新型的注射液灌注装置,采用蠕动泵的加注原理,提高了注射液灌注的精确性和灌注速度。、2.采用单片机循环扫描的方式实时检测灌注药液的剩余量,可以在护士离开时继续自动化灌注,并且在显示屏上实时显示各个蠕动泵的工作状态,便于操作人员观察,加注完成后蜂鸣报警,提醒护士加注完毕。3.注射液流量检测与控制系统集CPU、显示电路、按键输入电路为一体,采用高性能低功耗的51单片机作为控制器核心,提供LCD的显示和4*4矩阵键盘输入,蜂鸣报警等功能,具有集成度高,功能丰富和结构紧凑的特点。4.通过对流量检测装置的比较,指出使用蠕动泵的特性作为流量检测的依据,相比传统的传感器检测方式,节省了大量的液体流量传感器的花费。具有成本低廉,检测控制精度高的优点5采用LCD显示屏作为用户操作界面,能直观的显示各个蠕动泵的工作状态,用户输入泵号,灌注量,灌注速度时能直观的看到输入的数据,并且能进行修改,提高了用户操作和监控的灵活性和方便性。6.2 尚待解决的问题1.因为时间和地点的关系,所有功能的测试均只在PROTEUS仿真软件中仿真通过,该软件由于自身的程序设计原因,LCD显示和步进电机驱动仿真有一定问题。例如,在LCD显示程序中,应该添加LCD模块忙状态检测,但是添加检测会导致PROTEUS仿真过程中LCD不显示任何数据。2.因为时钟脉冲由AT89C52单片机根据定时器中断计算生成,因此进入中断和出中断会耗费几微秒的时间,短时间灌注的情况下误差很小,但是长时间灌注容易产生较大的误差。解决方法为换为原生支持PWM的单片机,但由于PROTEUS软件不支持,所以无法进行仿真,只能用AT89C52进行代替。3.由于I/O口和定时器数量的限制,AT89S52仅可输出两路PWM脉冲信号,因此该系统只能同时使蠕动泵以两种速度运行。致谢不知不觉中,四年的大学生涯即将接近尾声,在这四年的学习生活中,有很多人给我提供了很多的帮助,我会把每一份帮助都铭记于心。首先感谢我的导师,在疫情过程中是您的严格要求和悉心指导使我在毕业设计的完成过程中能不走弯路,并且能高效地完成。同时我要感谢机电工程学院的所有老师,感谢你们在这四年的平时学习中给予我的教导和帮助。在此谨向机电工程学院的所有老师致以诚挚的谢意以及崇高的敬意。感谢我的同学们,在我在学习上有困难的过程中能出手相助,这四年来我们共同沉浸于学术的海洋中,在这段难忘而且宝贵的时光中我们建立了深厚的友谊。同时我也要感谢我所引用参考文献的那些作者和学者,如果没有这些作者和学者的文献的启迪,我很难独自完成这篇毕业设计。感谢所有关心、帮助过我又不能一一列举的同志,在这里道一声:感谢!参考文献1 杨朝虹;李焕新型液位检测技术的现状与发展趋势工矿自动化,2009,第6期:61-642 贾丽;袁小平;陈烨;邓昆;张继森常用液位检测方法的研究能源技术与管理,2009,第1期:120-1223 蒋宗文;储青光电液位检测技术研究化工自动化及仪表,1996年,第2期:41-444 李春玲基于单片机的高精度超声波液位检测系统电子科技大学学报,2006年,第3期:371-3745 张飚瑞;杨威;罗招平临床输液泵和注射泵的流速检测方法探讨中国医疗设备,2011年,第5期:87-886 李静输液泵性能检测的流速检测医疗装备,2017年,第1期:37-387 贺莹;武淑娟基于单片机的步进电机驱动机械管理开发,2011年,第4期:203-2048 唐国栋;高云国基于L297/L298芯片步进电机的单片机控制微计算机信息,2006年,第34期:141-1439 桑顺;牛晓聪;赵媛媛. AVR单片机与51单片机的比较.企业技术开发,2010年,第15期:102-103.10 刘肖楠. MCS-51单片机简介.电子制作, 2015年,第6期:65.11 周兵;郭睿南;吴文斗.非接触式给液的单片机应用设计.现代电子技术,2007年,第8期:40-42.12 Annu. Rev. Fluid MechPERISTALTIC PUMPINGIEEE,197113 Aruna Kommu, Raghavendra Rao Kanchi and Naveen Kumar UttarkarDesign and Development of Microcontroller based Peristaltic Pump for Automatic Potentiometric TitrationInternational Conference on Communication and Signal Processing,2017年.14tong, p;vawter, d. ANALYSIS OF PERISTALTIC PUMPING.JOURNAL OF APPLIED MECHANICS-TRANSACTIONS OF THE ASME,1972年,第4期: 857-862.附录 1#include#includefloat t;unsigned int key;unsigned int select=0;unsigned int child=0;unsigned int adult=0;unsigned int childspeed=10; /设定儿童模式默认速度10ml/sunsigned int adultspeed=20; /设定成人模式默认速度20ml/sunsigned int adultt=6;unsigned int childt=12;unsigned int vol1,vol2,vol3,vol4=0; /初始化四个泵的灌注量为0unsigned char code num=0123456789;sbit ctl1=P20; /设定P2.0为泵1的控制口sbit clk1=P21; /设定P2.1为泵1的时钟控制口sbit ctl2=P22; /设定P2.2为泵2的控制口sbit clk2=P23; /设定P2.3为泵2的时钟控制口sbit ctl3=P24; /设定P2.4为泵3的控制口sbit clk3=P25; /设定P2.5为泵3的时钟控制口sbit ctl4=P26; /设定P2.6为泵4的控制口sbit clk4=P27; /设定P2.7为泵4的时钟控制口sbit childclk=P32; /设定P3.2为儿童模式的脉冲输出口sbit adultclk=P33; /设定P3,3为成人模式的脉冲输出口sbit RS = P34; /设定P3.4为LCD 寄存器控制口sbit RW = P35; /设定P3.5为LCD 读写控制口sbit E = P36; /设定P3.6为LCD使能控制口sbit bee=P37; /设定P3.7为蜂鸣器驱动口int a=0,b=0,c=0,d=0;/定义个十百千位为0unsigned int yiquan=500; /步进电机转动一圈能排除的药液mlvoid weishu(int x,int weizhi);/延时子程序void delay(unsigned int z)unsigned int x,y;for(x=z;x0;x-)for(y=110;y0;y-);/写命令函数void LCD_write_cmd(unsigned char cmd)/cmd为需要写的命令RS = 0; /命令模式RW = 0; /写模式P0 = cmd;/将命令内容的十六进制送到P0端口delay(5);E = 1;delay(5);E = 0;/使能端,高电平有效,使命令送到LCD1602的DB0DB7/写数据函数void LCD_write_data(unsigned char dat)/dat为需要写的数据/while(busytest();/只有当busytest()为0(闲)时才跳出循环 PROTEUS模拟不能加RS = 1; /数据模式RW = 0; /写模式P0 = dat; /将数据内容的十六进制送到P0端口delay(5);E = 1;delay(5);E = 0;/
收藏