液体点滴速度监控装置资料_第1页
液体点滴速度监控装置资料_第2页
液体点滴速度监控装置资料_第3页
液体点滴速度监控装置资料_第4页
液体点滴速度监控装置资料_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、液体点滴速度监控装置摘要该装置实时地监测液体点滴速度,通过单片机对信息的分析和处理,由主机发出 相应的指令,调整系统的工作平稳,构成了一个高性能的闭环控制系统。实现了对点滴输 液速度的直观监测,同时对一些异常情况的出现可实施报警。利用该装置还能通过主控平简易的操作和使用,对台对各个分立系统信息实施自动化、智能化的集中处理。能方便、 医疗具有很强的实用性。关键词实时监控红外传感闭环控制 步进电机一、方案设计与论证根据题目要求和原输液装置的特点,提出以下三种方案:1、万案一直接在滴斗处用两电极棒的方法。图1此方案的传感器采用简单的液体导电原理,在滴斗处安装两个电极。当水滴落下时, 电极导通,从而使

2、待测量的变化转化为高低电平电信号。采用伺服电机改变系统装置中液 瓶与受液瓶的高度,达到改变点滴速度,从而进行控制。2、方案二把通过电机改变系统装置高度的方法,改为控制步进电机对输液管进行压缩或缓松, 从而实现对点滴速度的改变。采用交流电动机控制h2的高度。即采用红外传感器测量滴斗滴液,送至单片机接口计数,通过数字模拟转换,将其转换为420m雨准电流值,同时通过键盘输入给定每分钟的滴数,再将此滴数将其转换为4- 20mas准电流值,将此两个信息同时进入数字pid调节器。通过偏差计算再输出一组 420mas准电流值,通过变 频调速器控制电动机调节 h2的高度,来控制滴斗滴数。此方案的优点是,完全按

3、目前电 气工程标准化运作,可以在很短时间完成。2、万案二根据点滴装置的特点,通过对装置的某一位置进行监测和控制,达到对整个系统液体点滴速度的监控。 (如图1)。通过控制输液软管夹头的松紧来控制点滴速度,采用红外传感器测量滴斗滴数,送至单片机接口计数并显示,首先标定两个脉冲(两滴问)问的时间问隔(以10ms为时基单位)。然后计算给定滴斗滴数(通过键盘)的时间问隔(以10ms为时基单位)。将此两个时间问隔进行比较,以决定步进电机运行的方向。该步进电机通过丝杠控制输液软管夹头 的松紧,来控制滴斗滴数4、方案比较方案一的特点是:实现比较简单容易,原理上也是可行的,但由于本装置用于医疗, 电弧的产生,可

4、能对不同的药物有影响,同时传感器(电极)不能重复使用,以防止传染方案二通过改用红外传感器,弥补了方案一的不足。但是还存在问题,利用改变高度 的方法虽然容易实现,但可控性不好。由此,我们采用了第三种方案,通过挤压输液管的 办法来实现对点滴速度的控制。、系统原理框图如图2所示图2本系统最主要的是充分利用单片机编程的灵活性和其强大的功能,使一些小的系统实 现自动化和智能化成为了现实。其中的器件都比较简单,尽大可能的利用各集成芯片的功 能,如系统的键盘和显示原理电路。通过红外传感器对水滴滴落的动态信息的感应,单片机对数据的采集分析和处理,同时使用小功率的步进电机进行机械调整,使装置能机智、即时的响应操

5、作者的使用。三、主要电路原理与设计1、at89c51单片机基本系统 控制与数值信号处理的核心采用 at89c51单片机,采用 串口工作方式。电路如图3。j?vcc83 9p01p02p03p04p05p06p07p20p21p22p23p24p25p26p?t图32、显示与键盘如图4利用74ls164进行串行动态9位数码管显示,74ls164的主要功能是8bits的用入并出数据处理。电路结构简单,功能强大。采用中断和查询的方法,设计的 4键键图4第8页共18页3、红外传感和信号处理采用红外线的发射和接收装置,它可用来检测包括液体在内的各种透明体、半透明体、不透明体,从而可以灵敏地反应水滴滴下。

