银行自动叫号专科设计说明书_第1页
银行自动叫号专科设计说明书_第2页
银行自动叫号专科设计说明书_第3页
银行自动叫号专科设计说明书_第4页
银行自动叫号专科设计说明书_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

扬州市职业大学汽车与电气工程系毕业设计说明书(论文)作者:王国庆学号:0902030228教研室:电气自动化教研室专业:电气自动化题目:银行自动取号叫号系统指导者:许翔讲师评阅者:2021年5月

扬州市职业大学汽车与电气工程系毕业设计〔论文〕评语学生姓名:王国庆班级、学号:09电气〔2〕班0902030228题目:银行自动取号叫号系统综合成绩:指导者评语:指导者(签字):2021年4月28日

毕业设计〔论文〕评语评阅者评语:评阅者(签字):年月日辩论委员会〔小组〕评语:辩论委员会负责人(签字):2021年5月20日毕业设计说明书〔论文〕中文摘要近年来,随着我国社会经济的持续快速开展,资金流动加快,效劳行业的不断增加,加之我国政府正在努力构建和谐社会、效劳型政府,大量的用户越来越频繁的光临金融系统、电信、医疗、政府办事大厅等效劳部门,时代的开展给这些效劳型行业提出新的效劳理念,也给这些行业和部门带来了巨大的压力。伴随着经济全球化的大浪潮,各行各业之间的竞争逐渐加剧、每个效劳行业业务量在不断增长,业务种类也日益增多,排队等候已成为人们经常面临的实际问题。在银行、医院、电信、税务、工商等营业大厅里,前拥后挤、杂乱无章的排队等候,己是司空见惯的现象,很多窗口也因而秩序混乱,为保护用户隐私而设置的“l米线〞也形同虚设。一方面客户因为长时间的站立排队透支体力和精力而疲惫不堪,另一方面工作人员也为长时间遭受众多客户的围绕而不胜其烦,影响了效劳质量。因此,改善效劳质量、树立良好的企业形象,解决客户劳累的排队现象、创造人性化务环境已成为急需解决的问题。我国人口众多,办事排队一直是一个令人头痛的问题.现今,随着效劳行业业务种类的细化和增加,效劳内容和工作量加大,这个问题变得尤为突出.嘈杂、无序、不公平、不合理、低效等一直是排队中困扰顾客和效劳人员的问题.电子排队管理系统很好地解决了这些问题,可以广泛地应用于银行、医院等窗口效劳单位.银行自动叫号系统就是电子排队管理统的一种,是针对银行效劳窗口的特点而设计的.这里以ATMEL公司的AT89C52单片机为核心,设计了一个简单的把客户与效劳机构相结合的主从机排队叫号系统。模拟排队叫号管理,科学地处理各种排队情况,操作简便,控制灵活,显示清晰,制作本钱低,性价比拟高。关键字效率单片机〔AT89C52〕自动取号叫号目录144221绪论 113534课题来源 127578国内外现状及其水平 1225881.3课题研究内容 223585 3159082总体方案论证与设计 3125953银行自动取号叫号系统硬件设计 597753.1单片机〔CPU〕电路设计 5205933.1.1AT89S52单片机 56909 6288181、时钟电路 7237062、复位电路 8278683.3显示电路(LED)设计 9120213.3.1LED数码管 962 10135873.4叫号模块电路设计 1136343.4.1叫号电路 1117713.4.2工作原理 1140154系统软件设计 12243314.1主程序设计 12262274.2子程序设计 133896 1362244.2.2按键检测判断子程序 14175284.2.3叫号子程序 17119895系统软硬件调试 1913904TC"1.1目测"\f 19315265.2硬件调试 19263735.3软件的调试 19204065.4考前须知TC"1.2考前须知"\f 2015972结束语 2112038参考文献 2216969致谢 2318295附录一源程序 2428605附录二原理图 371绪论课题来源随着科技不断的进步,经济不断的开展,经济全球化的趋势下各个行业欣欣向荣蓬勃向上迎来了前所未有的开展契机。效劳行业在此潮流下显得也越来越贴近我们的日常生活。效劳业在赢得新的开展契机的同时也面临着不小的挑战。银行、医院、电信、税务、工商等营业大厅里,排队难一度成为各个效劳行业最头疼的问题。长时间的站立排队使用户疲惫和厌烦,用户渴望尊重隐私,期望“个性化效劳〞,只排一个队,只接受“一对一效劳〞。对效劳部门来讲,如何处理和解决这一问题显得尤为的重要,因为这不仅是设计效劳的质量而且还会一定程度上决定了企业的整体的形象,乃至会影响整个企业在开展大潮中的竞争力生死存亡。而排队机的出现可以说给那些一直以来被排队问题困扰的效劳行业带来了希望。排队机的使用是提高效劳质量,提升效劳形象,吸引顾客的有利措施。随着信息技术的突飞猛进,智能排队管理系统应运而生。智能排队管理系统是一种综合运用计算机技术、网络技术、多媒体技术、通信控制技术等的高新技术产品,此系统完全模拟人群的排队过程,实现了计算机系统代替客户进行排队的过程曰。使用排队系统后,用户在票号机上取票后,在休息区舒适地等待,听到呼叫后才去对应的窗口办理事务,效劳人员面对一个安静的环境,面对一个客户,可以专心办理业务,提高了工作效率。随着技术的日趋成熟,智能排队机已经在各个银行、医院、电信、税务、工商等营大厅里得到了应用,也相比照拟普及了。也同时越来越来成为我们日常生活不可或缺的一局部。智能排队机在提高了效劳质量的同时,整个效劳业的整体形象也随之提升,整个效劳行业乃至整个社会也呈现出来井然有序,和谐的气氛。本课题主要是针对银行这一与现代生活息息相关的效劳行业的排队叫号系统进行深入的研究与探索。国内外现状及其水平排队技术的应用是表达了科技以人为本的需要,是全社会文明开展的产物,也是人类文明开展的必然趋势。排队技术最早出现在欧美等西方国家,开始的排队系统仅限于工作人员的人工呼叫,随着现代技术的不断开展特别是计算机技术的应用,使排队技术的开展也突飞猛进,目前己具备多种功能如乐音提示、语音合成呼叫(voice一calling);呼叫终端(operationterminal);以柜台显示(counterdisplay)和综合显示(MainDisplay)为主的各种数码管显示、LCD显示、LED显示、PDP显示…;号码发放也由取号机自动打印(TicketDispenser)到触摸屏查询取号、按键取号、特殊识别取号等等。排队技术产品的出现彻底改变了以前许多需要长时间排队场所的无序模式,也被越来越多的行业所采用,以提高管理水平和自身竞争力。在我国,排队产品概念的引进时间也不长,大批国人走出国门,将很多优秀和先进的效劳方法、理念带回国内。“排队技术〞也随之被引进国内,并在我国特有的高速经济开展的环境里得到迅速的普及和应用。客户对排队系统的使用也逐渐习惯,并乐于接受131。我国的排队技术产品也经由1998年--2001年的起步期、2001--2003年的开展期、到现阶段的高速开展期,市场也逐渐成熟,逐渐生产出多种适应我国国清的排队系统产品,并具有应用领域广、工作流程复杂、综合技术要求高的等特点。随着计算机技术与通信技术、电子技术等飞速开展,智能排队系统的功能与结构也日益完善和丰富。目前,市场上的智能排队系统除了已经实现最根本的功能,如自动根据客户选择的效劳类型打印票号、通过计算机自动分流排队、呼叫与保存重呼等,还开展了许多增值功能,同时具有延伸和扩展功能,其效劳功能也由单纯的优化效劳环境和客户秩序管理,渐渐渗透到使用者的效劳系统管理之中,成为使用机构行之有效的辅助管理与效劳手段,比方可与相关的行业软件及数据库连接,便于对各个窗口效劳情况进行统计管理。在排队系统的组网形式方面,随着计算机技术与通信技术的飞速开展,智能排队管理系统己在有线方式的根底_L开展到了无线排队系统,无线方式较之有线方式具有不受环境影响、安装调试方便、系统稳定可靠等优点,缺点是本钱较高。我国是一个人口大国,随着经济开展速度的加快,大量的用户越来越多的光临金融、电信、医疗、政府办事大厅等场所,使得窗口效劳的快捷和舒适越来越被人们所重视。随着精神文明与物质文明的进一步提高,电子排队技术必将为更多的用户所接受,并由日常工作中的辅助设备逐渐成为必备的设施之一,人们期待低本钱、功能完善、可靠性高的排队管理系统来使工作和生活变得轻松、和谐。1.3课题研究内容本设计的主要任务是分别利用客户端使用取号机进行排队,效劳机构使用一个叫号来管理取号机的排队信息。能按显示出排队的顺序;分别有2个办理业务的窗口;按键控制芯片显示叫到的人排队号码,并配有蜂鸣器发出声音加以提示;在效劳机构端可按键显示剩余排队人数等信息。(1)设计任务主要利用单片机AT89C52芯片和七段显示数码管显示器,来完成一个取号机和叫号机分别管理排队和叫号的系统。具体要求如下:①叫号机:通过按键来完成叫号的窗口,由数码管显示下一个客户的编号,发出蜂鸣声“叮咚〞用于提示客户,并可在另外一个显示模块显示排队剩余人数。②取号机:通过按键依次加1完成取号,由数码管显示当前客户在排队中的位置。(2)设计要求采用按键来对显示器和蜂鸣器的控制;完成取号、叫号功能,同时叫号按键外接有源蜂鸣器实现提示客户的作用对于本课题的研究应该是对于三年大学专业知识一个总结也是综合能力的一种表达,对自己各个方面的知识进行全面的检测和评定。在现有专业知识和处理问题能力的根底上使理论能够和更好的切合实际,使能够让我在所学的课程〔此课题涉及的课程指:微型计算机原理及接口技术课程、单片机课程〕的根底上实现对实际问题的分析、研究的能力和具有初步解决此类问题的能力。此次课题研究也为我提供了一次非常难得的时机来稳固自己自己的专业知识,通过自己的努力去独立完成一项课题研究的任务。希望通过本课题的研究与学习,能够发现自己的缺乏之处并能够及时的弥补,从而丰富完善自己的知识体系,能够对现代生活中的智能化过程控制技术有着进一步的了解和熟悉,积累实践中的经验并为今后从事工业控制领域的相关工作提供帮助。由于当今经济快速的开展,加之各行各业的信息化、智能化建设越来越普及,快节奏的开展使得整个社会对各个行业的办事效率的要求越来越高,尤其是效劳性行业,既要满足被效劳人的种种效劳需求,又要提高行业效劳的质量,提高效劳的效率,例如医院门诊、银行业务等。随着生活质量的不断提高,人们对效劳机构的要求不仅仅停留在满足业务上的需要上,而且还要求尽量减少人们的等待时间,而效劳机构本身由于竞争的需要,也要求提高其办事效率和效劳的形象。而这些窗口效劳的排队现象在所难免,为了在排队时减少办事人的办事时间,为人们创造一个良好的环境,排队系统应运而生。2总体方案论证与设计本设计包括硬件和软件设计两个局部。模块划分为取号模块、效劳台模块、数码管显示模块、叫号模块。电路结构可划分为:单片机控制电路、七段显示数码管显示电路及叫号电路组成。用户终端完成信息输入、处理、数据传送、功能设定等功能。就此设计的核心模块来说,单片机就是设计的中心单元,所以此系统也是单片机应用系统的一种应用。单片机应用系统也是有硬件和软件组成。硬件包括单片机、输入/输出设备、以及外围应用电路等组成的系统,软件是各种工作程序的总称。单片机应用系统的研制过程包括总体设计、硬件设计、软件设计等几个阶段。从设计的要求来分析该设计须包含如下结构:最小系统电路、取号模块、单片机、复位电路及相关的显示叫号软件组成;它们之间的构成框图如图总体设计框图所示:显示模块〔七段显示数码管〕显示模块〔七段显示数码管〕蜂鸣器输出P0口AT89C52单片机P1口P2口最小系统取号按键输入叫号按键输入构成框架图图2-1总框架方案比拟排队技术在国内外都已经到达相当智能的水平。智能排队叫号系统有我了解的根本三种方案:都是基于ATMEL公司生产51系列单片机芯片,第一种是基于AT89C52单片机为核心由主从机的按键控制、数码显示和蜂鸣器提示音综合设计;第二种是基于AT89C52单片机为核心通过STC89C52单片机直接扩展的独立键盘,完成排队取号流程〔本系统取号、叫号都是直接利用系统的中断0按键控制〕,单片机控制数码管显示排队等待情况,控制蜂鸣器发声完成叫号功能。方案一系统运用串行通信原理通过按键给计数器脉冲,到达计数+1和销号-1的功能,并通过译码器驱动数码管显示,完成取号、叫号功能,同时叫号按键外接有源蜂鸣器实现提示客户的作用。在选用我们常用单片机芯片AT89C51和数码显示管,运用较简单的延时和循环,这样设计可以使客户的视觉和听觉都得到相应的信息提示。方案二系统通过STC89C52单片机直接扩展的独立键盘,完成排队取号流程〔本系统取号、叫号都是直接利用系统的中断0按键控制〕,单片机控制数码管显示排队等待情况,控制蜂鸣器发声完成叫号功能。系统采用STC89C52单片机完成整个系统的控制流程。从机通过单片机的中断0按键,当系统检测到按下时完成取号功能。主机同样通过单片机的中断0按键,当系统检测到按下时完成叫号功能。运用的芯片和程序相对较为复杂,不易实现。方案三系统采用通过按键给计数器脉冲,并通过译码器驱动数码管显示,完成取号、叫号功能,同时叫号按键外接有源蜂鸣器实现提示客户的作用。方案一通过综合使用计数器、译码器、数码管为一体的数码显示管。可以较好的实现排队叫号的根本功能,而且在客户端和效劳机构两方面都能很方便的使用和控制,利用串行通信原理,由简单的51单片机芯片实现,到达复杂问题简单化的目的,是设计理论的趋势;方案二的电路设计相对而言复杂,可操作性不强,故不采用;方案三通过综合使用计数器、译码器,数码管,可以较好的实现排队叫号的根本功能,但需要较多的硬件电路,实现复杂。综合各条件从简单实现考虑,我选择方案一。3银行自动取号叫号系统硬件设计3.1单片机〔CPU〕电路设计3.1.1AT89S52单片机单片机即单片微型计算机,是将计算机主机(CPU、内存和I/O接口)集成在一小块硅片上的微型机。一片AT89S52单片机芯片内包含一个8位CPU、振荡器和时钟电路、至少128字节的内部数据存储器,可寻址外部程序存储器和数据存储器个64k字节,21个特殊功能存放器,4个并行I/O接口,2个16位定时/计数器,至少5个中断源,提供两级中断优先级,可实现两级中断效劳程序嵌套。具有有位寻址功能,有较强的布尔处理能力。各功能单元〔包括IO端口和定时器/计数器等〕都由特殊功能存放器〔SFR〕集中管理。AT89S52单片机内部结构框图如图3-1所示。图3-1单片机内部结构图3.1.2AT89S52单片机最小系统图3-2单片机最小系统图3-2是本次设计的主体电路图,它的主体是根本的AT89S52单片机,外部的晶振电路,和复位键电路,构成了一个总的系统的关于单片机的核心主体局部。1、时钟电路图3-3时钟电路XTAL1是片内振荡器的反相放大器输入端,XTAL2那么是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz,时钟频率就为6MHz。晶振的频率可以在1MHz-24MHz内选择。电容取30PF左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路。AT89单片机内部有一个用于构成振荡器的高增益反相放大器。引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反应元件的片外晶体谐振器一起构成一个自激振荡器。外接晶体谐振器以及电容C1和C2构成并联谐振电路,接在放大器的反应回路中。对外接电容的值虽然没有严格的要求,但电容的大小会影响震荡器频率的上下、震荡器的稳定性、起振的快速性和温度的稳定性。因此,此系统电路的晶体振荡器的值为12MHz,电容应尽可能的选择陶瓷电容,电容值约为22μF。在焊接刷电路板时,晶体振荡器和电容应尽可能安装得与单片机芯片靠近,以减少寄生电容,更好地保证震荡器稳定和可靠地工作。2、复位电路图3-4复位电路在振荡器运行时,有两个机器周期〔24个振荡周期〕以上的高电平出现在此引腿时,将使单片机复位,只要这个脚保持高电平,52芯片便循环复位。复位后P0-P3口均置1引脚表现为高电平,程序计数器和特殊功能存放器SFR全部清零。当复位脚由高电平变为低电平时,芯片为ROM的00H处开始运行程序。复位是由外部的复位电路来实现的。片内复位电路是复位引脚RST通过一个斯密特触发器与复位电路相连,斯密特触发器用来抑制噪声,它的输出在每个机器周期的S5P2,由复位电路采样一次。复位电路通常采用上电自动复位和按钮复位两种方式,此电路系统采用的是上电与按钮复位电路。当时钟频率选用6MHz时,C取22μF,Rs约为200Ω,Rk约为1K。复位操作不会对内部RAM有所影响。3.2取号按键和效劳台按键图3-5按键电路上拉电阻与下拉电阻的作用上拉电阻就是把不确定的信号通过一个电阻钳位在高电平,此电阻还起到限流的作用。同理,下拉电阻是把不确定的信号钳位在低电平。上拉电阻是指器件的输入电流,而下拉指的是输出电流。上拉电阻阻值的选择原那么包括:

