单片机课程设计_排队叫号系统设计_第1页
单片机课程设计_排队叫号系统设计_第2页
单片机课程设计_排队叫号系统设计_第3页
单片机课程设计_排队叫号系统设计_第4页
单片机课程设计_排队叫号系统设计_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 课程设计单片机系统课 程 设 计成绩评定表设计课题 排队叫号系统设计 学院名称 : 电气工程学院 专业班级 : 学生姓名 : 学 号 : 指导教师 : 设计地点 : 设计时间 : 指导教师意见:成绩: 签名: 年 月 日单片机系统课 程 设 计 课程设计名称: 排队叫号系统设计 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计地点: 课程设计时间: 单片机系统 课程设计任务书学生姓名专业班级学号题 目课题性质工程设计课题来源选题指导教师主要内容(参数) 利用排队叫号系统,实现以下功能: 1、取票:顾客取一张号票吗,上面有号码、等候人数、时间等 2、休息等待:持

2、号票在休息区休息并留意显示屏音箱叫号 3、按键叫号:工作人员办完一笔业务后按下叫号器上的下一位按钮 4、前去办理:叫号时根据显示屏音箱的信息到指定位置享受一对一的服务。任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第7-8天:实验室调试。第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅不少于6000字。主要参考资料1 康万新.毕业设计指导及案例剖析应用电子技术方

3、向M.北京:清华大学出版社,2007.2 杨连国.医院智能排队叫号系统的设计与实现D.南京:东南大学,2006.3 胡汉才.单片机原理及其接口技术M.北京:清华大学出版社,2004.审查意见系(教研室)主任签字: 年 月 日 目    录 摘  要 .11、绪论 .2 1.1课题背景 .2 1.2课题的研究内容与目标 .22、系统需求分析与整体设计 .3 2.1系统的基本功能和工作原理 .3 2.1.1排队系统的基本功能 .3 2.1.2工作原理 

4、;.3 2.2排队系统工作流程 .4  2.2.1数据处理流程 .4 2.2.2客户工作流程 .5 2.2.3工作人员工作流程 .5 2.3系统整体设计 .5 2.3.1硬件概要设计 .5 2.3.2软件概要设计 .63、系统硬件设计 .7 3.1主要电路设计 .7 3.1.1主机部分电路 .7 3.1.2从机部分电路 .9 3.2功能部分电路设计 .9 3.2.1单片机最小系统电路 .9 3.2.2液晶显示电路 .12 3.2.3按键部分电路&

5、#160;.13 3.2.4蜂鸣器电路 .14 3.2.5 TXD串行发送和RXD串行接收电路 .154、系统软件设计 .15 4.1排队系统主从机软件设计 .15 4.1.1系统从机(取号终端)软件设计 .15 4.1.2系统主机(叫号终端)的设计 .16 4.2主要子程序流程图 .17 4.2.1蜂鸣器子程序 .17 4.2.2 LCD显示子程序 .17 4.2.3窗口消号处理子程序 .185、系统Proteus仿真实现 .19 5.1系统的硬件实现.19 5.2系统的软件实现.1

6、9 5.3系统集成与仿真.20结  论 .23参 考 文 献 .24附录A 主机程序清单 .25附录B 总体设计图 .30 摘 要排队叫号系统是针对银行、工商、税务、通讯、政府机构等部门的大厅工作流程设计的,是利用电脑的科学管理客户排队的系统,能够很好地解决客户在服务机构办理业务时所遇到的各种排队、拥挤和混乱现象,为客户办理业务带来莫大的方便和愉悦。本课题研究的是一款无人排队的排队叫号系统,它主要由系统主从机、键盘、显示电路、蜂鸣器电路等部分构成。系统利用AT89C51单片机进行控制,

7、通过串行通信方式传输处理数据;通过按键取号,在LCD1602上显示排队的号码以及当前正在等待的人数;通过按键叫号,在LCD1602上显示叫到的号码,由蜂鸣器发出声音提示客户。这种现代化的高科技产品彻底解决了银行、工商、税务、通讯、政府机构等部门的服务大厅普遍存在的站立等候、服务无序的问题,同时免除了令客户不舒服的站立式排队,深化完善了服务的质量。本系统采用AT89C51单片机进行控制,利用LCD1602显示,蜂鸣器鸣叫提示的人机交互界面,模拟排队管理系统,科学的处理各种排队情况,具有操作简便、控制灵活、显示清晰、制作成本低、性价比较高等特点。关键词:AT89C51;LCD1602;排队;取号;

