您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 基于C51单片机银行排队取号系统的设计
摘要随着市场经济的发展,客户在市场交易中的地位越来越重要,个人化的服务已成趋势,提供舒适的服务环境已成竞争的重要手段。多窗口类别的服务往往让人无所适从,客户盼望只排一个队,只接受“一对一”的服务。营业窗口是形成银行、电信、航空、医院等企业的公众形象的重要因素,因此,排队管理系统应运而生,它彻底解决了银行、医院等服务性企业普遍存在的站立等候、服务无序的问题,深化并完善了服务的质量。市场上已有成品的排队机系统,但存在系统庞大、结构复杂、维护管理不便、成本普遍较高等缺陷。本文以价格低廉的单片机为系统主控CPU,设计并研制出体积小、结构简单、可靠性高、维护操作方便、性价比较高的银行排队系统。Withthedevelopmentofmarketeconomy,thecustomerisbecomingmoreandmoreimportantinthemarkettransaction,personalizedservicehasbecomethetrend,theimportantmeanstoprovideacomfortableenvironmenthasbecomethecompetition.Multiplewindowclassserviceoftenletapersonnotknowwhatcoursetotake,thecustomerexpectationrankedonlyoneteam,onlyaccepttheonetooneservice.Openwindowisformedinbanks,telecommunications,aviation,hospitalsandotherenterprisesofthepublicimageoftheimportantfactors,therefore,thequeuemanagementsystememergeasthetimesrequire,itsolvetheuniversalbanks,hospitalsandotherserviceenterprisesstandwaiting,servicedisorderproblems,deepenandimprovetheservicequality.Havefinishedthequeuingmachinesystemonthemarket,butthereisahugesystem,complicatedstructure,inconvenientmaintenance,costisgenerallyhigherdefect.Basedonthelow-costmicrocontrollerasthemaincontrolsystemCPU,designedanddevelopedasmallvolume,simplestructure,highreliability,convenientmaintenanceandoperation,thepriceisrelativelyhighbanksqueuingsystem.引言AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。当客户需要到银行办理业务时,为了可以更方便客户不用自己去排队就可以有秩序的办理业务,用银行排队取号系统代替客户排队,让客户拥有一个更舒适的环境且不用担心被插队等问题。在AT89C51单片机的基础上,设计制作一个银行排队取号系统,通过客户在取号机上按下取号键(K0),便可以拥有自己的号码,等待服务人员叫号即可。模型票务打印系统:1.显示使用液晶屏显示,显示对待办业务的选择2.输入输入过程即通过触摸屏对业务进行选择的过称3.输出打印号票打印内容排队号码窗口操作系统基本包括数码管显示,语音提示1.数码管显示显示内容应该是下一个号码2.语音提示语音是通过广播的形式,操作员进行广播建模:系统上电后,数码管显示00,等待K0按下。一旦K0按下,加1,加到100,变为1,然后继续等待按下。对象:1)单片机最小应用系统:1、头文件“reg51.h”2、时钟电路、复位电路、电源2)数码管:本系统采用动态工作方式,段码是由P0控制;位码是由P2控制,其中个位是由P2^1控制,十位是由P2^0控制3)INT1中断:是由K0控制,K0是接在P3^3上;EA=1;IT1=1;EX1=1;4)T1计数中断:TMOD=0x60;TH1=0xff;TL1=0xff;TR1=1;EA=1;ET1=1;框图:一)主框图:二)子框图:程序:#includereg51.h#include13.hunsignedchart=0;sbitK0=P3^3;voiddpj_1(void){P3=0xff;//P3按键赋初值11111111if(P3==0xf7){t++;if(t==100){t=1;}}//等待P3按下,加1;}voidmain(void){TMOD=0x60;//采用方式2TH1=0xff;TL1=0xff;EA=1;IT1=1;EX1=1;//采用INT1中断所用到的对象TR1=1;ET1=1;//T1计数中断所用到的对象while(1){smg(t);}}voidint1(void)interrupt2{dpj_1();}调用函数13.hdelay(unsignedintz)//延时子程序,调用z形参。{unsignedintx,y;//x、y为局部参数for(x=z;x0;x--){for(y=110;y0;y--){}}//延时1ms}voidsmg(unsignedchart){unsignedcharx1,y1;unsignedcharled[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};x1=t/10;//获得要显示数的十位数值y1=t%10;//获得要显示数的个位数值P2=(P2&(~(30)))|(10);//位码选择个位,p2.1p2.0=01P0=led[y1];//显示个位delay(10);P2=(P2&(~(30)))|(20);//位码选择个位,p2.1p2.0=10P0=led[x1];//显示十位delay(10);}结论根据框图编写程序,当程序编写完后调试的过和中遇到如下问题:当进入INT1为断时程序是正常运行,但是T1中断无任何反应,经过查找在初始化中TMOD,TH1,TL1,ET1这些对应项出错判断中断对象出错,修改这个错误后T1中断可以运行以上错误修改完成后再次模拟软件中,出现的状态可能对应模型上的要求,则程序调试成功.
本文标题:基于C51单片机银行排队取号系统的设计
链接地址:https://www.777doc.com/doc-2568785 .html