版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、液体点滴速度监控系统设计摘 要:本设计研制了一种液体点滴速度监控系统。该系统以单片机为核心,可以实现自动检测并显示液体点滴的速度、用键盘设定点滴速度和对异常情况进行声光报警等功能。采用红外光电传感器检测液位信号,通过硬件滤波和保护装置消除杂散光干扰。并能通过上位机与下位机之间的串行通信,实现对多台下位机进行远程监控与管理。该系统工作稳定、操作简便,能有效的解决目前简易液体点滴装置和输液泵之间的空缺,在医疗卫生领域中具有广泛的应用前景。关键词:点滴速度,单片机,串行通信,步进电机Abstract:Keywords:erial communication, 目 录1前言11.1 设计背景11.2
2、设计目标11.3 技术路线11.4 实施计划21.5 必备条件22总体方案设计32.1 方案比较4 滴速检测方案4 液位检测方案4 滴速控制方案4 电机选择方案5 点滴速度计算方案63单元模块设计73.1各单元模块功能介绍及电路设计7 滴速检测模块设计7 液位检测模块设计8 电机驱动模块设计8 声光报警模块设计10 键盘模块设计10 显示模块设计11 通信模块设计12 中央控制模块设计13 电源模块设计143.2电路参数的计算及元器件的选择14 时钟电路15 复位电路153.3功能器件的介绍15 AT89C51介绍16 8255A介绍183.4各单元模块的联接224软件设计244.1软件设计所
3、用工具244.2软件结构图244.3软件流程框图25 上位机软件流程框图25 下位机软件流程框图26 上、下位机通信软件流程框图285系统调试316系统功能、指标参数386.1系统能实现的功能386.2系统指标参数测试38 点滴速度测试38 报警功能测试396.3系统功能及指标参数分析397结论408总结与体会429谢辞4310参考文献44附1 系统的原理电路图45附2 外文文献翻译-译文46附3 外文文献翻译-原文561 前言随着医院管理系统趋向于电子化、网络化,利用单片机与现代控制技术提高医疗器械的自动化程度成为目前主要应用方向之一。本课题所要设计的液体点滴速度监控装置,正是在医疗设备自动
4、化的背景下,为了满足患者和医院的需要而设计的。1.1 设计背景静脉输液是临床医学中一个重要的治疗手段,但长期以来一直没有有效的自动监测装置,从而需要专人监护,加重了护理人员的劳动负担,也不利于病区的综合管理。目前医院使用的点滴输液装置是将液体容器挂在一定高度上,利用势差将液体输入到病人的体内,通过软管夹对胶管口径的压紧和放松来控制滴速,其输液速度几乎全部都是一个不精确的值。有经验的医护人员可以根据药剂的特性对滴速进行控制,而一般的病人却无法做到,做的不好会有一定的危险性。而采用输液泵是解决输液速度的一种有效方法,但它机器成本和耗材成本太高,只适用于急救和重症情况。因此对于可进行自助式护理的病人
5、来说,需要一种可以由病人自己操作,可控制滴速的智能型液体点滴速度监控装置,但同时该装置要能接受医护人员的监管,以便更正病人不正确的设定。1.2 设计目标系统应用自动化控制技术实现了对液体点滴速度的监控,可根据需要设置点滴速度,并对异常情况进行声光报警。医护人员也可以通过远程通信,监控病人输液的整个过程,并对液滴速度进行设置,减轻护士的工作量,实现医院护理自动化。系统所要实现的主要功能有:设定点滴速度;控制点滴速度并实时显示;对液位过低或滴速异常进行声光报警;打印记录详单;实现上位机和下位机的串行通信。1.3 技术路线本设计的技术路线如下:1、对设计中相关的核心器件AT89C51、8255A、步
6、进电机和技术知识进行研究,提出多种技术方案;2、对所提方案进行论证和比较,以确定最终采用的方案;3、进行系统硬件电路的模块化设计;4、进行具体的模块电路设计;5、进行相关软件设计和编程;6、进行系统的综合测试和调试工作。1.4 实施计划3月下旬至4月初,查阅和收集文献资料;4月初至4月中旬,提出设计方案,并对方案进行比较和论证,选出最佳方案;4月下旬至5月初,完成硬件电路设计;5月初至5月中旬,完成相关软件编程;5月下旬,进行系统的模拟测试;5月底至6月上旬,撰写设计报告,并准备毕业设计答辩。1.5 必备条件硬件:计算机、单片机仿真器等。软件:Proteus、Multisim、Word等。2
7、总体方案设计根据设计要求,上位机和下位机的系统框图如图2-1和图2-2所示,上、下位机通信系统结构图如图2-3所示。键盘显示通信模块声光报警上位机89C51图2-1 上位机系统框图电机驱动键盘显示通信模块声光报警下位机89C51滴速检测液位检测打印详单图2-2 下位机系统框图上位机RS485接口下位机1下位机N图2-3 上、下位机通信系统结构图上位机置于护士站,下位机置于病房,通信模块实现的是这两个部分的联接。上位机即为下位机除去滴速检测、液位检测、电机驱动、详单打印这四个部分。所以本设计说明书部分可只对下位机部分进行说明。2.1 方案比较通过查阅相关技术资料,结合自己的实际知识,并请教老师之
8、后,针对各个单元模块提出了不同的技术方案来实现所需功能。下面将对各个单元模块的多种实现方案进行说明,并分析比较它们各自的特点,选择最合适的方案来完成本设计。2.1.1 滴速检测方案方案一:采用压力传感器来实现。在受液瓶下加一压力传感器,通过感知其压力大小来判断是否有液滴落下。方案二:采用液位传感器来检测。将一液位传感器置于受液瓶中,根据液位传感器感受到的液位起伏来检测是否有液滴滴下。方案三:采用红外对管实现,根据接受到的光强的强弱判断是否有液滴滴下。综合分析,滴管滴出20点蒸馏水相当于1ml±0.1ml。因此,液滴的质量约为0.05g,对压力传感器的要求很高,故方案一不可取。本设计涉
9、及医用,任何与瓶中液体有接触的设计方案都是不可行的,所有探测器、传感器只能固定于瓶的外壁,并且输液瓶的晃动会引起测量的误差,故方案二不可取。方案三成本低,电路简单,且不受可见光的干扰,稳定性好,测量相邻点滴下落的时间间隔即可确定点滴速度。因此,综合比较后采用方案三。2.1.2 液位检测方案方案一:同点滴检测模块,采用红外对管实现,根据接收管接收到的光强大小来判断是否到达警戒线。方案二:采用电容传感器来检测。在储液瓶的瓶身外贴两块金属薄片作为传感电容,储液面下降,电容两极间的介电常数减小,传感电容的电容值减小,再经过电容/电压变换器转换为电压值。经比较,方案一器件简单,软硬件也都相对较容易实现。
10、方案二虽然简单,但由于不同的药液可能有不同的电容值,而且为了使电容量的变化比较明显,瓶身外的金属薄片应该比较大,影响对液面的肉眼观察,所以不太适于医学使用。因此采用方案一。2.1.3 滴速控制方案方案一:通过电机和滑轮系统控制储液瓶的高度,来达到控制液滴流速的目的。方案二:通过电机控制滴速夹的松紧程度来控制液滴流速。综合分析,方案一实现较为简便,通过电机可方便地实现对储液瓶高度的调节,从而达到控制液滴流速的目的,但缺点是调节储液瓶移动的的距离比较大,所需时间比较长,而且储液瓶高度与流速的关系并没有现成的理论公式可以利用,而只能取足够多的采样点,来分析两者之间的关系,得出大致的经验公式。方案二控
11、制滴速夹移动的距离很小,调整比较迅速,但是在控制较慢的滴速时容易使塑料软管夹得过紧而变形,从而使滴速由慢向快调整时时间过长。综合比较,采用方案一。速度控制方案示意图如图2-4所示。h1h2电动机滑轮点滴移动支架储液瓶受液瓶滴斗显示图2-4 速度控制方案2.1.4 电机选择方案方案一:采用直流电机。方案二:采用步进电机,在较为精确的定位性能方面十分优越。由于方案一采用的直流电机通电即转动,掉电后惯性较大,停机时还会转动一定角度后才可停下来,且直流电机转矩小、无抱死功能,如果要求准确停在一个位置,实现难度比较大。方案二中步进电机转矩相对直流电机大,控制精度较高,可以通过控制脉冲个数来控制角位移量,
12、从而达到准确定位的目的。经比较,采用方案二。2.1.5 点滴速度计算方案滴速测量的原理是单片机通过一定时间内红外传感器测得的脉冲信号计数得到滴速。方案一:根据一定时间T(如10秒)内滴下的点滴的滴数n计算点滴的滴速,计算公式为:(滴/分)方案二:根据相邻滴液所间隔的时间t计算点滴的速度,计算公式为(滴/分)分析比较,方案一若选取的计数时间T较短,以10秒为例,如检测系统误差为1滴,则计算得出的速度误差为6滴,此时假设点滴的实际速度为30滴/分,而计算速度为36滴/分,误差为20%,误差太大。若选取的计数时间T较长,则系统达到稳定的时间太长。方案二的误差与系统计算的时间精度有关,通过调整计算的时
13、间精度可以改进计算误差,而单片机的计时系统能很好的满足这一要求。经比较,采用方案二。3 单元模块设计本节主要介绍系统各单元模块的具体功能、电路结构、工作原理、以及各个单元模块之间的联接关系;同时本节也会对相关电路中的参数计算、元器件选择、以及核心器件进行必要说明。3.1 各单元模块功能介绍及电路设计本系统主要分为九个单元模块,它们分别是:滴速检测模块、液位检测模块、电机驱动模块、声光报警模块、键盘模块、显示模块、通信模块、中央控制模块和电源模块。各单元模块功能及相关电路的具体说明如下。3.1.1 滴速检测模块设计本设计中首要的任务就是对滴速进行检测,实现对滴速的检测之后才能判断滴速是否正常,以
14、及是否需要对滴速进行调整。该模块实现的就是对是否有液滴落下的检测,滴速检测电路如图3-1所示。图3-1 滴速检测电路图无液滴落下时,接收管与发射管正对,接收管接收到的光强较强;有液滴滴下时,下落中的水滴对红外光有较强的漫反射、吸收和一定的散射作用,导致接收光强的较大改变,接收管接收到的信号经一级施密特触发器处理,送入单片机的中断口,据此就可以正确的探测出液滴的滴落。3.1.2 液位检测模块设计在输液过程即将结束时,需要通知医护人员进行相关护理。如果患者自己忘记或者由于视觉误差判断错误时,将会发生危险。液位检测模块的功能是当液位达到警戒线时,发出报警信号,通知患者和医护人员。液位检测电路如图3-
15、2所示。图3-2 液位检测电路图原理同滴速检测电路,由于红外光在空气及水中的吸收系数不同,从而通过空气和水后接收到的光强也有不同。为了减小误判几率,在接收端加一比较器,接收管接收到的信号先经比较器后再经一级施密特触发器处理,送入单片机的中断口,就可以检测出液位是否到达警界线。如果设定的滴速过高,输液瓶上升到支架顶部时,仍然达不到设定的滴速,输液瓶继续上升有可能会拉倒支架,造成危险。所以在支架的顶部安装一个红外探测器。如检测到输液瓶上升到支架顶部,则发出信号,通知单片机控制电机停转。3.1.3 电机驱动模块设计本设计中的控制系统是通过步进电机控制吊瓶运动速度和方向来控制的。由于单片机的输出信号无
16、法驱动步进电机,所以必须对其进行功率放大,使用的是TP122功率管。功率放大图如图3-3所示。单片机控制步进电动机,主要任务是通过控制电机转速即控制吊瓶运动速度和按相序输入脉冲以实现电机转动方向控制。每输入一个脉冲电机沿选择方向前进一步,每前进一步电机转动一个固定角度。从这个意义上讲,电机也是一个数字/角度转换器。 图3-3 电机驱动电路图该方案步进电机以四相八拍方式工作。比如,按AABBBCCCDDDAA次序通电为正转,带动储液瓶升高;按DDCCCBBBAAADD次序通电为反转,带动储液瓶降低。当控制A相的P1.1输出低电平时,A相导通,步进电机转到A相,其它各相工作原理与此相同;当单片机控
17、制步进电机的两个输出端同时输出低电平时,步进电机转到两相之间。四相八拍式步进电机工作方式如表3-1所示。3-1 四相八拍式步进电机工作方式步序控制位D C B AP2.3 P2.2 P2.1 P2.0通电绕组11 1 1 0A21 1 0 0AB31 1 0 1B41 0 0 1BC51 0 1 1C60 0 1 1CD70 1 1 1D80 1 1 0DA电路设计中,步进电机的A、B、C、D四相分别接P1.1、P1.3、P1.5、P1.7,这样即可设P1口初值为F8H(11111000B),则通过移位即可实现AABBBCCCDDDAA的运行方式及各步控制。3.1.4 声光报警模块设计当输液过
18、程中出现异常情况,比如滴速异常、液位低于警戒线时,需要该模块提供报警,提醒患者和医护人员的注意,并给予解决,以防危险事故发生。声光报警电路图如图3-4所示。图3-4 声光报警电路图当点滴的速度低于30滴/分或高于120滴/分时,单片机发出信号使P3.4和P3.5输出高电平,触发蜂鸣器报警装置和LED,在警示灯亮起的同时蜂鸣器发出响声。同样,当储液瓶中的滴液低于警戒线时,P3.4和P3.5也输出高电平,触发蜂鸣器和LED报警,提醒医护人员和受液人采取相应措施,避免危险事故发生。3.1.5 键盘模块设计滴速的设定需要通过键盘的输入,该模块用于对滴速的设定及修改,以及对异常情况下声光报警的解除。键盘
19、电路图如图3-5所示。图3-5 键盘电路图键盘的扫描输入和显示器的扫描输出可以直接由单片机承担,但考虑到键盘与显示接口需要较多的I/O线,如直接由单片机控制,必须扩充I/O口,因此采用可编程键盘、显示接口芯片8255A,由8255A负责键盘的扫描和显示输出工作,这样简化了应用软件的编程。图3-6是系统控制面板示意图。8255A键盘被设置为2×8列,扫描线由PA0PA7输出,接入键盘列线;查询线由PC0PC1提供,接入键盘行线。显示器配置为2×3位LED显示,分别用于显示实测滴速和设定滴速,位选线由PA0PA7获得,段选线由8255A的PB口提供。8255A片选线CS由单片机
20、的P2.7口(地址线A15)提供,地址线A0与单片机地址总线的A0相连。113579修改参数备用确定02468设定滴速解除报警取消05104实测滴速(滴/分)设定滴速(滴/分)图3-6 系统控制面板示意图3.1.6 显示模块设计该模块用于显示实测滴速和设定滴速,使用如上图所示的2×3位LED显示,前3位显示实测滴速,后三位显示设定的滴速,单片机比较设定滴速和实测滴速的大小来控制步进电机的转动以控制滴速。显示模块电路图如图3-7所示。8255A的PA口为输出口,控制键盘列线的扫描,PA口同时又是6位共阳极显示器的位扫描口。PB口作为显示器的段码(字型码)口,8255A的PC口作为键盘的
21、行线状态输入口,故称键输入口。图3-7 显示模块电路图3.1.7 通信模块设计系统功能中需要实现上位机对下位机的检测与处理,就需要上、下位机通信模块以实现这一功能。上位机能实时监控多个下位机的工作状况并可以进行相关的设置。通信模块电路图如图3-8所示。通信系统采用MAX1487与单片机系统构成RS-485通信接口。RS-485的连线少,总线速度快(最大10Mbit/s),传送距离远(90kbit/s下可传1200m),以差分平衡方式传输信号,具有很强的抗共模干扰的能力,允许一对双绞线上一个发送器驱动多个负载设备。上、下位机的RXD和TXD端各接一片MAX1487的RO与DI端,传输数据,MAX
22、1487的读/写使能端RE和DE接单片机的P2.6口,当P2.6口输出高电平时,接受数据,反之,传送数据。图3-8 通信模块电路图3.1.8 中央控制模块设计中央控制模块是整个系统的核心控制部分。其主要功能是检测滴速信号、检测液位信号、发出报警信号、控制步进电机、处理按键显示、与上位机进行通信等。中央控制模块电路图如图3-9所示。本模块主要由单片机及其外围时钟电路、复位电路组成。P0口作为数据地址复用口,P1口作为步进电机控制口。图3-9 中央控制模块电路图3.1.9 电源模块设计本模块的功能是为系统提供稳定的电源。根据系统需要的电源,本模块分为+5V电源部分和+12V电源部分。+5V电源模块
23、电路图和+12V电源模块电路图分别如图3-10、3-11所示。图3-10 +5V电源模块电路图图3-11 +12V电源模块电路图两个模块均由变压线圈、桥式整流器(整流桥堆)、滤波电路、固定式三端系列稳压器LM78XX系列组成。固定式三端稳压器LM78XX系列选用LM7805和LM7812,其中LM7805固定输出+5V,LM7812固定输出+12V,可以满足系统需要。在输入端接入电容以进一步滤除波纹,输出端接电容改善负载的的瞬态响应,使电路稳定工作。3.2 电路参数的计算及元器件的选择下面就时钟电路和复位电路中的参数计算以及元器件的选择进行说明。3.2.1 时钟电路MCS-51内部有一个用于构
24、成振荡器的高增益反相放大器,该高增益反相放大器的输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,就构成一个稳定的自激振荡器。时钟电路如图3-12所示。电路中对外接电容的值没有严格的要求,但电容的大小会影响振荡器频率的高低、振荡器的稳定性和起振的快速性,电路中的电容典型值通常为30pF左右,在本设计电路中选择电容为33pF。晶振的振荡频率的范围通常是在1.2MHz12MHz之间,MCS-51常选择振荡频率为6MHz或12MHz左右的石英晶体,在本设计电路中选择振荡频率为6MHz的石英晶体。图3-12 时钟电路图3-13 复位电路3.2.2 复位电路单片
25、机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从该状态开始工作,例如复位后PC0000H,使单片机从第一个单元取指令。无论是在单片机刚接上电源时,还是在断电后或发生故障后都要复位。复位电路如图3-13所示。单片机复位的条件是:使RST引脚(9)加上持续两个机器周期的高电平。当时钟频率选用6MHz时,电容选用22uF,电阻选用1k。3.3 功能器件的介绍本系统中主要使用了如下一些功能器件:MCS-51系列单片机AT89C51、可编程接口芯片8255A。下面就这些器件的功能特点、主要参数和使用方法作相应说明。3.3.1 AT89C51介绍AT89C51是美国ATMEL公司生产的
26、低电压,高性能CMOS 8位单片机,片内含4Kbytes的可反复擦写的只读程序存储器和128bytes的随机存取数据存储(RAM),器件采用ATMEL公司的高密度、非易失性存储器技术生产,兼容MCS-51的指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大。AT89C51是标准的40引脚双列直插式集成电路芯片,如图3-14所示。图3-14 AT89C51引脚图按其功能可分为电源、时钟、控制和I/O接口四大部分:1) 电源引脚VCC:芯片主电源,外接5V;GND:电源地线。2) 时钟引脚XTAL1与XTAL2为内部振荡器的两条引出线。3) 控制引脚(1) ALE/:地址锁
27、存控制信号/编程脉冲输入端。在扩展系统时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低8位地址和数据的隔离,P0口作为数据地址复用口线。当访问单片机外部程序或数据存储器或外接I/O口时,ALE输出脉冲的下降沿用于低8位地址的锁存信号;即使不访问单片机外部程序或数据存储器或外设I/O口,ALE端仍以晶振频率的1/6输出正脉冲信号,因此可作为外部时钟或外部定时信号使用。但应注意,此时不能访问单片机外部程序、数据存储器或外设I/O口。ALE端可以驱动8个TTL负载。(2):片外程序存储器读选通有效信号。在CPU向片外程序存储器读取指令和常数时,每个机器周期两次低电平有效。但在此期间,每当
28、访问外部数据存储器或I/O接口时,该两次低电平有效信号将不出现。端可以驱动8个TTL负载。(3)/VPP:访问程序存储器控制信号/编程电源输入端。当该引脚信号为低电平时,只访问片外程序存储器,不管片内是否有程序存储器;当该引脚为高电平时,单片机访问片内的程序存储器。但对AT89C51来说,当PC(程序计数器)值超出4K地址时,自动转到片外程序存储器1000H开始顺序读取指令。(4)RST/VPD:复位/掉电保护信号输入端。当振荡器运行时,在该引脚加上一个2个机器周期以上的高电平信号,就能使单片机回到初始状态,即进行复位。掉电期间,该引脚可接上备用电源(VPD)以保持内部RAM数据。4) I/O
29、引脚P0口(P0.0P0.7):8位双向并行I/O接口。扩展片外存储器或I/O口时,作为低8位地址总线和8位数据总线的分时复用接口,它为双向三态。P0口可带8个TTL负载电流。P1口(P1.0P1.7):8位准双向并行I/O接口。P1口每一位都可以独立设置成输入输出位。P1口可以驱动4个TTL电路。P2口(P2.0P2.7):8位准双向并行I/O接口。扩展外部数据、程序存储器时,作为高8位地址输出端口。P2口可以驱动4个TTL电路。P3口(P3.0P3.7):8位准双向并行I/O接口。除了与P1口有一样的I/O功能外,每一个引脚还兼有第二功能。如表3-2所示。表3-2 P3口各引脚对应的第二功
30、能P3.0P3.1P3.2P3.3P3.4P3.5P3.6P3.7RXDTXDT0T1P3口可以驱动4个TTL电路。P3口的第二功能信号都是单片机的重要控制信号,因此,在实际使用时,先按需要选用第二功能信号,剩下的才以第一功能的身份作为数据位的I/O使用。P1、P2、P3口线片内均有固定的上拉电阻,故称为准双向并行I/O接口;P0口片内无固定的上拉电阻,由两个MOS管串接,即可开路输出,又可处于高阻的“悬空”状态,故称为双向三态并行I/O接口。3.3.2 8255A介绍8255A是为微型机系统设计的通用I/O接口芯片,它可用程序来改变功能,通用性强,使用灵活,通过它可直接将CPU总线接向外设。
31、8255A的引脚图如图3-15所示,其内部结构图如图3-16所示。18255A的内部结构8255A可编程接口由以下4个逻辑结构组成:(1)A口、B口和C口。A口、B口和C口均为8位I/O数据口,但结构上略有差别。A口由一个8位的数据输出锁存/缓冲器和一个8位的数据输入锁存器组成。B口由一个8位的数据输入/输出锁存缓冲器和一个8位的数据输入缓冲器组成。C口由一个8位的数据输出锁存/缓存器和一个8位的数据输入缓冲器(输入不锁存)组成。三个端口都可以和外设相连,分别传送外设的输入/输出数据或控制信息。通常A口、B口作为数据输入/输出端口,C口作为控制/状态信息端口。(2)A、B组控制电路。这是两组根
32、据CPU的命令字控制8255A工作方式的电路。A组控制A口及C口的高4位,B组控制B口及C口的低4位。(3)数据缓冲器。这是一个双向三态8位的驱动口,用于和单片机的数据总线相连,传送数据或控制信息。(4)读/写控制逻辑。这部分电路接收MCS-51送来的读/写命令和选口地址,用于控制对8255A的读/写。图3-15 8255A引脚图PB7PB0PC3PC0PC7PC4PA7PA0D7D0数据总线缓 冲读/写控制逻 辑A组控 制A组 端口C 上半部(4)A组 端口A(8)B组 端口C 下半部(4)B组 端口B(8)B 组控 制I/OI/OI/OI/OA0A1RESET图3-16 8255A内部结构
33、图28255A的外部引脚(1)数据线(8条):D0D7为数据总线,用于传送CPU和8255A之间的数据、命令和状态字。(2)控制线和寻址线(6条)。RESET:复位信号,输入高电平有效。一般和单片机的复位相连,复位后,8255A所有内部寄存器清0,所有口都为输入方式。和:读/写信号线,输入低电平有效。当为0时(必为1),所选的8255A处于读状态,8255A送出信息到CPU,反之亦然。:片选线,输入低电平有效。A0、A1:地址输入线。当=0,芯片被选中时,这两位的4种组合00、01、10、11分别用于选择A、B、C口和控制寄存器。(3)I/O口线(24条)PA0PA7、PB0PB7、PC0PC
34、7为24条双向三态I/O口总线,分别与A、B、C口相对应,用于8255A和外设之间传送数据。(4)电源、地线(2条):VCC为5V,GND为地线。38255A的控制字8255A三个端口具体的工作方式通过CPU对控制口写入控制字来决定。8255A有两个控制字:方式选择控制字和C口置/复位控制字。用户通过程序把这两个控制字写入8255A的控制寄存器(A0A111),这两个控制字以D7作为标志。(1)方式选择控制字方式选择控制字的格式和定义如图3-17所示。(2)C口置/复位控制字C口置/复位控制字的格式和定义如图3-18所示。C口具有位操作功能,把一个置/复位控制字送入8255A的控制寄存器,就能
35、将C口的某一位置1或清0而不影响其他位的状态。48255A的工作方式8255A有三种工作方式:方式0、方式1、方式2。方式的选择通过上述写控制字的方法来完成。B组C口低四位方式选择0:模式01:模式10:输出1:输入B口0:输出1:输入A组C口高四位方式选择00:模式001:模式10#:模式20:输出1:输入A口0:输出1:输入1:方式标志D7组D6组D5组D4组D3组D2组D1组D0组图3-17 8255A方式选择控制字的格式和定义D7组X组X组X组D3组D2组D1组D0组0:复位1:置位位选择000 PC0001 PC1010 PC2011 PC3100 PC4101 PC5110 PC6
36、111 PC70:位操作图3-18 C口置/复位控制字的格式和定义(1)方式0(基本输入/输出方式):A口、B口及C口高4位、低4位都可以设置输入或输出,不需要选通信号。单片机可以对8255A进行I/O数据的无条件传送,外设的I/O数据在8255A的各端口能得到锁存和缓冲。(2)方式1(选通输入/输出方式):A口和B口都可以独立地设置为方式1,在这种方式下,8255A的A口和B口通常用于传送和它们相连外设的I/O数据,C口作为A口和B口的握手联络线,以实现中断方式传送I/O数据。C口作为联络线的各位分配是在设计8255A时规定的,分配表如表3-3所示。(3)方式2(双向总线方式):只有A口才能
37、设定。C口的PC3PC7作为联络信号。表3-3 8255A C口联络信号分配表C口各位方式1方式2输入方式输出方式双向方式PC0INTRBINTRB由B口方式决定PC1IBFB由B口方式决定PC2由B口方式决定PC3INTRAINTRAINTRAPC4I/OPC5IBFAI/OIBFAPC6I/OPC7I/O3.4 各单元模块的联接本设计以单片机AT89C51为核心,在介绍单元模块联接上以AT89C51为核心,说明其他模块与其之间的联接。滴速检测模块和液位检测模块分别接入AT89C51的P3.2和P3.3口;声光报警模块中的蜂鸣器接入AT89C51的P3.4口,LED指示灯接入AT89C51的
38、P3.5口;通信模块接入AT89C51的RXD(P3.0)口和TXD(P3.1)口;步进电机的A、B、C、D四相分别接P1口的P1.1、P1.3、P1.5、P1.7;AT89C51的地址数据复用线(P0口)与8255A的三态双向数据线、74LS373的输入口分别相连,AT89C51的ALE口与锁存器74LS373的LE口相连、P2.7(地址线A15)口与8255A的片选线CS相连,P3.6()、P3.7()口分别与8255A的、相连;显示模块的位选码与8255A的PA口相连,段码(字型码)与8255A的PB口相连;键盘模块的列扫描线与8255A的PA口相连,行扫描线与8255A的PC口相连。4
39、 软件设计本系统对上位机总体程序、下位机总体程序、下位机部分程序以及上、下位机通信程序模块进行了软件设计。上位机的功能是:显示下位机的报警和滴速信号;控制下位机的滴速。下位机是本设计的重点,其主要实现的功能有:实时检测和显示滴速;实时检测液位;对液位过低和滴速过快、过慢进行声光报警;向主站发出报警信号和滴速信号;接收主站的控制信号;设定、控制滴速并显示。上下位机通信程序主要功能是利用串行口进行通信来实现上位机对下位机的监测与控制。4.1 软件设计所用工具本设计软件部分所使用的工具是Keil uVision2。Keil uVision2是美国Keil Software公司出品的51系列兼容单片机
40、C语言软件开发系统,使用接近于传统C语言的语法来开发,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,而且大大的提高了工作效率和项目开发周期,还能嵌入汇编,可以在关键的位置嵌入,使程序达到接近于汇编的工作效率。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面,能在很短的时间内就能学会使用keil C51来开发单片机应用程序 。 另外重要的一点,从编译后生成的汇编代码就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。4.2 软件结构图系统的软
41、件结构主要包括上位机软件和下位机软件两个部分。其软件结构图如图4-1和图4-2所示。键盘处理通 信扫 描显 示图4-1 上位机软件结构 电机控制通 信扫 描显 示键盘处理图4-2 下位机软件结构系统的软件主要包括滴速检测、液位检测、步进电机驱动控制、声光报警、键盘显示、上下位机通信等。4.3 软件流程框图本设计程序主要分为上位机程序、下位机程序和上、下位机通信程序,下面就分别介绍这几部分程序的设计。4.3.1 上位机软件流程框图上位机的功能是:显示下位机的报警和滴速信号;控制下位机的滴速。其流程图如图4-3所示。YN返回初始化下位机信号采集信号处理键盘扫描、显示控制信号输送定时时间到图4-3
42、上位机软件流程图4.3.2 下位机软件流程框图下位机是本设计的重点,其主要实现的功能有:实时检测和显示滴速;实时检测液位;对液位过低和滴速过快、过慢进行声光报警;向主站发出报警信号和滴速信号;接收主站的控制信号;设定、控制滴速并显示。其流程图如图4-4所示。初始化返回读端口值5次确认液位报警滴速信号计算速度显示结果键盘设定速度比较驱动程序显示速度报警根据端口值判断信号图4-4 下位机软件流程图1.滴速检测部分采用周期测量法,即通过测试两相邻滴液通过红外对管的时间差来测量滴速。当第一滴滴液通过红外对管时,红外接收电路发出的脉冲触发单片机的中断口,启动定时器计数。当第二滴滴液通过红外对管时,红外接
43、收电路再次触发单片机的中断口,定时停止。读出此时定时器的计时时间,即为两滴液通过红外对管的时间间隔。用公式(滴/分)计算出滴速。滴速检测程序流程图如图4-5所示。NY等待中断计算两液滴的时间间隔,求滴速计数器计时开中断液滴数加1,判断N=2否关中断图4-5 滴速检测流程图YN开始是否有键闭合延时延时是否有键闭合判断闭合键号读出键号的相应数值送入显示返回NY图4-6 键盘显示流程图2.键盘显示部分键盘采用2×8矩阵式键盘,采用可编程接口芯片8255A实现键盘显示功能。当检测到键盘有输入时,延时确认有按键按下,然后判断闭合键号,读出闭合键号相对应的数值送入8255A的PB口显示。其程序流
44、程图如图4-6所示。3.电机控制部分滴速的控制通过控制滴瓶的高度来实现。滴瓶高度由步进电机的转动获得,而步进电机的转动角度可通过输出的脉冲数得到严格的控制。当滴速设定后,单片机首先通过现有值和设定值的差值判断出滴瓶的升降即电机的转动方向和输液瓶的升降高度即电机的转速,然后发出相应的脉冲。电机转动的同时不断地对滴速和设定滴速的差值进行计算比较,直到达到预定误差并稳定时才停止脉冲的输出。其程序流程图如图4-7所示。YYNN检测键盘输入降低滴瓶以降低滴速升高滴瓶以提高滴速中断返回当前速度与设定速度是否相同设定速度是否大于当前速度图4-7 电机控制流程图4.3.3 上、下位机通信软件流程框图利用串行口
45、进行通信来实现上位机对下位机的监测与控制。上位机与下位机主要有以下几种数据传递:(1)上位机向下位机发送两种信息:查询滴速、设置滴速;(2)下位机向上位机发送两种信息:滴速信息、报警信息。上位机查询方式流程图如图4-8所示。下位机中断方式程序流程图如图4-9所示。YY初始化发送地址下位机地址相符否发送命令接收下位机状态下位机状态正常否命令分类向下位机发送数据接收数据返回发送下位机复位命令NN图4-8 上位机查询方式流程图Y中断服务子程序保护现场地址相符否向上位机回送本机地址命令分类接收数据发送数据恢复现场中断返回Y图4-9 下位机中断方式流程图5 系统调试系统调试在Proteus仿真软件中进行
46、,主要对系统的键盘显示部分进行了硬件仿真调试。在控制液体点滴速度的时候,需要从键盘输入设定的速度值并且显示出来,然后交由单片机处理进行下一步的控制操作,本部分的仿真即要实现这一功能。键盘显示部分的硬件仿真原理电路图如图5-1所示,其中键盘的按键设定如图5-2所示。图5-1 键盘显示部分硬件仿真原理电路图113579修改参数备用确定02468设定滴速解除报警取消05104实测滴速(滴/分)设定滴速(滴/分)图5-2 键盘按键设定硬件仿真对键盘的09进行按键仿真,要求在按下按键的同时,在显示屏上显示出按键对应的数值。在Keil中程序调试无误后,需要生成目标文件。右键单击“Target 1”后选择“
47、Options for Target Target 1”,出现如图5-3所示界面。图5-3 Options for Target Target 1选中“Create HEX Files”,确认即可。然后选择“Rebuild all target files”,对当前工程中的所有文件编译然后连接,确保最后产生的目标代码是最新的,完成之后界面如图5-4所示。图5-4 生成目标文件完成然后打开Proteus中的键盘显示部分硬件仿真原理电路图,加载目标文件到单片机中,点击运行按钮。先后按下“1”、“0”、“3”键后,界面分别如图5-5、图5-6、图5-7所示。硬件仿真调试结果表明,键盘显示部分工作正常
48、,能实现预期的功能。图5-5 按下“1”键后图5-6 按下“0”键后图5-7 按下“3”键后核心程序代码如下:/*头文件及宏定义*#include <reg51.h>#include <absacc.h>#define uchar unsigned char#define uint unsigned intvoid delay(uint);void display(uchar);uchar scankey(void);uchar keyscan(void);uchar checkkey(void);uchar daima;unsigned char code table
49、=0xc0,0xf9,0xa4,0xb0, /共阳数码管显示代码 0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83, 0xc6,0xa1,0x86,0x8e; /*主函数*void main(void) uchar key; XBYTE0x7F03 = 0x89; /8255A控制字 XBYTE0x7F01 = 0x00; while(1) key = keyscan(); if(key != 0xFF) display(key); /*显示程序*void disp(uchar l) /显示子程序 XBYTE0x7F01 = tablel; delay(20); void display(uchar ledcode) /显示主程序 daima = ledcode + 0x11; switch(daima) case 0x11: disp(0);break; case 0x21: disp(1);break; case 0x12: disp(2);break; case 0x22: disp(3);break; case 0x13: disp(4);break; case 0x23
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上饶健康管理师2025年测试试卷
- 卡片翻转动画效果模板
- 杭州市拱墅区小河街道招聘考试真题2025
- 2025年自贡市教育和体育局招聘省属师范院校公费师范毕业生考试真题
- 2025年南京新农发展集团有限责任公司招聘考试真题
- 2025年德阳市罗江区就业创业促进中心城镇公益性岗位招聘真题
- 广西2025年高中学业水平合格性考试地理试卷真题
- 2026安徽安庆市皖宜项目咨询管理有限公司招聘派遣人员3人考试参考题库及答案解析
- 2026南平建瓯市下洋水库运行调度中心招聘办公室综合文员1人笔试备考试题及答案解析
- 2026年宝鸡市法院书记员招聘考试备考试题及答案详解
- TSG08-2026《特种设备使用管理规则》全面解读课件
- 《ESD培训资料》课件
- 工业润滑油行业市场分析报告
- 《扣件式钢管脚手架安全技术规范》JGJ130-2023
- 拉 刀-机械制造
- 部编版语文五年级下册 第五单元习作教材解读和教学目标
- 光纤激光毛化技术说明
- GB/T 4140-2003输送用平顶链和链轮
- 2023年绵阳市林业系统事业单位招聘笔试模拟试题及答案解析
- 部编小学音乐六年级《卡普里岛》课件-一等奖新名师优质公开课获奖比赛人教
- 计算流体力学CFD课件
评论
0/150
提交评论