收藏 分销(赏)

基于单片机的食堂售饭收费专业系统设计.doc

上传人:a199****6536 文档编号:2494702 上传时间:2024-05-30 格式:DOC 页数:37 大小:1.47MB
下载 相关 举报
基于单片机的食堂售饭收费专业系统设计.doc_第1页
第1页 / 共37页
基于单片机的食堂售饭收费专业系统设计.doc_第2页
第2页 / 共37页
基于单片机的食堂售饭收费专业系统设计.doc_第3页
第3页 / 共37页
基于单片机的食堂售饭收费专业系统设计.doc_第4页
第4页 / 共37页
基于单片机的食堂售饭收费专业系统设计.doc_第5页
第5页 / 共37页
点击查看更多>>
资源描述

1、基于单片机食堂售饭系统设计 姓名:刘磊 学号: 班级:电气091 指引教师:闫群民 课设日期 :6月25日单片机食堂售饭收费系统应用摘要引言第一章系统功能阐明1就餐阶段2充值阶段3初始化阶段第二章. 系统整体设计21 应用系统构造设计2. 2 设备选取2.2.1 IC 卡2.2.1 按钮2.2.3 显示单元2.2.4 上位机连接第三章 硬件某些 IC卡接口连接 2 键盘和显示接口设计 蜂鸣器报警单元连接4 IC卡上电检测电路设计第四章4.1 软件构造设计4.1.1 主程序4.1.2 按键解决程序附录;软件某些.单片机食堂售饭收费系统应用摘要本文论述了老式食堂售饭系统局限性,简介了以卡为媒介单片

2、机售饭系统。从系统功能阐明出发,对控制系统构成构造、系统设备选型进行了分析,设计出了以单片机为核心硬件电路和支持各硬件某些软件程序。通过集成测试,该系统安全、精确无误、性能稳定可靠,实现了售饭管理科学化和当代化。核心词单片机, 卡,三极管,卡 ,232芯片引言I卡,又称集成电路卡或者智能卡,是继磁卡、光电卡之后新一代标记卡。这种具备智能便于携带卡片,为当代信息解决和传播提供了一种全新豹手段。随着超大规模集成电路、大容量存储芯片以及信怠安全技术发展,卡技术也不断有新进展,应用领域也不断地扩大,以卡为媒介单片枫售饭系统就是一种范例。I卡应用提高了人们生活和工作现代化限度,已成为一种国家科技发展水平

3、当代化限度标志之一.卡售饭机是合用于就餐人数密集食堂收费系统,该系统从主线上解决了餐券流通过中盼伪造、丢失、维茵交叉感染等一系列闻题,增进了饮食鼹务管理南规范化、系统化和科学化方向发展。第一章系统功能阐明食堂卡售饭机作为食堂收费终端,依照实际使用环境,应具备如下功能特点,以合用不同阶段数据解决。1 就餐阶段就餐阶段即正常使用阶段。在卡插入售饭机后,系统能读出卡里面预先存储金额,并能在面对就餐者和售饭员两方面双屏进行显示。售饭员运用键盘输入就餐者选定食物金额,售饭机自动用卡中金额减去应付金额。操作完毕后屏幕显示应付金额以及卡中余额。如果就餐者卡中余额不大于预先设定金额,售饭机则给出报警音,提示就

4、餐卡为卡进行充值。食堂售饭窗口不具备为卡充值功能,就餐者必要到指定地方进行充值。如果就餐卡浮现故障,售饭机给出报警音,提示就餐者修卡,食堂售饭窗口不具备对卡进行修复功能。就餐者必要到指定地方修复。如果修复失败,就餐者只有到充值窗口重新办理就餐卡。2 充值阶段在充值阶段,卡售饭机读出卡里面余额,就餐者在充值窗口交纳一定金额后,由工作人员通过键盘输入次此充值金额,售饭机自动将本次充值金额加入卡中。操作完毕后,屏幕显示充值后卡中余额。3 初始化阶段初始化阶段是为卡发行做准备。在此阶段,工作人员通过键盘进行就餐卡初始化工作。此阶段重要任务是写入顾客群号和初始金额。只有通过初始化之后,就餐卡方能发行.第

