ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:129.77KB ,
资源ID:1831020      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1831020.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(排队叫号机文档绝对是你要的.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

排队叫号机文档绝对是你要的.docx

1、排队叫号机文档绝对是你要的课程设计报告课程名称:设计题目:系 别:专 业:班 级:学生姓名: 学 号: 指导教师评语: 指导教师签名: 年 月 日成绩评定项 目权重成绩杨礼王进1、设计过程中出勤、学习态度等方面0.22、课程设计质量与答辩0.53、设计报告书写及图纸规范程度0.3总 成 绩 教研室审核意见:教研室主任签字: 年 月 日教学系审核意见: 主任签字: 年 月 日 摘 要排队叫号管理系统(排队机、叫号机)是针对银行、工商、税务、通讯、政府机构等部门的大厅工作流程设计的,是利用电脑的科学管理客户排队的系统,很好地解决了客户在服务机构办理业务时所遇到的各种排队、拥挤和混乱现象,为客户办理

2、业务带来莫大的方便和愉悦。本课题研究的目的是研制一款无人排队的排队叫号机,它主要由主控制器、键盘、数码管显示电路、蜂鸣器电路等部分构成。 系统利用单片机进行控制,通过串行通信方式传输处理数据;通过按键取号,在数码管上显示排队的号码以及当前正在等待的人数;通过按键叫号,在数码管上显示叫到的号码,由扬声器发出声音提示客户。同时免除了令客户不舒服的站立式排队,这种现代化的高科技产品彻底解决了银行、医院等服务性企业普遍存在的站立等候,服务无序的问题,深化并完善了服务的质量。本系统采用单片机进行控制,利用数码管显示,蜂鸣器鸣叫提示的人机交互界面,模拟排队管理系统,科学地处理各种排队情况。操作简便,控制灵

3、活,显示清晰,制作成本低,性价比较高。关键词:排队叫号机;串行通信;独立键盘;数码管动态显示;蜂鸣器目 录设计要求 11 方案论证与对比 11.1 方案一 11.2 方案二 11.3 系统方案对比论证 22 硬件电路设计与分析 22.1 排队取号机主电路设计 22.2 排队取号机通信电路设计 22.3 动态显示电路 32.4 叫号电路 33 系统软件设计与分析 43.1 软件流程图 43.2 动态显示模块 53.3 叫号模块 53.4 串行通信模块 64 系统仿真及调试 64.1 软件调试 64.2 硬件调试 64.2.1 动态显示模块 64.2.2 叫号模块 64.2.3 串行通信模块 74

4、.3 调试结果 75 设计总结 76 致谢 77 详细仪器清单 7参考文献 9附录一:整体电路图 10附录二:程序清单 11排队叫号机设计要求利用单片机的串行通信方式,完成一个科学管理各种复杂排队情况的排队叫号系统。具体要求如下:(1) 主机:通过按键来完成报号,由数码管显示叫到的号码,并发出蜂鸣声。(2) 客户端:通过按键完成取号,由数码管显示号码和当前需要等待的人数。(3) 主机和客户端用串口通信,在20人等待的队列中进行测试。1方案论证与对比1.1方案一系统采用如图 1所示的电路,通过STC89C52的I/O口的扩展一块NEC D8255AC-2构成的矩阵键盘,完成排队取号的流程,单片机

5、控制数码管显示排队等待情况,控制蜂鸣器发声完成叫号功能。图 1 采用矩阵键盘实现功能1.2方案二系统采用如图 2所示的电路,通过STC89C52单片机直接扩展的独立键盘,完成排队取号流程(本系统直接利用系统的中断0按键控制),单片机控制数码管显示排队等待情况,控制蜂鸣器发声完成叫号功能。图 2 采用独立键盘实现功能1.3系统方案对比论证因为采用矩阵键盘完成排队取号流程,但客户较多的时候要实现排队取号的功能,就要占去过多的I/O端口,操作起来也比较复杂,而方案二的独立键盘操作控制简单,占用主机资源少,所以选择方案二,采用独立键盘控制排队取号,通过串行通信的方式,模拟排队取号管理系统的流程显得更加

6、方便、科学。2硬件电路设计与分析2.1排队取号机主电路设计主电路原理图见附录一。系统采用STC89C52单片机完成整个系统的控制流程。从机通过单片机的中断0按键,当系统检测到按下时完成取号功能。主机同样通过单片机的中断0按键,当系统检测到按下时完成叫号功能。图 3 串行通信电路2.2排队取号机通信电路设计通信电路采用如图 3所示的串行通信电路,通过单片机的串行通信端口进行数据传递。2.3动态显示电路由于需要动态显示排队等待情况,需要使用到LED动态显示功能,考虑到合理利用STC89C52单片机的I/O口资源,本系统通过一块NEC D8255AC-2外扩LED电路进行动态显示。由8255芯片的P

7、A、PB口联合控制数码管显示排队等待情况。采用如图 4、图 6所示电路实现LED动态显示功能。图 4 8255芯片引脚图2.4叫号电路此电路采用如图 5所示的电路,通过单片机的P33端口输出一定频率的方波,使蜂鸣器发声,完成叫号,提醒客户。图 5图 6 数码管显示电路3系统软件设计与分析3.1软件流程图本程序可以实现课程设计的基本要求。客户端通过按键完成取号,数码管显示排队、等待人数情况;主机通过按键完成叫号,数码管显示叫到的号码,并通过蜂鸣器发声提示;客户端和主机通过串行通信方式完成排队取号功能。程序流程如图 7所示:图 7 总体流程图3.2动态显示模块此模块由于要使数码显示管不同的数值,数

8、字各位对应的段选值不同,所以位选不能同时打开,所以需要采用动态显示实现同时显示排队号码以及等待的人数。最后采用如图 8所示的电路完成要求功能。图 8 动态显示流程图3.3叫号模块此模块采用无源蜂鸣器发声,采用如图 9所示电路,通过单片机向P33端口输出一定频率的方波,就可使蜂鸣器的发声。图 9 叫号模块电路3.4串行通信模块设计要求客户端与主机通过串行通信方式,采用如图 3所示的常用双机通信方式,通过使用定时器1采用 2400bps的波特率进行通信。4系统仿真及调试4.1软件调试(1)在Keil软件中建立工程,新建工程,选择Atmel AT89C52芯片,创建源代码,进行编译,在Keil中仿真

9、调试。(2)在Protues软件中,根据功能模块,画出相应原理图。利用Keil中生成的*.hex文件与Keil进行程序联调。4.2硬件调试4.2.1动态显示模块开始调试时,在Protues软件上可以很好模拟动态显示效果,但硬件电路数码管显示效果失真,考虑到延时在动态显示中的重要作用,通过调小延时时间,使数码管稳定、准确地显示。4.2.2叫号模块开始调试时,由于程序产生的方波频率比较低,导致蜂鸣器无法正常工作,通过查找资料,熟悉蜂鸣器有特定的工作频率范围,调试一合适方波频率,使蜂鸣器正常发声。4.2.3串行通信模块开始调试时,通过串口调试助手进行调试,但效果始终不出来,通过向同学请教,设置好软件

10、的波特率在调试可以实现,最后把程序细节部分调试,使串行通信部分正常工作。4.3调试结果进过调试,系统可以实现对20人的队伍排队取号,客户端通过按键可以完成取号,并通过数码管显示排队等待情况,主机通过按键可以实现叫号,并可以通过蜂鸣器鸣叫和数码管显示的双重提示。5设计总结(1) 通过本次课程设计,加深了对于怎样学好单片机这门课程的理解,学单片机就是要多实践,老师领我们进入单片机世界,精通它就得靠我们自己,那就是多实践,灵活运用自己所学知识到自己的作品当中。(2) 在程序设计过程中遇到的很多问题,阻碍设计的过程,通过总结,深深体会到程序设计的时候模块化处理的重要性,可以先画好程序流程图,然后各个模

11、块各个击破。同时遇到问题时可以同学之间相互讨论、回到书本在学习,更有助于加深对所学知识的理解。6致谢这次课程设计对我来说有着深远的意义,让我对未来的路又看得清楚了些。在此我要深深的感谢那些传授我知识的老师们,是你们无私的奉献,才会有如今的我们;要感谢父母一直给我的支持,感谢他们的关怀;还要感谢同学对我的鼓励,感谢搭档对我的认可,让我能尽情的发挥我的能力,激扬去验证自己的想法。7详细仪器清单表 1 仪器清单类型规格数量备注5V直流电源ZH-60032USB232converterU232-P92电阻1k28个芯片NEC D8255AC-22片扩展I/O芯片STC89C522片晶振12M2个蜂鸣器

12、无源1个数码管3位共阳极4个极性电容0.1UF2个非极性电容30pf2个按键开关2个三极管901512个参考文献1 张鑫.单片机原理及应用M.北京:电子工业出版社,2005.8.2 邱关源、罗先觉.电路M.北京:高等教育出版社,2006.5.3 康光华.电子技术基础.数字部分M.北京:高等教育出版社,2006.1.4 康光华.电子技术基础.模拟部分M.北京:高等教育出版社,2006.1.5 祁伟, 杨亭. 单片机C51程序设计教程与实验M.北京:北京航空航天大学出版社,2006.6 楼然苗.李光飞.单片机课程设计指导M.北京:北京航空航天大学出版社,2007.47 单片机学习网附录一:整体电路

13、图附录二:程序清单头文件:#include #include #define PA XBYTE0xD9FF /*PA口地址*/#define PB XBYTE0xDAFF /*PB口地址*/#define PC XBYTE0xDDFF /*PC口地址*/#define CON XBYTE0xDFFF /*控制字地址*/取号程序:#include /头文件#define uchar unsigned char#define uint unsigned intuint m,n;uchar i,j,q_head,q_tail;sbit P32=P32; uchar const table16= 0x

14、A0, 0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA, 0x20, 0x28,0x30,0x25,0xE4,0x23,0x64,0x74, ;uchar const table_queue= /20个排队号码 0x00,0x01,0x02,0x03,0x04,0x05, 0x06,0x07,0x08,0x09,0x0a, 0x0b,0x0c,0x0d,0x0e,0x0f, 0x10,0x11,0x12,0x13,0x14,;delay(uint k) while(k-);display(uchar p,uchar q) uint b,c,d,e; b=(uint)p/1

15、0; c=(uint)p%10; d=(uint)q/10; e=(uint)q%10; PA=0xfe; PB=tableb; delay(200); PA=0Xfd; PB=tablec; delay(200); PA=0xef; PB=tabled; delay(200); PA=0Xdf; PB=tablee; delay(200);init() CON=0x80; EA=1; EX0=1; SCON=0x50; TMOD=0x20; TH1=0xf3; TL1=0xf3; TR1=1; void int0() interrupt 0 if(P32=0) delay(1200); if

16、(P32=0) q_tail=table_queue+m; i=q_tail; j=q_tail-q_head; display(i,j); while(P32!=1)display(i,j);main() init(); q_head=table_queue+n; while(1) display(i,j); if(m=n) TI=0; SBUF=q_head; while(!TI); RI=0; while(!RI)display(i,j); if(nm) q_head=table_queue+n; j=q_tail-q_head; else if(n=m) q_head=table_qu

17、eue+n; 叫号程序:#include /头文件#define uchar unsigned char#define uint unsigned int uint j,k;uchar t;sbit buzzer=P33;sbit P32=P32; uchar const table16= 0xA0, 0xBB,0x62,0x2A,0x39,0x2C,0x24,0xBA, 0x20, 0x28,0x30,0x25,0xE4,0x23,0x64,0x74, ;delay(uint i) while(i-);display(uint i,uint j) PA=0xfe; PB=tablei; de

18、lay(200); PA=0Xfd; PB=tablej; delay(200);init() CON=0x80; EA=1; EX0=1; SCON=0x50; TMOD=0x20; TH1=0xf3; TL1=0xf3; TR1=1; RI=1; beep() uint s=500; while(s-) buzzer=buzzer; delay(50); display(j,k); void int0() interrupt 0 if(RI=1) t=SBUF; j=(uint)t/10; k=(uint)t%10; display(j,k); RI=0; TI=0; SBUF=0xff; while(!TI); beep(); main() init(); RI=0; while(1) display(j,k);

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2