自动输液换瓶装置控制及检测系统设计_第1页
自动输液换瓶装置控制及检测系统设计_第2页
自动输液换瓶装置控制及检测系统设计_第3页
自动输液换瓶装置控制及检测系统设计_第4页
自动输液换瓶装置控制及检测系统设计_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

北京理工大学珠海学院2020届本科生毕业设计自动输液换瓶装置——控制及检测系统设计自动输液换瓶装置——控制及检测系统设计摘要在医院治疗工作中,输液治疗使用普遍,经常出现一个病人需要输多瓶药液的情况。在目前中国的绝大部分医院中,依然在采用护士人工更换药瓶的方式。如果同时有多个病人需要换药,护士的负担将大大加重,随之出错的概率也会增加。为解决上述问题,该设计提供了一种自动输液换瓶装置,涉及医用设备技术领域,为解决人工换瓶造成的医护人员劳动强度大的问题而设计,将实现输液瓶更换的自动化。自动输液换瓶装置是一款能实现输液瓶的针头在重量传感器的检测下自动插拔与换位的装置。自动输液换瓶装置机由MCU作为核心,当传感器检测到某瓶药液打到液体余量阈值时,单片机将控制电动机驱动模块,电机驱动模块驱动电机,更换下一瓶药液。自动输液换瓶装置体积小、造价低、使用便捷,能够解决人工换瓶方法中存在的医护人员工作量大、医院工作效率低、医患人员不便等问题。关键词:医用;输液换瓶;自动化;控制系统Automaticinfusionbottlechangingmachine--DesignofcontrolanddetectionsystemAbstractInthehospitaltreatmentwork,infusiontreatmentiswidelyused,oftenapatientneedstotransfusemultiplebottlesofliquidmedicine.Atpresent,mosthospitalsinChinaarestillusingnursestochangethebottlesmanually.Ifmorethanonepatientneedstochangemedicineatthesametime,theburdenofnurseswillbegreatlyincreased,followedbyanincreaseintheprobabilityoferror.Inordertosolvetheaboveproblems,thedesignprovidesanautomaticinfusionbottlechangingdevice,whichrelatestothetechnicalfieldofmedicalequipment.Itisdesignedtosolvetheproblemoflaborintensityofmedicalstaffcausedbymanualbottlechanging,andwillrealizetheautomationofinfusionbottlechanging.Theautomaticinfusionbottlechangingdeviceisadevicewhichcanautomaticallyinsertandreplacetheneedleofinfusionbottleunderthedetectionofweightsensor.Theautomaticbottlechanginginfusionmachineiscontrolledby51single-chipmicrocomputer.Whenthesensordetectsthatabottleofliquidmedicinehasbeendelivered,thesingle-chipmicrocomputerwillcontrolthemotordrivemechanismtoreplacethenextbottleofliquidmedicine.Theautomaticinfusiondecantingdeviceissmallinsize,lowincostandconvenientinuse,whichcansolvetheproblemsofheavyworkloadofmedicalstaff,lowefficiencyofhospitalandinconvenienceofmedicalandpatientstaffinmanualdecantingproblem.Keywords:medical;infusionbottlechange;automation;Controlsystem目录1绪论 11.1思路来源 11.2研究现状 11.2.1市场现状 11.2.2装置现状 21.3研究意义 21.4发展前景 31.5研究目的 41.6研究内容 41.7本设计拟解决的关键问题 52系统硬件设计 52.1总体方案设计 52.2元器件选型及其参数介绍 62.2.1MCU选型 62.2.2传感器选择 72.2.3显示器选择 102.2.4A/D转化模块选择 122.2.5L298N电机驱动模块 132.2.6接近开关 142.3本章小结 153系统软件设计 163.1软件开发环境 163.2总体设计思路 163.3系统部分算法及功能 163.3.1压力传感器校正算法 163.3.2输液终止量算法 183.3.3输液次序功能设计 193.4系统各部分流程及程序 203.4.1变量定义及电机控制函数的设计 203.4.2校准流程 213.4.3输液终止量自设流程 243.4.4输液流程 253.4.5换瓶流程 273.4.6跳瓶流程 283.4.7总流程 284系统实物调试 304.1称重系统调试 314.2驱动系统调试 335结论 35PAGE331绪论静脉输液法是一种运用广泛的给药方法。自动输液换瓶装置是一种实现临床输液时自动更换输液瓶的装置,其主体由是由两个电机与丝杠构成的圆周升降机构和输液器、输液瓶夹持装置构成,并辅助以传感器,使得输液过程中本装置能够替代医护人员操作自动对输液瓶进行消毒更换。在其主要功能为病人进行静脉输液不变的情况下,能够使输液瓶的针头在重量传感器的检测下能够实现自动插拔与换位,其构造简单,功能实用,有较强的实用价值。在国内输液市场规模较大、医护人员短缺的状况下,该装置将可以有效地降低医务人员的工作量,提高医院工作效率。1.1思路来源输液疗法以其见效快、使用方便、疗效可靠等优点,在治疗中得到相当广泛的应用。因为许多药物不能混合,所以出现经常联合用药的情况。联合用药时,每输完一瓶药液就应及时更换下一瓶,而换瓶的时间较难把控,提前换液会造成药液浪费,而若第一组药液输注完毕后,未及时执行换瓶操作,不但浪费时间,且有输液器流空,造成病患发生血管栓塞等危险的可能。调查发现,在目前中国的绝大部分医院中,依然在采用护士人工更换药瓶的方式。护士需要根据不同的病人,来对药物进行核查、换药。若同时有多个病人需要换药,护士的负担将大大加剧,这将带来犯错概率的增加。因此,本课题想要设计一款操作简单、使用便捷的医用输液自动换瓶装置,以此减少人工成本,提高输液效率。1.2研究现状1.2.1国外研究现状国外的该类型装置研究起步较早,美国,韩国,日本,德国等发达国家都进行了研究。目前主要对输液泵的研究有了较大的进展,输液泵拥有较为完善的功能,且操作起来十分便捷,可以很大程度地减轻工作人员的工作量。但输液泵价格普遍偏高,约2万元人民币。这种设备只在一些发达国家的医院里被使用,因其过高的价格,在经济不发达地区的使用率很低。1.2.2国内研究现状在国内,目前市场上的公知输液装置依然是由护士人工更换的普通单头输液装置,有部分地区使用了双头输液器。但是,在使用时,为了实现顺序输注两组药液的功能,必须先行只打开一个瓶塞穿刺器与三通间的止水夹,待其药液输注结束后关闭该止水夹,同时打开另一瓶塞穿刺器与三通间的止水夹。因此,虽然该输液器能够较普通单头输液装置更为方便地更换药液,但是依然需要人工操作,并且,输液的数量也仅能局限在两瓶。针对上述问题,也有人提出过解决方案,中国专利99215136.8和01225873.3公开了两种自动换瓶输液器,然而,前者只是简单地将两瓶以上的药水串联在一起给患者输液,这将造成部分药液的混合,事实上,这在临床上是不被允许的。而后者的自动输液器虽能实现逐瓶输液,但结构复杂,体积较大,不论是安装或是患者在使用时需要进行移动,较重的重量都会造成许多的不方便,并且较高的成本也使得该装置并不适合在中小型医院大范围推广。因此,当今的医疗领域,需要一款体积小、重量轻、造价低、使用便捷的自动输液换瓶装置。1.3研究意义自动输液换瓶装置有着极其积极的意义:(1)减少医务人员的工作量并且提高工作效率随着居民对医疗健康服务需求的持续提高,医务人员的工作量将居高不下,自动输液换瓶装置能减少医务人员的工作量并且提高工作效率。(2)增加病人的安全系数