1、从节约功耗及芯片的灌电流能力考虑应当足够大;电阻大,电流小。

2、从确保足够的驱动电流考虑应当足够小;电阻小,电流大。

3、对于高速电路,过大的上拉电阻可能边沿变平缓。按键的消抖消抖的目的在于防止按键一次按下,屡次响应,因此只要按键按下,在抖动前或者抖动稳定后返回键值是一样的效果,而要做的是防止屡次响应即可。因为只要抖动电平出现,即说明按键已经按下了,干扰是无法干扰到出现抖动的波形。显示电路(LED)设计3.3.1LED数码管LED数码管〔LEDSegmentDisplays〕是由多个发光二极管封装在一起组成“8〞字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于3位“+1〞型。位数有半位,1,2,3,4,5,6,8,10位等等,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。透过分时轮流控制各个LED数码管的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位元数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极体的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示资料,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O埠,而且功耗更低。图3-6显示电路本次设计的显示局部采用三合一的数码显示管,显示采用动态扫描方式,显示器件选用共阳极数码管,它们的段码端连在一起后通过电阻与单片机的P0口相连,由P0口输出要显示的内容,其中电阻R1~R8起限制电流的保护作用。P2.1~P2.3通过三极管分别与数码管的公共端相连,用来决定当前哪一个数码管显示。三极管是用来增强单片机I/O口输出的驱动能力,以保证数码管能够正常发光显示局部和常规的动态显示完全相同,单片机的P2.1~P2.3作为位选控制端,且低电平有效。这样,就会以某一时间间隔在P2.1~P2.3上循环输出,使某一位为低电平,其余为高电平,保证在P2.1~P2.3口上,同时只有一位为电平。如此在很短的时间内不断地输出显示,是的显示电路将单片机的处理结果实时的显示出来。叫号模块电路设计图3-7叫号电路图3-7是本设计的报警电路原理图,它是由5V电源驱动的蜂鸣器电路,蜂鸣器的一端接电源,一端接一个三极管增大流过蜂鸣器的电流。蜂鸣器与家用电器上面的喇叭在用法上也有相似的地方,通常工作电流比拟大,电路上的TTL电平根本上驱动不了蜂鸣器,需要增加一个电流放大的电路才可以,这一点与家用电器中的功放有相似之处。学习板采用了一个很简单的电路来实现蜂鸣器的联接,由上所述,一个管脚很难驱动蜂鸣器发出声音,所以增加了一个三极管来增加通过蜂鸣器的电流,蜂鸣器的正极性的一端联接到5V电源上面,另一端联接到三极管的集电极,三极管的基级由。单片机的P1.5管脚通过一个与非门来控制,当P1.5管脚为低时,与非门输出高电平,三极管导通,这样蜂鸣器的电流形成回路,发出声音。当P1.5管脚为高时,与非门输出低电平,三极管截止,蜂鸣器不发出声音。在这里与非门是作为非门来用的,这里采用一个非门的作用是为了防止系统上电时峰鸣器发出声音,以为系统复位以后,I/O口输出的是高电平。用户可以通过程序控制P1.5管脚的置低和置高来使蜂鸣器发出声音和关闭。蜂鸣器的声音大小及音调可以通过调整P1.5管脚的置高时间及输出的波形进行控制,这一点可以在调试程序的时候来试验。4系统软件设计主程序设计Y开始Y开始系统初始化效劳台按键取号按键蜂鸣器检测是否有信号1秒后停止单片机加减计数器显示模块显示等待人数单片机移位指令显示模块显示正在效劳的客户号码检测是否有信号结束NYN图4-1总设计图总的程序流程。系统初始化后,单片机在进行高速检测状态。当单片机检测到任何的按键动作的时候,单片机加减计数模块就会有相应的动作。从而编号也会增加,等待人数和正在效劳的编号也会有相应的改变。子程序设计开始时初始化,然后查询显示段码送入段口,再取位椌码送入位口并对位码进行修正,数字在LED显示管中显示出来,最后判断是否显示出来,如果显示出来怎返回主程序,否那么怎返回子程序重新开始。初始化返回查脉冲口初始化返回查脉冲口取位椌码,送位口位码修正显示完否YN系统初始化过后,通过单片机中断按钮,当系统检测到按下时完成相应的功能。当检测到取号按钮动作的时候,单片机进行加一处理。在单片机没有检测到下次取号机动作的时候。显示等待人数的显示模块进行加一处理。而显示正在效劳的人数的显示模块将不动作。当单片机检测到效劳台按键按下的时候,等待人数显示模块进行减一处理。显示正在效劳的显示模块进行数据移位的处理。显示模块七段显示数码管动态显示程序#include<reg51.h>

