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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

根据51单片机排队叫号系统设计.docx

1、根据51单片机排队叫号系统设计单片机系统课 程 设 计成绩评定表设计课题 排队叫号系统设计 学院名称 : 专业班级 : 学生姓名 : 学 号 : 指导教师 : 设计地点 : 31-505 设计时间 : 2012-12-172012-12-28 指导教师意见:成绩: 签名: 年 月 日 1 引言近年来,随着科学技术的迅猛发展和人们生活水平的日益提高,各行各业特别是服务行业的竞争也逐渐激烈。服务质量作为体现企业的公众形象、服务理念、管理水平的标准已越来越受到服务和被服务双方所关注,而营业窗口正是代表银行、医院、电信、税务、工商等企业服务质量的重要场所。 随着服务行业业务量的增长及业务种类的增加,排

2、队等候已成为人们面临的实际问题。长期以来,人们在银行、医院、电信、税务、工商等营业大厅里前拥后挤、杂乱无章地排队等候, 有时一站就是一个多小时,这已是司空见惯的现象,极大地影响了服务质量。员工坐着服务、客户站着等待的服务方式与“用户就是上帝” 的服务宗旨完全背道而驰!改善服务质量、树立良好形象,解决劳累的排队现象、创造人性化服务环境已成为急需解决的问题。设计一套排队抽号的服务系统,可以很好的解决因排队引起的种种问题,排队系统应运而生。 此系统完全模拟人群排队过程,通过取票进队、排队等待、叫号服务等功能,诠释了人性化的服务理念,舒缓顾客等待的急噪情绪,使人们在等候服务的过程中拥有一个相对自由的空

3、间,是科技以人为本的真正体现。 本文基于单片机的排队叫号系统,由客户端和主机终端组成,有LCD大屏幕显示信息,让客户知道自己的队号,并有叫号提示音提醒客户,方便快捷,可以满足日常的服务行业排队叫号,所以非常有意义。2总体方案设计2.1硬件组成本系统由按键输入系统、单片机系统、屏幕显示系统及叫号提示音系统组成,系统分为两个部分:抽号部分和叫号部分,其控制核心为AT89C51单片机,选用此单片机编程简单,开发工具便于使用,能很好地满足排队叫号的控制数据处理。抽号部分和叫号部分采用一块LCD液晶显示器,这样显示数据直观,便于顾客理解,抽号部分输入只需使用一个抽号键即可,便于客户操作,叫号部分包括两个

4、叫号键,系统采用自动清零,无需人工操作。2.2 方案论证1.控制器控制器的选择是确定整个系统硬件方案的关键,它关系到其它几个部分方案的确定,对于排队叫号系统,控制器的可选方案有以下两种:(1)采用单片机。单片机采用半导体工艺,使其具有很多显著的优点和特点,因而能在各个领域都得到迅猛的发展,它主要有如下特点:1有优异的性能价格比。2集成度甚高,体积小,有很高的可靠性,可以在恶劣环境下工作。3控制能力强。4低功耗,低电压,便与生产便携式产品。5扩展容易。 (2)采用PLC。PLC是一种专门为在工业环境下的应用而设计的专用计算机。其特点是抗干扰能力强,具有很高的可靠性高;各种接口配套齐全,功能完善,

5、适用性强。采用PLC构成的控制系统的工作量小,维护方便,适合于野外使用,但价格昂贵21。排队叫号系统作为一种生活中常用的小型系统,本身价值不高,更要求控制系统具有较好的性价比,经上述分析比较,确定采用单片机作为控制器。2.输入通道输入通道为按键。按键有独立式按键和行列式按键两种,因为所需按键数少,故确定使用独立式按键。3.控制输出通道排队叫号系统的执行机构是1602显示器和蜂鸣器使得系统输出简单明了。 2.3总体方案系统的组成如图2.3。设备上电后,显示器屏亮,无信息显示。当客户按键后,没按一下,队伍加一,显示器显示客户队伍号:排满20位后,再按取号键,屏幕显示“队伍满”。当客服叫号时,队伍减

6、1,程序进行信息处理,在屏幕上显示“几号客户到几号窗口”,同时进行声音提示;当队伍空时,显示“队伍空”,显示器屏幕清空,储存队伍号码归零处理。图2.3 总体方案框图3 硬件电路设计3.1 单片机及外围电路微控制器采用AT89C51。AT89C51是美国ATMEL公司生产的与MCS-51系列单片机完全兼容的高性能CMOS 8位单片机,MCS-51系列单片机以其推出时间早、配套资源丰富、开发手段完善、性价比高等特点而得到了广泛的应用,是单片机的主流品种。 AT89C51的内部资源主要包括: 与MCS-51 系列完全兼容的高性能8位CPU; 8K字节可重复编程的Flash存储器; 256字节的SRA

7、M; 4个8位的并行口,共32条I/O口线; 3个16位的定时器/计数器; 6个中断源,2个中断优先级的中断系统; 一个全双工的串行口; 内部振荡器。 AT89C51的外围电路主要包括时钟电路、复位电路、存储器扩展电路等,为了提高系统的可靠性,应设计看门狗(Watch-dog Timer)电路。如图3.1所示。图3.1 单片机外围电路3.2显示电路多数的应用系统,都要配输出外设,LED显示器和LCD显示器,为了达到显示目的,我们选用了LCD1602显示器。在显示方面,我们选用LCD显示。背光亮度可调,可显示两行,每行16字符,不能显示汉字,内置含128个字符的ASCII字符集字库,并行接口编程

