1、第 1 页 共 18 页 液体点滴速度监控装置 摘要 该装置实时地监测液体点滴速度,通过单片机对信息的分析和处理,由主机发出相应的指令,调整系统的工作平稳,构成了一个高性能的闭环控制系统。实现了对点滴输液速度的直观监测,同时对一些异常情况的出现可实施报警。利用该装置还能通过主控平台对各个分立系统信息实施自动化、智能化的集中处理。能方便、简易的操作和使用,对医疗具有很强的实用性。 关键词 实时监控 红外传感 闭环控制 步进电机 一、 方案设计与论证 根据题目要求和原输液装置的特点,提出以下三种方案: 1、 方案一 直接在滴斗处用两电极棒的方法。 图 1 此方案的传感器采用简单的液体导电原理,在滴
2、斗处安装两个电极。当水滴落下时,电极导通,从而使待测量的变化转化为高低电平电信号。采用伺服电机改变系统装置中液瓶与受液瓶的高度,达到改变点滴速度,从而进行控制。 2、方案二 把通过电机改变系统装置高度的方法,改为控制步进电机对输液管进行压缩或缓松,从而实现对点滴速度的改变。采用交流电动机控制 H2 的高度。 即采用红外传感器测量滴斗滴液,送至单片机接口计数,通过数字模拟转换,将其转换为 4 20MA 标准电流值,同时通过键盘输入给定每分钟的滴数,再将此滴数将其转换为 4 20MA 标准电流值,将此两个信息同时进入数字 PID 调节器。通过偏差计算再输出一组 4 20MA 标准电流值,通过变频调
3、速器控制电动机调节 H2 的高度,来控制滴斗滴数。此方案的优点是,完全按目前电气工程标准化运作,可以在很短时间完成。 2、 方案三 根据点滴装置的特点,通过对装置的某一位置进行监测和控制,达到对整个系统液体传感器 信号处理 人机对 话界面 速度控制 电机驱动 待测和控制 量 第 2 页 共 18 页 点滴速度的监控。 (如图 1)。 通过控制 输液软管夹头的松紧来控制点滴速度,采用红外传感器测量滴斗滴数,送至单片机接口计数并显示,首先标定两个脉冲(两滴间)间的时间间隔(以 10MS 为时基单位)。然后计算给定滴斗滴数(通过键盘)的时间间隔(以 10MS 为时基单位)。将此两个时间间隔进行比较,
4、以决定步进电机运行的方向。该步进电机通过丝杠控制输液软管夹头的松紧,来控制滴斗滴数 4、方案比较 方案一的特点是:实现比较简单容易,原理上也是可行的,但由于本装置用于医疗,电弧的产生,可能对不同的药物有影响,同时传感器(电极)不能重复使用,以防止传染。 方案二通过 改用红外传感器,弥补了方案一的不足。但是还存在问题,利用改变高度的方法虽然容易实现,但可控性不好。由此,我们采用了第三种方案,通过挤压输液管的办法来实现对点滴速度的控制。 二、 系统原理框图 如图 2 所示。 图 2 本系统最主要的是充分利用单片机编程的灵活性和其强大的功能,使一些小的系统实现自动化和智能化成为了现实。其中的器件都比
5、较简单,尽大可能的利用各集成芯片的功能,如系统的键盘和显示原理电路。通过红外传感器对水滴滴落的动态信息的感应 ,单片机对数 据的采集分析和处理,同时使用小功率的步进电机进行机械调整,使装置能机智、即时的响应操作者的使用。 三、 主要电路原理与设计 1、 AT89C51 单片机基本系统 控制与数值信号处理的核心采用 AT89C51 单片机,采用串口工作方式。电路如图 3。 滴斗 红外传感 器及信号处理 AT89C51 基本系统 步进电机驱动 显示与键盘控制 输 液 管 第 3 页 共 18 页 图 3 2、 显示与键盘 如图 4 利用 74LS164 进行串行动态 9 位数码管显示, 74LS1
6、64 的主要功能是 8bits 的串入并出数据处理。电路结构简单,功能强大。采用中断和查询的方法,设计的 4 键键盘的形式,利用单片机的灵活编程,扩展其键入功能。 图 4 3、红外传感和信号处理 采用红外线的发射和接收装置,它可用来检测包括液体在内的各种透明体、半透明体、不透明体,从而可以灵敏地反应水滴滴下。利用光电耦合器对电信号进行处理,减少干扰。 4、 步进电机驱动和控制 如图 5 图 5 5、 声光报警 当检测到液面低于 3cm 时由单片机采集到报警信号,由报警芯片发出声光报警。 3 41B10111E891D12131F2 5103510451017805 018805 0281 21
7、A5 61C5P 1 . 7 910k810k1010k1210k1310k1110k141k195k22242325502650275067151k205k215k161kP 1 . 6P 1 . 5abfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d
8、 e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpabfcg deDPY1 2 3 4 5 6 7a b c d e f g8dpdpA1B2Q03Q14Q25Q36Q410Q511Q612Q713C L K8MR9A1B2Q03Q14Q25Q36Q410Q511Q612Q713C L K8MR9 4. 7k 4. 7k 4. 7k 4. 7k 4. 7k 4. 7k 4.
9、 7k 4. 7k4. 7kvc cvc c vc c vc c vc c vc c vc c vc cvc cvc c12456int0 org 000bh ajmp times ;t0 org 0013h ajmp cgint ;int1 org 0040h main:mov sp,#60h ;设置堆栈 mov 41h,#00h mov 42h,#00h mov 43h,#00h mov 44h,#00h mov 45h,#00h mov 46h,#00h mov 47h,#00h mov 48h,#00h mov 4fh,#00h mov 50h,#00h mov 51h,#00h mo
10、v 52h,#00h mov 53h,#00h mov 54h,#00h ;初值设置 mov 55h,#00h mov 56h,#00h ;以上为时间初值 mov 54h,#00h mov 57h,#00h ;初值显示为 00 mov 58h,#00h mov 59h,#00h mov 5ah,#00h mov 5bh,#00h mov 5ch,#00h mov 5dh,#00h mov 5eh,#00h mov 5fh,#00h mov r7,#00h setb f0 clr p2.1 mov tmod,#01h ;T0 为工作方式0 mov tl0,#0f0h ;计数器初值 mov th0
11、,#0d8h mov ie,#87h ;中断设置,除 T1,ES 外全开中断 mov ip,#02h ;中断优先级 setb it0 setb it1 ;脉冲触发方式 setb tr0 ;启动定时 setb p1.4 disp:acall disp0 ;调用显示子程序 ajmp disp disp0: push acc mov dptr,#table jnb f0,disp1 mov a,54h ;选择值显示 cjne a,#01h,zzz1 movc a,a+dptr mov sbuf,a jnb ti,$ clr ti mov a,#0ffh mov sbuf,a jnb ti,$ clr
12、 ti 第 10 页 共 18 页 acall dealy ajmp disp1 zzz1:cjne a,#02h,zzz2 movc a,a+dptr mov sbuf,a jnb ti,$ clr ti mov a,#0ffh mov sbuf,a jnb ti,$ clr ti acall dealy ajmp disp1 zzz2:cjne a,#03h,zzz3 movc a,a+dptr mov sbuf,a jnb ti,$ clr ti mov a,#0ffh mov sbuf,a jnb ti,$ clr ti acall dealy ajmp disp1 zzz3:mov
13、54h,#00h disp1:mov a,5ah ;测定值显示 cjne a,#00h,disp2 ajmp disp3 disp2:cjne a,#01h,disp4 disp3:movc a,a+dptr mov sbuf,a jnb ti,$ clr ti mov a,#0feh mov sbuf,a jnb ti,$ clr ti acall dealy disp4:mov a,5bh movc a,a+dptr mov sbuf,a jnb ti,$ clr ti mov a,#0fdh mov sbuf,a jnb ti,$ clr ti acall dealy mov a,5ch
14、 movc a,a+dptr mov sbuf,a jnb ti,$ clr ti mov a,#0fbh mov sbuf,a jnb ti,$ clr ti acall dealy mov a,5dh ;设置值显示 movc a,a+dptr mov sbuf,a jnb ti,$ clr ti mov a,#0dfh mov sbuf,a jnb ti,$ clr ti acall dealy mov a,5eh movc a,a+dptr mov sbuf,a jnb ti,$ clr ti mov a,#0bfh mov sbuf,a jnb ti,$ clr ti acall de
15、aly mov a,5fh movc a,a+dptr 第 11 页 共 18 页 mov sbuf,a jnb ti,$ clr ti mov a,#7fh mov sbuf,a jnb ti,$ clr ti acall dealy pop acc ret dealy: mov r0,#0fah lll: nop nop djnz r0,lll ret table:db 03h db 9fh db 25h db 0dh db 99h db 49h db 41h db 1fh db 01h db 09h jpint: ;键盘控制子程序 push acc push 07h mov r2,#0a
16、h zzz:acall dealy djnz r2,zzz jb p1.0,x2 ;选择键子程序 inc 54h clr ex1 setb f0 mov a,54h cjne a,#04h,x1 mov 54h,#01h x1:ajmp ret0 x2:jb p1.1,x3 ;加 1 键子程序 mov a,54h cjne a,#00h,lll1 ajmp ret0 lll1:cjne a,#01h,lll2 inc 5fh mov a,5fh cjne a,#0ah,zhongju mov 5fh,#00h ajmp ret0 lll2:cjne a,#02h,lll3 inc 5eh mo
17、v a,5eh cjne a,#0ah,ret0 mov 5eh,#00h ajmp ret0 lll3:inc 5dh mov a,5dh cjne a,#0ah,ret0 mov 5dh,#00h ajmp ret0 x3:jb p1.2,x4 ;减 1 键子程序 mov a,54h cjne a,#00h,llll1 ajmp ret0 llll1:cjne a,#01h,llll2 dec 5fh mov a,5fh cjne a,#0ffh,ret0 mov 5fh,#09h ajmp ret0 zhongju:ajmp ret0 llll2:cjne a,#02h,llll3 de
18、c 5eh mov a,5eh cjne a,#0ffh,ret0 mov 5eh,#09h ajmp ret0 llll3:dec 5dh mov a,5dh cjne a,#0ffh,ret0 mov 5dh,#09h ajmp ret0 x4:jb p1.3,x5 ;确定键子程序 第 12 页 共 18 页 clr f0 acall enter ;因指令而修改 ret01: ;对整数进行修正 mov a,r7 cjne a,#14,ccc1 mov 57h,#03h ;为 20 置 3 setb ex1 ajmp ret0 ccc1:cjne a,#1eh,ccc2 mov 57h,#0
19、2h ;为 30 置 2 setb ex1 ajmp ret0 ccc2:cjne a,#3ch,ret02 mov 57h,#01h ;为 60 置 1 setb ex1 ajmp ret0 x5:jb p2.0,ret0 ;报警监测 setb p2.1 ;送报警声音 ajmp ret0 ret02:setb ex1 ret0:pop acc pop 07h reti enter: mov 54h,#00h clr c mov a,5dh ;求时间段程序 mov b,#64h ;百位数 mul ab mov r7,a mov a,5eh mov b,#0ah ;十位数 mul ab add
20、a,r7 mov r7,a mov a,5fh add a,r7 mov r7,a ;此时 r7 中为设定值 clr c subb a,#14h ;查表前减 20 mov dptr,#table1 ;由数值查时间段表 movc a,a+dptr mov 58h,a ret times: ;时间设置 push acc mov tl0,#0f0h mov th0,#0d8h setb tr0 inc 56h mov a,56h cjne a,#64h,quit0 mov 56h,#00h inc 55h quit0:pop acc reti cgint: ;传感测量 mov r2,#0ah zzz
21、z:acall dealy djnz r2,zzzz jnb p3.3,cgint1 reti cgint1:push acc push 03h push 04h push 05h push 06h inc r7 cjne r7,#0ah,zhongju1 mov r7,#00h mov a,53h ;数值转 移 mov 51h,a mov a,54h mov 52h,a mov a,55h ;读取当前时间 mov 53h,a mov a,56h mov 54h,a clr c ;求 10 个脉冲差值子程序 mov 47h,#00h ;10 差值寄存区 mov 48h,#00h mov a,5
22、3h subb a,51h mov 47h,a clr c 第 13 页 共 18 页 mov a,54h subb a,52h jnc zero ;如果当前值大就跳转 dec 47h clr c mov a,#00h mov a,54h add a,#64h subb a,52h zero:mov 48h,a mov a,47h ;平均差值 mov b,#0ah div ab mov 4fh,a mov a,b mov r3,a ;秒余数暂存 mov a,48h mov b,#0ah div ab mov 50h,a mov a,b mov r4,a ;0.01秒暂存 mov a,r3 mo
23、v b,#0ah mul ab add a,50h mov 50h,a zhongju1:mov a,44h mov 42h,a mov a,43h mov 41h,a mov a,55h mov 43h,a mov a,56h mov 44h,a clr c ;求差值子程序 ,供电机使用 mov 45h,#00h mov 46h,#00h mov a,43h subb a,41h mov 45h,a clr c mov a,44h subb a,42h jnc zero1 ;如果当 前值大就跳转 dec 45h clr c mov a,#00h mov a,44h add a,#64h su
24、bb a,42h zero1:mov 46h,a mov a,45h mov a,4fh cjne a,#03,ddd1 ;送动态显示缓冲区 mov 5ah,#00h ;整值判断 mov 5bh,#02h mov 5ch,#00h ajmp exit ddd1:cjne a,#02h,ddd2 mov a,50h jnz ddd01 mov 5ah,#00h mov 5bh,#03h mov 5ch,#00h ajmp exit ddd01:mov b,#0ah div ab mov dptr,#table2 ;秒值为 2 的表 movc a,a+dptr mov r5,a anl a,#0f
25、h mov 5ch,a mov 5bh,#02h mov 5ah,#00h ajmp exit ddd2:cjne a,#01h,ddd3 mov a,50h jnz ddd02 mov 5ah,#00h mov 5bh,#06h mov 5ch,#00h ajmp exit ddd02: 第 14 页 共 18 页 mov b,#0ah div ab mov dptr,#table3 ;秒值为 1 的表 movc a,a+dptr mov r5,a anl a,#0fh mov 5ch,a mov a,r5 swap a anl a,#0fh mov 5bh,a mov 5ah,#00h a
26、jmp exit ddd3: mov a,50h cjne a,#3ch,ddd03 mov 5ah,#01h mov 5bh,#00h mov 5ch,#00h ajmp exit ddd03: clr c subb a,#3ch jc lar100 ;大于 100 跳转 mov 5ah,#00h ;小于 100 mov dptr,#table4 ;60 到 99 的表 movc a,a+dptr mov r5,a anl a,#0fh mov 5ch,a mov a,r5 swap a anl a,#0fh mov 5bh,a ajmp exit lar100: mov 5ah,#01h
27、clr c mov r5,50h mov a,#3ch subb a,r5 mov dptr,#table5 ;100 到 150 的表 movc a,a+dptr mov r5,a anl a,#0fh mov 5ch,a mov a,r5 swap a anl a,#0fh mov 5bh,a exit:jb f0,exit1 ;F0 为 1 时电机不工作 acall dianjic ;送步进电机子程序 exit1:pop 05h pop 03h pop 04h pop acc pop 06h reti dianjic: ;电 机控制子程序 .zhengzh 为前进, fanzh 为后退
28、push acc clr c mov a,57h subb a,45h jz lowdc ;如果高位相等则进行低位比较 jc jcc1 ;当前滴速小于设定滴速,须反转放松 acall zhengzh ;当前滴速大于设定滴速,须正转挤压 ajmp out jcc1:acall fanzh ajmp out lowdc:clr c mov a,58h subb a,46h jz out jc jcc2 acall zhengzh ajmp out jcc2:acall fanzh out:pop acc ret zhengzh: ;前进挤压 mov dptr,#table0 第 15 页 共 18
29、 页 inc r4 mov a,r4 cjne a,#06h,zhengz mov r4,#00h mov a,#00h zhengz:movc a,a+dptr mov p1,a ret fanzh: ;反转放松 mov dptr,#table0 dec r4 mov a,r4 cjne a,#0ffh,fanz mov r4,#05h mov a,#05h fanz:movc a,a+dptr mov p1,a ret table0: db 80h db 0c0h db 40h db 60h db 20h db 0a0h table1: dB 00H dB 86H dB 73H dB 61
30、H dB 50H dB 40H dB 31H dB 22H dB 14H dB 07H dB 00H dB 94H dB 88H dB 82H dB 76H dB 71H dB 67H dB 62H dB 58H dB 54H dB 50H dB 46H dB 43H dB 40H dB 36H dB 33H dB 30H dB 28H dB 25H dB 22H dB 20H dB 18H dB 15H dB 13H dB 11H dB 09H dB 07H dB 05H dB 03H dB 02H dB 00H dB 98H dB 97H dB 95H dB 94H dB 92H dB 9
31、1H dB 90H dB 88H dB 87H dB 86H dB 85H dB 83H dB 82H dB 81H dB 80H dB 79H dB 78H dB 77H dB 76H dB 75H 第 16 页 共 18 页 dB 74H dB 73H dB 72H dB 71H dB 71H dB 70H dB 69H dB 68H dB 67H dB 67H dB 66H dB 65H dB 65H dB 64H dB 63H dB 63H dB 62H dB 61H dB 61H dB 60H dB 59H dB 59H dB 58H dB 58H dB 57H dB 57H dB
32、56H dB 56H dB 55H dB 55H dB 54H dB 54H dB 53H dB 53H dB 52H dB 52H dB 51H dB 51H dB 50H dB 50H dB 50H dB 49H dB 49H dB 48H dB 48H dB 48H dB 47H dB 47H dB 47H dB 46H dB 46H dB 45H dB 45H dB 45H dB 44H dB 44H dB 44H dB 43H dB 43H dB 43H dB 43H dB 42H dB 42H dB 42H dB 41H dB 41H dB 41H dB 41H dB 40H dB
33、 40H table2: db 29h db 28h db 27h db 26h db 25h db 24h db 23h db 22h db 21h table3: db 57h db 52h db 49h db 45h db 42h db 39h db 37h 第 17 页 共 18 页 db 35h db 33h db 31h table4: db 99h db 98h db 97h db 95h db 94h db 93h db 91h db 89h db 88h db 87h db 86h db 84h db 83h db 82h db 81h db 80h db 79h db 78
34、h db 77h db 76h db 75h db 74h db 73h db 72h db 72h db 71h db 70h db 69h db 68h db 68h db 67h db 66h db 65h db 65h db 64h db 63h db 63h db 62h db 61h table5: db 00h db 02h db 04h db 06h db 08h db 10h db 12h db 14h db 16h db 18h db 20h db 22h db 25h db 28h db 30h db 33h db 36h db 39h db 43h db 46h db
35、49h end 第 18 页 共 18 页 四、 系 统测试 1、 仪器 1) 数字示波器 2) 信号发生器 3) 数字计数器 2、 波形测试 利用示波器观察红外传感电信号是否规则。若不规则,说明传感器转化的电信号需要进一步处理,或者是传感器本身有问题,需要检查。直到有规则的方波输出为止。 用数字计数器对液滴计数。在系统电路工作时,用数字计数器的表笔从传感器转化的电信号输出端相接,对点滴数计数与系统显示做比较,从而进一步校正电路测量的准确度。 3、 测量数据 单机测量: 与计数器比较: 预设值 (每分) 实测值 (每分) 绝对误差 (每分) 计数器 (每分) 系统 (每分) 偏差 (每分) 20 20 0 56 59 3 20 22 2 103 109 6 144 148 4 22 26 4 144 139 5 77 73 4 78 75 3 142 147 5 78 83 5 123 118 5