5、二章系统总体设计应用系统构造设计依照所述卡售饭机功能特点,售饭机系统需要完毕数据输入、显示和处理三种功能,整个系统构造框图如图所示。 设备选取本设计采用Atmel公司高性能低功耗AT90S8535作为控制核心,按照上图所拟定系统构造,选取适当功能部件,完毕完整系统控制电路设计,控制系统需要选取IC卡单元,键盘单元,显示单元三某些。 IC卡依照卡读写特点,卡分为接触型卡和射频卡两类。()接触型卡接触型卡表露有个或个金属触点,卡插入读写器内后,在徽解决器控制下完毕可是读写操作。()射频卡射频卡没有金属触点,丽是在卡内置有天线和射频卡处在读写卡器一定距离内时,读写卡器通过发射射频信号对卡进行读写操作

6、。依照IC卡内部构造,IC卡又可分为存储卡、逻辑加密卡和卡。(1)存储卡(2)逻辑加密卡(3)CPU 卡 按钮(1) 独力按钮独立型按键一脚通过电阻接电源端或者地,而另一脚接单片机口,其构造如图所示。在按键被按下和没有按下时,口电平刚好相反。这样通过检测口电平状态即可判断哪个按键被按下了。此类键盘特点是按键电路配备灵活、按键状态辨认简朴,但是每一种按键需要占用一种口,资源占用率较高,当按键数量不是诸多或者系统有睨较多口剩余时,可以采用此类设计。(2) 行列式按钮矩阵扫描键盘有行线和列线构成。按键位子行列线交叉点上,构造图如所示。一种矩阵构造就可以构成一种具有个按键键盘。按键设立在行列线交叉点上

7、,行列线分别接到按键开关两端。行列通过上拉电阻接到5上。平时当没有按键按下时,列线处在高电平状态;而当有键按下时,行列线导通,因而列线电平状态将由此相连接,各键按下与否会影响该键所在行列线电平。这样行列线配合起来进行恰当解决,即可拟定按键位置。此类键盘与独立式键盘相比,要节约诸多口,合用于按键数量较多场合。矩阵扫描键盘有行线和列线构成。按键位子行列线交叉点上,构造图如所示。此类键盘与独立式键盘相比,要节约诸多口,合用于按键数量较多场合。显示单元IC卡售饭机系统只需要进行数字显示即可,但需要显示屏件直观和高亮度。在此基本上,本设计采用高亮度红色LED数码管作为显示屏件,详细设计见硬件设计某些。4

8、上位机连接第三章 硬件某些卡售饭机硬件电路如图所示,下面对各单元电路分别予以明 如图3-1所示 IC卡接口连接本设计采用西门子逻辑加密型卡,它与连接如图所示。1卡简介是西门子公司一款具备可编程安全代码()和写保护功能智能型存、储芯片。它有主存储器,不可逆个写保护存储器,错误计数器具备密码保护功能。采用两线数据传输方式,符合原则。每个字节写入擦除时间为豪秒,数据保存时间上具备一种安全逻辑,用以控制存储器读写操作在密码成功之前,除密码(可编程安全代码)外,数据都可以读出,只有在校验密码成功之后才可以执行数据写入动作在校验密码之前,可以将错误计数器某一位写“0”。错误计数器初始值为,每校验密码错误一

9、次则将其中一位写“”,如果连续三次密码校验错误,错误计数器值变为,卡报废。2I卡引脚配备2键盘和显示接口设计1 键盘编码依照对系统功能分析,为了使卡售饭机可以适应不同阶段数据解决,系统设置了如下个数字键和功能键。数字键:到、小数点按键“功能键:、一、初始化键、修复键、确认键其按键配备如图所示。2键盘功能定义() 就餐阶段就餐阶段属于消费阶段,待就餐者插入卡后,按“一键后从键盘输入消费金额,爵按“拟定键即可完毕一次正常消费。如果就餐者插入是合法卡,则会显示IC卡中金额;如果插入是非法卡,则会显示“”,同步发出警报声。如果卡 出错,同步发出警报声提示进行修复工作。如果修复失败,则会显示“,同步发出

