银行叫号系统软件毕业设计(编辑修改稿)内容摘要:

括显示模块部分和通信模块部分,系统原理图见附图 显示模块的设计考虑采用串行驱动方式,这里采用MAX7219驱动芯片。 (l)MAX7219芯片介绍MAX7219是美国MAXIM公司研制的紧凑型、串行输入、串行输出、共阴极新型LED显示驱动器。 它一片芯片可以驱动多达8位7段LED显示器、条型图形、或64个单个LED,其片内有BCD译码器、多路复用扫描电路、段和数字驱动器、以及存贮每个数字的 8X8静态RAM。 所有LED的段电流设定只需一个外部电阻。 这种LED驱动器有以下特点:①接口简单,占用CPU的I/0口线少,对外接口只需3根I/0口线,即可实现最高可达10MHZ串行接口。 ②各个寄存器可以单独被寻址和更新,不需要全部更新。 ③允许用户对每个显示位是选择BCD译码方式还是非译码方式进行定义。 ④具有 150uA的低功耗停机方式。 ⑤可以模拟和数据控制显示的亮度,与 MOTOROLA ,SPI,QSPI及MATIONALMICROWIRE串行口相兼容。 ⑥可以进行级连,最多可以级连8片MAX7219,驱动64个数码管。 该芯片采用24脚DIP和S0封装。 引脚说明见下表引脚名称功能说明1DIN串行数据输入端。 在CLK的上升沿数据锁入芯片内部16位移位寄存器2,3,58,10,11DIG0DIG78位LED位选线,从共阴极LED中吸入电流4,9GND地线(两个GND必须接在一起)12LOAD锁入输入的数据。 在LOAD的上升沿最后的16位串行数据被锁入13CLK时钟输入,最高时钟频率为10MHZ,在CLK的上升沿数据被锁入内部移位寄存器,在CLK的下降沿,数据从DOUT脚被输出1427 2023SEGASEGG DP7段驱动和小数点驱动18ISET该脚通过一个电阻与V+相连,设置峰值段电流19V+电源电压,+5V24DOUT串行数据输出,该脚用于级联扩展(1)AT89C51与MAx7219芯片接口电路: AT89C51与MAX7219芯片接口电路2片MAX7219芯片与89C51芯片及共阴极小电流LED段码显示器的接口电路简单。 ,,第一片MAX7219的DOUT数据输出管脚接到第二片MAX7219的DIN数据输入管脚。 MAX7219可通过V+管脚和工SET管脚之间所接的外部电阻RSET来控制,RSET电阻越大段电流越小,其最小值不小于9530Q,此时典型段电流为37mA。 为了减少外界的干扰,应在MAX7219V+管脚和GND管脚之间加上一个 10pF的钮电容。 当MAX7219芯片和主控芯片(例如CPU)的距离较远时,为了防止高频信号的干扰,传输数据的频率最好低一些,并在CLK时钟输入管脚和LOAD锁定输入管脚和GND管脚之间各自接上一个 100OpF的瓷片电容器。 在进行电路板设计时应尽可能使MAX7219芯片和所驱动的LED显示器以及主控芯片(例如CPU)靠近,以防止高频信号的干扰。 当MAX7219芯片和主控芯片的距离较近时,CLK时钟输入管脚和LOAD锁定输入管脚和GND管脚之间无需再各自接上一个10O0pF的瓷片电容器。 MAX7219所能直接驱动的是共阴极小电流LED显示器,它不能直接驱动共阳极LED显示器,否则会损坏器件。 在级连显示时,当被驱动的数码管不是8的倍数时,最好将每个芯片所驱动的显示位数设计为一样,这样所有显示器的显示亮度才一致。 操作者只需编程发送16位数据包,就能简单地操作LED的位选以及段选、设置和改变MAX7219的工作模式。 16位数据包的数据格式如下:其中:D7DO:8位数据位,D7最高位,DO为最低位。 D11D8:4位地址位。 D15D12:无关位,通常全取1。 MAX7219通过D11D8 4位地址译码,可寻址14个内部寄存器,分别是8个LED显示寄存器,5个控制寄存器和1个非工作寄存器。 LED显示寄存器由内部8X8静态RAM构成,操作者可直接对位寄存器进行个别寻址,以刷新和保持数据,只要V+超过2V(一般为+5V)。 控制寄存器包括:译码模式,显示亮度调节,扫描限制(选择扫描)位数,关断和显示测试寄存器,地址分配表如下表所示: 寄存器地址分配表寄存器名称地址16进制码D15D12D11D10D9D8非工作寄存器XXXX0000X0DIG IT0XXXX0001X1DIG IT1XXXX0010X2DIG IT2XXXX0011X3DIG IT3XXXX0100X4DIG IT4XXXX0101X5DIG IT5XXXX0110X6DIG IT6XXXX0111X7DIG IT7XXXX1000X8译码模式XXXX1001X9高度调节XXXX1010XA扫描限制XXXX1011XB关断模式XXXX1100XC显示测试XXXX1111XFMAX7219的驱动程序首先必须对5个控制寄存器初始设置即初始化,各控制寄存器含义如下:非工作寄存器(地址=XOH):在不改变显示或影响任意控制寄存器条件下器件级联时,非工作寄存器允许数据从DIN传送到DOUT。 译码模式选择寄存器(地址= X9H):共有4种译码模式供选择,当数据位全0时选择“非译码方式。 在此方式下,8个数据位分别一一对应7个段和小数点。 通常选择此方式。 扫描限制寄存器(地址=XBH):用于设置显示的LED个数(18),当DZDIDO=11D7D6D5D4D3无关时,可接8个LED管。 亮度调节寄存器(地址=XAH):共有16级选择,用于LED显示亮度的强弱设置。 关断模式寄存器(地址=XCH):有两种模式选择:一种是关断状态模式(DO=0)。 一种是正常操作状态(DO=I),通常选择正常操作状态。 显示测试寄存器(地址=XFH):有两种选择用于设置LED是测试状态还是正常操作状态:当在测试状态时(DO=1)各位应全亮。 一般选择正常操作状态(DO=0)。 通信模块采用RS485通信收发器SN75LBC184。 窗口显示屏采用AT89C51单片机控制,(地址为 XXXXXXX1),与呼叫器(地址为 XXXXXXX0)相对应,即第8位为选择位,第27位为窗口号位,通过地址拨码开关置位窗口显示屏主要包括显示模块部分和通信模块部分,系统原理图见附图 显示模块的设计窗口显示屏用3位数码管显示,采用动态显示方式,单片机I/0口分别进行段选与位选的锁存,由驱动电路进行驱动,扫描功能完全由软件来完成。 3位共阴极LED显示器的段选线对应并接,,用三极管驱动。 通信模块采用RS485通信收发器SN75LBC184,。 4 系统软件设计 软件设计数学依据智能排队系统的“智能”体现在该系统对“排队”的处理是根据运筹学中的排队论来设计的。 排队论又叫做随机服务系统理论。 研究关于独立服务的排队论问题。 研究目的是要回答如何改进服务机构或组织被服务的对象,使得某种指标达到最优的问题。 该系统的界定范围为:顾客的总体是无限的。 顾客到来方式可以是单个的,也可以是成批的。 相继到达的间隔时间是随机的。 顾客的到达是相互独立的。 采用先到先服务方式。 顾客到达时间间隔或者服务时间为一个随机变量,经过对现实排队问题的研究证实,一般地随机到达规律都服从泊松过程。 而服务时间服从负指数分布(记为M),分布密度为:根据服务台为多数个,将其确定为多服务台问题,再考虑到使系统达到最优配置,故将模型定为单队多服务台型。 在该排队系统中用下述符号形式表示:?/?/?/?其中:第一个符号表示顾客到达时间间隔的分布。 第二个符号表示服务时间分布。 第三个符号表示服务台数目。 第四个符号表示服务系统允许的最大顾客容量。 则该模型表示为:M/M/C/∽,即:顾客以简单流到达。 服务台以并联方式服务,并相互独立。 顾客到达时间间隔和服务时间服从负指数分布。 服务台数目为C。 系统的顾客容量没有限制。 : 排队系统拓扑图有了上述公式及指标就可以对顾客到达、服务时间、服务强度等进行统计分析,从而决定是否增减服务员数目、合理安排作息时间等起到重要作用。 但是,本文要研究的重点对象是排队系统的生产原理及工作情况,是具体实现排队服务的设备制造,因此,本文的重点将立足于如何提高系统使用率,如何更好地合理地进行服务。 排队系统工作流程及对应决策分析为了方便说明本排队系统的算法分析,将该系统工作流程简化。 (1)取号主机。 由上面的推导得知,取号主机的事件发生概率服从泊松分布,但由于只有一台主机,是单队简单流事件,故可简化其特性,认为仅仅是一个信号流发生器,时间上无所谓,而逻辑上服从队列的先入先出算法。 (2)管理中心。 所有功能性的算法都在管理中心上实现。 首先,管理中心建立一个队列池,储存取号主机发生的顺序流事件。 其次,管理中心查询各个服务台空闲情况,根据服务台总数目进行轮询算法,以确认下一个取得客户的服务台号。 之所以采取轮询算法,是为了保证服务台的均匀使用率,不使得单个服务台过劳或过闲。 最后,在管理中心运行的过程中,服务台的流事件中可能有某些客户走开而产生跳过,因此需要把跳过的客户插入取号主机队列的最后,连续两次被跳过的客户将从队列中删除,避免空号占用系统时间。 (3)服务台。 按照系统给定的顺序服务,其服务时间服从负值数分布,但就逻辑上而言,这只是一个中断发生器,只对给定的顾客表达是“正在服务”、“下一个”和“跳过”,不涉及算法。 负值数事件负值数事件处理队列:有跳过的加入到队列的后面;两次跳过则删除;队列的选择及处理:轮询泊松流队列 排队系统算法分布图 主机工作于查询状态,依次与01~60号(地址O2H78H)从机通信,根据从机的请求命令发送或接收数据,打印机使用中断工作方式,这样可保证主机完成对整全系统的控制和管理。 主程序流程图如图所示,其具体工作过程如下:主机初始化后,从01号从机(即呼叫器,地址=02H)开始查询,如有应答并命令请求,根据命令作相应处理:①请求发送:主机将最前顾客号码发送到该机,并置发送标志F=1,②请求接收:当呼叫器重呼或暂停时,向主机发送数据,此时,主机接收该从机数据,接收完成后,立即将查询该从机并将该数据发送到该从机,并置F=1。 如从机不应答,表示该机无请求服务或没有该设备,则清F=0。 主机通信完后将显示更新的数据于LCD屏上(等待人数),然后根据发送标志决定是否将数据送到该从机对应的窗口显示屏(地址=N+1)、主显示屏(地址=OOH)及播放语音。 然后地址+2并判断是否查询所有机,开始新的查询。 开始初始化从机地址=02H与从机N通讯发送/接收无数据交换置F=0发送置F=1接收转发置F=1显示子程序F=1发该数据到从机N+1发该数据到从机00H放音子程序结束Y从机地址=02H=80H从机地址+2NY发送接收N 主程序流程图具体实现的代码如下:include void main(){ int nlis=0。 nlis=listen(nstart,60)。 //从地址0X02开始,共侦听60台从机 switch(nlis) { case 0: //无数据 nf=0。 break。 case 1: //发送 send(): //发送 nf=1。 break。 case 2: //接收 get()。 //接收 resend()。 //接收 break。 } showresult()。 //显示子程序 nstart=(nstart+2)/0X80。 //地址+2,但要防止溢出 if(nf==1) { senddata(nstart)。 发送数据到从机N+1playsound()。 //播放声音 } if(exit()) break。 //如果管理员要求退出程序,则退出 } 显示子程序液晶显示器SMS0401的程序由长沙太阳人有限公司随带产品提供,只需用户根据需要填写用户程序。 在程序设计过程中在主程序中根据需要显示二进制数字查表得到相应的十进制数字的显示代码,然后把相应的显示代码送显示器缓冲区,最后调用显示程序显示数据。 在程序设计中显示器缓冲区被定义在从单片机片内的数据存储器空间的60H一62H单元。 打印子程序打印机采用中断工作方式,当“取号”键按下时,进入打印中断子程序。 在打印机的打印控制程序中,数据的打印顺序是按照从k到下、从左到右的顺序打印字符、数据。 在主程序中主要是给需要调用的子程序的缓冲。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。