在人均每年8瓶输液量的中国,大输液市场的规模仍将一直保持一个较高的水准,医护人员的较大负担导致的是出错概率的增加。输液自动换瓶装置可以减少医务人员出错概率同时增加病人的安全系数。(3)降低成本并且普及推广应用针对智能医疗设备成本高售价高,难以普及,使用复杂等特点。对作品简化设计,降低制造成本,设计中考虑人体工序和人因工程使装置批量生产成本控制在百元左右,且简单易用。1.4发展前景一方面,从我国的输液市场角度来分析,自2011年以来,我国每年输液市场容量均超过100亿瓶(袋),这意味着,平均每人每年要输8瓶以上的药液,这一数字远远高于国际上的人均2.5至3.3瓶,我国俨然已经成为了“输液大国”。图1.12010年—2017年我国输液产量(单位:亿袋)图1.12010年—2017年我国输液产量(单位:亿袋)虽然,近几年来,受到我国国内政策影响,输液产量的增长率出现了一些下降,但在总量上依然维持着一个很高的水平,另外,随着老龄化社会的即将到来、我国居民医保覆盖率的提升,我国公民对输液的需求将居高不下。可以预测,在人均每年8瓶输液量的中国,输液市场的规模仍将一直保持一个较高的水准。另一方面,在中国每千人中,职业为护士的人数不足3人,这一数量远低国际平均水平。可以看出,护士的数量在我国是严重偏低的。并且,调查显示,相当多的护士曾遭受过心理创伤并认为护士的社会地位太低,无法受到尊重,另外,护士行业的薪资也普遍不高。正是因为较低的薪资与较难获得尊重等等原因,每年都有大量的护士离职,本就严重缺人的医护行业,将面临更加严重的“护士荒”。因此,在国内输液市场规模较大、护士人员短缺的状况下,这款可以大量缓解护士工作量的自动输液换瓶装置的市场前景十分明朗。1.5研究目的针对目前医院中临床输液患者输液效率低下、医护人员工作强度大等问题,小组的研究目的为研制一款自动输液换瓶器,使其能够根据液体余量,进行自动换瓶操作;个人的研究目的为设计一套以MCU为核心、称重传感器为测量元件、数码管为显示器构成的控制检测系统,实现输液过程的数据采集、转换及显示。1.6研究内容本人在课题中的个人研究内容为控制及检测系统设计。对于自动输液换瓶机,一套能够检测输液情况并对输液进程进行控制的系统是必不可少的。检测系统方面,需要设计一套利用传感器采集输液量信息、当前转盘位置信息,并将信息上传至主板的系统;控制系统方面,需设计一套经主板程序判断后控制驱动器(电机、报警器等),再由驱动器驱动机械本体的系统。详情如下:(1)为了检测输液中的每瓶药液的重量,设计一共四组压力传感器称重模组。根据称重系统的设计要求,对压力传感器进行选型,购买压力传感器套件,并对压力传感器模组进行四组并联,去除初值误差,并设置压力系数。并需保证误差系数与压力系数断电保存,避免意外断电后需再次设置。(2)输液器插入输液瓶时,由于有精度要求,为了保证输液器能够精确地对准输液瓶。需要为电机设置接近开关传感器,形成闭环控制,保证电机运动精度。(3)装置存在输液完成后需要提醒医护人员回收输液器具或是装置遇到自身无法解决的问题等需要他人介入的情况,故需设计警报提醒方式。设计蜂鸣器报警电路,用于发出提醒。(4)装置的传感器数据分析与驱动器控制需要利用单片机进行,需选择一款单片机,设计电路为传感器与驱动器提供电源,并进行传感器数据分析,然后通过两组驱动电路驱动电机。(5)对上述提及所有各类部件进行性能优劣分析、各类参数计算及筛选,并对各部件进行程序编写,使其成为一款自动化程度高的装置。1.7本设计拟解决的关键问题(1)确保压力传感器能够修改并储存初始值与压力系数。(2)保证开关反应速度迅速,准确定位输液器转盘位置。(3)确保电机驱动器细分设置正确,单片机能正确控制电机启停。(4)单片机能够正确收集传感器信息,并根据信息控制电机运动与报警器,避免电压分配错误烧毁元件或元件无法启动。(5)确保报警器响应正确。2系统硬件设计2.1总体方案设计方案一:将单片机作为核心,利用传感器收集数据,通过与传感器连接的专用仪表放大器,对采集到的模拟信号进行一个放大,并使用AD转换器,将被放大的模拟量转化为数字量,这一转换后的数据而后将被传至单片机中,单片机将对这一数据进行分析与处理,单片机根据数字信号与重量值间的线性关系,将数字信号转化为重量值,将重量值显示在显示屏上。另外,单片机还将根据液体重量控制电机驱动模块,电机驱动模块再控制电机正反转,实现输液装置的自动化,并且,当输液完毕后,单片机还将控制蜂鸣器实现报警功能。方案二:将上述方案一中的单片机更换为PLC,利用PLC电子系统作为主要控制器。PLC的运用较为广泛,编程较为简单,安装起来也很方便,接线上也并不复杂,是一款不错的电子系统。方案三:将单片机作为主要控制核心,利用传感器收集数据,由于HX711芯片带有信号放大增益的功能,利用HX711芯片可将放大信号和模数转换的功能同时地进行和实现,将模拟量数据传入MCU中,即可进行数据的转换,而后的步骤与方案一相同。方案比较与论证:方案一中,放大模块和AD转换模块是分开的,它们的分别设计将使得系统更为复杂,并且会有更大的可能出现误差。与方案一相比,方案三采用HX711作为放大和AD转换芯片,简化了电路结构,并且在精度方面,也完全满足该设计的要求。相比于方案一,方案三是一个更好的选择。而方案二采用PLC作为主控芯片,虽然工作简单,但成本过高,违背了我们设计的简单、便捷、低成本的原则,因此不予采用。针对以上三种方案的优缺点,本设计在综合考虑了各方面因素后,决定采用方案三进行控制及检测系统的设计。最终,经过上述分析后的系统硬件设计方案如图所示:电机驱动模块电机驱动模块信号采集信号放大A/D转换单片机处理显示器显示图2.1系统硬件整体设计方案(未选型)2.2元器件选型及其参数介绍2.2.1MCU选型根据系统预计所需达成的功能,MCU的选型需重点考虑以下几个方面的因素:(1)MCU在输液系统中的主要工作:对传感器采集的数据进行处理,对传感器的供电控制模块、电机驱动控制模块、显示控制模块以及传感器报警控制模块的工作进行控制;(2)系统的可靠性和其稳定性:在这一控制系统中,所用到的电子元器件包括但不限于:电机驱动模块、接近开关、数码管显示屏、HX711芯片等等,因此该系统的电路结构是比较复杂的。为了保障该系统的稳定性,选用MCU时,应该选择一款性能优良的单片机,这样可以提高系统的工作可靠性及其稳定性和系统的抗干扰性;(3)系统的成本:由于需求较大,因此在满足系统的功能与性能要求的前提下,为了有效地降低成本,应该尽量选择价格较低的单片机、尽量选择性价比较高的单片机。(4)MCU的内存:由于该装置需要进行较为复杂的程序控制,内存较小的单片机将无法容纳数据量较大的程序,因此在选型时需要选择一款内存较大的MCU。综上,单片机是该系统的核心部分,它需要满足大内存、高速率、价格便宜等要求,鉴于以上考虑,本设计选择STC89C53RC作为整个系统的主控芯片。STC89C53RC是一款微处理器,它是一款高性能的8位CMOS单片机,内部拥有较大的24K字节闪存,很好地满足了该系统的需求。STC89C53RC芯片具有以下特点:表2.1STC89C53RC芯片特性1指令集和芯片引脚与Intel公司的8051兼容以及MCS-51指令系统224KBytes的片内在系统可编程Flash程序存储器3时钟频率为0~80MHz4128字节片内随机读写存储器(RAM)532个可编程输入/输出引脚62个16位定时/计数器75个中断源,2级优先级8全双工串行通信接口9监视定时器102个数据指针STC89C53RC单片机有40个管脚,2个专用于主电源,2个外部晶体振荡器管脚,4个与其他电源控制或多路复用管脚,32个I/O管脚。其管脚图如图所示:图2.2图2.2STC89C53RC单片机管脚图综上所述,运用STC89C53RC单片机作为主控芯片可以减少成本,而且制作简便,能够实现本系统的所有功能,是一个较为理想的选择。2.2.2传感器选择方案一:压电传感器压电传感器又被称为自发电式传感器,是一种比较典型的有源传感器。压电传感器的工作原理主要是利用了压电效应,即某一些材料,在受力后在其自身相应的特定位置或表面将自动产生一定的电荷。压电传感器本身具有许多优点,目前比较常见地广泛应用于各种动态力或加速度的测量。高内阻以及小功率是压电器件的两大劣势。若是功率小,输出的能量较为微弱,电缆的分布电容及噪声干扰将直接影响传感器的输出特性,因此如果要选用压电传感器,需要较高的外接电路要求。图2.3图2.3压电传感器图2.4光电传感器方案二:光电传感器光电传感器是利用光在不同媒质界面的方向折射或反射的原理,根据光电接收管接收到的光强信号大小来准确判断装置液位是否已经到达了警戒线,从而实现对液面的检测和报警功能。但是,该种检测方法易受环境影响,且由于检测装置通常需要数次的报警,会大大增加光电接收管的使用量,而光电传感器的成本相对较高,因此不确定是否适合于该检测系统。方案三:超声波传感器超声波传感器具有在不同介质中检测到的传播回波速度不同的特性。在该控制系统中,可以通过传感器检测回波的时间和速度来确定被测物结构。若将超声波传感器应用于检测系统,可预先测定液体的余量达到设定阈值时的回波报警时间,然后将每次传感器测量的回波时间与之前预先测定的阈值时的回波时间进行比较,若传感器测量的值与之前预先测定的阈值报警时间相等,则说明这瓶液体的余量已经达到了设定报警的阈值。这种方式虽然理论上测量准确,但存在的缺陷也同样明显:超声波传感器配备了需要复杂外围的电路,并且这种传感器的成本也比较高昂,另外在检测系统中使用时可能还会出现一些安装上的问题。方案四:电阻应变式压力传感器电阻应变式压力传感器是一种利用电阻应变效应,将各种力学量转换为电信号的结构型传感器。图2.5图2.5电阻应变片式压力传感器(式2.1)该类型传感器的工作原理是基于材料的电阻应变效应:导体的电阻随着它的机械变形而发生变化。若有一根电阻丝,则其原始的电阻值可以表示为:

R=(式2.1)其中,ρ为电阻率,S表示横截面积,l代表金属电阻丝长度。当沿着金属电阻丝的轴向两侧施加均匀的外力时,式中l、ρ、S都将发生变化,进而直接导致其电阻值发生变化。我们即可由此得到以下结论:当电阻丝因受到其他外力作用而逐渐伸长时,其l逐渐增加,S逐渐减小,ρ逐渐增大;而电阻丝因受到其他外力作用而被逐渐压缩时,上述各项的变化则相反。电阻丝灵敏系数k0(式2.2)k(式2.2)(式2.3)其中,公式中的ε表示金属电阻丝的轴向应变。由于电阻丝在拉力作用下的相对变化与应变成正比,因此上式可直接转换写成:

∆R(式2.3)在实际的电路当中,由于应变片实际产生的形状变量的变化范围很小,因此电阻应变片产生的电阻值通常只能够小于1/10Ω,这将不便于进行后续测量和处理。为了解决这一问题,实际上的电阻应变式压力传感器,会将四个弹性电阻应变片粘贴在一个弹性敏感元件上,然后以适当的方式连接成一个差动全桥测量电路。当称重传感器没有承受载荷时,电桥平衡输出的电压将为0;反之,当被测载荷加载在天平上时,称重传感器此时会承受一定的载荷,电桥将无法保持平衡,传感器的输出与被测负载压力信号的重量成正比。该放大电路的优点是能将应变片的微小机械中的应变转化为电压变化,并在其后续电路中进行稳定地放大。该电路一方面通过放大,可以有效地减小分布电感的影响,消除电路的共模干扰,另一方面可以提高电路的测量精度和稳定性。图2.6中,设四个应变片的电阻分别为R1、R2、R3(式2.4)