8、叫号 1、 绪论 1.1课题背景 近年来,随着我国社会经济的持续快速发展,资金流动加快,服务行业的不断增加,加之我国政府正在努力构建和谐社会、服务型政府,大量的用户越来越频繁的光顾金融系统、电信、医疗、政府办事大厅等服务部门,时代的发展给这些服务型行业提出新的服务理念,也给这些行业和部门带来了巨大的压力。伴随着经济全球化的大浪潮,各行各业之间的竞争逐渐加剧、每个服务行业业务量在不断增长,业务种类也日益增多,排队等候已成为人们经常面临的实际问题。在银行、医院、电信、税务、工商等营业大厅里,前拥后挤、杂乱无章的排队等候,已是司空见惯的现象,很多窗口也因而秩序混乱,为保护用户隐私而设置的“1米线”也

9、形同虚设。一方面客户因为长时间的站立排队透支体力和精力而疲惫不堪,另一方面工作人员也为长时间遭受众多客户的围绕而不胜其烦,影响了服务质量。因此,改善服务质量、树立良好的企业形象,解决客户劳累的排队现象、创造人性化务环境已成为急需解决的问题。长时间的站立排队使用户疲惫和厌烦,用户渴望尊重隐私,期望“个性化服务”,只排一个队,只接受“一对一服务”。对服务部门来讲,使用排队系统是提高服务质量,提升服务形象,吸引顾客的有利措施。随着信息技术的突飞猛进,智能排队管理系统应运而生。智能排队管理系统是一种综合运用计算机、网络、多媒体、通信控制等技术的高新技术产品,此系统完全模拟人群的排队过程,实现了计算机系

10、统代替客户进行排队的过程。使用排队系统后,用户在取号终端上取票后,在休息区舒适地等待,听到呼叫后才去对应的窗口办理事务,服务人员面对一个安静的环境,面对一个客户,可以专心办理业务,提高了工作效率。本文以ATMEL公司的AT89C51单片机为核心,设计了一个简单的把客户与服务机构相结合的主从机排队叫号系统。模拟排队叫号管理,科学地处理各种排队情况,具有操作简便、控制灵活、显示清晰、制作成本低、性价比较高等特点。1.2课题的研究内容与目标智能排队叫号系统主要分为两个大部分:主机和从机。其中主机部分要实现由从机的排队按键决定已排队人数;在已知已排队人数的前提下由按键K1、K2、K3、K4分别代表4个

11、不同的窗口所叫到的号码;显示剩余的排队人数有WAITING键。主要由单片机最小系统、1602液晶显示、蜂鸣器、服务机构按键和ATMEL 公司的AT89C51本芯片构成。从机部分比较主机而言简单些,只要完成客户取号的功能。相对主机而言少了蜂鸣器和按键数。从机主要实现的是客户端的排队顺序记录,限制排队上限并传送信息给主机。2、 系统需求分析与整体设计 2.1 系统的基本功能和工作原理 2.1.1排队系统的基本功能 本设计主要利用单片机AT89C51芯片和1602液晶显示,采用按键来对显示器和蜂鸣器加以控制来完成一个主从机分别管理排队和叫号的系统。其主要功能是分别利用客户端使用一个从机排队,服务机构

12、使用一个主机来管理从机的排队信息。具体功能如下: (1)从机:客户通过按键依次加1完成取号,由1602液晶显示当前客户在排队中的位置。设定最大的排队人数是10人,当排队人数超过10时,显示排队已满,并停止排队。 (2)主机:设有4个办理业务的窗口,通过按键来完成叫号,由1602液晶显示“NO.* come to NO.* window,Please”,并配有蜂鸣器发出蜂鸣声“叮咚”加以提示;排队是否空或已满,空、满都在1602液晶上显示相关字样;在服务机构端可按键显示剩余排队人数等信息。 2.1.2工作原理 本系统选用我们常用单片机芯

