1.简介
基于单片机便携式输液点滴控制报警器组成。 该系统主要由光电传感器检测电路、键盘、数码管显示、报警提示电路、液滴流速监测电路、电机驱动电路等组成。 利用霍尔感器测量出液滴流速,并将将信息返回给单片机,单片机对流速信号与测速型号进行分析和处理,并让其显示数码管上,从而实现对输液器的监测与控制。
2.硬件设计
本例程的硬件主要由7部分组成,分别为单片机的最小系统,4位数码管显示电路、光电测速电路、步进驱动电路、按键电路、蜂鸣器报警电路、电源模块等,其结构框图如下所示:
(1)光电测速电路
本次设计将采用光电传感器,利用传感器对液滴流速信号检测,再利用外围电路实现计数。 当一个液滴流过光电传感器时,由于液滴的遮挡,导致光电传感器中的三级管截止,光电传感器输出为高,所以实现对输液速度的检测就是完成对两个高电平时间间隔的计时。 电路图如图:
(2)步进电机驱动电路
步进电机驱动电路采用了ULN2003达林顿管阵列芯片作为步进电机驱动电路,其主要功能是增强单片机控制引脚的电流驱动能力,以实现控制步进电机。
(3)按键电路
本次设计共设置了3个独立式的按键,主要的功能设置键、增加键和减少键。 电路如图:
(4)总体硬件原理图
3.软件设计
程序设计部分主要包括主程序、输液测速函数、键盘扫描函数、数码管显示函数、及电机控制函数。 定时器初始化函数完成对定时器初始化,流速信号采集函数完成对输液速度的采集和计算分析,键盘扫描函数则需要完成对电机转速控制,输液速度读取函数完成数据的换算,为电机的工作提供工作的依据。
由于程序代码较多,现只介绍主程序代码。 详细源码请下载附带资料。
(1)主程序
void main()
{
init();
while(1)
{
keyscan();
if(s1num==1)hdisplay(htemp);
if(s1num==2)ldisplay(ltemp);
if(yyp)
{
baojing();
keyscan();
if(time_out == 1)
{
speed_tmp = speed * 12; //每分钟的点滴数目等于每5秒的数目乘以12
speed = 0;
time_out = 0;
}
display(speed_tmp);
}
}
}
全部0条评论
快来发表一下你的评论吧 !