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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于AT89C51单片机的排队叫号系统设计课程设计.docx

1、基于AT89C51单片机的排队叫号系统设计课程设计摘要 本文设计了一套排队叫号系统。该系统是以排队抽号顺序为核心,客户利用客户端抽号,工作人员利用叫号端叫号;通过显示器及时显示当前所叫号数,客户及时了解排队信息,通过合理的程序结构来执行排队抽号。以提高排队等待效率,解决排队秩序混乱,前拥后挤等现象,实现排队自动化,规范化。通过该系统的使用,客户不必为排队浪费大量精力,便于管理排队秩序,同时适应信息时代管理数字化的要求,提高服务水平与质量。关键词:单片机 排队叫号 系统开发排队叫号系统设计1.引言近年来,随着科学技术的迅猛发展和人们生活水平的日益提高,各行各业特别是服务行业的竞争也逐渐激烈。服务

2、质量作为体现企业的公众形象、服务理念、管理水平的标准已越来越受到服务和被服务双方所关注,而营业窗口正是代表银行、医院、电信、税务、工商等企业服务质量的重要场所。随着服务行业业务量的增长及业务种类的增加,排队等候已成为人们面临的实际问题。长期以来,人们在银行、医院、电信、税务、工商等营业大厅里前拥后挤、杂乱无章地排队等候, 有时一站就是一个多小时,这已是司空见惯的现象,极大地影响了服务质量。员工坐着服务、客户站着等待的服务方式与“用户就是上帝” 的服务宗旨完全背道而驰!改善服务质量、树立良好形象,解决劳累的排队现象、创造人性化服务环境已成为急需解决的问题。设计一套排队抽号的服务系统,可以很好的解

3、决因排队引起的种种问题,排队系统应运而生。此系统完全模拟人群排队过程,通过取票进队、排队等待、叫号服务等功能,诠释了人性化的服务理念,舒缓顾客等待的急噪情绪,使人们在等候服务的过程中拥有一个相对自由的空间,是科技以人为本的真正体现。本文基于单片机的排队叫号系统,由客户端和主机终端组成,有LCD大屏幕显示信息,让客户知道自己的队号,并有叫号提示音提醒客户,方便快捷,可以满足日常的服务行业排队叫号,所以非常有意义。2.系统功能分析及设计要求一个很好的叫号系统,它的功能设计首先要符合用户的习惯,同时操作方便,易学,易用。本系统由键盘输入系统、单片机系统、屏幕显示系统及叫号提示音系统组成,系统分为两个

4、部分:抽号部分和叫号部分,其控制核心为AT89C51单片机,选用此单片机编程简单,开发工具便于使用,能满足很好的满足排队抽号的控制数据处理。抽号部分和叫号部分采用一块 LCD液晶显示器,这样显示数据直观,便于客户理解,抽号部分输入只需使用一个抽号按键即可,便于客户操作,叫号部分包括叫两个号键,系统采用自动清零,无需人工操作3.系统框图设备上电后,显示器屏幕亮,无信息显示。当客户按键后,每按一下,队伍加1,显示器显示客户队伍号;排满20位后,再按取号键,屏幕显示“队伍满”。当客服叫号时,队伍减1,程序进行信息处理,在显示器上显示“几号客户到几号窗口”,同时进行声音提示;当队伍空时,显示“队伍空”

5、,显示器屏幕清空,储存的队伍号码归零处理叫号提示音1602液晶显示 AT89C51单片机终端窗口叫号客户端取号 4.主要应用器件及技术原理4.1 微处理器介绍4.1.1、MCS-51单片机的特点:(1)小巧灵活、成本低、易于产品化。能组装成各种智慧式测控设备及智能仪器仪表。(2)可靠性好,应用范围广。单片机芯片本身是按工业测控环境要求设计的,抗干扰性强,能适应各种恶劣的环境,这是其它机种无法比拟的。(3)易扩展,很容易构成各种规模的应用系统,控制功能强。单片机的逻辑控制功能很强,指令系统有各种控制功能指令,可以对逻辑功能比较复杂的系统进行控制。(4)具有通讯功能,可以很方便地实现多机和分布式控

6、制,形成控制网络和远程控制。正是由于51系列单片机具有以上优点,所以成为本次毕业设计所选用的处理器。4.1 2、MCS-51 单片机的结构AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。从工作原理上讲,单片机就是一种微型计算机,是一种“程序存储式”计算机。它是在一块硅片上集成了中央处理器(CPU)、随机内存(RAM)、程序内存(ROM或EPROM)、定时/计数器以及各种I/O接口,

7、也就是集成在一块芯片上的计算机。图4.1 MCS-51单片机的结构4.2液晶LCD1602的介绍4.2.1 字符型液晶显示器的显示原理用LCD显示一个字符时比较复杂,因为一个字符由6x8或8x8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8个字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立游标,在此送上该字符对应的代码即可。4.2.2 液晶LCD1602的简介 5.

