银行叫号排队系统_课程设计.doc_第1页
银行叫号排队系统_课程设计.doc_第2页
银行叫号排队系统_课程设计.doc_第3页
银行叫号排队系统_课程设计.doc_第4页
银行叫号排队系统_课程设计.doc_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

能力扩展训练学 号: 0121011360701课 程 设 计题 目银行叫号排队系统学 院自动化学院专 业自动化专业班 级自动化1007班姓 名董晨指导教师刘永红2013年7月9日能力拓展训练任务书学生姓名: 董晨 专业班级: 1007 班 指导教师: 刘永红 工作单位: 自动化学院 题 目: 银行叫号排队系统的设计 初始条件: 1)实地调研,了解银行叫号过程;(2)画出一个实例的状态转移图;(3)程序设计,用单片机实现。(汇编语言或c语言)要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 题目内容: 根据实际情况,制定可行的技术路线,满足客户要求。(如,等待时间最短;vip优先;老人优先(专柜);“飞号”不清除等。飞号是指叫了该号3次后,而该号人没出现服务窗口,就不再呼叫,该号被清除了,该号就称之为飞号。可用户又回来了,只好再取一个新号。)2. 课程设计说明书应包括:a)设计任务及要求b)方案比较及认证c)程序设计基本思想,程序流程图,部分源程序及注解d)调试记录及结果分析e)参考资料f)附录:全部源程序清单g)总结时间安排:2013年 7 月 1-2 日 选题、查阅资料和方案设计2013年 7 月 3 日 编程2013年 7 月 4-5 日 调试程序,改进与提高2013年 7 月 6-8 日 撰写设计报告(有调试过程及结果的截屏)2013年 7 月 9 日 答辩和交课程设计报告指导教师签名: 2013 年 月 日系主任(或责任教师)签名: 2013 年 月 日摘 要 排队叫号管理系统是针对银行、工商、税务、通讯、政府机构等部门的大厅工作流程设计的,是利用电脑的科学管理客户排队的系统,很好地解决了客户在服务机构办理业务时所遇到的各种排队、拥挤和混乱现象,为客户办理业务带来莫大的方便和愉悦。该题研究的目的是研制一款无人排队的排队叫号机,它主要由主控制器、键盘、显示电路、蜂鸣器电路等部分构成。 系统利用单片机进行控制,通过串行通信方式传输处理数据;通过按键取号,在lcdlm016l上显示排队的号码以及当前正在等待的人数;通过按键叫号,在lcdlm016l上显示叫到的号码,由扬声器发出声音提示客户。同时免除了令客户不舒服的站立式排队,这种现代化的高科技产品彻底解决了银行普遍存在的站立等候,服务无序的问题,深化并完善了服务的质量。本系统采用单片机进行控制,利用lcdlm016l显示,蜂鸣器鸣叫提示的人机交互界面,模拟排队管理系统,科学地处理各种排队情况。操作简便,控制灵活,显示清晰,制作成本低,性价比较高。 关键词: stc89c52芯片 液晶显示lcdlm016l 按钮目 录1 系统方案论证11.1 设计要求11.2 单片机芯片的选择方案和论证11.3 显示模块选择方案和论证11.4 系统方案设计22 系统硬件设计32.1 系统总电路32.2 单片机处理部分设计32.3 显示电路部分42.4 时钟振荡电路52.5 复位电路62.6 蜂鸣电路62.7 按键电路73 系统软件设计84系统测试95 小结10参考文献11附录12源程序:12银行叫号排队系统的设计1 系统方案论证1.1 设计要求(1)实地调研,了解银行叫号过程;(2)画出一个实例的状态转移图;(3)程序设计,用单片机实现。(汇编语言或c语言) 注:根据实际情况,制定可行的技术路线,满足客户要求。(如,等待时间最短;vip优先;老人优先(专柜);“飞号”不清除等。飞号是指叫了该号3次后,而该号人没出现服务窗口,就不再呼叫,该号被清除了,该号就称之为飞号。可用户又回来了,只好再取一个新号。)1.2 单片机芯片的选择方案和论证方案一:采用at89s51芯片作为硬件核心,内部具有4kb rom 存储空间,而且与mcs-51系列单片机完全兼容,但是运用于电路设计中时由于不具备isp在线编程技术,所以在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:采用stc89c52芯片,stc89c52是一种低功耗、高性能的8位cmos微控制器,具有8k的可编程flash存储器。同样具有at89s51的功能,且具有在线编程可擦除技术,当对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。综上所述,选择采用stc89c52作为主控制系统核心。1.3 显示模块选择方案和论证方案一:采用led数码管动态扫描,led数码管价格适中,对于显示数字合适,采用动态扫描法与单片机连接时,虽然占用的单片机口线少,但连线还需要花费一点时间,所以也不用此种作为显示。方案二:采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,若采用在显示数字显得太浪费,且价格也相对较高,所以在此也不用此种作为显示。方案三:采用lm016l液晶显示屏,该液晶显示屏的显示功能强大,内置192种字符,可显示大量符号、数字,清晰可见,而且功率消耗小寿命长抗干扰能力强。综上所述,在设计中采用lm016l液晶显示屏。1.4 系统方案设计系统采用如图1所示的电路,通过stc89c52单片机直接扩展的独立键盘,完成排队取号流程(本系统直接利用系统的中断0按键控制),单片机控制lcdlm016l显示排队等待情况,控制蜂鸣器发声完成叫号功能。 89c52 lcdlm016l 独立键盘 蜂鸣器图1整体方案框图 因为采用矩阵键盘完成排队取号流程,但客户较多的时候要实现排队取号的功能,就要占去过多的i/o端口,操作起来也比较复杂,而方案二的独立键盘操作控制简单,占用主机资源少,所以选择方案二,采用独立键盘控制排队取号,通过串行通信的方式,模拟排队取号管理系统的流程显得更加方便、科学。2 系统硬件设计2.1 系统总电路系统电路由单片机部分,显示电路,时钟振荡电路,复位电路,叫号电路和按键电路组成。图2 系统总电路图2.2 单片机处理部分设计设计的思想是简单实用,中心处理部分采用stc89c52单片机。stc89c52单片机完全可以满足本系统的设计要求,相对于其他具有相当功能的器件来说,具有价格便宜,对环境要求不高,工作稳定等优点。stc89c52高性能coms 8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(rom)和128 bytes的随机存取数据存储器(ram)。具有32个可编程的i/o口,其中p0口为一个8位漏极开路双向i/o口,编程时作为原码输入口,校验时,输出原码;p1口是一个内部提供上拉电阻的8位双向i/o口,在编程和校验时,作为第八位地址接收;p2口为一个内部上拉电阻的8位双向i/o口,在编程和校验时接收高八位地址信号和控制信号;p3口为8个带内部上拉电阻的双向i/o口,同时也偶一些特殊功能,我们所使用到的p3.6/wr可作为外部数据存储器写选通,p3.7/rd可作为外部数据存储器读选通;rst口为复位输入;xtal1口为反向振荡放大器的输入及内部时钟工作电路的输入;xtal2口为反向振荡器的输出。图3 at89c52管脚图2.3 显示电路部分 显示电路部分如下图所示,采用的是液晶显示屏lm016l模块,lm016l字符型lcd通常有14条引脚线或16条引脚线的lcd,多出来的2条线是背光电源线。它可以显示两行,每行16个字符,采用单+5v电源供电,外围电路配置简单,价格便宜,具有很高的性价比。stc89c52的p0.0至p0.7的8个端口用来控制数码管的显示。x图4 显示电路部分2.4 时钟振荡电路sct98c52中有一个用于构成内部振荡器的高增益反向放大器,引脚xtal1和xtal2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,震荡电路如图5所示。因为一个机器周期含有6个状态周期,而每个状态周期为2个震荡周期,所以一个机器周期共有12个震荡周期,如果外接石英晶振的震荡频率为12mhz,故而一个机器周期为1us 。图5 时钟振荡电路外接石英晶体及电容c1、c2接在放大器的反馈回路中构成并联振荡电路。对外接电容c1、c2虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程度及温度稳定性。外接石英晶体,电容使用30pf。2.5 复位电路复位电路虽然简单,但其作用非常重要,一个单片机系统能否正常运行,首要检查是否能复位成功。复位操作有上电自动复位和手动复位两种方式,本文采用手动复位方式。手动复位是通过开关实现的其电路如图6所示。在通电瞬间电容c通过电阻r充电,rst出现正脉冲,用以复位。只要电源vcc上升时间不超过1ms,就可以实现手动复位,即按下开关就可以实现系统的复位初始化。关于参数的选定在震荡稳定后应保证复位高电平持续时间大于2个机器周期。这里选用的是12mhz的石英晶振可取c=4.7uf,r=4.7k。图6 复位电路2.6 蜂鸣电路实现蜂鸣的接口电路比较简单,其发音原件通常采用压电蜂鸣器,当在蜂鸣器两引脚加上+3v+15v只留工作电压时,就能产生3khz左右的蜂鸣器震荡音响。压电式蜂鸣器结构简单、耗电少、更适合于单片机系统的应用。压电式蜂鸣器,需要10ma的驱动电流,可在p3.0口接上一直三极管和电阻组成的驱动电路来驱动,如图7所示。图7 蜂鸣电路 在图中,p3.0接三极管的极端输入端,当p3.0输出高电平时,三极管导通,蜂鸣器通电而发音,当p3.0输出低电平时,三极管截止,蜂鸣器停止发音。2.7 按键电路 按键电路实现的功能是取号和叫号,客户通过按键实现取号,工作人员通过按键实现叫号,使客户前来相应的窗口办理业务,按键电路如图8所示。图8 按键电路3 系统软件设计本程序可实现设计的基本要求,设备上电后,显示器屏幕亮,无信息显示。当客户按键后,每按一下,队伍加1,显示器显示客户队伍号;排满20位后,再按取号键,屏幕显示“队伍满”。当客服叫号时,队伍减1,程序进行信息处理,在显示器上显示“几号客户到几号窗口”,同时进行声音提示。lm016l通过d0d7的8位数据端传输数据和指令,其模块内的控制器有11条控制指令。当液晶显示屏的接口电路与单片机系统i/o按照并行数据传输方式连接完成以后,即可以对stc89c52单片机进行编程。在液晶屏完成显示之前首先要对液晶进行初始化。程序流程图如图9所示。开始 初始化取号没lm016l液晶显示叫号没 n n y y 取号处理y 蜂鸣器 叫号处理 队伍号码递减 队伍号码累加 lm016l液晶显示结束图9总程序流程图4系统测试 在proteus上画出电路图,用c语言编写的程序,在keil中生成hex文件,装入单片机中,这样可在prteus中运行和仿真,实现排队叫号。 图10 服务叫号图 图11 服务窗口图 5 小结 本次课程设计所做的是基于单片机的排队叫号机系统。主要是为了解决大量客户的拥挤排队的问题,并同时使事业单位改善服务品质、提升营业形象。排队系统完全模拟了人群排队全过程,通过取号进队、排队等待、叫号服务等功能,代替了人们站队的辛苦,把顾客排队等待的烦恼变成一段难得的休闲时光,使客户拥有了一个自由的空间和一份美好的心情。 在整个设计过程中,我充分发挥了人的主观能动性,自主学习,学到了许多课堂上没学到的知识。程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考查资料,和同学讨论,向老师请教,理清了思路,再加上先前做计算机控制技术课程设计积累的经验,完成对程序的编写。进一步提高了对单片机的认识,进一步熟悉和掌握单片机的结构及工作原理。通过实际程序设计和调试,逐步掌握模块化程序设计方法和调试技术,提高软件设计、调试能力;通过这次设计熟悉以单片机核心的应用系统开发的全过程,掌握硬件电路设计的基本方法和技术。最终较好的完成了设计,达到了预期的目的,完了最初的设想。 经过了一个星期课设,我学到了不少课堂上未曾接触过的知识。同时又把把以前没有学好的程序专业知识进行了补充和加强,加深了我对于单片机和数字电路的认识和理解,巩固了自己所学的专业知识,相信在以后的学习和工作中碰到这些基础的元器件我会更加得心应手。参考文献1 四海科技逸众排队管理系统eb/ol2 北京平安力合科技发展(集团)有限公司中国排队产品市场分析eb/ol3 刘守义单片机应用技术m 西安:西安电子科技大学出版社,20024 刘勇数字电路m北京:电子工业出版社,20045 谭浩强c程序设计m(第三版)北京:清华大学出版社,20056 戴佳,戴卫恒51单片机c语言应用程序设计实例精讲m北京:电子工业出版社,2006附录源程序:void main(void)lcd1602init();p1=0xff;speaker=1; while(1)if(key_5=0) delayms(1000); /延时去抖 num+;currunt_num=num+b; speaker=0; if(currunt_num-call_num)=20) writecom(0x01);/显示清屏 writechar1(); delayms(2000); if(key_1=0) delayms(1000); /延时去抖 display220=0+0; display221=1+0; call_num+; writechar2(); speaker=0; num-;b+; delayms(1000);if(key_2=0) delayms(1000); /延时去抖 display220=0+0; display221=2+0; call_num+; writechar2(); num-; b+; delayms(1000); if(key_3=0) delayms(1000); /延时去抖 display220=0+0; display221=3+0; call_num+; writechar2(); num-; b+; delayms(1000); if(key_4=0) delayms(1000); /延时去抖 display220=0+0; display221=4+0; call_num+; writechar2(); num-;b+; delayms(1000); if(currunt_num-call_num)=21)writechar3();delayms(1000);num-;currunt_num=num+1;if(currunt_num-call_num)=0)delayms(500); writechar4();delayms(500); void delayms(int ms) int i,j;for(i=0;i10;i+) for(j = 0;jms;j+);void lcd1602init(void)writecom(0x38);/显示模式设置 writecom(0x0c);/开显示 不显示光标 不闪烁 writecom(0x06);/地址指针自动加一 不移动 writecom(0x01);/显示清屏 writecom(0x80);/数据指针设置void writecom(unsigned char command) /写命令 lcd_en = 0; lcd_rw = 0; /写 lcd_rs = 0; /命令 p0 = command;/所写命令 delayms(2); lcd_en = 1; /高脉冲 delayms(4); lcd_en = 0; void writedata(unsigned char dat) /写数据 lcd_en = 0; lcd_rw = 0; /写 lcd_rs = 1; /数据 p0 = dat; /所写数据 delayms(2); lcd_en = 1; /高脉冲 delayms(4); lcd_en = 0; void writechar1(void) int i; if(currunt_num-call_num)!=0) display112=currunt_num/10+0; display113=currunt_num%10+0; wri

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论