13、片AT89C51和1602液晶,运用C语言程序设计编写较简单的延时和循环来实现。以AT89C51单片机为核心,由主从机的按键控制1602液晶显示和蜂鸣器提示音。系统采用如图2.1所示的主要硬件电路,运用串行通信原理通过按键给计数器脉冲,达到计数+1和销号-1的功能,并通过1602液晶显示,完成取号、叫号功能,同时叫号按键外接有源蜂鸣器实现提示客户的作用。31 图2.1 系统原理图 2.2 排队系统工作流程 2.2.1 数据处理流程如图2.2 所示,排队系统基本流程图以要处理的排队信息为主体,由客户在系统从机(取号终端)上按键后产生的一条记录开始,给出了数据处理的整个流程。 图2.2 数据处理流

14、程图 2.2.2 客户工作流程客户到达服务大厅后,先到排队系统从机(取号终端)上按键取号,得到自己的服务票号后,到相应的休息位置等候语音提示,同时关注相关显示屏幕和语音提示的信息,当被叫到自己的票号时,根据语音提示和显示屏幕的显示信息到相应窗口办理业务。 2.2.3 工作人员工作流程工作人员到达指定窗口后,即可看到叫号终端上显示的等待人数,待准备好服务客户时按下“呼叫”键开始工作,每服务完一个客户后就按“呼叫”键呼叫下一位顾客,当所呼叫的客户在规定时间内不到时可以按“呼叫”键再次呼叫客户。 2.3 系统整体设计 2.3.1 硬件概要设计 本智能排队叫号系统这一课题,其具体要求和功能完全模拟人群

15、排队过程,通过取号、排队等待、叫号服务等功能代替人们站队,实现机器自动代替人排队的过程。在大厅明显处放置一台主从机,顾客来到后按“取号”键,从机自动排号并在显示器上显示你在队列中的位置;顾客根据显示器上的序号与等待人数,可选择在大厅休息处休息或办别的事,当某窗口号显示顾客序号,同时音响提示音响起时,该顾客便可前往相应窗口接受“一对一”的服务。每位窗口工作人员使用蜂鸣器接受主机命令,可按键受理下一位序号客户业务,每服务完一位顾客后再按键,呼叫器上的号码自动跳到下一个序号受理序号,同时此号码显示在窗口显示屏上显示并用蜂鸣提示,以提示顾客前来接受服务。总体设计框图如图2.2 硬件设计总体框图所示。

16、图2.2 硬件设计总体框图综合以上情况,我们采用上位单片机(主机)实现综合管理和控制,将蜂鸣器模块、主要按键模块、显示器模块等集成在主机内。下位从机包括一个按键模块和窗口显示模块,这些设备相互独立,均由AT89C51 单片机芯片控制。通过按键K0 传送数据到主机,主机接受从机发送来的命令和数据作出相应的显示,操作简单并有1602 液晶显示显示、蜂鸣器与窗口显示器一一对应,使用时将用于设置窗口号的拨码开关拨到相应位置即可。用AT89C51 单片机芯片、独立按键叫号(顾客使用)、独立按键(代表四个窗口营业员控制端)、无源蜂鸣器(起到发出提示音的作用)、1602 液晶显示信息以及相应的辅助外围电路部

17、 2.3.2 软件概要设计 (1) 主机部分主机部分又称为叫号服务终端,主要实现接收从机数据并处理数据的功能。主要由以下几部分构成:串行通信部分:本部分的功能是接收从机发送的数据;捕获按键信息部分:本部分以中断的方式捕获按键信息,根据不同的按键来实现不同的功能;液晶显示部分:本部分通过给1602 液晶显示器写入指令和数据对要实现的功能进行显示;蜂鸣器部分:本部分通过给单片机相应接口送入高低电平并加以延时,使其实现发出“叮咚”声进行延时;处理数据部分:本部分主要接收到的数据进行处理,实现叫号、消号、统计等功能。(2) 从机部分从机部分又称取号终端,主要实现客户取号并将获取数据发送至主机。主要分为

18、以下几部分:串行通信部分:本部分是将用户获取的数据发送至主机;捕获按键信息部分:本部分通过按键使用户获得票号信息;液晶显示部分:本部分通过给1602 液晶显示器对用户获取的票号信息进行显示。3、 系统硬件设计 3.1 主要电路设计 3.1.1 主机部分电路如图3.1 所示,主机部分实现的功能是服务机构接收从取号终端发送的票号信息并对排队进行智能管理,主要包括:窗口叫号、液晶显示、蜂鸣器“叮咚”声提示、统计剩余排队人数、插队管理等。 图3.1 主机部分 3.1.2 从机部分电路如图3.2 所示,从机部分主要实现的功能是客户按键取号,通过按键K0 依次加1取号并在1602 液晶屏上显示客户抽取的票