8、系统硬件电路设计系统Proteus仿真图:图中主要以AT89C51为控制核心,包括显示电路,音乐提示电路,晶振电路。 图5.1 电路仿真5.1晶振电路AT89C51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为回馈组件的片外石英晶体或陶瓷谐振器一起构成自激振荡器。外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但是电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF

9、10pF,而如果使用陶瓷谐振器建议选用40pF10pF。使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。本系统采用内部方式,晶振选用12MHz。 图5.2晶体内部方式5.2液晶显示电路如下图5.3,P1口接LCD1602的8个双向数据线接口,P3.4接1602的数据/命令选择端,P3.5接1602的读/写选择端,P3.6接1602的使能信号。BLA、BLK分别是1602的背光源的正负极,VL是1602对比度调整端。本文是通过对R

10、S、RW以及E的高低电平进行写指令和写数据操作来控制1602的显示的。 图5.3液晶显示电路5.3声音提示电路 使用最简单的蜂鸣器来作为提示音部分,通过改变端口高低电平来进行发声,并对延时进行修改来调试发声频率,从而修改发出的声音的好坏 图5.4声音提示电路图6系统仿真仿真是在软件Proteus 7.4上进行的,用C语言编写的程序,通过keil生成了hex文件,经过调试,仿真实现了排队叫号系统的功能客户取号图按下客户端取号按键,屏幕显示“Your No.is 03!” 图6.1 客户端显示窗口叫号图按下窗口服务叫号按键一,屏幕显示“No.03 Come to No.1 window, plea

11、se”图6.2 窗口服务叫号显示7系统软件设计7.1系统软件流程图7.2系统程序设计7.2.1 主程序设备上电后,显示器屏幕亮,无信息显示。当客户按键后,每按一下,队伍加1,显示器显示客户队伍号;排满20位后,再按取号键,屏幕显示“队伍满”。当客服叫号时,队伍减1,程序进行信息处理,在显示器上显示“几号客户到几号窗口”,同时进行声音提示;当队伍空时,显示“队伍空”,显示器屏幕清空,储存的队伍号码归零处理。#include#define uchar unsigned char#define uint unsigned intsbit rs=P20;sbit rw=P21;sbit e=P22;s

12、bit key1=P10;sbit key2=P11;sbit key3=P12;sbit sounder=P37;uchar prompt1=Your No.is 00!; uchar prompt2=No.00 Go To Win.0; uchar prompt3=Queue is full ; uchar prompt4=Queue is empty !; uint num_count=0; /排队叫的号码uint rank_number20=0; /排队叫号存储的数组uint num=0; /窗口消的号码int RankFlag=0; /叫号的标志int ClearNumFlag=0;

13、 /消号的标志uint LengthFlag=0; /队列长度 叫一次号时+1,消一次号时-1/*延时函数*/void delay(uint n) while (n-);/*LCD1602 *显示屏命令写入函数*/void LCD_write_com(uchar com) e=0; rs=0; rw=0; P0= com; delay(1000); e=1; delay(1000); e=0; /*LCD1602 *显示屏数据写入函数*/void LCD_write_data(uchar dat) e=0; rs=1; rw=0; P0 = dat; delay(1000); e=1; del

14、ay(1000); e=0;/*LCD1602 *显示屏清空显示*/void LCD_clear(void) LCD_write_com(0x01); delay(1000);/*LCD1602 显示屏初始化函数*/void LCD_init(void) LCD_write_com(0x38); /*显示模式设置*/ delay(100); LCD_write_com(0x38); delay(100); LCD_write_com(0x38); delay(100); LCD_write_com(0x38); LCD_write_com(0x08); /*显示关闭*/ LCD_write_c

15、om(0x01); /*显示清屏*/ LCD_write_com(0x06); /*显示光标移动设置*/ delay(100); LCD_write_com(0x0C); /*显示开及光标设置*/*简单的蜂鸣器提示音*/void sound() uint a;for(a=0;a500;a+) sounder=0;delay(61); sounder=1;/*获取键值函数*/uint sweep_key() uint jianzhi; if(key1=0) delay(1000); if(key1=0) jianzhi=1; RankFlag=1; if(key2=0|key3=0) delay

16、(1000); if(key2=0) jianzhi=2; if(key3=0) jianzhi=3; ClearNumFlag=1; return (jianzhi);/*叫号机 按一次一号键变量+1,最大为20 */ void QueueNumProcess()if(RankFlag=1) /判断叫号标志是否有效 if ( LengthFlag20) num_count+; rank_numberLengthFlag = num_count; LengthFlag+; /*窗口消号处理函数*/void ClearNumProcess() uint i; if (ClearNumFlag=1

17、) /判断消号标志是否有效 num=rank_number0; /把消的号赋给全局变量num for(i=0;i=20 ) LCD_clear(); LCD_write_com(0x80+0x02); delay(100); for(i=0;i16;i+) LCD_write_data(prompt3i); delay(100); else QueueNumProcess(); prompt111=(num_count)/10+0; prompt112=(num_count)%10+0; LCD_clear(); LCD_write_com(0x80+02); delay(100); for(

18、i=0;i15;i+) LCD_write_data(prompt1i); /Your No.is 00!; delay(100); RankFlag=0; if(jz=2|jz=3) & ClearNumFlag=1) if(LengthFlag=0) LCD_clear(); LCD_write_com(0x80+0); delay(1000); for(i=0;i16;i+) LCD_write_data(prompt4i);/Queue is empty ; delay(100); delay(65535); /无人排队时屏幕自动清屏,计数归零 LCD_clear(); num_cou