#defineucharunsignedchar;

ucharcodeCODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};//数字段码;变量名CODE

ucharcodeBIT_TAB[]={0xFE,0xFD,0xFB,0xF7};//数码管片选

ucharcodeDATA[]={1,2,3,4};//要显示的数字

uchardisp_temp;//要显示的位变量

Display()

{

for(disp_temp=0;;disp_temp++)

{P1=CODE[DATA[disp_temp]];//P1为段码扫描,P0=BIT_TAB[disp_temp];//P0.0--P0.3为片选

if(disp_temp==3)

disp_temp=0;

}

}

main()

{

Display();

}开始时初始化,判断是否有按键动作,没有按键动保持显示,如果有取号按键的动作那么调用加一的子程序,如果有效劳台按键动作,那么调用减一子程序如果没有那么保持上一状态。初始化按键动作取号销号返回数据加1数据减1NNNYYY初始化按键动作取号销号返回数据加1数据减1NNNYYY图4-3流程图加一指令voidQueueNumProcess(){rank[LengthFlag]=num_count; //num_count为实时取得的号码 LengthFlag++; if(LengthFlag>10){hold=0;} //else{LengthFlag++;}}窗口消号处理子程序。利用与门和循环左移的方式实现器消号的功能,其主要的流程结构如下列图4-3窗口消号处理子程序所示。图4-3窗口消号处理子程序窗口消号处理函数voidClearNumProcess(){num=rank[0];//把消的号赋给全局变量numfor(i=0;i<LengthFlag;i++)//让数组整体左移一个存储单元,即把消得号删除rank[i]=rank[i+1]; LengthFlag--; if(LengthFlag<10){hold=1;} sev++;等待人数if(!key5) //统计等待人数{ key5=1;clear_LCD(); prompt8[0]=LengthFlag/10+'0'; prompt8[1]=LengthFlag%10+'0'; gotoxy(1,0); for(m=0;m<=9;m++) { LCD_w_dat(prompt8[m]); }}开始时初始化,然后判断计算结果有效劳台的按键动作,如果有那么蜂鸣器报警,如果没有那么再次检测是否有脉冲动作。初始化初始化效劳按键动作蜂鸣器响一秒返回YN图4-5叫号模块程图当单片机检测到效劳台按钮有动作的时候,驱动叫号模块。叫号模块随之发出滴声,然后利用单片机的延时指令进行延时。延时两秒钟后,程序中断。停止滴声响声。单片机将继续检测效劳台按钮的动作。依次循环。按键的消抖消抖的目的在于防止按键一次按下,屡次响应,因此只要按键按下,在抖动前或者抖动稳定后返回键值是一样的效果,而要做的是防止屡次响应即可。因为只要抖动电平出现,即说明按键已经按下了,干扰是无法干扰到出现抖动的波形。如下,简单的消抖程序if(Flag==0)

{

ReturnValue=GetKey();

if(KEY_NULL!=ReturnValue)

{

Flag=1;//如果监测到按键,那么在稍候的一段时间内停止读取按键。

}

}

if(Flag为1的时间到达200ms)//时间长短可根据需要自己定

{

Flag=0;//重新允许读取按键

}

蜂鸣器延时1秒指令#include<reg52.h>

sbitSPK=P1^2;

voidsleep(unsignedintcnt)

{

while(--cnt);

}

main()

{

unsignedinti;

while(1)

{

for(i=0;i<200;i++)

{

sleep(80);

SPK=!SPK;

}

SPK=1;

sleep(20000);

}5系统软硬件调试目测TC""\f1.有无短路处。2.对照电路图看有无接错、漏接处。3.有无虚焊处。4元件是否都对首先应进行上电前的准备。为了防止硬件的损坏,应在电路板上电前进行电路检查,包括:对芯片的焊接方向进行检查,对芯片的引脚进行短路和断路检查。在经过检查确认芯片的焊接没有任何问题的情况下,进行上电检查,在电源翻开后,先判断电路是否存在异常,如出现芯片过热等现象,应及时切断电源,检查电路故障。在上电无异常状况的前提下,可以用万用表和示波器进行测量。首先测量电源芯片的输出电压是否正常,然后用示波器分别测量各个主要芯片电源引脚,观察电源的波形情况,如有纹波,那么在预先留出的位置上焊上退耦电容以消除纹波,保证芯片工作正常。电源测量完毕后,进一步用示波器测量有源晶振的输出脚,其输出是频率为8MHz的波形(非方波,类似正弦波)。在确定晶振起振后,按住复位键,使单片机始终保持在复位状态,同时测量其各个引脚的电平情况,并同数据手册上表述的复位时的芯片引脚状态进行比对,由此可判断单片机是否正常。确认单片机正常之后就可以通过仿真器连接用户板进行调试。软件的调试由于软件的编写都是根据各个模块进行的,我们在进行软件的系统模拟调试时应,先确认硬件的接口标记是否在软件程序中一一对应,而且要检测所编写的软件有没有知识性的错误。在觉得根本没有问题后我们通过电脑将程序编译进入系统核心AT89S52单片机,检验软件与硬件各局部是否协调的工作。出现问题时我们要耐心的检查程序并作出适当的修改,直到软件系统的完全契合硬件电路,那我们软件就调试成功了。考前须知TC""\f〔1〕测驱动电路的过程中发现数码管不能正常显示的状况,经检验发现主要是由于接触不良的问题。其中包括线的接触不良和芯片的接触不良,在实验过程中,数码管有几段时隐时现。用万用表检测发现有线接触不良,重焊后就可正常显示。而芯片接触不良用万用表欧姆档检测有几个引脚本该相通的地方却未通,其解决方法为把芯片拔出正对万能板孔均匀用力插入。〔2〕由于焊接时的大意损坏了元件,在调试是我们怎么都找不到问题的所在,我们是用排除法一个一个元件的测试的找出损坏的元件,重新换上新的元件,故障得以解决。〔3〕还有关于程序调试过程中出现的问题。执行程序是发现程序执行不稳定,排除软件的错误外,经老师的指导才发现单片机的EA管脚没有接地。因为次程序只用到片内程序存储器,所以在程序执行时一定要把管脚接的,这样程序才能只执行片内的,不然程序会乱跳,从而导致程序执行不稳定。〔4〕接三极管的过程中,发现电路不管程序是什么,数码管都是显示8字,经查除发现原来是三极管的极端弄错了,从新调整极端顺序。〔5〕在电路调试时由于我们选用的是对射型的光电传感器由于没正对好使的调试一度中断,最后我们通过反复的调试解决了问题〔6〕调试时由于线路的繁杂,没有仔细的找到对应局部的线路,使的调试的结果与预期出现很大的误差,我们通过梳理线路后就调试成功了并到达了预期的效果。〔7〕在调试时几个模块的电路调试都不是很好,我们就要对线路的硬件连接做仔细的检查,调试的时候我们首先要确定连接的电路没有错误,各个元件管脚间没有虚连,那样我们的调试才会更顺利。结束语这次毕业设计让我受益匪浅。通过这次设计我对自己在大学三年时间里所学的知识得到了全面的回忆,并充分发挥对所学知识的理解和对毕业设计的思考及书面表达能力,最终完成了这份论文。撰写论文的过程也是专业知识的学习过程,它使我运用已有的专业根底知识,对其进行设计,分析和解决一个理论问题或实际问题,把知识转化为能力的实际训练。培养了我运用所学知识解决实际问题的能力。通过这次毕业设计我发现,只有理论水平提高了,才能够将课本知识与实践相整合,理论知识效劳于教学实践,以增强自己的动手能力。这个设计十分有意义我获得很深刻的经验。通过这次毕业设计,我们知道了理论和实际的距离,也知道了理论和实际想结合的重要性,,也从中得知了很多书本上无法得知的知识。我们的学习不但要立足于书本,以解决理论和实际教学中的实际问题为目的,还要以实践相结合,理论问题即实践课题,解决问题即课程研究,学生自己就是一个专家,通过自己的手来解决问题比用脑子解决问题更加深刻。学习就应该采取理论与实践结合的方式,理论的问题,也就是实践性的课题。这种做法既有助于完成理论知识的稳固,又有助于带动实践,解决实际问题,加强我们的动手能力和解决问题的能力。总的来说这次的毕业设计使得我学习了很多它是大学里的最后一堂课也是重要的一堂课,他对我们的将来都具有深远的影响。参考文献[1]单片机根底[M]李广弟北京北京航空航天大学出版社2000[2]单片机原理及应用技术[M]李全利北京高等教育出版社1999[3]单片机典型系统设计实例精讲[M]彭为北京电子工业出版社2006.5.[4]单片微型机原理应用与实验[M]张友德等复旦大学出版社[M]1996[5]传感器原理及工程应用[M]郁有文常建程继宏陕西西安电子科技大学出版2021[6]传感器及其应用手册[M]孙宝元杨宝清机械工业出版社2004[7]单片微型机原理应用与实验[M]张友德等复旦大学出版社1996[8]传感器原理[M]余瑞芬北京航字T业出版社1990[9]单片机原理及应用技术[M]李全利北京高等教育出版社1994[10]MCS-51系列单片机应用系统设计与接口技术[M]何立民北京航空航天大学出版社1990[11]单片机应用技术选编[M]何立民北京航空航天大学出版社2000致谢论文的完成标志着我的大学三年即将结束,也意味着,新的生活又将开始了。最近的半年那么并行着找工作和写论文。其间的起起伏伏、悲喜得失,今天想来仍旧唏嘘不已。所幸我没有被失败击垮。自信、坚强、乐观的态度让我坚持到了最后,并且争取了最好的结局。通过几个月的悉心设计,在指导教师的耐心指导下,我完成了毕业设计的工作。此次的毕业设计是我们三年来专业知识的综合运用,是对我们能力的综合考核。这不仅涉及到对根本原理的理解,也涉及到对问题的分析能力。通过本次毕业设计,让我对我国电子科技有了新的认识。这也使我认识到了自己知识的匮乏和能力的有限。从而鼓励我在今后的学习和工作中更要努力的学习和不断的充实自己。在这里我尤其感谢老师。在她的耐心指导下,我才能成功的完成这次的毕业设计,在写论文时老师严格的要求我们,培养我们强烈的责任心和工作学习的积极性,并且耐心的解答论文中出现的问题。她还为我们指明了论文方向,校定论文方向。在她的要求下,我不仅完成了整个设计和论文,更重要的是锻炼了我分析问题和独立思考的能力。最后,我再一次表达我对领导以及教导过我的所有的老师最衷心的感谢,是你们在我前进的道路上给以引导,并无私的教给我许多专业知识以及做人的道理。再次,让我对所有的老师及所有帮助过我的同学们致以最崇高的敬意。“长风破浪会有时,直挂云帆济沧海。〞这是我最喜欢的诗句。就用这话作为这篇论文的一个结尾,也是一段生活的结束。希望自己能够记取少年时的梦想,永不放弃。附录一源程序#defineucharunsignedchar#defineuintunsignedint/**使用延时函数实现不同频率的声音输出,以后也可使用定时器**/sbitRS=P2^0;//1:数据输入,0:指令输入sbitRW=P2^1;//1:读出,0:写入sbitE=P2^2;//1:有效,0:无效sbitkey0=P1^0;sbitkey1=P1^1;sbitkey2=P1^2;sbitkey3=P1^3;sbitkey4=P1^4;sbitkey5=P1^5;sbitkey6=P1^6;sbitkey7=P1^7;sbitcd=P2^7;sbitBEEP=P2^6;sbithold=P3^4;uintsev=0;uintsev1=0;uintsev2=0;uintsev3=0;uintsev4=0;uintm=0,i=0;uintrank[10]={0}; //排队叫号存储的数组uintnum=0;//窗口消的号码uintjz=0;uintLengthFlag=0;//队列长度叫一次号时+1,消一次号时-1uintnum_count=1;//排队叫的号码ucharpdataprompt11[]="W2-00";ucharpdataprompt12[]="W3-00";ucharpdataprompt13[]="W4-00";voiddelay(intn) //延时子程序{intk,j;for(k=0;k<=n;k++)for(j=0;j<=10;j++);}voiddelay1s(intn) //延时子程序{intk,j;for(k=0;k<=n;k++)for(j=0;j<=120;j++);}voidSPEAKER(uintx)//蜂鸣器程序,按周期n发声{for(i=0;i<=200;i++){delay(x); BEEP=~BEEP; }BEEP=1;}/********************A程序**********/voiddelay1ms(unsignedintms)//延时的时间〔不够精确的〕{uintk,j;for(k=0;k<ms;k++)for(j=0;j<100;j++);}voidA_w_com(unsignedcom)//写入指令{RW=0;RS=0;E=1;P0=com;delay1ms(40);E=0;RW=1;}voidA_w_dat(uchardat)//写入数据{RW=0;RS=1;E=1;P0=dat;delay1ms(40);E=0;RW=1;}voidgotoxy(unsignedx,unsignedy)//x,y分别代表行列{if(x==1)A_w_com(0x80+y);else A_w_com(0xC0+y);}voidclear_LCD(void){A_w_com(0x01); //清屏指令A_w_com(0x02);//光标归位即光标置于左上位置}voidinit_LCD(void)//初始化lcd{A_w_com(0x38);//lcd为两行显示8位数据线有效A_w_com(0x0c);//显示字符关闭光标A_w_com(0x06); //输入方式设置光标向右移动一位ac-1gotoxy(1,0);for(i=0;i<=5;i++){A_w_dat(test[i]);}}/*********叫号机按一次一号键变量+1,最大为10*************/voidQueueNumProcess(){rank[LengthFlag]=num_count; //num_count为实时取得的号码 LengthFlag++; if(LengthFlag>10){hold=0;} //else{LengthFlag++;}}/************窗口消号处理函数***************/voidClearNumProcess(){num=rank[0];//把消的号赋给全局变量numfor(i=0;i<LengthFlag;i++)//让数组整体左移一个存储单元,即把消得号删除rank[i]=rank[i+1]; LengthFlag--; if(LengthFlag<10){hold=1;} sev++;}/********主函数**********************/ voidmain(void){EA=1; EX0=1; EX1=1; IT0=1; IT1=1; clear_A(); init_A(); while(1) { delay1s(10000); clear_LCD(); gotoxy(1,0); for(i=0;i<=5;i++) { LCD_w_dat(test[i]); } delay1s(10000); clear_LCD(); prompt8[0]=LengthFlag/10+'0'; prompt8[1]=LengthFlag%10+'0'; gotoxy(1,0); for(m=0;m<=9;m++) { A_w_dat(prompt8[m]); } delay1s(10000); clear_A(); ClearNumProcess(); prompt2[3]=(num)/10+'0';prompt2[4]=(num)%10+'0'; prompt3[1]=jz+'0'; gotoxy(1,0); for(m=0;m<=15;m++) { A_w_dat(prompt2[m]); } gotoxy(2,0); for(m=0;m<=15;m++) { A_w_dat(prompt3[m]); } }}/**************按键〔中断方式〕**********************/voidint_x0()interrupt0{ if(!key1){jz=1;sev1++;} if(!key2){jz=2;sev2++;} if(!key3){jz=3;sev3++;} if(!key4){jz=4;sev4++;} if(!key0) /******叫号机程序*******/ { while(!key0); if(LengthFlag<=10) { clear_A(); QueueNumProcess(); prompt1[11]=(num_count)/10+'0'; prompt1[12]=(num_count)%10+'0'; num_count++; } else { clear_A(); gotoxy(1,2); for(m=0;m<=10;m++) { A_w_dat(prompt4[m]); }gotoxy(2,0); for(m=0;m<=15;m++) { A_w_dat(prompt5[m]); //提示队列已满 }} key5=0; } if((!key1||!key2||!key3||!key4)&&key0) /*******消号处理******/ { while((!key1||!key2||!key3||!key4)&&key0); { SPEAKER(11); delay(200); SPEAKER(15); if(LengthFlag<1) { clear_A(); gotoxy(1,0); for(m=0;m<=15;m++) { A_w_dat(prompt6[m]); } gotoxy(2,0); for(m=0;m<=8;m++) { A_w_dat(prompt7[m]); } //显示队列为空 } else { clear_A(); ClearNumProcess(); prompt2[3]=(num)/10+'0'; prompt2[4]=(num)%10+'0'; prompt3[1]=jz+'0'; gotoxy(1,0); for(m=0;m<=15;m++) { A_w_dat(prompt2[m]); } gotoxy(2,0); for(m=0;m<=15;m++) { A_w_dat(prompt3[m]); } } }} }voidint_x1()interrupt2{if(!key5) //统计等待人数{ key5=1;clear_A(); prompt8[0]=LengthFlag/10+'0'; prompt8[1]=LengthFlag%10+'0'; gotoxy(1,0); for(m=0;m<=9;m++) { A_w_dat(prompt8[m]); }}if(!key6) //统计客流量{clear_A(); prompt9[7]=(sev)/10+'0'; prompt9[8]=(sev)%10+'0'; gotoxy(1,0); for(m=0;m<=9;m++) { A_w_dat(prompt9[m]); } } if(!key7) //统计各窗口客流量 { clear_A(); prompt10[5]=sev1/10+'0'; prompt10[6]=sev1%10+'0'; prompt11[5]=sev2/10+'0'; prompt11[6]=sev2%10+'0'; prompt12[5]=sev3/10+'0'; prompt12[6]=sev3%10+'0'; prompt13[5]=sev4/10+'0'; prompt13[6]=sev4%10+'0'; gotoxy(1,0); for(m=0;m<=7;m++) { A_w_dat(prompt10[m]); } gotoxy(1,8); for(m=0;m<=7;m++) { A_w_dat(prompt11[m]); } gotoxy(2,0); for(m=0;m<=7;m++) { A_w_dat(prompt12[m]); } gotox

温馨提示

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

最新文档

评论

0/150

提交评论