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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于单片机银行排队叫号系统设计.docx

1、基于单片机银行排队叫号系统设计单片机原理与应用技术课程设计设计题目: 基于单片机银行排队叫号系统设计 1 设计目的近年来,随着科学技术的迅猛发展和人们生活水平的日益提高,各行各业特别是服务行业的竞争也逐渐激烈。服务质量作为体现企业的公众形象、服务理念、管理水平的标准已越来越受到服务和被服务双方所关注,而营业窗口正是代表银行、医院、电信、税务、工商等企业服务质量的重要场所。随着服务行业业务量的增长及业务种类的增加,排队等候已成为人们面临的实际问题。长期以来,人们在银行、医院、电信、税务、工商等营业大厅里前拥后挤、杂乱无章地排队等候, 有时一站就是一个多小时,这已是司空见惯的现象,极大地影响了服务

2、质量。员工坐着服务、客户站着等待的服务方式与“用户就是上帝” 的服务宗旨完全背道而驰!改善服务质量、树立良好形象,解决劳累的排队现象、创造人性化服务环境已成为急需解决的问题。设计一套排队抽号的服务系统,可以很好的解决因排队引起的种种问题,排队系统应运而生此系统完全模拟人群排队过程,通过取票进队、排队等待、叫号服务等功能,诠释了人性化的服务理念,舒缓顾客等待的急噪情绪,使人们在等候服务的过程中拥有一个相对自由的空间,是科技以人为本的真正体现。本文基于单片机的排队叫号系统,由客户端和主机终端组成,有LCD大屏幕显示信息,让客户知道自己的队号,并有叫号提示音提醒客户,方便快捷,可以满足日常的服务行业

3、排队叫号,所以非常有意义。2 设计的任务与要求本系统由按键输入系统、单片机系统、屏幕显示系统及叫号提示音系统组成,系统分为两个部分:抽号部分和叫号部分,其控制核心为AT89C51单片机,选用此单片机编程简单,开发工具便于使用,能很好地满足排队叫号的控制数据处理。抽号部分和叫号部分采用一块LCD液晶显示器,这样显示数据直观,便于顾客理解,抽号部分输入只需使用一个抽号键即可,便于客户操作,叫号部分包括两个叫号键,系统采用自动清零,无需人工操作。3 设计方案与论证3.1设计方案系统的组成如图3-1设备上电后,显示器屏亮,无信息显示。当客户按键后,没按一下,队伍加一,显示器显示客户队伍号:排满20位后

4、,再按取号键,屏幕显示“队伍满”。当客服叫号时,队伍减1,程序进行信息处理,在屏幕上显示“几号客户到几号窗口”,同时进行声音提示;当队伍空时,显示“队伍空”,显示器屏幕清空,储存队伍号码归零处理。图3-1总体方案框图3.2设计论证1).控制器控制器的选择是确定整个系统硬件方案的关键,它关系到其它几个部分方案的确定,对于排队叫号系统,控制器的可选方案有以下两种:(1)采用单片机。单片机采用半导体工艺,使其具有很多显著的优点和特点,因而能在各个领域都得到迅猛的发展,它主要有如下特点:1有优异的性能价格比。2集成度甚高,体积小,有很高的可靠性,可以在恶劣环境下工作。3控制能力强。4低功耗,低电压,便

5、与生产便携式产品。5扩展容易。(2)采用PLC。PLC是一种专门为在工业环境下的应用而设计的专用计算机。其特点是抗干扰能力强,具有很高的可靠性高;各种接口配套齐全,功能完善,适用性强。采用PLC构成的控制系统的工作量小,维护方便,适合于野外使用,但价格昂贵。排队叫号系统作为一种生活中常用的小型系统,本身价值不高,更要求控制系统具有较好的性价比,经上述分析比较,确定采用单片机作为控制器。2).输入通道输入通道为按键。按键有独立式按键和行列式按键两种,因为所需按键数少,故确定使用独立式按键。3).控制输出通道4 硬件电路设计4.1 单片机及外围电路微控制器采用AT89C51。AT89C51是美国A

6、TMEL公司生产的与MCS-51系列单片机完全兼容的高性能CMOS 8位单片机,MCS-51系列单片机以其推出时间早、配套资源丰富、开发手段完善、性价比高等特点而得到了广泛的应用,是单片机的主流品种。(1)小巧灵活、成本低、易于产品化。能组装成各种智慧式测控设备及智能仪器仪表。(2)可靠性好,应用范围广。单片机芯片本身是按工业测控环境要求设计的,抗干扰性强,能适应各种恶劣的环境,这是其它机种无法比拟的。(3)易扩展,很容易构成各种规模的应用系统,控制功能强。单片机的逻辑控制功能很强,指令系统有各种控制功能指令,可以对逻辑功能比较复杂的系统进行控制。(4)具有通讯功能,可以很方便地实现多机和分布