10、报警声。()充值阶段就餐者在充值阶段为卡充值。插入卡后,显示卡里面余额。按“键后从键盘输入充值金额,然后再按“拟定”键,即可完毕一次充值过程。如果充值失败,则会显示“同步给出报警提示重新充值。()修复阶段将损坏就餐卡插入售饭机,按“修复键,再按“确认键,即可对就餐卡进行修复。如果修复失败,系统会发出报警声。()初始化阶段初始化阶段为IC卡发行做准备。插入新卡后按“初始化”键,然后从键盘输入预充值金额,然后按“拟定,售饭机自动完毕卡初始化工作并写入预充值金额。蜂鸣报警器接口设计本设计采用电磁式蜂鸣器作为卡出错报警提示。它与单片机连接如图所示。单片机口通过型三极管驱动蜂鸣器。当输出高电平时,三极管

11、导通,蜂鸣器发出报警声。4 IC卡上电检测电路设计IC 卡上电检测电路如图3-19所示。单片机在检测到IC卡上电后才开始执行卡读写操作。IC卡上电检测电路即IC卡上电检测以保证单片机正常操作。在IC卡卡座上普通有静动两片金属片。在IC卡插入卡座时,动金属片被IC金属片一端固定通过电阻LED 接地。静金属片固定装5伏电压,在IC卡没有插入时,动金属片为0伏电压,IC卡插入后静金属片变为5伏电压,LED点亮,提示有IC卡插入单片对卡进行初始检测,这样通过与动金属片连接单片机DP2 电平,即可检测IC2与否上电。第四章 软件构造设立1.软件构造设计 卡售饭祝软件系统采用模块纯程序设计。从构造主看,系

12、统控制软件重要涉及一个主程序、按键解决程序和其她某些辅助解决程序。从功能上看,系统控制软件则重要由卡控制程序。主程序主程序重要完毕系统初始化、卡插入检测、读写和键盘输入与解决、异常状况报警解决等工作,以完毕人机交互功能。图主程序流程图按键解决程序按键解决程序是系统服务程序一某些。按键解决程序完毕按键辨认与解决工作。在确认有键被按下后,通过查找按键,区别功能键与数字键,从而依照不同状况进行相应解决附录:程序#include#include#define uchar unsigned char#define unit unsigned int#define MAM 0 /*定义主存储器代号*/ #

13、define SCM 1 /*定义加密存储器代号*/ #define PRM 2 /*定义保护存储器代号*/sbit IsCard=P32;/判断与否有卡,当P3.2口为低电平时,卡插入;当P3.2口为高电平时,无卡。(由于当卡插入时,E1口与E2口接通,由于E2口接地,则E1被拉成低电平)#define DisPort PA/PA口为段选口#define DigPort PC/PC口为位选口uchar DisplayData4;/更新显示四位数组uchar DisplayDig=0;uint TimeCount;uint DisplayTemp=0xffff;uchar code Displ

14、ayCode11= 0xC0,/*0*/ 0xF9,/*1*/ 0xA4,/*2*/ 0xB0,/*3*/ 0x99,/*4*/ 0x92,/*5*/ 0x82,/*6*/ 0xF8,/*7*/ 0x80,/*8*/ 0x90,/*9*/ 0xBF,/*-*/;uchar FuHao;bit XiuGai;uchar Dig4=0x60,0xa0,0xc0,0xf0;/4位数码管代码(由于在硬件中将第四位数码管三极管误焊成了NPN型8050,8050特点是输入为高电平时亮,而8550特点是当输入为低电平时亮,因此当第一位数码管亮时,应为01100000,即0X60)int YuE;sbit B

15、ee=P33;void Timer0Init(void)/100微秒11.0592MHzAUXR &= 0x7F;/定期器时钟12T模式(STC89C52有2个工作模式:6T和12T,12T表达12个时钟完毕1个指令)TMOD &= 0xF0;/设立定期器模式TMOD |= 0x02;/设立定期器模式TL0 = 0xA4;/设立定期初值TH0 = 0xA4;/设立定期重载值TF0 = 0;/清除TF0标志TR0 = 1;/定期器0开始计时ET0=1; EA=1;void UpDisplay()/更新显示if(DisplayTemp!=0xffff)DisplayData0=DisplayTem

16、p/1000%10;DisplayData1=DisplayTemp/100%10;DisplayData2=DisplayTemp/10%10;DisplayData3=DisplayTemp%10;elseDisplayData0=10;DisplayData1=10;DisplayData2=10;DisplayData3=10;/DisplayTemp=0xffff时,数码管显示-uchar keyscan()uchar temp,key; P3=oxfe;temp=P3;temp=temp&oxf0;if(temp!=oxf0)delayms(10);temp=P3;temp=tem