19、nt=0; else ClearNumProcess(); /消号处理,营业员操作 sound(); prompt23=num/10+0; prompt24=num%10+0; prompt215=(jz-1)+0;LCD_clear(); LCD_write_com(0x80+0); delay(100); for(i=0;i16;i+) LCD_write_data(prompt2i); /No.00 come to No.0; delay(100); ClearNumFlag=0; /*main 函数*/void main() uint Kvalue; LCD_init(); while

20、(1) Kvalue=sweep_key(); /获取键值 if (RankFlag=1 | ClearNumFlag=1)/判断叫号标志和消号标志是否有效 CheckButtonProcess(Kvalue); delay(200); RankFlag=0; /使叫号标志无效 ClearNumFlag=0; /使消号标志无效 Kvalue=0; /键值清0 7.2.2 液晶LCD1602显示处理程序/*LCD1602 *显示屏命令写入函数*/void LCD_write_com(uchar com) e=0; rs=0; rw=0; P0= com; delay(1000); e=1; de

21、lay(1000); e=0; /*LCD1602 *显示屏数据写入函数*/void LCD_write_data(uchar dat) e=0; rs=1; rw=0; P0 = dat; delay(1000); e=1; delay(1000); e=0;/*LCD1602 *显示屏清空显示*/void LCD_clear(void) LCD_write_com(0x01); delay(1000);/*LCD1602 显示屏初始化函数*/void LCD_init(void) LCD_write_com(0x38); /*显示模式设置*/ delay(100); LCD_write_c

22、om(0x38); delay(100); LCD_write_com(0x38); delay(100); LCD_write_com(0x38); LCD_write_com(0x08); /*显示关闭*/ LCD_write_com(0x01); /*显示清屏*/ LCD_write_com(0x06); /*显示光标移动设置*/ delay(100); LCD_write_com(0x0C); /*显示开及光标设置*/这几个是1602显示的必备程序,设置好1602后,只需通过写指令和写数据的程序处理,能够把需要显示的内容显示出来,是比较简单的显示设备7.2.3 按键检测程序/*获取键值

23、函数*/uint sweep_key() uint jianzhi; if(key1=0) delay(1000); if(key1=0) jianzhi=1; RankFlag=1; if(key2=0|key3=0) delay(1000); if(key2=0) jianzhi=2; if(key3=0) jianzhi=3;ClearNumFlag=1; return (jianzhi);本设计只设立了两个处理窗口,相对来说简单,通过按键检测程序,来分辨是哪个按键按下了。窗口依据实际需要可以增加,程序有很大的扩展性。 8结束语通过查阅相关书籍、网上资料和一些仿真实例,做成了现在的排队叫

24、号系统。此系统采用LCD1602显示,做起来比较简单,其中只设立了两个处理窗口,虽然很少,不过根据需要可以经行增加,具有较好的扩展功能。设计采用声音提示,由于能力有限,不会编写音乐程序,就用了最简单的蜂蜜器声音,通过改变延时程序,对蜂蜜器的频率来进行调节,最后声音勉强可以。本设计虽不及现今比较成熟的产品,不过对需求不是很高的人还是可以的。从此次设计中,我学到了很多,对没有掌握的知识都有了一定的了解。虽然本科毕业设计已经即将结束,但是我对排队叫号系统的研究并没有告一段落我会接着研究。以后目标是,用更高级的芯片把叫号系统进行完善,争取达到银行的那样四年来的的本科生活伴随着论文的完成,也要结束了。时

25、间终是短暂,但是这四年大学的时间里却经历了重要的人生蜕变。做学问总是枯燥和寂寞的,而生活本身又是那么丰富多彩。在这个忙碌而火热的行业中,我总算找到了一个合理时间能够静静的思考我的发展方向,以及我未来的事业。 9 致谢辞 首先,感谢我的指导老师朱煜钰老师对我的鼓励和帮助,使我能能够顺利地完成论文,从他的身上无论做事还是学习使我学到了好多宝贵的经验,让我在人生的道路上更加自信,这些将使我受益终生。感谢各位师的辛勤培育,将信息工程这个全新的领域引入我的大学生活,在人生最重和发展的最初阶段,为我指明了方向。感谢学院的其他老师,您们从生活和教学中流露出的言行,您们的学识和修养,使我不禁对自己的要求也更高了一分。还要感谢电工实验室的老师,四年来在学习上的帮助和动手能力的培养,更加启发了我的学习爱好和兴趣。机电专业的同学,谢谢你们的

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1