7、式控制,形成控制网络和远程控制。AT89C51的内部资源主要包括:与MCS-51 系列完全兼容的高性能8位CPU;8K字节可重复编程的Flash存储器;256字节的SRAM;4个8位的并行口,共32条I/O口线;3个16位的定时器/计数器;6个中断源,2个中断优先级的中断系统;一个全双工的串行口;内部振荡器。AT89C51是一种带4K字节闪烁可编程可擦除只读存储(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除100次。从工作原理上讲,单片机就是一

8、种微型计算机,是一种“程序存储式”计算机。它是在一块硅片上集成了中央处理器(CPU)、随机内存(RAM)程序内存(ROM或EPROM)、定时/计数器以及各种I/O接口,也就是集成在一块芯片上的计算机。如图4-1所示:图4-1 单片机外围电路4.2 显示电路用LCD显示一个字符时比较复杂,因为一个字符由6x8或8x8点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8个字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但对于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列

9、号及每行的列数找出显示RAM对应的地址,设立游标,在此送上该字符对应的代码即可。多数的应用系统,都要配输出外设,LED显示器和LCD显示器,为了达到显示目的,我们选用了LCD1602显示器。在显示方面,我们选用LCD显示。背光亮度可调,可显示两行,每行16字符,不能显示汉字,内置含128个字符的ASCII字符集字库,并行接口编程容易,但是占用的I/O口线比较多,引脚功能介绍如下:VSS(引脚1):电源地。VDD(引脚2):电源正。VO(引脚3):对比度调节端RS(引脚4):数据/命令选择端(H/L)R/W(引脚5):读写选择端(H/L)E(引脚6):使能信号D0D7(引脚714)数据口BLA(

10、引脚15)背光电源正BLK(引脚16)背光电源负外接石英晶体(或陶瓷谐振器)及电容C1、C2接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但是电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF10pF,而如果使用陶瓷谐振器建议选用40pF10pF。使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。本系统采用内部方式

11、,晶振选用12MHz。1602显示屏连接单片机的P0口,电路连接图如下图4-2 连接显示屏P0图4.3 按键电路按键控制电路中,单片机的P1口分别连接3个按键式开关,P3.0顾客排号按键;P3.1窗口一叫号按键;P3.2窗口二叫号按键。按键电路图如下图4-3.图4-3 按键电路示意图4.4 蜂鸣器电路蜂鸣器的正极的一段连接到5V电源上面,另一端连接到三级管的集电极,三极管的基极有单片机的P1.5管脚来控制,当P1.5管脚为低时,输出高电平,三极管导通,这样蜂鸣器的电流形成回路,放出声音。用户可以通过程序控制P1.5管脚的置低和置高来使蜂鸣器发出声音和关闭。电路如图4-4:图4-4 蜂鸣器原理图

12、5 系统软件设计5.1 主程序设计图5-1 主程序流程图5.2显示处理程序程序具体流程图如图5-2:图5-2 程序具体流程图这几个是1602显示的必备程序,设置好1602后,只需通知写指令和写数据的程序处理,能够把需要显示的内容显示出来,是比较简单的显示设备。6 系统调试屏幕出将程序下载到单片机中调试成功。当客户达到服务大厅以后,到排队机上去取得自己的服务号时,排队机的LCD中文显示屏显示“您好欢迎排队办理”的字样,当顾客在排队叫号机上按下“取号”键后,排队机的LCD中文显示屏显示“请您耐心等待办理”的字样,排队机的LCD英文显示屏显示顾客所取得的号码是多少当工作人员按下“叫号”键时,排队机的

13、LCD中文显示屏显示“请到形影窗口办理”的字样,排队机的LCD英文显示屏显示当前服务的号码是多少,当客户或工作人员按下“查询排队人数”键时,排队机的LCD英文显示屏将显示现在排队等待的人数的总数(1) 程序编译启动KEIL,选择Project-New Project,在弹出的对话框中输入工程的名字,点击保存,选择ATMEL公司的AT89C51单片机。 点击FILE,在打开列表选项中选择新建,在打开的窗口内,按照设计的要求,根据程序流程图,编写程序,点击保存,保存文件类型为以.C为后缀的文件。文件名为与所建工程名相同。在本设计中需要加载两个程序主机子程序和从机子程序,输入新建程序。 在Sourc

14、e Group 1上点击右键,选择“Add Files to Group Source Group 1 ”,把所有的源文件加进来。 点击Project-Build target或者使用快捷键F7,编译工程。当“Build Output”窗口中提示*.c - 0 Error(s), 0 Warning(s).时,则程序编译成功。此时要生成.HEX文件,右击 Target 1,选择Options for targettarget 1或者按F7,选择Outputz中勾选Create .HEX File完成即可,在本设计中需要加载两个.HEX文件。 (2) 程序加载 在编辑环境中双击AT89C51,在

15、弹出的对话框中将编译生成可执行文件1.HEX加载进芯片中,设单片机的时钟工作频率为12MHZ。7 总结本文采用单片机软硬件设计,实现了一般排队叫号系统的基本功能,完成了单片机智能排队叫号系统的设计与实现,然而,与目前市场上的各种无线、多功能排队系统相比,拥有不少差距,但已是基本具备再升级特点的产品雏形。本论文首先简单介绍了排队叫号系统的基本概况,然后详细介绍了设计的基本原理,在相关理论的基础上,设计出相应的基于51单片机的多功能银行叫号系统,并进行了相关软件的编写和仿真。该系统经过反复调试仿真,能成功进行取号和叫号功能,并能提供中、英文显示提示,还具备语音提示功能,实验结果证明了该方案是可行而

16、且有效的。针对本论文,作者主要做了如下工作:1)、研究了排队系统中取号模块的设计方案;2)、研究了排队系统中叫号模块的设计方案;3)、同时还研究了LCD的中、英文显示提示以及语音提示的设计方案;4)、绘制了系统的电路原理图;5)、编写了系统软件;6)、进行了系统的仿真与结果分析。本课题下一步的工作是进一步完善和扩展该系统的功能,比如,使中文提示功能更完善,能与英文显示同步,使顾客更方便使用。另外可增加打印凭证的功能,使系统更完善。通过对本课题的研究,我不仅系统的掌握了单片机技术,同时对当今排队系统发展也有了深刻的认识。通过对系统电路原理图的绘制以及利用C语言编写程序的实践,也使得我能够把所学到

