本文设计了一套排队叫号系统。该系统是以排队抽号顺序为核心,客户利用客户端抽号,工作人员利用叫号端叫号;通过显示器及时显示当前所叫号数,客户及时了解排队信息,通过合理的程序结构来执行排队抽号。以提高排队等待效率,解决排队秩序混乱,前拥后挤等现象,实现排队自动化,规范化。

本系统由键盘输入系统、单片机系统、屏幕显示系统及叫号提示音系统组成,系统分为两个部分:抽号部分和叫号部分,其控制核心为AT89C51单片机,抽号部分和叫号部分采用一块 LCD液晶显示器,这样显示数据直观,便于客户理解,抽号部分输入只需使用一个抽号按键即可,便于客户操作,叫号部分包括叫两个号键,系统采用自动清零,无需人工操作。

系统框图

设备上电后,显示器屏幕亮,无信息显示。当客户按键后,每按一下,队伍加1,显示器显示客户队伍号;排满20位后,再按取号键,屏幕显示“队伍满”。当客服叫号时,队伍减1,程序进行信息处理,在显示器上显示“几号客户到几号窗口”,同时进行声音提示;当队伍空时,显示“队伍空”,显示器屏幕清空,储存的队伍号码归零处理。

叫号排队 redis 叫号排队系统声音_屏幕显示

MCS-51单片机结构

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

单片机的可擦除只读存储器可以反复擦除100次。从工作原理上讲,单片机就是一种微型计算机,是一种“程序存储式”计算机。它是在一块硅片上集成了中央处理器(CPU)、随机内存(RAM)、程序内存(ROM或EPROM)、定时/计数器以及各种I/O接口,也就是集成在一块芯片上的计算机。

叫号排队 redis 叫号排队系统声音_只读存储器_02

液晶LCD1602介绍

用LCD显示一个字符时比较复杂,因为一个字符由6x8或8x8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8个字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。

这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立游标,在此送上该字符对应的代码即可。

叫号排队 redis 叫号排队系统声音_叫号排队 redis_03

叫号排队 redis 叫号排队系统声音_单片机_04

叫号排队 redis 叫号排队系统声音_叫号排队 redis_05

系统硬件电路设计

系统Proteus仿真图:图中主要以AT89C51为控制核心,包括显示电路,音乐提示电路,晶振电路。

叫号排队 redis 叫号排队系统声音_单片机_06

液晶显示电路:P1口接LCD1602的8个双向数据线接口,P3.4接1602的数据/命令选择端,P3.5接1602的读/写选择端,P3.6接1602的使能信号。BLA、BLK分别是1602的背光源的正负极,VL是1602对比度调整端。本文是通过对RS、RW以及E的高低电平进行写指令和写数据操作来控制1602的显示的。

声音提示电路:使用最简单的蜂鸣器来作为提示音部分,通过改变端口高低电平来进行发声,并对延时进行修改来调试发声频率,从而修改发出的声音的好坏。

系统软件设计

叫号排队 redis 叫号排队系统声音_屏幕显示_07

系统仿真调试

仿真是在软件Proteus 7.4上进行的,用C语言编写的程序,通过keil生成了hex文件,经过调试,仿真实现了排队叫号系统的功能。

客户取号:按下客户端取号按键,屏幕显示“Your No.is 03!”。

叫号排队 redis 叫号排队系统声音_单片机_08

窗口叫号:按下窗口服务叫号按键一,屏幕显示“No.03 Come to No.1 window, please”。

叫号排队 redis 叫号排队系统声音_屏幕显示_09


——— END ———