19、号,上限为10 人,当取号达到上限后,通过液晶屏显示“The queue is full,please wait”的信息提示队列已满。当客户抽取票号后,从机会通过串行通信将票号信息发送至主机。 图3.2 从机部分 3.2 功能部分电路设计3.2.1 单片机最小系统电路单片机AT89C51 的最小系统电路。包括时钟振荡电路、复位电路两个部分。图3.3 即为AT89C51 单片机的最小系统结构图。 图3.3 单片机最小系统在AT89C51 中有一个构成内部震荡器的高增益反向放大器,引脚XTAL1 和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外接石英或陶瓷震荡器

20、一起构成自激震荡器震荡电路。外接石英晶体(或陶瓷震荡器)及电容C1、C2 接在放大器的震荡回路中构成并联震荡电路。对外接电容C1、C2 虽然没有非常严格的要求,但电容的大小会轻微影响震荡频率的高低、震荡工作的稳定性、起震的难易程序及温度稳定性,如果使用石英晶体,推荐使用30pF±10pF,而如果使用陶瓷谐振器建议选择40pF±10pF图3.4 即为本系统用到的外部震荡电路。 图3.4 外部震荡电路复位电路中采用手动按键产生复位信号,完成单片机启动,确定单片机的初始状态。单片机要复位,本质上是在其RESET 脚上保持一定时间的高电平,单片机检测到这个电平保持时间大于它要求的时

21、间就会自动复位。通常在单片机工作出现混乱或“死机”时,使用手动复位可实现单片机“重启”。它们是单片机进行正常工作所必需的部分。RST/VPD(9 脚)复位信号时钟电路工作后,在引脚上出现两个机器周期的高电平,芯片内部进行初始复位,复位后片内存储器的状态如表所示,P1P3 口输出高电平,初始值07H 写入堆栈指针SP、清0 程序计数器PC 和其余特殊功能寄存器,但始终不影响片内RAM 状态,只要该引脚保持高电平,89C51 将循环复位,RAT/VPD 从高电平到低电平单片机将从0 号单元开始执行程序,另外该引脚还具有复用功能,只要将VPD接+5V 备用电源,一旦Vcc 电位突然降低或断电,能保护

22、片内RAM 中的信息不丢失,恢复电后能正常工作。AT89C81 通常采用上电自动复位和开关手动复位,我们采用的是手动复位开关如图4.6 手动开关所示。手动开关未按下之前,电容正极处于家电状态,当按键按下去后,VCC 与GND 导通,电容放电,从而实现放电。图3.5 所示即为本系统的复位电路。 图3.5 复位电路 3.2.2 1602 液晶显示电路在数字测量仪表和各种数字系统中,都需要将数字量直观的显示出来,一方面供人们直接读取测量和运算的结果;另一方面用于监视数字系统的工作情况。因此,数字显示电路是许多数字设备不可缺少的部分。数字显示电路通常由译码器、驱动器和显示器等部分组成,如图3.6 显示

23、器原理所示。 图3.6 显示器原理在本次设计中主要由1602液晶显示器及排阻构成显示电路部分。P0 口是一个三态双向口,除了高、低态以外还有一个高阻态,如果不接上拉电阻,当端口处于高电平1 的状态下,实际上端口对地、对Vcc 电阻都是无穷大,即本质上是不确定状态,因此需要上拉电阻RESPACK-8。P2 口为一个内部上拉电阻的8 位双向I/O 口,P2 口缓冲器可接收,输出4 个TTL 门电流,当P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入,故不要再加上拉电阻。由1602 液晶的引脚功能可知其电路连接如图3.7 所示。在排号按键K0 操作的时候,其显示的是“Your No. is

