基于单片机的药丸自动计数系统设计
2022-07-14范昭君
范昭君
(陕西国防工业职业技术学院,陕西西安 710300)
0 引言
随着社会的进步和发展,人民日益注重个人的健康问题,药品的种类和数量需求急剧加大,接踵而至的是药品的包装问题。据统计,社会上药品中瓶装药品的占比大概在40%。瓶装药丸的个数是衡量药品质量的一个重要的指标,目前在药品生产线中常采用人工计数法和电子计数法完成药丸的计数,若只采用人工计数不能满足国家药品监督管理局颁发的药品生产质量管理规范,采用人工计数准确率、工作效率低。如果可以对传统的药物生产线进行改造升级,选取能够满足条件的检测装置,就能提高药厂的工作效率和药品质量,从而提升工厂的效益。快速精确地对自动生产线上的药品进行个数检测技术成为一个亟待解决的问题。
伴随科技的进步,越来越多的基于单片机的计数系统用其直观、精确的特点,被越来越多的应用于自动生产线中[1,2]。设计的计数器以STC89C51为核心控制单元,用于测量药丸流水线上的生产的数量,采用红外对射式方式,红外发射管发出红外光线,当有药丸挡住红外光线时,接收管没有接收到红外光信号,放大器将输出低电平,同时将这个电平信号作为外部中断0的触发信号,送入单片机进行计数控制,当计数满30,则驱动数码显示电路更新数值。
1 系统设计
1.1 任务要求
药丸生产线的结构如图1所示,其主要功能模块包括4个部分,分别是:阀门控制电路、履带电机控制电路、药丸检测电路以及显示电路。在药丸生产线中的重要组成部分是药丸检测电路,其主要的检测元件是红外传感器,当有药丸通过漏斗颈时,就会触发红外光电传感器,从而完成计数;当计数的值为30时,控制阀门闭合,药丸瓶数计数值加1,已装好药丸的瓶数显示数值更新,再来控制履带动作,目的是运送空瓶到漏斗下,当生产完100瓶之后,显示数值回零,从而进入下一个生产周期。
图1 药丸生产线
1.2 单片机的选择
药丸瓶装生产线检测系统在数据处理上速度要求不是很高,所以可以选择使用较为普遍的8位机,即美国ATMEL公司开发的AT89C51单片机,它与由Intel公司开发80C51引脚和指令系统完全兼容,是一种低功耗、高性能的单片机。
(1)主要性能。①与由Intel公司开发80C51引脚和指令系统完全兼容;②有4 kB可在线重复编程的片内flash EPROM;③数据可以保存10年;④单片机的供电电压选择范围为2.7~6 V;⑤内部RAM是128×8位;⑥3级加密保护的ROM;⑦4组可编程的I/O接口;⑧两个16位的加法定时器/计数器(T0/T1);⑨有5个中断源和2个优先级。
(2)AT89C51引脚定义。AT89C51有40个引脚,如图2所示。设计中的主要使用的引脚说明如下:VCC:40号引脚,为单片机电源的+5 V的高电平接口;P0:P0口32~39引脚是单片机的一组I/O端口;P2:P2口21~28引脚是单片机的一组具有内部提升电路的双向I/O端口;P1:P1口1~8引脚是单片机的一组具有内部提升电路的双向I/O端口;P3:P3口10~17引脚是具有内部提升电路的双向I/0端口(准双向并行I/O口),它还提供复选功能,主要有串行口通信、外部中断0(INT0)控制、外部中断1(INT1)控制、定时和计数器(T0/T1),计时和计数控制及外部随机存储器内容的读取或写入控制等功能;XTAL1(19)/XTAL2(18):接外部晶振的引脚,系统中采用的晶振频率为12 MHz;GND:20号引脚,为单片机电源的0 V的低电平接口。
图2 AT89C51引脚图
药丸计数系统中用到单片机的计数功能,计数器为递增计数器,采用的是外部中断0(INT0)触发计数器,当红外光电传感器检测到信号时(下降沿),计数器数值自动加1,当计数寄存器溢出时,计数完成,一瓶药品装满,进入下一个周期。
1.3 电路设计
药丸生产线计数硬件电路如图3所示,包括单片机,复位电路,时钟电路,电源电路、数码显示电路和检测电路。采用P0口控制1个7段共阳极LED数码管的段选控制端,采用P2口控制1个7段共阳极LED数码管的段选控制端,红外光电传感器用于检测药丸的个数,连接到P3.2端口(外部中断请求0,INT0)引脚上。检测到药丸的个数为30,触发中断,显示的数字加1,在本例中采用晶振频率是12 MHz。
图3 药丸计数电路
单片机控制药丸生产线的器件清单见表1。
表1 实物清单
1.4 软件设计
主要包括3个函数,主函数、药丸瓶数显示函数、计数函数。
(1)主函数。
(2)药丸瓶数显示函数。采用P0口控制1个7段共阳极LED数码管的段选控制端,用于显示药丸瓶数的高位。采用P2口控制1个7段共阳极LED数码管的段选控制端,用于显示药丸瓶数的低位。采用二维数组来存放LED要显示的数字“0~9”的字形编码,计数值整除10是瓶数的十位,对10取余是瓶数的个位。
(3)计数函数。红外光电传感器用于检测药丸的个数,连接到P3.2端口(外部中断请求0,)引脚上,当有药丸落下,P3.2端口检测到下降沿,触发中断,药丸计数个数加1,检测到药丸的个数为30,瓶数count显示的数字加1。
2 结束语
设计出一种基于AT89C51单片机的药丸自动检测系统,采用一对红外接收管和红外发射管作为药丸的检测装置,利用外部中断实时计数并显示在LED屏幕。经仿真测试该系统能够实现数据采集、药丸的实时显示和计数等功能,效果良好,具有很高的应用价值和现实意义。