U(式2.4)图2.6图2.6全桥差动测量电路该类型传感器有如下特点:(1)产品的应用范围比较广,并且应变片可以根据需求被制作成各种机械量的传感器。(2)分辨力和灵敏度高,精度较高。(3)整体的结构比较小,对被测试物件的影响小,对复杂的工作环境条件适应性强,可在各种高温高压等高强度环境中被使用。(4)该传感器已被商品化,购买、使用起来都十分地便捷。方案比较与论证:通过对上述方案的比较和分析,考虑到可行性及成本控制,最终选择方案四,采用全桥差动形式的电阻应变式压力传感器。2.2.3显示器选择方案一:数码管显示数码管在是一种半导体发光数码器件,其基本的单元是半导体发光二极管。数码管也称作辉光管,是一种可以显示数字和其他信息的电子设备。大部分数码管阴极的形状为数字。管中充以低压气体,给某一个阴极充电,数码管就会发出颜色光。图2.7图2.7数码管内部连接图数码管有12个管脚,4位,8段。从上排左侧的第一个管脚开始,按顺时针的顺序,遍历所有管脚。数码管管脚功能表如下所示:表2.2数码管管脚功能表引脚标号对应数码功能1左边第1个数码管的位选择端2a位置的状态控制3f位置的状态控制4左边数起第2个数码管的位选择端5左边数起第3个数码管的位选择端6b位置的状态控制7左边数起第4个数码管的位选择端8g位置的状态控制9c位置的状态控制10小数点dp位置的状态控制11d位置的状态控制12e位置的状态控制方案二LCD字符液晶显示采用字符型LCD点阵液晶显示模块。液晶显示模块因其本身具有显示体积小、功耗低等特点被广泛使用。但是,如果该系统采用字符型LCD显示模块会容易造成模块的设计困难和成本的增加。LCD具体引脚说明如图所示:图2.8图2.8LCD引脚功能表方案比较与论证:由于数码管的控制更为简单,并且价格低廉,考虑到成本问题,该设计采用方案一,选择数码管作为显示屏。2.2.4A/D转化模块选择信号采集后到A/D转换过程中,通常需要进行信号放大。该设计曾讨论过外接专用信号放大器的设想,但由于连接复杂且误差较大,后被自带信号增益的HX711芯片替代。HX711是一款专为称重系统量身设计的24位高精度A/D信号转换电路的芯片。该芯片具有电路集成度高、响应速度快等优点,该信号转换芯片大大提高了称重系统的性能与系统稳定性。该芯片与单片机的接口连接和软件编程都非常简单,是一个非常不错的选择。HX711管脚定义及管脚描述如图所示:图2.9图2.9HX711管脚定义图2.10图2.10HX711管脚描述综上所述,由于HX711A/D模块各项功能都满足该设计需求,且自带的可编程增益放大器可以省去外接的信号放大器,使得总体设计更为简单,因此选用HX711A/D模块作为该系统的A/D转换模块2.2.5L298N电机驱动模块由于该设计采用的直流减速电机需要12V电压和一定量电流,而单片机所能承受的电压范围仅为3.3V-5V,最高也仅能输出5V电压和微弱的电流,因此无法利用单片机直接控制电机驱动,而需设计一个电机驱动模块作为单片机与电机之间连接的载体。由于该设计需分别控制升降电机、旋转电机两个电机的驱动,因此选用可独立控制两路电机的L298N板来作为电机驱动模块。综上,该设计选用L298N电机驱动模块,与12V电源和直流减速电机相连,同时接受单片机输出的5V电压的电信号,通过5V电压的电信号来控制12V电压的通断。模块如图所示:图2.11图2.11L298N电机驱动模块该模块参数如下:1、单路工作电流5A,峰值电流可达9A,低待机电流(小于10uA);2、输入电压2.2-6V,支持3.3V和TTL电平;3、安装孔直径:2mm4、供电电压3-14V;5、重量:14g6、该模块采用双路H桥,可在同一时间驱动两个直流电机2.2.6接近开关由于电机升降、旋转时存在一定误差,无法准确估计电机完成一套动作流程所需的时间,而该设计需要输液瓶、输液针头、消毒瓶等部件间的精准校对,因此利用计算电机运动时间作为电机启停的依据存在一定风险,很可能导致消毒瓶或针头没有对准输液瓶等情况出现。因此,设计采用接近开关来控制电机启停。接近开关属于一种位置开关,它不需要与运动的部件进或物体行直接的接触就可以进行操作。当被测物件或物体靠近接近开关的感测面时,可以让开关进行动作,从而可以对直流电机进行驱动。接近开关及其参数如图所示:图2.12图2.12接近开关图2.13图2.13接近开关参数2.3本章小结在整个系统设计中,系统的硬件设计是非常重要的,只有合理的硬件才能够保障系统的功能实现。本章介绍了各硬件部件的选型及相关参数,最终选型后的系统硬件总体方案如下图所示:L298N电机驱动模块L298N电机驱动模块电阻应变片式传感器信号采集HX711信号放大HX711A/D转换STC89C53RC单片机处理数码管显示图2.14系统硬件整体设计方案(已选型)3系统软件设计硬件设计后,需对系统的软件进行设计。软件的设计对系统的总体性能来说,也是具有很高的重要性的。3.1软件开发环境该设计中的软件设计部分采用C语言编程,编译环境为KeilC51。KeilC51是一套由美国Keil软件公司开发和生产的51系列完全兼容MCUC语言的单片机软件开发操作系统。KeilC51可以直接完成软件编辑、编译、连接、调试和仿真的整个软件开发工作过程。3.2总体设计思路软件系统设计的基本思想是充分利用单片机控制的优点,实现输液过程的一系列要求。该设计中,程序设计主要采用模块化和结构化的思想,分为主程序和子程序,使程序结构清晰。主程序的主要功能是用于对系统初始化、各子程序的统一管理和调用,使系统运行有序,而各子程序应该分工明确,协调统一。系统上电后,对各个模块参数进行初始化设置,初次使用时通过按键完成称重系统的校准清零。当有药液放入该自动输液换瓶机时,称重传感器电路有模拟量输出,并送入HX711芯片进行放大及A/D转换,转换结束后将重量信息数字信号送往单片机存储,单片机根据该数字信号,自动设置对应输液终止量后,系统执行相应的控制功能子程序,并将计算结果送至数码管显示器显示,当检测到药液重量小于设置的报警值时,系统自动进行拔针,提醒医护人员及时进行后续处理。3.3系统部分算法及功能3.3.1压力传感器校正算法由于不同的压力传感器存在着差异,所以需先对压力传感器进行标定。在压力传感器校正的实际操作中,为了便于数据处理和标定,在非线性度误差不大的情况下,通常采用直线拟合的方法得到静态特性曲线的线性关系。传感器的静态特性之一是线性度,即:在设计中以被测物体的实际质量为因变量,以A/D转换后输出的数字电压信号为自变量。它们之间应该存在线性关系。该项目设计的初始方案主要是在实际硬件电路中选取不同质量的砝码进行称重,并记录其对应的标准质量,再将A/D转换后的值通过数码管显示屏显示出来并进行记录,建立一个数据的集合,根据数据进行人为校准补偿,最后通过Excel软件计算数据间的关系,得到模拟量与实际重量间的线性方程。但是,由于传感器内部的噪声、温漂、老化等因素,同一传感器在一段时间的使用后,其特性曲线也会产生误差。若通过上述方案计算出该传感器特性曲线,那么在需要校正或更换传感器时,就必需重新测量大量数据并对程序进行修改。为解决上述问题,该设计中的压力传感器校正算法,将采用“清零”、“压力系数+”“压力系数-”三个按键来实现传感器标定,以此实现重新校正或更换传感器的便捷化。通过查阅相关资料文献,发现AD转换模块输出的数字电压信号与物体实际重量间往往存在如下关系:物体实际重量=传感器初始值+数字电压信号*系数。由于不同压力传感器处理函数上的差异,初次使用时,传感器往往会自带一个初始量(如图3.1),因此设计“清零”按键,消除该初试量,即将上述公式中的“传感器初始量”变为0(如图3.2)。图3.1压力传感器初试量图3.1压力传感器初试量图3.2压力传感器初试量清零图3.2压力传感器初试量清零这样一来,通过该按键将初始量清零后的公式为:物体实际重量=0+数字电压信号*系数,即物体实际重量=数字电压信号*系数。如此,物体实际重量与电信号间的关系仅与系数有关,因此通过“压力系数+”与“压力系数-”两个按键,来控制系数的大小。初次使用时,仅需在传感器上放置一个已知重量的标准砝码,而后观察数码管中显示的未经系数调整的电信号数值,利用系数加减按键控制系数改变,直至数码管中显示的数值为该标准砝码实际重量值时,则完成该压力传感器的标定。3.3.2输液终止量算法输液终止量的设定对于输液装置来说是十分重要的,若是终止过早,将造成药液的浪费,若终止过晚,则可能导致患者血液回流。因此,一个合理的输液终止量设定是十分关键的,该设计针对输液终止量的算法进行了多轮修善。方案一:程序预设固定输液终止量通过提前在程序内预设好固定输液终止量,让程序循环判断实时液体余量是否小于预设输液终止量,该方案可以使得单片机在液体余量达到输液终止量时迅速操控蜂鸣器发出警报,这是一个“一劳永逸”的方案,操作起来简单便捷,可以仅通过一次程序设计来固定输液终止量,而不用在每次输液前都进行设置。然而,由于不同规格的输液瓶也拥有不同的自重,若是提前设定好一个相同的输液终止量,很可能会因为输液瓶自重的不同导致终止时剩余液体的不同,这样的话,将导致自重较大的输液瓶报警过晚,或是自重较小的输液瓶过早报警,造成浪费。因此,方案一虽然操作便捷,但存在一定风险,不予采用。方案二:根据不同规格输液瓶人工输入输液终止量方案二提出的输液终止量设计方式是让医护人员根据不同的规格来手动输入输液终止量。该方案可以解决方案一提出的不同规格输液瓶拥有不同自重的问题。然而,该方案在设计上较为复杂,需要单独为该装置独立设计一套按键输入系统并进行程序编写,另外,对于医护人员的操作来说,医护人员需判断每瓶药液的规格,再通过按键输入输液终止量,增加了其操作的复杂程度。因此,方案二违背了该设计的简单便捷原则,不予采用。方案三:系统自动判断输液瓶规格并自设输液终止量为解决方案一和方案二中的问题,该设计最终提出令系统自动判断输液瓶规格并自设输液终止量这一方案。该方案即避免了方案一中不同自重的风险,又避免了方案二中在设计以及操作上的复杂。方案三算法如下:通过调研发现,目前市场上主流的输液瓶或输液袋,仅有500ml、250ml、100ml三种规格,若设输液瓶及药液实际重量为x,则设计三个区间:x>500、250<x<500、100<x<250。若该输液瓶为500ml规格,则其总重量必然大于500g,同理,250ml、100ml规格的输液瓶的总重量也必然分别大于250g、100g。因此,当压力传感器中的数据大于500时,则可以判断其为500ml规格的输液瓶,另外两种规格的输液瓶也同理。这样一来,通过三个区间的设定,便可以使系统自动判断输液瓶规格。由于系统各个环节存在一些延迟、误差等因素,以液体完全流尽时状态作为输液终止量存在一定风险,因此控制液体余量在20g-30g时发出终止信号。判断出输液瓶规格后,仅需根据不同的规格,设计不同的输液终止量y:当x>500时,y=x-470;当500>x>250时,y=x-220;当250>x>100时,y=x-80。3.3.3输液次序功能设计考虑到临床上输液需遵循先晶体后胶体、先盐后糖的输液顺序,对该装置进行一个输液次序功能的设计。该装置可以同时装载4个输液瓶,由于输液时消毒瓶与针头仅会进行逆时针旋转,因此仅需确定某一瓶药液所在位置为起始输液位,而后的次序则按逆时针方向对其进行排序即可。也就是说,想要实现该装置拥有输液次序功能,只需要使系统判断出某一个位置为起始位,将其作为第一个进行输液的位置,而后将其逆时针方向上的位置进行排序。这样,输液的次序功能设计便转换为对“第一瓶”药液位置的识别。该设计采用接近开关来完成该功能,使该装置能够拥有按顺序输液的功能,防止了临床上部分药液输液顺序错误所导致的副作用。该装置将安装两个接近开关,分别用来校对升降动作与旋转动作,其中,用以校对旋转动作的接近开关,安装在与被设定为起始输液瓶的位置的同一角度上,这样一来,旋转平台上的检测位点便会在旋转至此起始输液位时被接近开关感应。由于该装置位置校准后的第一个步骤即为消毒瓶上升进行消毒,因此仅需将消毒瓶所在位置的检测位点作为起始检测点,当位于起始输液瓶下的接近开关检测到起始检测点时,则完成对“第一瓶”的判断。然而,由于该装置进行全套输液流程时,旋转平台需要旋转360度,且消毒瓶与输液针头间的夹角为45度,因此该装置在其旋转平台上,放置了8个检测位点(图3.4),其中每瓶输液瓶对应2个检测位点(分别对应消毒瓶与针头),用以与接近开关进行位置校对。因此,为了使系统能够识别哪一个是与消毒瓶对应的起始检测位点,在起始点前设置一个接近的检测位点(图3.5),当接近开关在短时间内连续检测到两个位点时,将第二个位点作为系统的起始位点。如此,旋转平台将在把消毒瓶所在的起始检测位点旋转至起始输液位时,被接近开关在短时间内连续两次识别到检测点,此时接近开关触发,旋转平台停转,精准地将消毒瓶所在的起始检测位点旋转至起始输液瓶下方,完成对第一瓶药液的位置识别。图3.3旋转平台初始检测位点分布图3.3旋转平台初始检测位点分布图3.4次序功能设计后的旋转平台检测位点分布3.4系统各部分流程及程序3.4.1变量定义及电机控制函数的设计进行程序设计前,首先应定义各部分变量(P10-13为电机驱动模块的四个接口),由于该系统的程序中需要大量控制两个电机正转、反转与刹车,因此在主体函数设计之前,先运用switch函数将两个电机在系统中转向的所有可能进行一个函数编写,以方便在后续主体程序中的使用,使整个程序更加简洁。该部分程序如下:(注:以下表格及程序中所示电机1为控制输液器上下移动的升降电机,电机2为控制输液器旋转的旋转电机,接近开关1为校准输液器上下位置的接近开关,接近开关2为校准输液器旋转位置的接近开关,x为实际重量,y为输液终止量。)定义变量:sbitP10=P1^0;sbitP11=P1^1;sbitP12=P1^2;sbitP13=P1^3;sbitjjkg1=P1^4;sbitjjkg2=P1^5;sbitkaiguang=P1^5;sbitfengmingqi=P1^7;电机控制函数:voiddianji(unsignedintdianji){switch(dianji){case1:{ P10=0;P11=0;P12=0;P13=0; Delay_ms(500);P10=1;P11=0;P12=1;P13=1;break;}//电机1正向旋转,电机2刹车由于该电机控制函数的各个情况间代码相似度较高,为保证论文简洁,在此仅展示“case1”时的程序代码,具体完整代码请见附录。其它情况下所对应的电机转向情况如下:“case2”:电机1反向旋转,电机2刹车“case3”:电机1刹车,电机2正向旋转“case4”:电机1刹车,电机2反向旋转“case5”:电机1刹车,电机2刹车3.4.2校准流程表3.1校准流程表按钮开机电机1正转接近开关1触发电机1刹车电机1反转4秒电机1刹车电机2正转若接近开关2在2秒内被触发两次电机2刹车蜂鸣器响2秒输液器校准流程如表所示,按下开机按钮,系统进入输液模式,电机1正转,升降电机抬升,抬升至触发接近开关1时,向系统发出其位置信息,而后电机1反转,将输液器下降至安全位置,电机2正转,旋转平台开始旋转,当接近开关2在2秒内被连续触发两次时,电机2刹车,此时已完成对输液器位置的校准,并将输液器旋转至初始输液位置,蜂鸣器响2秒,表明输液校准程序进行完毕,准备开始进行正式输液。该部分程序如下:升降方向校准:while(1){kaiguang=1if(kaiguang==0)//检测开关是否按下{break;}}dianji(1);//电机1正转,电机2刹车while(1){;Delay_ms(5);//延时防止信号波动if(jjkg1==0)//检测接近开关1开关是否触发{break;}}dianji(5);//电机1刹车,电机2刹车dianji(2);//电机1反转,电机2刹车Delay_ms(4000);//电机下降4sdianji(5);//电机1刹车,电机2刹车旋转方向校准:dianji(3);//电机1刹车,电机2正转Delay_ms(5);//延时防止信号波动while(1){Delay_ms(5);//延时防止信号波动if(jjkg2==0)//检测接近开关2开关是否触发{break;}}TMOD=0X01;ET0=1;EA=1;TH0=0;TL0=0;//计时器设置while(1){TR0=1;TH0=0;TL0=0;T=0;N=0;//开始计时while(1){Delay_ms(5);//延时防止信号波动if(jjkg2==0)//检测接近开关2开关是否二次触发{break;}}TR0=0;//停止计时T=TH0*256+TL0+65536*N;//T是总时间ms if(T<2000)//检查二次触发时间是否在2s内{ dianji(5);//电机1刹车,电机2刹车break;} T=0;}提示输液开始:fengmingqi=1;Delay_ms(2000);//蜂鸣器响2秒fengmingqi=0;3.4.3输液终止量自设流程表3.2输液终止量自设流程表单片机监控数据数据计算判断出输液终止重量值y计算方法x>500,y=x-470;500>x>250,y=x-220;250>x>100,y=x-80输液终止量自设流程如表所示,输液器位置校准后,单片机对重量数据进行实时监控,并根据x的所在区间自设输液终止量y。该部分程序如下:Weight_duibi=Weight_Shiwu[1];if(Weight_Shiwu[1]>500)//如果输液瓶1重量>500克{while(1){if(Weight_duibi-Weight_Shiwu[1]>470)//当输液量达到470克,停止输液{break;}}}elseif(Weight_Shiwu[1]>250)//如果输液瓶1重量>250克{while(1){if(Weight_duibi-Weight_Shiwu[1]>220)//当输液量达到220克,停止输液{break;}}}elseif(Weight_Shiwu[1]>100)//如果输液瓶1重量>100克{while(1){if(Weight_duibi-Weight_Shiwu[1]>80)//当输液量达到>80克,停止输液{break;}}}3.4.4输液流程表3.3输液流程表x>100时电机1正转消毒瓶上升流程消毒瓶升降流程接近开关1触发电机1刹车电机1反转4秒消毒瓶下降流程电机1刹车电机2正转旋转流程接近开关2触发电机2刹车电机1正转输液针头上升流程接近开关1触发电机1刹车输液流程如表所示,首先系统判断x是否大于100,当x大于100时,则表明该位置实际装有待输液体,升降电机正转,抬升挤压消毒瓶对输液瓶瓶口进行消毒,消毒完毕后将消毒瓶下降至安全位置,旋转电机工作,使旋转平台旋转45度,将输液针头旋转至输液瓶下,而后升降电机工作,将输液针头插入输液瓶。该部分程序如下:消毒瓶升降:dianji(1);//电机1正转,电机2刹车while(1){Delay_ms(5);//延时防止信号波动if(jjkg1==0)//检测接近开关1开关是否触发{break;}}dianji(2);//电机1反转,电机2刹车Delay_ms(4000);//电机下降4sdianji(5);//电机1刹车,电机2刹车旋转流程:dianji(3);//电机1刹车,电机2正转while(1){Delay_ms(5);//延时防止信号波动if(jjkg2==0)//检测接近开关2开关是否触发{break;}}dianji(5);//电机1刹车,电机2刹车输液针头上升:dianji(1);//电机1正转,电机2刹车while(1){Delay_ms(5);//延时防止信号波动if(jjkg1==0)//检测接近开关1开关是否触发{break;}}dianji(5);//电机1刹车,电机2刹车3.4.5换瓶流程表3.4换瓶流程表单片机监控数据当数据小于y时电机1反转4秒输液针头下降流程电机1刹车电机2正转旋转换瓶流程接近开关2触发电机2刹车输液器换瓶流程如表所示,在输液流程中,单片机实时监控数据,当数据小于输液终止量y时,进入换瓶流程。电机1反转,输液器下降,电机2正转,使旋转平台旋转45度,将消毒瓶对齐下一瓶药液。该部分程序如下:输液针头下降:dianji(2);//电机1反转,电机2刹车Delay_ms(4000);//电机下降4sdianji(5);//电机1刹车,电机2刹车旋转换瓶:dianji(3);//电机1刹车,电机2正转while(1){Delay_ms(5);//延时防止信号波动if(jjkg2==0)//检测接近开关2开关是否触发{break;}}dianji(5);//电机1刹车,电机2刹车3.4.6跳瓶流程表3.5跳瓶流程表100>x时电机2正转接近开关2触发电机2刹车输液器跳瓶流程如表所示,所谓跳瓶,是指当x小于100时,系统将判定该位置并无实际待输液体,对该位置进行跳过。当单片机判断x值小于100后,旋转电机带动平台连续,触发接近开关,直接跳过该瓶位置,将输液器旋转至下一瓶所在位置。3.4.7总流程表3.6总流程表按钮开机电机1正转接近开关1触发电机1刹车电机1反转4秒电机1刹车电机2正转若接近开关2在2秒内被触发两次电机2刹车蜂鸣器响2秒单片机监控数据数据计算判断出终止输液重量值y计算方法x>500,y=x-470;500>x>250,y=x-220;250>x>100,y=x-80x>100时100>x时电机1正转消毒瓶上升流程消毒瓶升降流程电机2正转接近开关1触发电机1刹车电机1反转4秒消毒瓶下降流程电机1刹车电机2正转旋转流程接近开关2触发接近开关2触发2次电机2刹车电机1正转输液针头上升流程接近开关1触发电机1刹车电机2刹车单片机监控数据当数据小于y时电机1反转4秒输液针头下降流程电机1刹车电机2正转旋转换瓶流程接近开关2触发电机2刹车单片机监控数据数据计算判断出终止输液重量值y计算方法x>500,y=x-470;500>x>250,y=x-220;250>x>100,y=x-80x>100时100>x时电机1正转消毒瓶上升流程消毒瓶升降流程(第二瓶)电机2正转接近开关1触发电机1刹车电机1反转4秒消毒瓶下降流程电机1刹车电机2正转旋转流程(第二瓶)接近开关2触发接近开关2触发电机2刹车电机1正转输液针头上升流程(第二瓶)接近开关1触发电机1刹车电机2刹车单片机监控数据当数据小于y电机1反转4秒输液针头下降流程(第二瓶)电机1刹车电机2正转旋转换瓶流程接近开关2触发电机2刹车以此类推,直到第四瓶液体完成拔针蜂鸣器响6秒系统工作总流程如表所示,当第四瓶液体完成拔针操作后,蜂鸣器长响6秒,表明输液结束。系统总程序详见附录。4系统实物调试对系统的硬件及软件进行设计后,还需进行整体的实物调试,以此来检验软硬件设计的合理性。系统的总接线图及程序烧录如图4.1、4.2所示:图4.1系统总接线图图4.1系统总接线图图4.2程序烧录图4.2程序烧录4.1称重系统调试称重系统主要由单片机、HX711、压力传感器及数码管显示器组成,负责系统中对药液重量的检测功能。如图4.3所示,压力传感器在初次使用时,自带了一个初始的误差量“194”,通过清零按键对该误差量进行去除,清零后的结果如图4.4所示,至此完成压力传感器初次使用时的误差量清零。图4.3压力传感器初始量图4.3压力传感器初始量图4.4压力传感器初始量清零图4.4压力传感器初始量清零进行清零工作后,需对传感器进行标定。如图4.5所示,压力传感器上放置了一个重量标准的砝码,其质量为250g,但还未进行压力系数校准前,该系统的输出为“267”,明显存在一定误差。通过对压力系数的校正,将系统输出校对至“250”(如图4.6),即完成压力传感器的标定工作。至此,称重系统调试完毕。图4.5压力系数校正前图4.5压力系数校正前图4.6压力系数校正完毕图4.6压力系数校正完毕4.2驱动系统调试驱动系统主要由升降电机、旋转电机、单片机、接近开关以及电机驱动模块组成,该部分系统主要负责根据称重系统所反馈的信号进行电机的启停,以此控制装置消毒、插针、拔针以及换瓶等操作。该部分系统接线图如图4.7所示:图4.7驱动系统接线图图4.7驱动系统接线图驱动系统主要需对接近开关触发响应以及电机旋转响应进行调试,由于静态图难以分辨电机是否处于正确响应,因此该部分仅展示接近开关触发响应调试图。如图4.8所示,手持一个金属位于接近开关较远的位置,此时接近开关尾部红灯熄灭,接近开关并未触发。图4.8接近开关未触发图4.8接近开关未触发如图4.9所示,手持金属靠近接近开关,此时接近开关尾部红灯亮起,表示接近开关触发,该接近开关触发响应正确。图4.9接近开关触发图4.9接近开关触发另外,分别对两个电机进行调试。结果表明,两个电机根据接近开关不同触发情况下的旋转与启停均能够正常响应。至此,驱动系统一切正常,调试完毕。5结论该论文以由于医院缺乏自动化输液设备而导致的输液效率低下的问题为背景,以单片机技术为核心,设计了一套应用于自动输液换瓶装置的控制与检测系统,实现了该装置根据液体余量自动更换输液瓶的功能,由此,得到了一套能够在临床条件下满足医院卫生空间要求、解放护士劳动力的自动输液装置。参考文献[1]DaleJanGunnar,LüthiAlexander,FundingslandSkaraasBeate,RundereimTrude,DaleBjørg.TestingMeasurementPropertiesoftheNorwegianVersionofElectronicHealthLiteracyScale(eHEALS)inaGroupofDaySurgeryPatients.[J].Pubmed,2020,13.[2]吴世敬,王国静,胡敏露,王卫东.基于C#语言的输液监测仪软件设计与实现[J].中国医疗器械杂志,2019,43(06):429-431+438.[3]杨社鼎.51单片机下的数字电子秤设计[J].电子技术与软件工程,2019(22):245+254.[4]张祥豫,鲁西坤,侯凡博,张涛.基于51单片机的电子秤设计[J].电子测试,2019(21):32-34.[5]张超平,青海银,邵旭.基于单片机的一种便携式输液监控系统[J].电子测试,2019(14):10-13.[6]葛海江.基于HX711的高精度电子称重研究[J].电子测试,2019(10):31-32.[7]杨兵.新型输液自动换瓶装置研究[J].南方农机,2019,50(04):140.[8]侯明扬.智能输液监测控制系统的设计[D].南方医科大学,2018.[9]周鹏程,周芃芃,张振炎,胡晓珍.自动换瓶输液机的研制[J].机械工程师,2018(05):26-27+32.[10]刘美娟,张琦,穆远威.基于HX711的高精度电子秤的设计[J].信息通信,2017(01):142-144.[11].Transfusionmonitoring:carepracticeanalysisinapublicteachinghospital[J].Einstein,2016,14(1).[12]张争刚,熊刚.基于单片机的多功能电子秤设计[J].机械与电子,2016,34(11):58-61.[13]吴玮玮.基于单片机的电子秤系统设计[J].机械与电子,2016,34(05):46-48+54.[14]杨清志,张喜红.基于STC89C52输液监测报警系统的设计与实现[J].廊坊师范学院学报(自然科学版),2015,15(06):51-54.[15]杨进宝,汪鲁才.称重传感器非线性误差自适应补偿方法[J].计算机工程与应用,2011(16):246-249.[16]刘玮,沈颖惠,米明,张文翔,吴斌,邹进.医用输液自动换瓶装置的市场需求调查及分析[J].岳阳职业技术学院学报,2015,30(02):81-83.[17]王小娟.基于HX711数显称重仪的设计[J].武汉船舶职业技术学院学报,2015,14(01):36-38.[18]李小龙,郭佑民,陈鹏,马超.一种高精度电子秤的设计[J].电子世界,2014(19):2-2.[19]中国成“一年百亿瓶输液大国”引争议[J].中国医院院长,2013(19):19.[20]杨光伟.一种新型智能输液监护系统的研制[D].南京航空航天大学,2012.[21]程玲,吕宁.液晶显示电子秤的设计[J].科技信息,2011(03):481-481.[22]朱义.中国大输液产业宏观环境及行业现状与发展的研究[D].浙江工业大学,2011.[23]葛东旭,杜政道.基于应变片的电子秤实验系统设计[J].电子世界,2014(15):150-151.[24]李宝军,关小宏,张红,盛薇.静脉输液过程中的技巧[J].现代护理,2006(06):509-510.[25]梁小洁,张薇,罗重阳,马骁.基于单片机的电子秤设计[J].电子设计工程,2018(4):4-4.

[26]赵龙.基于STC89C52的瓦斯检测及红外控制系统[J].煤炭技术,2012(05):33-35.[27]刘永顺.应变效应及其应用[J].中学物理:高中版,2016(12):2-2.谢辞值此毕业论文完成之际,在此向那些曾经给予我过帮助的人表达我最诚挚的谢意。该装置的设计及论文的撰写离不开李春老师的细心指导。从选题到论文的定稿,在此期间的几个月内,李春老师都尽心尽力地给予指导。我再次向我的指导老师李春老师表示衷心的感谢和诚挚的敬意。感谢参与毕业设计的团队成员,在我的毕业设计遇到困难时,是我的团队成员与我共同进退,帮助我解决了遇到的困难,顺利完成了论文。感谢我的室友们在这四年时间里给我的帮助,毕业设计的构思离不开生活中与他们探讨的点点滴滴。感谢家人给予我鉴定的支持。多年以来,他们无私的爱一直是我克服困难的强大动力。最后,衷心感谢在百忙中评阅论文和参加答辩的各位专家、教授和同学!附录主控程序:#include<reg51.h>#include<stdio.h>sbitP10=P1^0;sbitP11=P1^1;sbitP12=P1^2;sbitP13=P1^3;sbitjjkg1=P1^4;sbitjjkg2=P1^5;sbitkaiguang=P1^5;sbitfengmingqi=P1^7;voiddianji(unsignedintdianji){switch(dianji){case1:{ P10=0;P11=0;P12=0;P13=0; Delay_ms(500);P10=1;P11=0;P12=1;P13=1;break;}//电机1正转,电机2刹车case2:{ P10=0;P11=0;P12=0;P13=0; Delay_ms(500);P10=0;P11=1;P12=1;P13=1;break;}//电机1反转,电机2刹车case3:{ P10=0;P11=0;P12=0;P13=0; Delay_ms(500);P10=1;P11=1;P12=1;P13=0;break;}//电机1刹车,电机2正转case4:{ P10=0;P11=0;P12=0;P13=0; Delay_ms(500);P10=1;P11=1;P12=0;P13=1;break;}//电机1刹车,电机2反转case5:{ P10=0;P11=0;P12=0;P13=0; Delay_ms(500);P10=1;P11=1;P12=1;P13=1;break;}//电机1刹车,电机2刹车}}voidmain(){//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//升降方向初始化while(1){kaiguang=1if(kaiguang==0)//检测开关是否按下{break;}}dianji(1);//电机1正转,电机2刹车while(1){jjkg1=0;Delay_ms(5);//延时防止信号波动if(jjkg1==1)//检测接近开关1开关是否触发{break;}}dianji(5);//电机1刹车,电机2刹车dianji(2);//电机1反转,电机2刹车Delay_ms(4000);//电机下降4sdianji(5);//电机1刹车,电机2刹车//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//旋转方向初始化dianji(3);//电机1刹车,电机2正转jjkg2=0;Delay_ms(5);//延时防止信号波动while(1){jjkg2=0;Delay_ms(5);//延时防止信号波动if(jjkg2==1)//检测接近开关2开关是否触发{break;}}TMOD=0X01;ET0=1;EA=1;TH0=0;TL0=0;//计时器设置while(1){TR0=1;TH0=0;TL0=0;T=0;N=0;//开始计时while(1){jjkg2=0;Delay_ms(5);//延时防止信号波动if(jjkg2==1)//检测接近开关2开关是否二次触发{break;}}TR0=0;//停止计时T=TH0*256+TL0+65536*N;//T是总时间ms if(T<2000)//检查二次触发时间是否在2s内{ dianji(5);//电机1刹车,电机2刹车break;} T=0;}//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//提示输液开始fengmingqi=1;Delay_ms(2000);//蜂鸣器响2秒fengmingqi=0;//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//消毒程序dianji(1);//电机1正转,电机2刹车while(1){jjkg1=0;Delay_ms(5);//延时防止信号波动if(jjkg1==1)//检测接近开关1开关是否触发{break;}}dianji(2);//电机1反转,电机2刹车Delay_ms(4000);//电机下降4sdianji(5);//电机1刹车,电机2刹车//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//输液器对准第一瓶dianji(3);//电机1刹车,电机2正转while(1){jjkg2=0;Delay_ms(5);//延时防止信号波动if(jjkg2==1)//检测接近开关2开关是否触发{break;}}dianji(5);//电机1刹车,电机2刹车//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//插针过程dianji(1);//电机1正转,电机2刹车while(1){jjkg1=0;Delay_ms(5);//延时防止信号波动if(jjkg1==1)//检测接近开关1开关是否触发{break;}}dianji(5);//电机1刹车,电机2刹车//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//输液过程Weight_duibi=Weight_Shiwu[1];if(Weight_Shiwu[1]>500)//如果输液瓶1重量>500克{while(1){if(Weight_duibi-Weight_Shiwu[1]>470)//当输液量达到470克,停止输液{break;}}}elseif(Weight_Shiwu[1]>250)//如果输液瓶1重量>250克{while(1){if(Weight_duibi-Weight_Shiwu[1]>220)//当输液量达到220克,停止输液{break;}}}elseif(Weight_Shiwu[1]>100)//如果输液瓶1重量>100克{while(1){if(Weight_duibi-Weight_Shiwu[1]>80)//当输液量达到>80克,停止输液{break;}}}//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//拔针流程dianji(2);//电机1反转,电机2刹车Delay_ms(4000);//电机下降4sdianji(5);//电机1刹车,电机2刹车//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//消毒瓶对准第二瓶dianji(3);//电机1刹车,电机2正转while(1){jjkg2=0;Delay_ms(5);//延时防止信号波动if(jjkg2==1)//检测接近开关2开关是否触发{break;}}dianji(5);//电机1刹车,电机2刹车//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//消毒程序dianji(1);//电机1正转,电机2刹车while(1){jjkg1=0;Delay_ms(5);//延时防止信号波动if(jjkg1==1)//检测接近开关1开关是否触发{break;}}dianji(2);//电机1反转,电机2刹车Delay_ms(4000);//电机下降4sdianji(5);//电机1刹车,电机2刹车//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//输液器对准第二瓶dianji(3);//电机1刹车,电机2正转while(1){jjkg2=0;Delay_ms(5);//延时防止信号波动if(jjkg2==1)//检测接近开关2开关是否触发{break;}}dianji(5);//电机1刹车,电机2刹车//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//插针过程dianji(1);//电机1正转,电机2刹车while(1){jjkg1=0;Delay_ms(5);//延时防止信号波动if(jjkg1==1)//检测接近开关1开关是否触发{break;}}dianji(5);//电机1刹车,电机2刹车//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//输液过程Weight_duibi=Weight_Shiwu[2];if(Weight_Shiwu[2]>500)//如果输液瓶2重量>500克{while(1){if(Weight_duibi-Weight_Shiwu[2]>470)//当输液量达到470克,停止输液{break;}}}elseif(Weight_Shiwu[2]>250)//如果输液瓶2重量>250克{while(1){if(Weight_duibi-Weight_Shiwu[2]>220)//当输液量达到220克,停止输液{break;}}}elseif(Weight_Shiwu[2]>100)//如果输液瓶2重量>100克{while(1){if(Weight_duibi-Weight_Shiwu[2]>80)//当输液量达到80克,停止输液{break;}}}//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//拔针流程dianji(2);//电机1反转,电机2刹车Delay_ms(4000);//电机下降4sdianji(5);//电机1刹车,电机2刹车//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//消毒瓶对准第三瓶dianji(3);//电机1刹车,电机2正转while(1){j

温馨提示

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

评论

0/150

提交评论