24、 *!”并按键依次+1,当队列为空时会显示“Sorry,the queue isempty!”,当队列满时会显示“The queue is full,please wait”;在排号按键K1、K2、K3、K4 操作的时候,其显示的是“No.* come tono.*window,please!”;按键waiting 时,显示的是剩余队列人数;按键insert 时,其显示是“insert”。 图3.7 1602 液晶显示部分 3.2.3 按键部分电路由与门和开关按键组成,由其完成的功能设计硬件原理如图3.8 所示。按键接口都主要在P1 输入口处按键输入,运用按键中断的方式达到队列排号的取号和叫号

25、的功能。在取号操作由从机的K0 键实现。初始化内部程序,使计数从01 开始,当按键次数小于10 时,由循环加1,当取号等于10 时,停止排队。叫号主机的按键设计就要复杂一点,采用的中断要和与门一起完成。4 个独立的窗口叫号按键实时的取得输入排在最前的号码,当4 个窗口中任意一个窗口已经使用了该号码后,就进行销号处理。此时中断中的号码通过与门消号-1 和延时的效果。另外的功能按键与其设计原理基本一致。 图3.8 按键部分 3.2.4 蜂鸣器电路如图3.9 蜂鸣器部分所示。在按键K1、K2、K3、K4 操作的时候,其蜂鸣器会发出“叮咚”提示顾客的提示音。本设计运用延时程序控制接蜂鸣器的端口输出。

26、图3.9 蜂鸣器部分 3.2.5 TXD 串行发送和RXD 串行接收电路按照通信方式,可将数据传输线路分为单工、半双工、全双工三种通信方式。在单工方式下,通信线的一端连接发送器,另一端连接接收器,它们形成单向连接,只允许数据按照一个固定的方向传送;在半双工方式下,系统中的每个通信设备都由一个发送器和一个接收器组成,通过收发开关接到通信线路上,数据可以双向传输,但是不能同时在两个方向上同时传送,即每次只能一个站发送,另一个接收,其收发开关并不是实际的物理开关,而是由软件控制的电子开关;全双工通信系统的每一端都包含发送器和接收器,数据可以同时在两个方向上传送。尽管许多串行通信接口电路具有全双工通信

27、能力,在实际应用中,由于半双工方式简单、实用,因而大多数情况采用半双工方式。本设计的传送数据是在半双工方式下运行的,两AT89C51 芯片的串行发送和串行接收端口对应连接,如图3.10 所示。 图3.10 串行通信部分4 系统软件设计 4.1 排队系统主从机软件设计 4.1.1 系统从机(取号终端)软件设计取号终端的事件发生概率服从随机按先来先排的公平排队,由于只有一台专门的从机来负责,可以简单其流程,而在逻辑上服从队列的先入先出算法。通过单片机的中断K0 按键,当系统检测到按下时完成取号功能。队列的上限是10 人,当队列中排一人时,队列加1,直到满队。主要的流程如下图4.1 从机流程图所示。

28、 图4.1 从机流程图 4.1.2 系统主机(叫号终端)的设计主机初始化后,主机通过单片机的中断按键,当系统检测到按下时完成相应功能。(1) 接收从机发送来的信息,若队列为空显示“Hello!”;若队列未满,则在队列取号按键的时候调用叫号程序实现“* is left”的字样;若队列已满,则重复显示“11 is left”。(2) 如有窗口应答并命令时,运用延时程序控制蜂鸣器的运作,4 个独立的按键代表4 个窗口实现显示叫号两用功能。(3) 可以根据统计程序来统计此队列中还有多少人在排队等待中。总的流程是从机将最前顾客号码发送到该主机,主机接收后可以窗口显示并提示音呼叫、统计剩余人数、重置排队等

29、功能。主要的流程如下图 4.2 主机流程图所示。 图4.2 主机流程图 4.2 主要子程序流程图 4.2.1 蜂鸣器子程序蜂鸣器子程序的主要功能是运用延时函数实现不同频率的声音输出。程序中主要的结构流程如下图4.3 蜂鸣器子程序所示。 4.2.2 LCD 显示子程序LCD 显示子程序的主要通过控制1602 液晶使其对排队系统的各种提示信息进行显示。主要包括对1602 液晶写指令、写数据、清屏等部分。程序中主要的结构流程如下图4.4LCD 显示流程图所示。 图4.4 LCD 显示流程图 4.2.3 窗口消号处理子程序利用与门和循环左移的方式实现器消号的功能,其主要的流程结构如下图 4.5 窗口消