17、p&oxf0;if(temp!=oxf0)temp=P3;switch(temp)case oxee:key=1;break;case oxde:key=2;break;case oxbe:key=3;break;case ox7e:key=4;break;While(temp!=oxf0)temp=P3;temp=temp&oxf0;P3=oxfd;temp=P3;temp=temp&oxf0;if(temp!=oxf0)delayms(10);temp=P3;temp=temp&oxf0;if(temp!=oxf0)temp=P3;switch(temp)case oxed:key=5;b

18、reak;case oxdd:key=6;break;case oxbd:key=7;break;case ox7d:key=8;break;While(temp!=oxf0)temp=P3;temp=temp&oxf0;P3=oxfb;temp=P3;temp=temp&oxf0;if(temp!=oxf0)delayms(10);temp=P3;temp=temp&oxf0;if(temp!=oxf0)temp=P3;switch(temp)case oxeb:key=9;break;case oxdb:key=0;break;case oxbb:key=.;break;case ox7b

19、:key=+;break;While(temp!=oxf0)temp=P3;temp=temp&oxf0;P3=oxf7;temp=P3;temp=temp&oxf0;if(temp!=oxf0)delayms(10);temp=P3;temp=temp&oxf0;if(temp!=oxf0)temp=P3;switch(temp)case oxe7:key=-;break;case oxd7:key=;break;case oxb7: case ox7e7:While(temp!=oxf0)temp=P3;temp=temp&oxf0;void delay(uchar num)P0=tabl

20、e10:uchar dat4=0,0,0,0;void keypro(key)switch(key)case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9: dat0=dat1;dat1=dat2;dat2=dat3;dat3=key;/数码管位移DisplayTemp=dat0*1000+dat1*100+dat2*10+dat3;break;case +:XiuGai=1;dat0=0;dat1=0;dat2=0;dat3=0;FuHao=+;DisplayTemp=0;/总数码管显示0break;case

21、 -:XiuGai=1;dat0=0;dat1=0;dat2=0;dat3=0;FuHao=-;DisplayTemp=0;break;case .:dat0=0;dat1=0;dat2=0;dat3=0;DisplayTemp=0;break;case =:if(FuHao=+)YuE+=DisplayTemp;DisplayTemp=YuE;else if( FuHao=-)YuE=YuE-DisplayTemp;DisplayTemp=YuE;UpDisplay();if(YuE0)if(IChkpsw_4442(0xff,0xff,0xff)=0)/如果IC卡密码为0XFF,0XFF,

22、0XFFISenddat_4442(MAM,50,4,DisplayData);/则将数据发送给4442卡,MAM表达将数据发送给4442主存储器,起始地址为504个字节,更新显示elseBee=0;/若密码不是0XFF,0XFF,0XFF,则蜂鸣elseBee=0;/若所消费金额不不大于等于卡中金额,则蜂鸣dat0=0;dat1=0;dat2=0;dat3=0;XiuGai=0;/不修改卡中金额 UpDisplay();void main()uchar rec5;Timer0Init();IsCard=1; while(1) keypro(keyscan();IsCard=1; if(IsC

23、ard) /无卡 Bee=1;/无卡时,不蜂鸣XiuGai=0;/无卡时,不修改 DisplayTemp=0xffff; /显示“-” else if(XiuGai=0) IRcvdat_4442(MAM,50,4,rec);/若没有修改则读卡,数据放在4442卡主存储器以59为首地址rec数组中DisplayTemp=rec0*1000+rec1*100+rec2*10+rec3;YuE=DisplayTemp; UpDisplay(); void Time0Int() interrupt 1if(TimeCount+=50)TimeCount=0; DisPort=DisplayCodeDisplayDataDisplayDig;/段选。开始DisplayDig=0然后+,注意DisplayData中数据已经更新,然后找DisplayCode数组中相应数字 DigPort=DigDisplayDig;/位选。开始DisplayDig=0然后+,然后相应找位选数组Dig4=0x60,0xa0,0xc0,0xf0 if(DisplayDig+=3)DisplayDig=0;

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 研究报告 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服