8、容易,但是占用的I/O口线比较多,引脚功能介绍如下:VSS(引脚1):电源地。VDD(引脚2):电源正。VO(引脚3):对比度调节端RS(引脚4):数据/命令选择端(H/L)R/W(引脚5):读写选择端(H/L)E(引脚6):使能信号D0D7(引脚714)数据口BLA(引脚15)背光电源正BLK(引脚16)背光电源负1602显示屏连接单片机的P0口,电路连接图如下 图3.33.3按键电路按键控制电路中,单片机的P1口分别连接3个按键式开关,P3.0顾客排号按键;P3.1窗口一叫号按键;P3.2窗口二叫号按键。按键电路图如下图3.3图3.33.4蜂鸣器电路蜂鸣器的正极的一段连接到5V电源上面,另

9、一端连接到三级管的集电极,三极管的基极有单片机的P1.5管脚来控制,当P1.5管脚为低时,输出高电平,三极管导通,这样蜂鸣器的电流形成回路,放出声音。用户可以通过程序控制P1.5管脚的置低和置高来使蜂鸣器发出声音和关闭。电路如下图 4 系统软件设计4.1 主程序设计主程序见附录B图4.1 主程序流程图4.2子程序液晶LCD1602显示处理程序液晶LCD1602显示处理程序/*LCD1602*显示屏命令写入函数*/void LCD_write_com(uchar com) e=0; rs=0; rw=0; P0= com; delay(1000); e=1; delay(1000); e=0;

10、/* 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_co

11、m(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后,只需通知写指令和写数据的程序处理,能够把需要显示的内容显示出来,是比较简单的显示设备。4.3子程序按键

12、检测程序 /*获取键值函数*/ 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); 本设计只有两个叫号窗口,相对来说比较简单,通过按键检测程序来分辨是哪个按键按下了。窗口依据实际需要可以增加,程序有很大的扩展性。5 系统调试与总结5.1调试屏幕出将程序下载

13、到单片机中调试成功。按下客户端取号按键现号码如上图。按下服务叫号键出现提示如下图5.2 总结此系统采用LCD1602显示,做起来比较简单,其中只设立了两个处理窗口,虽然较少,不过可以根据需要自行增加,具有较好扩展功能。设计采用声音提示,由于能力有限,不会编写音乐程序,就用了最简单的蜂鸣器声音。从此次设计中,我学到很多,对没用掌握的知识有了一定的理解。参考文献1 单片机微型计算机原理、应用、及接口技术(第二版)。张迎新 等编著。国防科技大学出版社出版。2 单片机在服务叫号管理系统中的应用。唐海波 于宏图 李继平。微型机与应用。3 MCS-51单片机应用设计。张毅刚。哈尔滨工业大学出版社。4 MC

14、S51单片机原理与应用(C语言版)。机械工业出版社。5 一种基于单片机的排队叫号系统设计。欧志刚。计算机光盘软件与应用。附录A:系统原理图附录B 程序#include #define uchar unsigned char #define uint unsigned int sbit rs=P26; sbit rw=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

15、; 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; /消号的标志 uint LengthFlag=0; /队列长度 叫一次号时+1,消一次号时-1 /*延时函数*/ void delay(uint n) while (n-); /* LCD1602 *显示屏命令写入函数* */

16、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; delay(1000); e=0; /* LCD1602 *显示屏清空显示* */ void LCD_clear(void) LCD_write_com(0x01); delay(1000); /* LCD160

17、2 显示屏初始化函数 */ 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_com(0x01); /*显示清屏*/ LCD_write_com(0x06); /*显示光标移动设置*/ delay(100); LCD_write_com(0x0C); /*显示开及光标

18、设置*/ /*简单的蜂鸣器提示音*/ 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(1000); if(key2=0) jianzhi=2; if(key3=0) jianzhi=3; ClearNumFlag=1; return (jianzhi); /

19、* 叫号机 按一次一号键变量+1,最大为20 */ void QueueNumProcess() if(RankFlag=1) /判断叫号标志是否有效 if ( LengthFlag20) num_count+; rank_numberLengthFlag = num_count; LengthFlag+; /* 窗口消号处理函数 */ void ClearNumProcess() uint i; if (ClearNumFlag=1) /判断消号标志是否有效 num=rank_number0; /把消的号赋给全局变量num for(i=0;i=20 ) LCD_clear(); LCD_wr

20、ite_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(i=0;i15;i+) LCD_write_data(prompt1i); /Your No.is 00!; delay(100); RankFlag=0; if

21、(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_count=0; else ClearNumProcess(); /消号处理,营业员操作 sound(); prompt23=num/10+0; prompt24=nu

22、m%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(); /获取键值 if (RankFlag=1 | ClearNumFlag=1)/判断叫号标志和消号标志是否有效 CheckButtonProcess(Kvalue); delay(200); RankFlag=0; /使叫号标志无效 ClearNumFlag=0; /使消号标志无效 Kvalue=0; /键值清0

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

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