6、利用光电耦合器 对电信号进行处理,减少干扰。4、步进电机驱动和控制 如图55、声光报警 声光报警。当检测到液面低于3cm时由单片机采集到报警信号,由报警芯片发出5、主控制平台可以组建一个小型的网络系统,由主机控制和监视各个从机的工作状 态和各个装置的信息。如图6图6四、系统软件工作流程 如图7到 图121、软件设计:软件部分参考流程图,这里主要讲述一下软件编写过程中的几个细节部分。如前所述,我们计算滴水速度的原理是通过求出 2个水滴之间的时间差,通过分析, 我们通过定时器建立一个基准时钟,该基准时钟有2个字节单元,分别秒单位和10毫秒单位的数值。在每次传感器送来中断的时候调用“传感测量”子程序

7、,在该子程序中,我 们在取当前触发时间时,先把上一个脉冲发生的时间保存在“历史寄存器”中,然后再更 新“当前寄存器”的值,即取当前脉冲的发生时间。这样我们就记录下了2个时间(连续)值。历史寄存器当前寄存器基准时钟中断前:n-1中断时:(n-1) (n (n+1)4注:箭头方向为中断时的赋值方向图7由于基准时钟是以10毫秒为最小单位的,而对于频率范围在20hz150hz的脉冲而言, 因为我们在后边的求滴速中要用到10毫秒单位值,而水滴的下落并不能保证绝对的规则, 经测试发现,每一次求差后的值总有几个单位毫秒的变动,这个变动就导致了最终运算出 来的滴速值的大幅度变化,后来惊观察发现这种误差可以归为

8、周期性误差,所以为了消除 这个误差,我们不是简单地只取一个差值,相反,我们是取了10个差值,然后再求平均值,这样处理的最大一个好处是可以使周期性误差的正、负偏差互相抵消,在很大程度上 消除上述误差。前面的处理虽然可以提供一个比较接近真值,对于最终显示出来的影响不大,但当要 用这个值去控制滴速夹时,很明显这样处理的结果降低了控制的响应度;而另一方面,对 于滴速夹的控制,因为我们采用的是步进电机,而且我们对步进电机的转轴又进行了改造, 加了一个螺纹栓,可以保持滴速夹控制端的位置,所以我们在每采集一个脉冲间隔时就进 行滴速的更改控制,这样可以提高控制设备的响应速度。所以在本系统中对于建立一个科学合理

9、的系统模型是很有必要的在对滴速进行控制时,我们借鉴了 pid算法,建立了一个闭环控制状态,利用类似于 锁相环的模型:即把设定的滴速和当前的滴速进行比较,输出一个差值,利用这个差值的 极性来决定电机的正反转,并拉小这个差值直至最小。因为每检测到一个传感信号,我们 就把设定值和当前值进行比较,这样不仅提高了设备的响应速度,而且由于我们这个系统 的基准时钟是以10毫秒为单位了,因为我们能分辨到10毫秒的数量级,可以使当前值非 常接近我们所设定的设定值。这一点可以参照电机控制的流程图。(图12)1、运算过程:因为我们系统的基准时钟是以10毫秒为单位了,虽然加大了系统的精度, 但是却给系统的数值运算带来

10、了麻烦,直接用四则运算(特别是乘除的运算)很容易 带来无法避免的运算误差,即在运算是因为运算位数的限制而带来的数据尾数的丢失。 前面说过这种误差将对我们对信号的处理和显示产生很大了影响,甚至会得到一个误 差很大的最终输出,为避免这种情况,我们在保证精度的基础上采用了查表法,并且 在建立表格时对数据进行一定的折中处理,使得最终得到了结果的误差能尽量小,实 践证明我们这种方法还是有一定的实用性的。而且查表法的结果便于以后系统误差的 自我校正,因为它保存了一个恒值。2、对数据表格的处理:前面说过我们这个系统的基准时钟有两个字节单元,而即使采用 题目要求的滴速(20150分/滴)也将需要260个字节,

11、这已经超过了 8位单片机的查 表范围,所以怎样建立一个合理的查表算法是很有必要的。通过对数据的观察,我们 发现虽然每个时间量有两个字节,但是在秒字节的单元里,总共只能出现4种取值,即1、2和3以及0 ,所以我们可以以这4个值为标量对表格的数据进行划分,由于有 了秒字节单元来做区分,我们只要在表格中写入 10毫秒字节单元的值就行了,通过综 合处理,在保证精度的基础上,我们所建立的表格的字节数为100多个,这样不仅满足了 8位单片机的查表范围,而且大大了节省了内存,有利于系统资源的优化分配。3、通信的建立:在选择方案时,考虑到通信线的多少,我们采用了串行通信,直接利用 单片机本身的串行通信口,在软

12、件上我们考虑用串行通信的方式0来进行通信。通信协议如下:先发送握手信号,然后发送被呼叫的从机号,每个从机在接收到地址时跟 自身的地址进行比较,如果不是被呼叫机,则关闭通信链路;如果是则发送响应信号。 当确定了通信的链路后,就按照预定的数据包格式进行通信。数据包格式如下:操作码操作数2、程序流程图主程序:传感测量:时钟:图10键盘:步进电机控制:图11图12第9页共18页3、源程序:时间基准缓冲区:秒55h 0.01秒56h键盘设置缓冲区:秒57h 0.01秒58h传感测量缓冲区:前次一秒51h 0.01秒52h当前一秒53h 0.01秒54h差值一秒4fh0.01 秒 50h最终显示缓冲区:选

13、择值:54h 测定值 5ah 5bh 5ch 设置值 5dh 5eh 5fhr4用于步进电机的步进记忆org 0000hmov 5eh,#00hajmp mainmov 5fh,#00horg 0003hmov r7,#00hajmp jpint ;int0setb f0org 000bhclr p2.1ajmp times ;t0mov tmod,#01h;t0为工作方式org 0013h0ajmp cgint ;int1mov tl0,#0f0h ;计数器初值org 0040hmov th0,#0d8hmain:mov sp,#60h ;设置堆栈mov ie,#87h中断设置,除t1mov

14、 41h,#00hes外全开中断mov 42h,#00hmov ip,#02h ;中断优先级mov 43h,#00hsetb it0mov 44h,#00hsetb it1 ;脉冲触发方式mov 45h,#00hsetb tr0 ;启动定时mov 46h,#00hsetb p1.4mov 47h,#00hdisp:acall disp0 ;调用显示子程mov 48h,#00h序mov 4fh,#00hajmp dispmov 50h,#00hmov 51h,#00hdisp0:mov 52h,#00hpush accmov 53h,#00hmov dptr,#tablemov 54h,#00h

15、 ;初值设置mov 55h,#00hjnb f0,disp1mov 56h,#00h ;以上为时间初mov a,54h;选择值显示值cjne a,#01h,zzz1mov 54h,#00hmovc a,a+dptrmov 57h,#00h ;初值显示为00mov sbuf,amov 58h,#00hjnb ti,$mov 59h,#00hclr timov 5ah,#00hmov a,#0ffhmov 5bh,#00hmov sbuf,amov 5ch,#00hjnb ti,$mov 5dh,#00hclr ti第20页共18页acall dealyjnb ti,$ajmp displclr

16、tizzz1:cjne a,#02h,zzz2mov a,#0fdhmove a,a+dptrmov sbuf,amov sbuf,ajnb ti,$jnb ti,$clr ticlr tiacall dealymov a,#0ffhmov sbuf,amov a,5chjnb ti,$movc a,a+dptrclr timov sbuf,aacall dealyjnb ti,$ajmp displclr tizzz2:cjne a,#03h,zzz3mov a,#0fbhmove a,a+dptrmov sbuf,amov sbuf,ajnb ti,$jnb ti,$clr ticlr t

17、iacall dealymov a,#0ffhmov sbuf,ajnb ti,$mov a,5dhclr timovc a,a+dptracall dealymov sbuf,aajmp displjnb ti,$zzz3:mov 54h,#00hclr timov a,#0dfhdisp1:mov a,5ah;测定值mov sbuf,a显示jnb ti,$cjne a,#00h,disp2clr tiajmp disp3acall dealydisp2:cjne a,#01h,disp4disp3:movc a,a+dptrmov a,5ehmov sbuf,amovc a,a+dptrj

18、nb ti,$mov sbuf,aclr tijnb ti,$mov a,#0fehclr timov sbuf,amov a,#0bfhjnb ti,$mov sbuf,aclr tijnb ti,$acall dealyclr tiacall dealydisp4:mov a,5bhmovc a,a+dptrmov a,5fhmov sbuf,amovc a,a+dptr设置值显示mov sbuf,amov a,54hjnb ti,$cjne a,#00h,lll1clr tiajmp ret0mov a,#7fhlll1:cjne a,#01h,lll2mov sbuf,ainc 5fh

19、jnb ti,$mov a,5fhclr ticjne a,#0ah,zhongjuacall dealymov 5fh,#00hpop accajmp ret0retlll2:cjne a,#02h,lll3 inc 5ehdealy:mov a,5ehmov r0,#0fahcjne a,#0ah,ret0lll:mov 5eh,#00hnopajmp ret0noplll3:inc 5dhdjnz r0,lllmov a,5dhretcjne a,#0ah,ret0table:db 03hmov 5dh,#00hdb 9fhajmp ret0db 25hx3:jb p1.2,x4;减1键

20、工程db 0dh序db 99hmov a,54hdb 49hcjne a,#00h,llll1db 41hajmp ret0db 1fhllll1:cjne a,#01h,llll2db 01hdec 5fhdb 09hmov a,5fhcjne a,#0ffh,ret0jpint:;键盘控制子程序mov 5fh,#09hpush accajmp ret0push 07hzhongju:ajmp ret0mov r2,#0ahllll2:cjne a,#02h,llll3zzz:acall dealydec 5ehdjnz r2,zzzmov a,5ehjb p1.0,x2;选择键了程序cjn

21、e a,#0ffh,ret0inc 54hmov 5eh,#09hclr ex1ajmp ret0setb f0川dec 5dhmov a,54hmov a,5dhcjne a,#04h,x1cjne a,#0ffh,ret0mov 54h,#01hmov 5dh,#09hx1:ajmp ret0ajmp ret0x2:jb p1.1,x3加1键子程序x4:jb p1.3,x5;确定键于程序clr f0retacall enter ;因指令而修改times:;时间设置ret01:;对整数进行修正push accmov a,r7mov tl0,#0f0hcjne a,#14,ccc1mov th

22、0,#0d8hmov 57h,#03h; 为20置3setb tr0setb ex1inc 56hajmp ret0mov a,56hccc1:cjne a,#1eh,ccc2cjne a,#64h,quit0mov 57h,#02h; 为30置2mov 56h,#00hsetb ex1inc 55hajmp ret0quit0:pop accccc2:cjne a,#3ch,ret02retimov 57h,#01h; 为60置1setb ex1cgint:;传感测量ajmp ret0mov r2,#0ahx5:jb p2.0,ret0;报警监测zzzz:acall dealysetb p2

23、.1;送报警声音djnz r2,zzzzajmp ret0jnb p3.3,cgint1ret02:setb ex1retiret0:pop acccgint1:push accpop 07hpush 03hretipush 04henter:push 05hmov 54h,#00hpush 06hclr cinc r7mov a,5dh ;求时间段程序cjne r7,#0ah,zhongju1mov b,#64h ;百位数mov r7,#00hmul abmov a,53h;数值转移mov r7,amov 51h,amov a,5ehmov a,54hmov b,#0ah ;十位数mov 5

24、2h,amul abmov a,55h;读取当前时间add a,r7mov 53h,amov r7,amov a,56hmov a,5fhmov 54h,aadd a,r7clr c;求10个脉冲差值子mov r7,a ; 此时r7中为设定值程序clr cmov 47h,#00h ;10差值寄存区subb a,#14h;查表前减20mov 48h,#00hmov dptr,#table1 ;由数值查时间段mov a,53h表subb a,51hmovc a,a+dptrmov 47h,amov 58h,aclr cmov a,54hmov a,44hsubb a,52hjnc zero ;如果

25、当前包人就跳subb a,42hjnc zero1;如果当前包人就跳转dec 47hclr cmov a,#00hmov a,54hadd a,#64hsubb a,52hzero:mov 48h,amov a,47h;平均差值mov b,#0ah div abmov 4fh,amov a,bmov r3,a;秒余数暂存mov a,48hmov b,#0ahdiv abmov 50h,amov a,bmovr4,a;0.01秒暂存mov a,r3mov b,#0ahmul abadd a,50hmov 50h,azhongju1:mov a,44hmov 42h,amov a,43hmov 4

26、1h,amov a,55hmov 43h,amov a,56hmov 44h,aclr c;求差值子程序,供电机使用mov 45h,#00hmov 46h,#00hmov a,43hsubb a,41hmov 45h,a clr c转dec 45hclr cmov a,#00hmov a,44hadd a,#64hsubb a,42hzero1:mov 46h,amov a,45hmov a,4fhcjne a,#03,ddd1;送动态显示缓冲区mov 5ah,#00h;整值判断mov 5bh,#02hmov 5ch,#00hajmp exitddd1:cjne a,#02h,ddd2mov

27、a,50hjnz ddd01mov 5ah,#00hmov 5bh,#03hmov 5ch,#00hajmp exitddd01:mov b,#0ahdiv abmov dptr,#table2 ;秒值为 2 的表movc a,a+dptrmov r5,aanl a,#0fhmov 5ch,amov 5bh,#02hmov 5ah,#00hajmp exitddd2:cjne a,#01h,ddd3mov a,50hjnz ddd02mov 5ah,#00hmov 5bh,#06hmov 5ch,#00hajmp exitddd02:mov b,#0ahmov r5,adiv abanl a,

28、#0fhmov dptr,#table3;秒值为1的表mov 5eh,amove a,a+dptrmov a,r5mov r5,aswap aanl a,#0fhanl a,#0fhmov 5ch,amov 5bh,amov a,r5exit:jb f0,exit1 ;f0为1时电swap a机/、,作anl a,#0fhaeall dianjie ;送步进电机子mov 5bh,a程序mov 5ah,#00hexit1:pop 05hajmp exitpop 03hddd3:pop 04hmov a,50hpop aeecjne a,#3eh,ddd03pop 06hmov 5ah,#01hr

29、etimov 5bh,#00hdianjie:;电机控制子mov 5ch,#00h程序.zhengzh为前进,fanzh为后退ajmp exitpush aeeddd03:elr eelr emov a,57hsubb a,#3chsubb a,45hje lar100 ;大于100跳转jz lowde;如果高位相等则mov 5ah,#00h ;小于100进行低位比较mov dptr,#table4;60至ij 99的表je jee1;当前滴速小于设move a,a+dptr定滴速,须反转放松mov r5,aaeall zhengzh ;当前滴速大于anl a,#0fh设定滴速,须止转挤压mo

30、v 5eh,aajmp outmov a,r5jee1:aeall fanzhswap aajmp outanl a,#0fhlowde:elr emov 5bh,amov a,58hajmp exitsubb a,46hlar100:jz outmov 5ah,#01hjejee2elr eaeall zhengzhmov r5,50hajmp outmov a,#3ehjee2:aeall fanzhsubb a,r5out:pop aeemovdptr,#table5;100到150的ret表zhengzh:;前进挤压move a,a+dptrmov dptr,#table0inc r4

31、db 62hmov a,r4db 58hcjne a,#06h,zhengzdb 54hmov r4,#00hdb 50hmov a,#00hdb 46hzhengz:movc a,a+dptrdb 43hmov p1,adb 40hretdb 36hdb 33hfanzh:;反转放松db 30hmov dptr,#table0db 28hdec r4db 25hmov a,r4db 22hcjne a,#0ffh,fanzdb 20hmov r4,#05hdb 18hmov a,#05hdb 15hfanz:movc a,a+dptrdb 13hmov p1,adb 11hretdb 09h

32、table。:db 07hdb 80hdb 05hdb 0c0hdb 03hdb 40hdb 02hdb 60hdb 00hdb 20hdb 98hdb 0a0hdb 97htablel:db 95hdb 00hdb 94hdb 86hdb 92hdb 73hdb 91hdb 61hdb 90hdb 50hdb 88hdb 40hdb 87hdb 31hdb 86hdb 22hdb 85hdb 14hdb 83hdb 07hdb 82hdb 00hdb 81hdb 94hdb 80hdb 88hdb 79hdb 82hdb 78hdb 76hdb 77hdb 71hdb 76hdb 67hdb 75hdb 74hdb 73hdb 72hdb 71hdb 71hdb 70hdb 69hdb 68hdb 67hdb 67hdb 66hdb 65hdb 65hdb 64hdb 63hdb 63hdb 62hdb 61hdb 61hdb 60hdb 59hdb 59hdb 58hdb 58hdb 57hdb 57hdb 56hdb 56hdb 55hdb 55hdb 54hdb 54hdb 53hdb 53hdb 52hdb 52hdb 51hdb 51hdb 50hdb 50hdb 50h

温馨提示

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

评论

0/150

提交评论