欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOCX文档下载  

    单片机课程设计排队叫号机.docx

    • 资源ID:3346619       资源大小:43.33KB        全文页数:18页
    • 资源格式: DOCX        下载积分:6.99金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要6.99金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机课程设计排队叫号机.docx

    单片机课程设计 排队叫号机单片机原理及应用 课程设计报告书 课题名称 姓 名 学 号 专 业 指导教师 排队叫号机 机电与控制工程学院 年 月 日 任务书 设计要求 利用单片机的串行通信方式,完成一个科学管理各种复杂排队情况的排队叫号系统。具体要求如下: (1) 主机:通过按键来完成报号,由数码管显示叫到的号码,并发出蜂鸣声。 (2) 客户端:通过按键完成取号,由数码管显示号码和当前需要等待的人数。 (3) 主机和客户端用串口通信,在20人等待的队列中进行测试。 目 录 设计要求 . 1 1 方案论证与对比 . 1 1.1 方案一 . 1 1.2 方案二 . 1 1.3 系统方案对比论证 . 2 2 硬件电路设计与分析 . 2 2.1 排队取号机主电路设计 . 2 2.2 排队取号机通信电路设计 . 3 2.3 动态显示电路 . 3 2.4 叫号电路 . 3 3 系统软件设计与分析 . 4 3.1 软件流程图 . 4 3.2 动态显示模块 . 4 3.3 叫号模块 . 6 3.4 串行通信模块 . 6 4 系统仿真及调试 . 6 4.1 软件调试 . 6 4.2 硬件调试 . 6 4.2.1 动态显示模块 . 6 4.2.2 叫号模块 . 7 4.2.3 串行通信模块 . 7 5 设计总结 . 7 6 致谢 . 8 7 详细仪器清单 . 9 参考文献 . 10 附录一:整体电路图 . 11 附录二:程序清单 . 12 摘 要 排队叫号管理系统(排队机、叫号机)是针对银行、工商、税务、通讯、*机构等部门的大厅工作流程设计的,是利用电脑的科学管理客户排队的系统,很好地解决了客户在服务机构办理业务时所遇到的各种排队、拥挤和混乱现象,为客户办理业务带来莫大的方便和愉悦。本课题研究的目的是研制一款无人排队的排队叫号机,它主要由主控制器、键盘、数码管显示电路、蜂鸣器电路等部分构成。 系统利用单片机进行控制,通过串行通信方式传输处理数据;通过按键取号,在数码管上显示排队的号码以及当前正在等待的人数;通过按键叫号,在数码管上显示叫到的号码,由扬声器发出声音提示客户。同时免除了令客户不舒服的站立式排队,这种现代化的高科技产品彻底解决了银行、医院等服务性企业普遍存在的站立等候,服务无序的问题,深化并完善了服务的质量。本系统采用单片机进行控制,利用数码管显示,蜂鸣器鸣叫提示的人机交互界面,模拟排队管理系统,科学地处理各种排队情况。操作简便,控制灵活,显示清晰,制作成本低,性价比较高。 排队叫号机 设计要求 利用单片机的串行通信方式,完成一个科学管理各种复杂排队情况的排队叫号系统。具体要求如下: (1) 主机:通过按键来完成报号,由数码管显示叫到的号码,并发出蜂鸣声。 (2) 客户端:通过按键完成取号,由数码管显示号码和当前需要等待的人数。 (3) 主机和客户端用串口通信,在20人等待的队列中进行测试。 1方案论证与对比 1.1方案一 系统采用如图 1所示的电路,通过STC89C52的I/O口的扩展一块NEC D8255AC-2构成的矩阵键盘,完成排队取号的流程,单片机控制数码管显示排队等待情况,控制蜂鸣器发声完成叫号功能。 数码显示8255矩阵键盘89C52(主机/从机)蜂鸣器图 1 采用矩阵键盘实现功能 1.2方案二 系统采用如图 2所示的电路,通过STC89C52单片机直接扩展的独立键盘,完成排队取号流程,单片机控制数码管显示排队等待情况,控制蜂鸣器发声完成叫号功能。 1 1.3系统方案对比论证 因为采用矩阵键盘完成排队取号流程,但客户较多的时候要实现排队取号的功能,就要占去过多的I/O端口,操作起来也比较复杂,而方案二的独立键盘操作控制简单,占用主机资源少,所以选择方案二,采用独立键盘控制排队取号,通过串行通信的方式,模拟排队取号管理系统的流程显得更加方便、科学。 数码显示8255独立键盘89C52(主机/从机)蜂鸣器图 2 采用独立键盘实现功能 2硬件电路设计与分析 2.1排队取号机主电路设计 主电路原理图见附录一。 系统采用STC89C52单片机完成整个系统的控制流程。从机通过单片机的中断0按键,当系统检测到按下时完成取号功能。主机同样通过单片机的中断0按键,当系统检测到按下时完成叫号功能。 TXDRXD主机RXD客户端TXD图 3 串行通信电路 2 2.2排队取号机通信电路设计 通信电路采用如图 3所示的串行通信电路,通过单片机的串行通信端口进行数据传递。 2.3动态显示电路 由于需要动态显示排队等待情况,需要使用到LED动态显示功能,考虑到合理利用STC89C52单片机的I/O口资源,本系统通过一块NEC D8255AC-2外扩LED电路进行动态显示。由8255芯片的PA、PB口联合控制数码管显示排队等待情况。采用如图 4、图 6所示电路实现LED动态显示功能。 图 4 8255芯片引脚图 2.4叫号电路 此电路采用如图 5所示的电路,通过单片机的P33端口输出一定频率的方波,使蜂鸣器发声,完成叫号,提醒客户。 3 3系统软件设计与分析 3.1软件流程图 本程序可以实现课程设计的基本要求。客户端通过按键完成取号,数码管显示排队、等待人数情况;主机通过按键完成叫号,数码管显示叫到的号码,并通过蜂鸣器发声提示;客户端和主机通过串行通信方式完成排队取号功能。程序流程如图 7所示: 图 5 叫号电路 图 6 数码管显示电路 4 3.2动态显示模块 此模块由于要使数码显示管不同的数值,数字各位对应的段选值不同,所以位选不能同时打开,所以需要采用动态显示实现同时显示排队号码以及等待的人数。最后采用如图 8所示的电路完成要求功能。 初始化数码显示1N取号?有队伍?NYY缓存器主机数据处理Y叫号?N数码显示1Y从机数据处理鸣叫提示数码显示2图 7 总体流程图 CPU延时改变8255PA、值8255延时处理数码管显示图 8 动态显示流程图 5 3.3叫号模块 此模块采用无源蜂鸣器发声,采用如图 9所示电路,通过单片机向P33端口输出一定频率的方波,就可使蜂鸣器的发声。 CPU方波信号蜂鸣器发声图 9 叫号模块电路 3.4串行通信模块 设计要求客户端与主机通过串行通信方式,采用如图 3所示的常用双机通信方式,通过使用定时器1采用 2400bps的波特率进行通信。 4系统仿真及调试 4.1软件调试 (1)在Keil软件中建立工程,新建工程,选择Atmel AT89C52芯片,创建源代码,进行编译,在Keil中仿真调试。 (2)在Protues软件中,根据功能模块,画出相应原理图。利用Keil中生成的*.hex文件与Keil进行程序联调。 4.2硬件调试 4.2.1动态显示模块 开始调试时,在Protues软件上可以很好模拟动态显示效果,但硬件电路数码管显示效果失真,考虑到延时在动态显示中的重要作用,通过调小延时时间,使数码管稳定、准确地显示。 6 4.2.2叫号模块 开始调试时,由于程序产生的方波频率比较低,导致蜂鸣器无法正常工作,通过查找资料,熟悉蜂鸣器有特定的工作频率范围,调试一合适方波频率,使蜂鸣器正常发声。 4.2.3串行通信模块 开始调试时,通过串口调试助手进行调试,但效果始终不出来,通过向同学请教,设置好软件的波特率在调试可以实现,最后把程序细节部分调试,使串行通信部分正常工作。 5设计总结 (1) 通过本次课程设计,加深了对于怎样学好单片机这门课程的理解,学单片机就是要多实践,老师领我们进入单片机世界,精通它就得靠我们自己,那就是多实践,灵活运用自己所学知识到自己的作品当中。 (2) 在程序设计过程中遇到的很多问题,阻碍设计的过程,通过总结,深深体会到程序设计的时候模块化处理的重要性,可以先画好程序流程图,然后各个模块各个击破。同时遇到问题时可以同学之间相互讨论、回到书本在学习,更有助于加深对所学知识的理解。 (3) 软件编程上,由于对总的流程不是很清晰,刚开始时是一气呵成,把所有的程序编写完,接着就上电进行调试,结果什么反应都没有。最后经过老师的指导才顺利完成。其次,是对频率的转换理解不够甚透,计算初值很麻烦,最后是参考了同学的程序才做出来的。 在整个电路的设计制作过程中,电路是比较难焊接的。管脚的排列很乱,需把每一个脚的信息用万用表测过方可知道是属于行或是列,这给焊接带来了相当大的难度。在焊接过程中时刻秉着认真、仔细的态度去完成硬件的设计。此外,在调试过程中也遇到很多问题,首先是对电路板的检测方法掌握得不够精,因此给硬件排除故障带来了一定的难度。总的来说,此次电路的设计与制作,我们基本上达到了作品的要求功能。做得好的继续发扬,做得不够好的及时改正。 7 6致谢 身为电信专业的学生,设计是我们将来必需具备的技能。而这次课程设计恰恰给我们提供了一个应用自己所学知识去勇于创新和实践的平台。从通过理论设计,到仿真软件仿真,再到确定具体方案,最后到调试电路、成型。整个过程都需要我充分利用所学的知识进行思考、借鉴。可以说,本次课程设计是针对前面所学的知识进行的一次比较综合的检验。总的来说,这次课程设计虽然很累,但却是苦中有乐,非常充实。在这次实习中,正确的思路是很重要的,只有你的设计思路是正确的,那你的设计才有可能成功。因此我们在设计前必须做好充分的准备,认真查找详细的资料,为我们设计的成功打下坚实的基础,所以跑图书馆和上网查资料成为了我每天的必修课。 本次课程设计不仅培养了我们的科学严谨的学习态度,使我们认识到不管做任何事都要付出一定的努力,才会有大的收获。同时也让我们领略到电子技术科学知识领域的广袤。相信这次课程设计过后,我们的理论水平和实践动手能力都会有一个质的飞跃,也为今后的实践课程及毕业设计打下了坚实的基础。要做好本次的课程设计,熟练地掌握课本上的理论知识是前提。这样才能对试验中出现的问题进行一定的分析和解决。 当然能完成本次设计,更离不开老师辛勤地指导,老师能在百忙中来指导我,每当我遇到了棘手的问题,老师总能给我最好的建议,教我改进得方法,不厌其烦地指出我在设计中存在的问题和错误,使我能更好地完成设计。正是老师不厌其烦的指导和每天下午的讲解,让我的设计思路越发清晰,明朗,清除了应该从哪些方面着手作。 同时还要感谢在这样课程设计中给我提供的帮助的同学,是你们让我能更好的 完成这次设计。 这次课程设计对我来说有着深远的意义,让我对未来的路又看得清楚了些。在此我要深深的感谢那些传授我知识的老师们,是你们无私的奉献,才会有如今掌握一定知识的我们;要感谢父母一直给我的支持,感谢他们的关怀; 还要感谢同学对我的鼓厉,感谢搭档对我的认可,让我能尽情的发挥我的能力,激扬去验证自己的想法。 路漫漫其修远兮,吾将上下而求往。在以后的求学道路上,我坚信我们的未来我做主。让我们一起奋斗吧,燃烧我们的激情,释放我们的才华。 8 7详细仪器清单 表 1 仪器清单 类型 5V直流电源 USB232converter 电阻 芯片 芯片 晶振 蜂鸣器 数码管 极性电容 非极性电容 按键开关 三极管 规格 ZH-6003<IC> U232-P9 1k NEC D8255AC-2 数量 2 2 28个 2片 2片 2个 1个 4个 2个 2个 2个 12个 备注 扩展I/O STC89C52 12M 无源 3位共阳极 0.1UF 30pf 9015 9 参考文献 1 张鑫.单片机原理及应用M.北京:电子工业出版社,2005.8. 2 邱关源、罗先觉.电路M.北京:高等教育出版社,2006.5. 3 康光华.电子技术基础.数字部分M.北京:高等教育出版社,2006.1. 4 康光华.电子技术基础.模拟部分M.北京:高等教育出版社,2006.1. 5 祁伟, 杨亭. 单片机C51程序设计教程与实验M.北京:北京航空航天大学出版社,2006. 6 楼然苗.李光飞.单片机课程设计指导M.北京:北京航空航天大学出版社,2007.4 7 单片机学习网 10 附录一:整体电路图 11 附录二:程序清单 /头文件: #include <reg52.h> #include<ABSACC.H> #define PA XBYTE0xD9FF /*PA口地址*/ #define PB XBYTE0xDAFF /*PB口地址*/ #define PC XBYTE0xDDFF /*PC口地址*/ #define CON XBYTE0xDFFF /*控制字地址*/ /取号程序: #include <config.h> /头文件 #define uchar unsigned char #define uint unsigned int uint m,n; uchar i,j,q_head,q_tail; sbit P32=P32; uchar const table16= 0xA0, 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/10; c=(uint)p%10; d=(uint)q/10; e=(uint)q%10; PA=0xfe; 12 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(P32=0) q_tail=table_queue+m; i=q_tail; j=q_tail-q_head; display(i,j); 13 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(n<m) q_head=table_queue+n; j=q_tail-q_head; else if(n=m) q_head=table_queue+n; /叫号程序: #include <config.h> /头文件 #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) 14 ; while(i-); display(uint i,uint j) PA=0xfe; PB=tablei; delay(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) 15 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); 16 指导教师 评 语 课程设计 成 绩 指导教师 签 字 年 月 日 17

    注意事项

    本文(单片机课程设计排队叫号机.docx)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开