摘要:为改善营业窗口的服务质量和工作效率,解决枯燥无序的排队问题,采用STC89C52单片机控制语音芯片、打印机、LCD显示屏来模拟人工叫号过程,完成号码的打印、存储、显示及播报工作;采用MAX485扩展RS-485总线接口,实现分布式串行通信。该系统能满足简单的排队需求,具有开发成本低,占用空间小等优点,有较好的市场应用前景。
关键词:排队管理系统;STC单片机;语音芯片;串行通信
排队问题是银行、医院、工商、税务、电信等行业普遍存在的问题、设计一款模拟人工叫号过程,通过取号、进队、等待、叫号服务等功能代替人们站队辛苦的排队管理系统一直以来都是公共服务部门的迫切需求。然而,现在市场上主流产品的结构形式大都是基于PC机的,此传统模式占用PC机仅用于实现触摸屏触摸取号的功能及使用频率较少的系统管理功能,其制造成本和开发成本很高,使得许多中小行业都望而怯步,为了克服这一缺点,文中系统采用性能强大、价格低廉的单片机来实现综合管理和控制,设计并研制出体积小、结构简单、可靠性高、维护操作方便、性价比较高的排队管理系统,文中介绍了该排队管理系统的结构及控制原理,并重点阐述了该排队系统的组成及软、硬件设计方案。
1 排队管理系统结构和功能
排队管理系统由主显示屏、语音单元、打印机及通信模块组成,具体结构如图1所示。
控制系统的核心是微控制器STC89C52单片机,由主机系统的P0口控制打印机和语音叫号功能的实现,部分P1口控制显示屏及按键操作,系统上电后,液晶显示屏处于“您好欢迎光临”的界面,系统根据取号按键的不同对不同的业务类型分别进行计数,在顾客按取按键后,液晶显示屏将显示业务类型供顾客选择,待顾客选择完毕,系统便控制微型打印机打印出相应的票号,之后返回主界面,当查询到从机有叫号请求时,系统将控制语音播报单元播放相应的语音提示信息。同时相应从机的LED显示屏显示将要受理的顾客号。
2 系统硬件电路设计
2.1 显示模块设计
液晶显示器选用北京青云公司生产的的带中文字库的LCM128645ZK液晶显示屏,采用串行接口的方式传输数据,以减少I/O口的使用,连接电路如图2所示。P1_0、P1_1、P1_2引脚分别与LCM128645ZK的E(SCLK)、R/W(SID)和RS(CS)引脚相连。另外,引脚“VR”和“V0”之间接有可变电阻(0~10 kΩ),用来调节显示区域的底色。
在模块初始化阶段,需要进行功能设定,本次设计将其设为8-bit控制界面,基本指令集动作,设置其为整体显示,清DDRAM添满“20H”并设定DDRAM的位址AC=0,最后位址清零,延时0.5 s以保证模块初始化功能完成后就可以输入数据了。
2.2 打印机模块设计
打印机选用POS58行式热敏微型打印机。它的打印速度快,环境适应性强,支持ANK字符、自定义字符和汉字字符的倍宽、倍高打印以及不同密度点图及下装图形的打印,还可以调整字符的行间距。本设计采用并行接口的形式传输数据,支持BUSY握手协议,其接口插座为DB25针型插座。通过P0口传输数据来控制微型打印机进行打印工作,其中/STB端连接单片机的/RD端,/BUSY连接其INT1端。当打印功能键按下,并用业务选择功能键选择了需要打印的业务类型时,若/BUSY为高电平时,表示打印机忙,此时不能接受数据,如果检测到的信号为低电平,则将数据送到P0口,即将数据送到了打印机的数据口,然后软件置/STB端为0,因为/STB端是下降沿时允许输入数据,延时短暂的时间后,再置/STB为1,此时数据已被读入打印机,这样就可以打印出相应的内容了。同时,当打印机出错时,/ERR将被电阻上拉为高电乎,本设计中将/ERR端口引脚接地。同理,/ACK引脚为低电平时表示打印机准备好,可以接收数据,这里也将该端口引脚接地。
2.3 语音模块设计
ISD1420是由台湾华邦(winbond)公司开出发的典型的单片高质量短周期语音录放集成电路,采用CMOS工艺、内部包含片上时钟麦克前置放大器自动增益控制、带通滤波器平滑滤波器和功率放大器。本次设计主要用STC89C52的P0口控制ISD1420语音芯片的A0-A7管脚来实现语音的分段录放工作,其连接电路如图3所示,首先,将需要播报的语音分段录至存储地址,按录音键即可开始录音,软件控制它0.5 s后结束录音。按放音键可检查音质的好坏,如果按下加地址键,可使地址加4,同时液晶显示屏上可以显示出此时录音的地址。这样就可以从该地址开始控制语音的录入。这里,由于ISD1420语音芯片的最长录音时间为20 s,而其最小分辨率为0.125 s,即它最多可以录制20/0.125=160段音。而其可存放语音的地址单元为00H~7FH,共128个地址,由此可见一个地址足以存放0.125 s的语音,义因为此银行叫号机的19段语音每段延时0.5 s,0.5/0.125=4,可见为每段延时0.5 s的语音分配4个地址就足够了。
在主程序中.当查询到从机的叫号请求时,将依次呼叫:“请****号顾客到*号窗口办理”,呼叫完毕,等待下一次呼叫请求。这样也就实现了选段放音,其中,各按键的定义如表1所示。
在ISD1420语音芯片的音频输出端即SP+端口接有LM386放大器,用来放大声音信号。驱动8 Ω、0.5 W的喇叭放音。需要注意的是LM386的旁路端口必须接电容再接地或者悬空,不可以直接接地,否则喇叭不能发出声音,如图4所示。
2.4 串口通信
系统采用总线型主从式结构来实现多机通信,即在数个单片机中,有一个是主机,其余是从机,从机要服从主机的调度、支配。本设计采用RS-485串行标准总线进行数据传输。并采用半双工通信的MAX485接口芯片将单片机的TTL电平转换为RS-485电平。
MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和D1端分别为接收器的输出和驱动器的输入端,与单片机的RXD和TXD相连接;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态:当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只用单片机的P32管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。
3 系统软件设计
系统软件程序主要包括两部分内容,首先,将需要播报的语音信息储存到ISD1420语音芯片中,为了保证每一段录音的质量,我们结合液晶显示屏来编写这部分的程序,将每一段录音的存放地址以十进制的形式显示出来,由单片机的引脚P2_7引脚控制语音芯片的/REC引脚,P2_5控制/PLAYL键,当叫号功能按键按下时,软件将语音芯片的/REC管脚置成低电平,即开始录音,同理,当放音功能按键按下时置语音芯片的/PLAYL引脚为低电平,开始放音。另外当加地址功能键按下时,便可以用软件控制P0口的地址加4,因为P0口连接着语音芯片的A0~A7引脚,故使得录音的地址也相应的加4,同时把地址转换成十进制数在液晶屏上显示。按照这个方法如果哪段音没有录好,则可以由按键控制单片机回到这一地址再重新录制。将需要播放的语音分段存放到语音芯片中之后,在主程序中,就可以把显示部分,叫号部分和打印部分综合起来了,这样就构成了一个简单的排队管理系统,程序流程图如图5所示。
4 结论
文中针对服务行业嘈杂、无序、低效的排队问题,设计了基于STC89C52单片机的排队管理系统,具有低成本、便携化的特点。通过焊接电路板、调试及初步应用实验,表明此系统工作稳定可靠,可达到设计要求,具备一定的市场应用潜力。