30、号处理子程序所示。 图4.5 窗口消号处理子程序5 系统Proteus 仿真实现 5.1 系统的硬件实现主要利用AT89C51 单片机芯片在Proteus 仿真平台上绘制原理图。其用到的元器件有:AND、AND-5、AT89C51、BUTTON、CAP、CRYSTAL、LM016L、RES、RESPACK-8、SOUNER。原理图绘制如附录C 总体设计图所示。 5.2 系统的软件实现原理图绘制完成后是程序的加载和编译。本设计在Keil uvision4 编译器中来实现程序的编译。使用汇编语言或C 语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX 可执行文件写入单片机内。KEIL u

31、VISION 是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51 架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC+的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。(1) 程序编译 启动 KEIL,选择Project->New Project,在弹出的对话框中输入工程的名字,点击保存;选择ATMEL 公司的AT89C51 单片机。 点击FILE,在打开列表选项中选择新建,在打开的窗口内,按照设计的要求,根据程序流程图,编写程序,点击保存,保存文件类型为以.C 为后缀的文件。文件名为与所建工程名相同。在本设计中

32、需要加载两个程序主机子程序和从机子程序,输入新建程序。 在Source 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,完成即可。在本设

33、计中需要加载两个.HEX 文件。(2) 程序加载在编辑环境中双击AT89C51,在弹出的对话框中将编译生成可执行文件1.HEX 加载进芯片中,设单片机的时钟工作频率为12MHZ。 5.3 系统集成与仿真当点击Proteus 软件的全速运行按钮时,软件提示没有错误,并得到如图5.1 所示的仿真图。我们可以再Proteus 中仿真人们在排队时的几种必要的过程:取号、叫号、蜂鸣、显示、统计。 图5.1 运行时结果图(1) 当点击全速运行按钮,将出现如下图5.2 所示仿真结果,表示的是判断队列为空时主从机运行的结果,没有人进行排队。图5.2 运行时结果图(2) 当有人进行排队时,按K0 键中的排队输入

34、号码,即是现实中排在队伍中等待的模拟部分,在此过程中你的顺序已经在队列中确定,此时你可以节省时间从事另外的某些事情,最大排队数是10。当排队数达到最大时,从机部分显示的是“The queue isfull ,please waiting!”,(这队列已经满了,请等一等)而主机部分的号码显示为“* isleft”。如图5.3 所示。图5.3 按K0 键2 次时的结果(3) 当某窗口需要叫号时,可以按K1、K2、K3、K4 键代表不同的独立窗口并有提示音,即相当于模拟人排在队伍中等待窗口内的呼叫。由按键中断方式实现LCD 数码显示功能,由延时程序控制蜂鸣器的提示音。达到双重保险效果:看显示器的“N

35、o.(排队号码)come to No(按键代表的窗口)window,Please”,(请几号到几号窗口来),同时有“叮咚”加以提示客户,这样确保不会因不留意二错过机会。如图5.4 所示。图5.4 按K1 键2 次时的结果(4) 当你在窗口前想要了解你所在的队伍中还剩余多少人要办理业务时,即在人们排队时焦急等待的在计算何时轮到自己时的现象。可按waiting 键,运用窗口消号处理和键盘中断来处理此项功能。即为显示还有多少人在排队等待中,其LCD 数码显示为共办理了几人业务。 如图5.5 所示为排队6 人,1 号窗口已经办理了前2 人的业务,按waiting 键时,LCD 显示的是“04 is l

36、eft”(剩余4 人)。图5.5 按waiting 键的结果结论本设计论文系统描述了应用ATMEL 公司的AT89C51 单片机及其外围电路实现排队叫号系统。通过这次的毕业设计,使我对单片机有了更深的认识,从理论和实践上都得到了很大的提高,所以这次任务的完成是我学到了很多东西。首先,丰富了自己的知识面,学到了以前没能学通的东西,具体了解了怎样去完成一个电路的设计:从流程图、硬件电路图、软件设计到编译仿真一整套东西。本文讨论了排队按键模块,语音提示呼叫模块,显示模块等主要功能模块。期中重点和难点是实现排队的+1 程序、叫号按键-1程序与相应的显示和按键中断设计。从基本要实现的方案制定,再到硬件电

