资源描述
资料内容仅供您学习参考,如有不当或者侵权,请联系改正或者删除。
河北理工大学
课程设计
题 目: 银行排队机系统
姓 名:
学 院: 信息学院
班 级:
学 号:
同 组 人:
指导教师:
01月06日
一、 需求分析
排队在日常生活中已经是一种很普遍的现象, 随着科技的发展, 排队系统应用而生。排队叫号机是利用电脑的科学管理功能代替人为排队系统, 很好地解决了客户在服务机构办理业务时所遇到的各种排队、 拥挤和混乱现象, 为客户办理业务带来莫大的方便和愉悦。根据课程设计的要求, 基本确定应用单片机来确定简单的排队叫号机功能。
1、 基于总体的考虑, 首先对排队机进行分析。排队系统能够分为两大部分。票务打印系统及窗口操作系统, 为此首先需要设置一个总控制系统对它们进行控制。
2、 票务打印系统
( 1) 显示
发号机上的显示屏使用液晶显示, 显示对待办业务的选择;
( 2) 输入
输入过程即经过触摸屏对业务进行选择的过程;
( 3) 输出打印
号票打印内容应该包括业务名称、 排队号码, 打印机选用指针式打印机;
3、 窗口操作系统基本包括显示屏、 语言提示, 叫号按钮
( 1) 显示屏
使用点阵式LED显示, 显示内容应该是下一个号码以及办理窗口;
( 2) 语音提示
语音播报时用语音的形式经过广播或者音箱给人一提示信息。语音播报提示给人直观、 亲切的感受特点, 而且不需要用户一直盯着提示屏或者排队情况。选择使用语音芯片, 实现的功能应该是当操作员按下按钮后, 语音播放下一个办理者的票号。
( 3) 叫号按钮
设置叫号按钮, 以便于操作员控制窗口模块的显示屏及语音提示。
4、 各个模块的通信问题
考虑通信距离为几十米的范围内, 而且需要高有效的抗噪能力, 选用当前广为应用的RS—485总线相连, 互相通信, 传送数据。
二、 概要设计
(一) 根据排队系统的实际情况, 排队系统的基本流程如下:
休息区的顾客收到提示信息后前去相应窗口接受一对一服务
需要办理业务的顾客先到取号机根据自己需要选择业务, 并获得打印出的排队号票
取到排队号的顾客在休息区休息, 注意大厅的提示信息
窗口操作员按”下一位”当前窗口便显示顾客排队号同时开始语音播报: 请XX到XX窗口服务
顾客取票
顾客休息等待
顾客到窗口办理业务
营业员按钮叫号
排队机排队流程
( 二) 系统设计方案如下:
1、 整个系统由一台主控器与多台子控制器经过485总线相连, 互相通信, 传送数据。主控制器接收子控制器的请求信息, 对子控制器的请求作出应答。
通信
总控制器
子控制器
子控制器
通信
系统框架图
2、 窗口操作子系统
显示屏
子控制器
窗口一
窗口二
窗口三
键盘输入模块
语音叫号
显示屏
语音叫号
显示屏
语音叫号
窗口控制系统功能结构图
( 1) 子控制器包括一个管理员键盘和多个窗口操作键盘, 每个每个窗口操作键盘课经过硬件来设定、 更改其所在窗口的窗口号。
管理员键盘实现系统设置的功能, 能够配置整个系统的密码, 系统时间, 业务类型等一系列参数; 窗口操作键盘能够向主控制器发出”下一位”来呼叫下一位顾客。
同时, 对于某些特殊情况要进行处理, 例如某些紧急客户排队需要优先处理、 顾客没有听到叫号的信息或者操作员暂时离开窗口, 因此操作键盘需要能提
供”优先”、 ”重呼”、 ”暂停”等信息处理功能。
( 2) 整个系统中需要一个显示牌来指示当前顾客应该到达某个串口办理;
同时每个窗口需要配置一台相应的显示牌, 能够显示当前窗口办理的顾客号, 以便提醒顾客前来办理业务。
( 3) 为了更直观的提醒顾客, 系统中还设置一个语音叫号控制单元, 实时
经过音箱播报顾客号和相应窗口号来提醒顾客办理业务。
3、 票号打印子系统
主控制器连接业务取号机的业务选择键盘, 用来接收顾客的按键信息与排队请求信号。同时, 还连接微型打印机, 在接收到排队请求信号后, 依照当前的排队情况, 产生排队号, 并控制打印机的打印。
打印机电路
显示屏
触摸屏输入
复位电路
主控制器
票号打印系统框图
三、 详细设计
( 一) 硬件设计
1、 主控制器设计
基于成本控制和功能不需要很复杂的考虑, 主控器选用单片机来实现。主控器即为RS—
485网络中的主机, 起着网络服务器的作用, 把RS—485网络上的多个CPU控制节点经过总线连接起来, 构成一个完整的通信网络系统, 作为该排队系统的主要控制单元, 它的设计需要达到以下几个要求:
(1) 能够顺利的与其它CPU控制器经过RS—485总线相连, 组成能够相互通信、 多CPU协同控制的网络;
(2) 具有基本的人机交互界面, 能够接受顾客排队请求的信息输入;
(3) 具有较大的数据存储单元, 以存储顾客排队信息, 生成排队号等;
(4) 能驱动打印机, 由打印机打印出有相关信息的排队票号;
(5) 具有系统时钟, 记录当前系统时间, 需要万年历功能;
(6) 能与PC机通信, 传递取号、 叫号等信息。
打印机控制模块
RAM
CPU
系统时钟控制模块
串口0
串口1
语音芯片
PC
语音模块i
打印
485总线
主控制板模块设计图
从主控器的设计要求能够看出, 由于与各个子控制器采用RS—485网络, 使用的是RS—485协议; 而与PC机通信采用的是RS—232协议, 因此主控制器能够使用两套串口分别来连接RS—485网络以及和PC机通信: 扩展一个较大容量的带电池RAM能够在掉电情况下不丢失数据; 配置一块带万年历功能的时钟芯片, 能够记录完整系统时间。
在设计中, 主控器的核心单元—CPU采用winbond公司的一个带双串口与MCS-51单片机相兼容的全新核心的微处理器W77E58, 处理能力强, 具有两个全双工串口免去扩展和兼容的麻烦, 而且片内程序存储器大, 就该系统的程序来说已经足够, 不用扩展片外程序存储器, 节省了I/O口; 排队信息数据存储方面, 由于要在掉电的情况下保持大量的数据, 因此选用了一块32K容量、 带电池数据存储器扩展; 万年历时钟芯片选择了功能强大, 方便易用的DS12C887, 十分方便控制, 断电情况下也能准确运行。
2、 子控制器设计
子控制器在系统的应用中实际是一个与客户交互的终端。人机界面选用键盘和显示屏来实现, 本系统采用的方案是常见16键键盘和LCD段式液晶模块组成人机界面, 加入通信模块, 与主控制器经过RS—485网络交互, 将用户的输入信息传递给主机, 经过主机的处理后, 再将结果反馈到子控制器需要满足以下几个要求:
LED液晶显示模块
CPU
485网络模块
地址设置模块
键盘输入模块
子控制器模块示意图
RS—485总线
(1) 子控制器应该能够顺利的与其它CPU控制器经过RS—485总线相连, 组成能够相互通信, 多CPU协同控制的网络;
(2) 子控制器是一个键盘式客户交互终端, 应尽量做到操作简便, 符合人们使用习惯, 同时提示信息简洁而充分;
(3) 由于子控制器在同一个网络中会有多个同时接入, 因此要具有设置功能以区分不同CPU控制器;
(4) 子控制器实际上是键盘, 最终需要装入键盘外壳, 因此应尽量做到小巧美观, 设计的电路应该能适应键盘外壳的尺寸。
在设计中, CPU采用AT89S51; LED液晶模块采用北京青云科技公司的LCM061A段式液晶模块; 键盘采用典型的4×4矩阵键盘, 尽管有简单易用的键盘显示芯片8279能够起到键盘扫描和LED断码现实的功能, 可是由于键盘尺寸的限制, 必须尽量少用芯片以节省空间, 因此这里用AT89S51的P2口作为键盘接口电路, 用程序来扫描键盘输入。
3、 窗口操作子系统
( 1) 、 键盘显示模块
本系统显示模块采用段式LCD液晶显示模块LCM061A, 它是一种6位多功能通用型8段式液晶显示, 将液晶显示屏和核心电路集成一体, 使用串行式控制, 它只有11根引脚, 与单片机连接十分方便。引脚如表1所示:
引脚
符号
说明
1
VDD
电源正极, +5V
2
VLCD
LCD屏工作电压调整, 可调整视角对比度
7
/CS
模块片选
8
/RD
数据读取线
9
/WR
数据写入线
10
DATA
数据传输线, 输入输出双向
11
VSS
电源负极, 接地
LCM061A LCD显示模块采用串行控制方式, 全部的功能都经过编程对/CS、 /RD、 /WR、 DATA几个引脚的控制完成, 而其中所有的控制指令和数据都经过DATA数据传输读写。
LCM061A采用串行式的控制方法, 键盘显示接口电路如下图
键盘显示接口电路
LCM061A的VLCD端经过一个50K的可调电阻接5V电源正极, 能够经过调节这个电阻的阻值来调节LCD的显示对比度。P1.0~P1.3分别与/CS、 /RD、 /WR、 /DATA相连, P2口连接4×4的矩阵键盘, 其电路如下图所示:
键盘接口电路
( 2) 语音播报模块
语音播报时用语音的形式经过广播或者音箱给人一提示信息。语音播报提示给人直观、 亲切的感受特点, 而且不需要用户一直盯着提示屏或者排队情况。本系统选用以下芯片。
ISD2560语音芯片
ISD2560是一种永久记忆型的语音录放集成芯片, 具有抗断电, 音质好, 使用方便等优点。它的最大特点在于片内E2PROM容量为480K, 因此录放时间长, 最长可达60秒, 而且录音的采样值直接存放在E2PROM中, 省去了A/D和D/A转换器。有10个地址输入端, 寻址能力可达1024位, 最多能分600段。设有OVF(溢出)端, 便于多个器件级联。内部还有前置放大器、 内部时钟、 定时器、 采样时钟、 滤波器、 自动增益控制、 逻辑控制、 模拟收发器、 解码器等。ISD2560的引脚排列如图所示, 各引脚的功能如表所示:
语音播报模块硬件电路设计
AT89s51的P2接口连接ISD2560DE A0~A7、 P1.1脚接A8地址线、 A9接地, 始终使用地址模式, 能够寻址000h~1Efh。P1.2接CE\、 P1.3接P/R\, 能够用这两个引脚来控制ISD2560播放\录音的开始与停止。P1.4连接EOM\端, 用来检测每一段语音的结束。XCLD接地, 表示不使用外部时钟。
作为一个单独的CPU控制板, 除了一个CPU以外, 还需要一个RS-485通信模块用来与其它CPU通信, 图中连接了MAX487芯片与RS-485总线相连。
语音模块接口电路
在按钮模式下, ISD2560能够经过在A0~A7上接不同高低电平的组合来设定录/放地址, CE\、 PD、 P\R\和地之间介入按钮, 经过按钮来控制语音录放的开始和停止。
( 3) 窗口操作系统总电路图
窗口操作系统总电路图
4、 票务打印子系统
( 1) 系统时钟模块
系统时钟是整个排队序列的重要指针, 不但要把排队时间信息显示在每张排队号上, 而且要记录不同时间发生的时间, 以时间有关的功能。
DSI2C887芯片具有微功耗, 外围接口简单, 精度高, 工作稳定可靠等优点, 可广泛用于各种需要较高精度的时时鈡场合其管脚排列如图所示
MOT: 计算机总线选择端;
DSI2C887管脚图
SQW: 方波输出, 速率和是否输出有专用寄存器A, B的预制参数决定;
AD0-AD7: 地址数据( 双向) 总线, 由AS的下降沿锁存8位地址;
R/W: 读/写数据; AS: 地址锁存信号端;
DS: 数据信号端; CS: 选通信号端, 低电平有效;
IRQ: 申请中断, 由专用寄存器决定; RESET: 复位器;
①DS12C887内部存储器的功能
CPU经过读DS122C887的内部时钟寄存器得到当前的时间和日历, 也可经过选择二进制码或BCD码初始化芯片的11个时钟寄存器。其113Byte非易失性静态RAM可供用户使用, 对于没有RAM的单片机应用系统, 可在主机掉电时保存一些重要的数据。
② 接口电路
如图中所示, 片选地址CS=80XXH。DS12C887的IRQ接W77E58的INT1, 用来处理每天凌晨时的中短信息
系统时钟接口电路
( 2) 票号打印模块
本系统选用上海博施BS热敏打印机, 提供了打印驱动电路和标准25针打印接口。下图为排队票号打印模块的电路。
①单片机的P1.0口提供数据选通信号, 它与打印机STB端连接, 将打印数据送打印机的选通控制。
②单片机的P1.1口接打印机的BUSY端, 以BUSY信号作为打印机”忙”或”闲”状态查询信号。
③扩展的8255的PA口与打印机的八位数据线相连, 传送打印数据。单片机的P1.7口与8225的CS端相连, P0.0、 P0.1经过74LS373锁存后分别与8255的A0、 A1相连。因此单片机向打印机传送的口地址为7000H。
打印机模块电路
( 3) 地址设置模块
本系统网络中, 各CPU控制器均有各自的地址以相互区别。在子机中增加一个地址设置模块, 经过从硬件上手动设置不同的地址来区别, 其电路如下图所示:
地址设置电路
( 4) LED显示功能设计
排队系统中, 除了语音系统外, 还有更直观的大LED数码管显示屏提示, 即不同业务窗口上方会显示排队队列中轮到并能够服务的客户排队号。两种提示方式相辅相成, 尽可能的满足不同客户的需要和习惯。
①方案选择
由于LED显示屏与窗口配套的, 一个窗口对应一个LED显示屏, 因此在本RS-485网络系统中, LED显示屏也是多个的, 因此, 本系统也将每个显示屏设计为独立的CPU控制器, 作为RS-485网络上的一个子控制器来看待。这样不但减轻了CPU的处理负担, 而且还能为排队系统这个需要适应使用空间的网络设备提供了更为灵活的安装方式。
②电路设计
LED显示是当前比较常见的一种应用, 其原理和技术已经相当成熟, 本系统LED显示功能模块采用的就是以AT89S51作为控制COU, 用8255扩展足够的I/O口, 反向驱动, 由于本排队系统只需要显示排队号和窗口号, 因此只需接七段码译码器4543译出显示0-9各个数字的七段码十分方便如图所示
所不同的地方就只有两点, 一是本LED显示屏是网络上的一台子控制器, 需要加入RS-485通信接口, 而且需要处理网络上传来的显示信息; 二是需要配备一个地址选择功能, 以设定不同的地址, 与网络上其它子控制器相互区别。将8255的PC口接一个8位的拨码开关, 安装网络时, 手动设置拨码开关的开与关, 由8255的PC口读入高低电平的组合, 作为这个子控制器的地址。
LED显示板电路
( 5) RS-485通信模块
RS-485通信模块是整个派对系统中各CPU控制器相互通信的关键, 每个CPU控制器上都应该设置这样的通信模块, 接收主机传来的消息或者发送子机处理好的消息。
各个CPU控制器上的通信模块电路是一样的, 而且通信程序都遵守统一的通信协议。
RO、 DI分别接单片机的串口RXD、 TXD, RE\、 DE是接收发送是能端, RE\低电平时接收、 DE高电平时发送。用P1.0来控制485的发送和接收。A、 B接入RS-485总线, 要注意所有的485芯片A接A、 B接B,不能反接。
语音模块接口电路
(二) 各模块软件设计
1、 系统总体软件运行流程图
系统总体软件运行流程图
2、 键盘显示模块
键盘设计过程流程图
本设计所采用的菜单是多步显示内容主要有如下几个:
(1) 菜单提示符: 根据菜单的特性, 我们用”1—1”、 ”1—2”、 等来表示不同的菜单如图3-5中的a所示。
(2) 输入提示符: 能够把要输入的内容统一采用四个数字的形式输入, 采用4个8字中间的短横来表示, 例如图3-5中的b所示, 此时”PS”代表”password”即提示用户输入密码。
(3) 错误提示符: 当用户输入数字不合理时, LCD上需要显示错误提示这里能够显示”Error”, 如图3-5中的c所示
虽然8段字符能显示的字符十分有限可是仍能够用不同的段组合来表示大多数字母, 只是有的是大写。根据段的地址能够定义一个段码表, 以便编程时直接调用, 如:
3系统时钟模块
( 1) DS122C887内部RAM和各专用寄存器地址分布如表3-2所示:
( 2) 软件设计
DS12C887状态寄存器的参数设置如下;状态寄存器, 它表示采用的时钟频率为32.678KHz状态寄存器B设置为22H, 它表示允许报警中断, 禁止其它中断, 置24小时模式, 时标寄存器内容用BCD码表示
(1) 初始化
初始化时, 首先应禁止芯片内部的更新周期操作, 因此先将寄存器B中的SET位置1, 然后初始化, 状态寄存器A, 此后再经过读状态寄存器C, 清除寄存器C中的中断标志位PF, 报警中断标志位AF, 更新周期结束标志UF, 最后将状态寄存器B中的SET位置0, 芯片开始工作。
(2) 时间中断
共有三个闹钟单元, 分别为时、 分、 秒, 在其中写入闹钟时间而且在时钟中断允许下每天到此刻产生中断, 但控制系统要求的定时间隔, 不是整数时, 则经过软件调整来实现
(3) 读取时间
处于正常工作时, 每秒将产生一个时标更新周期。
4语音播报模块软件设计
(1) 语音段表
对于本系统所用的语音片段有一大部分是0、 1、 2、 3等这样的数字, 因此能够将表码与语音的内容对应起来如表3-4
主控制器将处理好的语音播报信息及排队号和窗口号, 按照设定的协议经过485网络传送给语音播报控制器, 语音播报控制器接收这些数据, 还原处能够处理的播报信息, 然后ISD2560寻址读取录好的一个个语音片段, 组合成一句完整的提示信息, 播报出来
先将从主控制器接受到并转换好的排队号呵窗口组合成完整的叫号提示信息, 把她们的语音段地址码存入缓冲区LEN, 然后按着特定的顺序一一播报, 程序流程如图所示:
用计数器n 来指示语音段被一一播报完毕, 播报每一段时让CE\端产生一个低电平脉冲, 然后循环等待P1.4变化, 当她变低时, 及播报完每一段语音段, 这样循环LEN, 直至包含LEN语音段的一句完整的提示语音播报完毕。
展开阅读全文