基于STC89C52RC单片机的罩杯定型机系统设计
2018-08-07戴杉虎
戴杉虎
0 引言
机械制造工业的信息化、自动化应运而生,使得单片机技术在我国得到了广泛应用。把单片机技术融入到内衣机械行业的产品制造中,不仅能降低机械产品生产的成本,而且能实现产品的自动化,提高产品的市场占有率。
文胸模杯指的是夹层文胸中维持罩杯形态的部分,或者指整个模杯文胸。文胸模杯的一般加工过程主要由来料检验、贴布、裁剪、定型、修边和产品检验等几部分组成,其中定型是模杯生产过程中最重要的环节[1-2]。内衣模杯企业一般是用定型机来定型,使用继电器控制线路设计的定型机系统存在维护麻烦、电路复杂、功能少等缺点。为了解决以上问题,本文使用单片机、液晶显示器及相应的外围电路设计了一种罩杯定型机系统,铝模加热和控温由其他的电路单独控制。该定型机能实现文胸模杯的定型功能,其执行机构主要是气动控制,控制装置是按照定型工艺要求输出控制信号,使电磁阀和继电器动作,从而驱动相应的执行机构动作。
1 系统控制要求
根据产品定型的实际情况,对该系统的控制要求如下。
(1)控制系统能按照定型工艺的流程运行。
(2)液晶显示器能显示当前的工作状态(运行、停止或手动)、计数值、输入密码、管理员密码、中停时间和定型时间的设定值、当前值。液晶显示器需要有相应的中文显示。
(3)中停和定型时间的设定值在000~999秒范围内可调,设定完成后保存。计数值最高可以显示9999,并能对计数值进行清零操作。
(4)为了避免工作人员在工作的过程中,随意更改设定的时间,需要设定管理员密码,4位密码值可以在0000~9999范围内设置。只有当输入密码值等于管理员密码值或者等于万能密码的时候,管理员密码值才能显示,且才可以修改中停和定型的设定时间。
2 系统的设计方案
系统主要由单片机模块,液晶显示模块,按键输入模块,输出接口电路模块和输入接口电路模块等几大模块组成,系统方框图如图1所示。
系统的工作原理:通过按键设定管理员密码、中停和定型时间的设定值,设定完成后保存。按下启动按钮,系统以定型工艺的要求运行,在运行的过程中按下停止按钮或一个工作流程结束,系统恢复到初始状态。液晶显示器在系统运行的过程中,实时显示当前的工作状态、计数值、当前的中停时间和定型时间等功能。
图1 系统方框图
3 硬件设计
3.1 STC89C52RC单片机
根据系统的控制要求,用最常用又满足需求的STC89C52RC单片机作为控制器的核心。STC89C52RC是宏晶公司生产的一种低功耗、高性能CMOS 8位微控制器,具有8 k在系统可编程Flash存储器,性价比高。
3.2 LCD12864与STC89C52RC接口电路
LCD12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成,可完成图形显示,也可以显示8×4个(16×16点阵)汉字和16×4个(16×8点阵)ASCII字符集。
LCD12864与STC89C52RC接口电路如图2所示[3],采用直接访问方式,单片机P0口直接与液晶显示器的数据口相连。P2.2和P2.3分别控制左右半屏选择,P2.4控制复位信号,P2.5控制读/写使能E信号,P2.6用于控制R/W的读写选择,P2.7控制RS寄存器选择。VO是控制液晶显示器的亮度调节输入端,调节该端的输入电压,可改变显示屏字符、图形的颜色深浅。
3.3 输入输出接口电路[4]
为了避免干扰,电路使用光电耦合器TLP521-1等器件起电路隔离的作用。启动按钮、停止按钮、手自动开关和磁性开关通过输入接口电路接到单片机的输入端,图3是其中一路的输入接口电路。电磁阀和继电器的额定电压是直流24V,单片机的输出电压只有5V,故无法直接驱动电磁阀和继电器。输出接口电路主要以大功率MOSFET管IRF9530和TLP521-1等器件作为驱动电路来控制电磁阀和继电器的接通或断开,图4是其中一路的输出接口电路。
图2 LCD12864与STC89C52RC接口电路
图3 输入接口电路
图4 输出接口电路
3.4 按键电路
按键电路由3个按键组成,分别是设置键,移位键和上升键。按键电路采用查询的方式来完成信号的采集,按键电路的去抖动由软件延时的方法完成。按键电路图如图5所示。
图5 按键电路图
4 软件设计
4.1 主程序流程图
程序主要由初始化子程序、显示子程序、数据设定子程序、输出控制子程序和复位看门狗程序组成,主程序流程图如图6所示。初始化子程序主要是对液晶显示器进行初始化,读取保存的数据,看门狗设置等操作。显示子程序主要实现文字和数据在液晶显示器显示,并对选中的数据进行反白显示。数据设定子程序主要实现时间和密码的数值设定。输出控制子程序主要实现定型工艺的流程控制。
图6 主程序流程图
4.2 液晶显示器画面
图7 液晶显示器画面
因液晶显示器显示的文字和数字数量有限,所以本次设计分成三个画面来显示,液晶显示器画面如图7所示。系统通电后,液晶显示器以1 s为周期闪烁显示首页画面,8 s后直接进入时间数据显示画面,首页画面不再显示。未按下设置键时,按下上升键可以在密码显示画面和时间数据显示画面进行切换显示;在密码显示画面,未按下设置键时,按下移位键可以对计数值进行清零。在系统正常工作的时候,液晶显示器能实时的显示各种参数值。
4.3 密码功能的实现[5]
以下程序是判断输入密码值等于管理员密码值,或等于万能密码的程序。其中t11[4]存放4位输入密码值,t12[4]存放4位管理员密码值。
SRmima=t11[3]*1000+t11[2]*100+t11[1]*10+t11[0];
GLYmima=t12[3]*1000+t12[2]*100+t12[1]*10+t12[0];
if(GLYmima==SRmima)
ppp=0;
else ppp=1;
if((6==t11[3])&&(8==t11[2])&&(6==t11[1])&&(8==t11[0]))
ppp1=0;
elseppp1=1;
在密码显示页,若输入密码值不等于管理员密码值,或是等于万能密码,管理员密码值不能修改且也不显示。若相等,按下设置键选中管理员密码值,set_left等于0,整个密码值反白显示。每按一次左移键,set_left进行+1运算,每次选中管理员密码值中的一位,按个位、十位、百位和千位的顺序循环反白显示,此时可以通过上升键对反白显示位的密码值在0至9之间进行修改。部分程序如下所示。
if((ppp==0)||(ppp1==0))
{set_left++;
if(set_left==5){set_left=1;}
}
gotoxy(0,4); //液晶显示屏第三行。
display_GLCD_string_16x16(GLYmima, 6, 0); //显示中文“管理员密码:”
if((ppp==0)||(ppp1==0))
{
if(2==set_number) //选中管理员密码值
{if(1==set_left)
{display_GLCD_number_8x16(t12,4,1);}//选中个位并反白显示
elseif(2==set_left)
{display_GLCD_number_8x16(t12,4,2);}//选中十位并反白显示
图8 输出控制子程序流程图
else if(3==set_left)
{display_GLCD_number_8x16(t12,4,3);}//选中百位并反白显示
elseif(4==set_left)
{display_GLCD_number_8x16(t12, 4, 4);
}//选中千位并反白显示
else display_GLCD_number_8x16(t12, 4,255);//选中4位密码值进行反白显示
}
else display_GLCD_number_8x16(t12,4,0);//正常显示管理员密码值
}
else
{clear_GLCD_string_8x16(4);} //不显示管理员密码值
4.4 输出控制子程序流程图
输出控制子程序主要由两部分的程序组成,一部分由磁性开关和时间控制系统的下一步动作,另一部分输出控制电磁阀和继电器的接通或断开,从而控制定型机的执行机构动作。输出控制子程序流程图如图8所示。中停限位由磁性开关检测;tm10、tm0分别存放中停时间的设定值和当前值;tm11、tm1分别存放定型时间的设定值和当前值。
5 总结
实践证明,本系统能满足该定型机的控制要求,运行稳定可靠,抗干扰能力强,性价比高。为企业节省了成本,提高了产品的竞争力,产生了很大的经济效益。根据不同功能的同类型定型机,只需修改一下输入输出点的连接和程序,就可以实现所需要的控制功能。