吕守向 汤紫雄
(福州理工学院工学院 福建福州 350506)
电子叫号管理系统在排队等待和排队秩序等方面具有一定的改善意义。本文提出的电子叫号管理系统就是一款基于AT89C51来设计的智能呼叫管理系统。该系统由客户端和主机终端组成,并通过LCD来显示叫号信息,辅以呼叫提示音让该系统提供的服务更加人性化。
电子叫号管理电路采用如图1所示的结构。所设计的电子叫号管理系统主要在客户端执行取号使之从机生成一组队列,再由主机端对从机所生成的队列实行统计管理。系统主要为两个部分:抽号部分(从机)和叫号部分(主机),其控制核心[1]为ATMEL公司的AT89C51单片机,能很好的满足排队抽号的控制数据处理。整个系统的组成主要包含了按键模块、主机控制模块、LCD显示模块、放号广播模块等。其中取号模块和放号模块由相互独立的 LCD显示器分别给予显示。取号功能通过按键即可实现,对于放号呼叫则有四个按键。
图1 系统结构
系统中主机部分要实现由从机的排队按键决定已排队人数。在已知已排队人数的前提下由按键K1/K2/K3/K4分别代表4个不同的窗口所叫到的号码;显示剩余的排队人数有waiting键。从机部分只要完成客户取号的功能。相对主机而言少了蜂鸣器和按键数。从机主要实现的是客户端[2]的排队顺序记录,限制排队上限并传送信息给主机。在主从机任务分工明确的条件下实现以上内容,最后利用keil编译完再进行proteus仿真和成软硬件设计和系统仿真。
(一)显示电路。如图2所示,P2.2连向显示器的使能信号,P2.1连向显示器读/写端,P2.0连向显示器数据/命令端,P0端连向显示器8个数据接口。VL则用于调整显示器的对比度。显示器的控制可通过对E、RS、RW、的电平执行写入来实现。
图2 显示电路
(二)按键电路。按键电路如图3所示,为简化分析,定义队列长度为10。首先由K0执行取号输入,开始计数。在取号频率小于设定队列长度前提条件下,执行+1操作直至取号数等于事先定义的长度10时,则不再排队。放号主机的中断和与门一同完成。假设4个工作人员在放号终端放出号码,号码最小的那位排队人员前往指定放号终端,此时已受理该业务的那个放号终端就应该自动执行销号操作。中断的号码也应通过与门执行销号-1操作和延时操作。
图3 按键电路
(三)放号电路。如图4所示,放号呼叫功能经由蜂鸣电路端口的电平变化来实现。每一次放号呼叫前后时间间隔长短可通过设置延迟来完成。四个按键执行取号放号操作时蜂鸣器都将发出放号广播声。本次设计运用延时程序[3]控制接蜂鸣器的端口输出。
图4 放号电路
(一)设计取号从机。当系统运行并扫描到K0开关闭合时就默认取号操作开始执行,便开始生成队列。由于本次设计定义了队列长度为10,故计数器随着队列取号数的不断增加循环执行+1操作直至队列长度达到10才终止。其流程如图5所示。
图5 从机流程
(二)设计放号主机。根据排队队伍的不同状态,对LCD进行相应的显示控制。如有窗口应答并命令时,运用延时程序控制蜂鸣器的运行[4],窗口显示并以提示音呼叫。4个独立的按键代表4个窗口实现显示、叫号两用功能。整个流程为将排队人员中号码最小的那个号传到主机,主机开始计算并与队列长度做比较进而将号码显示在显示器上并发出广播,同时重新排列后续的号码。
(三)设计放号广播。放号呼叫功能经由蜂鸣电路端口的电平变化来实现。每一次放号呼叫前后时间间隔长短可通过设置延迟来完成。最后通过调用主程序实现广播功能。这样的设计可使得系统提供的服务更加人性化[5]。其流程如图6所示。
图6 放号广播流程
(四)设计显示和销号程序。销号功能可以利用与门和循环左移的方式实现。显示器和销号流程如图7、8所示。
图7 显示器流程
图8 销号流程
利用AT89C51在Proteus平台上进行原理图的绘制。绘制完成后对程序编译[6]得到HEX可执行文件再加载到芯片进行仿真[7]测试。测试结果如图9-11所示。
图9 系统测试一
图10 系统测试二
图11 系统测试三
本次设计以AT89C51为核心,分别对LCD1602为数码显示器、按键、叫号模块等外围电路进行设计。通过对各模块进行软件编程并借助Proteus对设计的电子叫号管理系统进行测试。最终实现了对排队进行智能呼叫管理的功能。