37、路的选择,到制作原理电路,最后进行程序调试的4 个阶段的设计。从这次设计中,学到了单片机AT89C51 的内部结构及其工作原理,了解了时钟电路和控制电路的工作原理,还有数码管的工作原理,巩固了C 语言的使用能力,提高了自己动手的能力,学到了很多经验,并且提高了自己分析问题的能力和创新能力,得到了理论联系实际的机会,做出了成果。使自己在硬件设计方面树立了信心,为以后从事这方面的工作打好了基础,这也是这次毕业设计的最大收获。通过本次设计,使我学到了许多书本上无法学到的知识,也使我深刻体会到单片机技术应用领域的广泛。不仅让我对学过的单片机知识有了很多的巩固,同时也对单片机这一门课程产生了更大的兴趣。

38、本设计涉及到单片机原理及应用、模拟电子技术等学科。让我对专业知识有了更深的理解。我相信此次设计的制作过程将在我以后的工作和生活中影响良多。参 考 文 献1 康万新.毕业设计指导及案例剖析应用电子技术方向M.北京:清华大学出版社,2007.2 杨连国.医院智能排队叫号系统的设计与实现D.南京:东南大学,2006.3 胡汉才.单片机原理及其接口技术M.北京:清华大学出版社,2004.4 郭天祥.新概念51 单片机C 语言教程M.北京:电子工业出版社,2009.5 阎石.数字电子技术M.北京:高等教育出版社,1998.6 滕丽丽.基于单片机的银行排队系统的设计J.信息科技,2010,11(2):24

39、6-247.7 史毓达,曲豪.嵌入式排队系统叫号器终端设计与实现J.湖北第二师苑学院学报,2009,26(8):94-95.8 彭伟.单片机C 语言程序设计实训100 例:基于8051+Proteus 仿真M.北京:电子工业出版社,2009.9 郑锋,王巧芝,陈绘兵等.51 单片机应用系统典型模块开发大全M.北京:中国铁道出版社,2010.10 张靖武,周灵彬.单片机系统的PROTEUS 设计与仿真M.北京:电子工业出版社,2007.附录A 主机程序清单# include <stdio.h> # include <stdlib

40、.h> typedef char DataType; # include "CallSystem.h" int main(void)  int i=0,countx=0,j=0; int a; char username2020;     LQueue lqueue;     DataType rtur

41、n; QueueInitiate(&lqueue);     QueueNotEmpty(lqueue);     while(1)            system("cls");          menu();   

42、0;     printf("请选择相应功能:");         scanf("%d",&a);          fflush(stdin);          switch(a)     

43、60;            case 1: /*排队叫号*/                           printf("请输入您的账号:");    

44、0;         scanf("%s",usernamei);              i+;              countx+;       if(0=QueueA

45、ppend(&lqueue,i)                       printf("内存不足,警告!n");        return;            

46、                   printf("您的序号是%03d   您前面有%d个人n",i,countx-1);               fflush(stdin);  printf("n操作完成,是否继

47、续(N退出,任意键继续)n"); scanf("%c",&rturn);               if(rturn='N')                 return;      

48、;                     break;                   case 2: /*业务处理*/       

49、        int temp=0;               if(0=countx)                         

50、0;     printf("无人排队,警告!n");                return;                         

51、     QueueDelete(&lqueue,&temp);         printf("请%03d号用户来前台办理业务n",temp);               countx-;         &#

52、160;       fflush(stdin);    printf("n操作完成,是否继续(N退出,任意键继续)n");                scanf("%c",&rturn);          

53、;     if(rturn='N')                 return;                   break; case 3: /*队列信息浏览*/

54、                    LQNode * p;                int temp;     p=lqueue.front;  &#

55、160;    printf("还有%d个人的业务未处理:n",countx);              while(p!=NULL)                        

56、60;        temp=p->data;                              printf("%03d:",temp);     &#

57、160;          p=p->next;                printf("%sn",usernamej);                j+; 

58、60;                   fflush(stdin);   printf("n操作完成,是否继续(N退出,任意键继续)n");                 scanf("%c",&

59、rturn);                 if(rturn='N')   return;                          

60、; break; case 4:  /*退出*/                           Destroy(lqueue);              

61、;   return;                  break;              default:  break;           

62、0;        封装的头文件: typedef struct qnode         int data;  struct qnode * next; LQNode; typedef struct      LQNode * front;      LQNode * rear; LQueue;void menu() 

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论