17、的知识应用到实践中去。由于作者水平有限,所以系统还有待进一步的改善,但这不影响整个设计思想的正确性。参考文献1 张福禄.基于89C52单片机的银行自动叫号系统J.青年科学(教师版),2013,34(4):294-295. 2 蓝厚荣. 单片机的PWM控制技术J. 工业控制计算机, 2010,23(3):97983 郭天祥. 新概念51单片机C语言教程M. 北京:电子工业出版社.2009.3423444 胡汉才. 单片机原理及其接口技术(第2版)M. 北京:清华大学出版社.2004.4977.5 胡全. 51单片机的数码管动态显示技术J . 信息技术,2009,13:25266 马云峰. 单片机

18、与数字温度传感器DS18B20的接口设计J. 计算机测量与控制,2007,10(4):278280附录1:总体电路原理图附录2:元器件清单序号名称型号规格数量1单片机STC89C5212数码管5010AS63三极管805064电阻5.1K75电阻10K26按键开关37LCD显示屏P3.9118蜂鸣器5v19电解电容10Uf/10v110晶振12MHZ111电容27PF212排阻10K113导线若干附录3:实物图附录4:源程序 程序#include #define uchar unsigned char #define uint unsigned int sbit rs=P26; sbit rw

19、=P25; sbit e=P27; sbit key1=P10; sbit key2=P11; sbit key3=P12; sbit sounder=P15; 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;

20、 /叫号的标志 int ClearNumFlag=0; /消号的标志 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

21、; 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_com(0x38); delay(100); LCD_write_com(0x38); delay(100); LCD_write_com(

22、0x38); LCD_write_com(0x08); /*显示关闭*/ LCD_write_com(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

23、(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); /* 叫号机 按一次一号键变量+1,最大为20 */ void QueueNumProcess() if(RankFlag=1) /判断叫号标志是否有效 if ( LengthFlag20) num_count+; rank_numberLengthFlag = num_count; LengthFlag+; /*

24、窗口消号处理函数 */ void ClearNumProcess() uint i; if (ClearNumFlag=1) /判断消号标志是否有效 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

25、)%10+0; LCD_clear(); LCD_write_com(0x80+02); delay(100); for(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 ; del

26、ay(100); delay(65535); /无人排队时屏幕自动清屏,计数归零 LCD_clear(); num_count=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(1) Kvalue=sweep_key(); /获取键值

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

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