【自助餐饮自动计费系统的设计与实现12000字(论文)】_第1页
【自助餐饮自动计费系统的设计与实现12000字(论文)】_第2页
【自助餐饮自动计费系统的设计与实现12000字(论文)】_第3页
【自助餐饮自动计费系统的设计与实现12000字(论文)】_第4页
【自助餐饮自动计费系统的设计与实现12000字(论文)】_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

自助餐饮自动计费系统的设计与实现目录1 引言 11.1研究背景及意义 11.2国内外研究进展与现状 11.3论文主要研究内容 22 设计方案 32.1系统设计要求 32.2校园自助餐饮自动计费系统的总体方案设计 32.3主控芯片方案 42.4传感器方案 42.5显示屏方案 52.6红外检测传感器方案 52.7电源方案 62.8蜂鸣器方案 62.9本章小结 63 系统硬件设计 73.1主控芯片最小系统设计 73.2主控芯片I/O接口 73.3复位电路 73.4晶振电路 83.5红外检测模块 83.6颜色识别模块 93.7液晶显示电路 103.8按键电路、蜂鸣器及指示灯 113.9本章小结 114 系统软件设计 124.1主程序设计 124.2红外检测子程序设计 134.3颜色识别子程序设计 144.3.1TCS3200白平衡调整 144.3.2颜色识别技术 144.3.3价格计算原理 154.4液晶显示子程序设计 164.5按键电路程序设计 204.6本章小结 205 系统调试 215.1硬件调试 215.1.1硬件调试需要使用的仪器 215.1.2最小系统的调试 215.2软件调试 225.3软硬联合调试 225.4本章小结 226 数据处理与验证 237 结果与讨论 247.1自然光情况下的实验 247.2光线不足或黑暗中的实验 247.3红光情况下的实验 258 总结与展望 268.1总结 268.2存在的问题 268.3展望 26引言研究背景及意义随着餐饮行业的蓬勃发展,自助餐已被推广到大众化餐饮市场、校园餐饮行业,校园餐饮不再受限于传统的人工窗口打饭方式。校园自助餐饮要想在餐饮业中生存,就要改变技术含量低的传统的人工经营管理模式。通过调查发现,传统的人工经营管理模式下的校园自助餐饮主要存在以下几方面问题:(1)不同菜品的价格需要靠人脑记忆,菜品种类繁多,员工记忆容易出错(2)计费方式仍采用传统的人工计算方式,耗时久(3)客流量多,计算量大,服务员容易出现情绪化(4)人工需求量大,人工成本高随着科技的发展与进步,智能化、便捷化的设备已逐步取代传统的人工劳动力。据调研发现,现流行于校园餐厅中的自助餐饮行业,颇受广大师生的喜爱,但校园自助餐饮仍采用传统的人工计费方式,经常出现排队计费拥挤的情况。相对于校园自助餐厅而言,就餐高峰期学生人流量大,传统的人工口头计算方式容易出现错误,效率低,而且还存在耗时久等现象,这些都是影响就餐速度的瓶颈,给顾客带来不良的就餐体验,导致客流量的丧失,最终导致经济的损失。因此,为改变传统模式下校园自助餐饮服务中存在的问题,文中提出了一种基于颜色传感器进行颜色识别的校园自助餐饮自动计费系统。随着自助餐饮业的规模不断扩大,传统的人工经营管理模式难以适应现代化经济社会的发展,所以自助餐饮自动计费系统的研究具有十分重要的现实意义。总之,自助餐饮自动计费系统的研究具有较好的应用前景及应用市场,其不仅可以应用于校园自助餐饮,还可应用于酒店、企业等不同场所的自助餐厅。本设计对实现自助餐饮行业的自动化、便捷化、智能化具有十分重要的意义。国内外研究进展与现状自助结算的收银方式,近年逐渐开始在国内进行大范围地普及。2012年时,英国人就采用了新的收银方式,它们已经开始使用能自己结算钱的机器。自助式的结算早就普遍成为英国人的生活方式。其自助结算系统应用的技术是扫描商品条形码来识别商品价格。2016年,亚马逊线下“无人超市”AmazonGO高调亮相,它是全球首个无人、自助结算的超市,其应用RFID芯片嵌入到商品标签中,通过无线感应识别商品的价格。随后,无人自助结算技术在国外被广泛使用,无人自助结算应用技术逐渐变多,主要有3D感测芯片、RFID、无线/有线网络芯片等。近年来,我国科技的飞速发展,自助结算服务终端在日常生活中的应用越来越广。从最初传统的自助服务终端ATM机、POS机,再到如今,无人超市、自助结账机等更便捷,更智能化的服务终端应运而生。相对于国外,我国的自助结算系统大部分仍采用的技术是扫通过描商品条形码,进行商品价格的结算。2017年,国内的阿里巴巴开始提出无人自助超市模式,其应用的技术是摄像头及感应接收器与RFID天线结合,是一种增强版的RFID技术。论文主要研究内容通过查阅大量关于颜色传感器应用与单片机应用的文献资料,以及了解自助餐饮自动计费系统的发展现状,通过使用颜色传感器识别餐盘的颜色,不同颜色的餐盘代表不同的价格,使用STC89C25RC单片机对整个系统进行控制,本文主要研究内容如下:(1)如何使用颜色传感器识别餐盘颜色(2)如何使用液晶显示屏显示餐盘颜色信息及餐盘(3)如何使用STC89C25RC单片机实现对整个系统的控制设计方案系统设计要求本设计需要掌握颜色识别传感器的应用原理,单片机控制原理及系统的设计,还需掌握硬件电路的焊接与调试,使单片机通过颜色识别传感器识别餐盘的颜色,进行单价的计费。具体内容有:1)工作人员先将餐饮食品按价格分装在不同颜色或形状的餐盘中,消费者可以自助选择食品;2)在收银台,系统能通过扫描餐盘颜色和个数,自动计算餐费;3)餐费显示在显示屏上。校园自助餐饮自动计费系统的总体方案设计本设计的总体设计方案如下:校园自助餐饮自动计费系统由微控制器模块、颜色识别模块、红外反射检测模块、系统电源模块、液晶显示模块五个模块组成,总体设计框图如图2.1所示[[]赵琳,郝张红,王雅君.基于颜色识别的食堂结算系统的设计[J].电子测试,2016,(23):17-19.]。[]赵琳,郝张红,王雅君.基于颜色识别的食堂结算系统的设计[J].电子测试,2016,(23):17-19.主控制器显示模块主控制器显示模块红外检测模块电源模块颜色识别模块图2.1总体设计框图主控芯片方案本设计主要是为了解决食堂自助就餐计费排队拥挤与结算速度问题,这就要求设计的自动计费系统需要具备一定的实时性和高效性,所以对主控芯片的储存空间和运算速度及能力需要较高的要求,经过几种不同方案的对比,综合考虑在以下方案中做出选择。方案一:使用AT89C52芯片AT89C51单片机由美国ATMEL公司推出,是该公司的经典产品之一,应用较广。其是一种低电压、高性能的COMS8位单片机,片内含4K的Flash程序存储器,256B片内RAM,下载程序需要使用专用的编译器[[][]李明亮,肖广兵,张涌.基于AT89C51的智能移车系统的设计[J].智能计算机与应用,2020,第10卷(5):169-171.方案二:使用STC89C52RC芯片STC89C52芯片是由宏晶公司研发的,高速、低功耗、抗干扰性强的新一代8051单片机,指令代码完全兼容传统的8051单片机,速度比之前快8—12倍[[]朱鹏.基于STC89C52RC的智能安防小车WIFI监控系统的设计与实现[J].电脑知识与技术,2018,(14):203-204.]。STC89C52RC芯片是一款8k字节可在线编程Flash[]朱鹏.基于STC89C52RC的智能安防小车WIFI监控系统的设计与实现[J].电脑知识与技术,2018,(14):203-204.经过对比以上两种方案,方案二中STC89C52的存储空间、运算速度以及性能上相对较优于方案一,且STC89C52芯片可在线编程,能满足程序储存的要求,简化硬件电路的设计,便于下载程序,所以综合考虑选用方案二为系统的主控芯片。传感器方案本设计需要根据颜色来判断菜品的价格,所以将选用颜色传感器。RGB传感器工作原理是:通过检测红(R)、绿(G)、蓝(B)反射比检测颜色[[]王凯,袁佳伟,吴文明.

基于[]王凯,袁佳伟,吴文明.

基于TCS3200传感器的颜色辨识系统设计[J].

数字技术与应用,2017,(5):168-169.方案一:使用TCS34725传感器TCS34725是一款功耗低,灵敏度较高的RGB传感器[]Gunawan,A.A.S.1;Brandon,D.2;Puspa.DevelopmentofUrineHydrationSystemBasedonUrineColorandSupportVectorMachine[J].ProcediaComputerScience,2018,Vol.135(0):481-489.。TCS34725传感器支持通过12C接口,输出颜色的RGB数值以及光照强度。其工作电压为3.3V/5V,产品尺寸大小为27mmx20mm,分辨率为:4个RGB通道,每个通道16[]Gunawan,A.A.S.1;Brandon,D.2;Puspa.DevelopmentofUrineHydrationSystemBasedonUrineColorandSupportVectorMachine[J].ProcediaComputerScience,2018,Vol.135(0):481-489.方案二:使用TCS3200传感器TCS3200是美国TAOS公司推出的可编程光到频率的转换器[[]NguyenT.T.,NguyenT.T.,Nguyen.ApplicationofArduinoControlMainboardwithColorLightSensorTCS3200inColorRecognitionofEdgeBandinginLaserEdgeBandingMachine(ConferencePaper)[J].IOPConferenceSeries:EarthandEnvironmentalScience,2019,Vol.252(2)]。TCS3200是一款可检测全彩的传感器,能在一定范围内,检测所有的可见光,具有较高的分辨率。它把可配置的硅光电二极管与电流频率转换器集成在一个CMOS电路,且还集成了红、绿、蓝3种滤光器,是业界第一个有数字兼容接口的RGB颜色传感器[[]李静,梁鹏超.基于TCS230传感器的颜色识别系统设计[J].计算机与数字工程,2017,第45卷(5):984-987.]。TCS3200内有10[]NguyenT.T.,NguyenT.T.,Nguyen.ApplicationofArduinoControlMainboardwithColorLightSensorTCS3200inColorRecognitionofEdgeBandinginLaserEdgeBandingMachine(ConferencePaper)[J].IOPConferenceSeries:EarthandEnvironmentalScience,2019,Vol.252(2)[]李静,梁鹏超.基于TCS230传感器的颜色识别系统设计[J].计算机与数字工程,2017,第45卷(5):984-987.相比两个方案,两者功能相差不大,相比之下,TCS34725的成本更高,电路更加复杂;TCS3200具有的兼容接口,可直接与单片机连接,使电路设计变得简单,且其已能满足本设计所需的功能要求,所以本次设计选方案二。显示屏方案本设计需要显示识别到的不同颜色的R、G、B值来判断传感器识别的颜色以及实时显示餐盘的单价和餐费的总计,所以需要到一个显示屏将相应的信息显示出来。显示屏的不同方案的对比如下:方案一:使用LCD12864显示LCD12864是一种图形点阵液晶,可完成图形显示,也可以显示8×4个汉字或者显示16×4个(8×16

点阵)ASCII码。方案二:使用LCD1602显示LCD1602是一种字符型液晶,能显示16×2个字符[[]卢凯璇,吴丽群.

基于颜色识别的食堂智能结算系统[J].

现代计算机,2020,

(23):94-98.]。它可只用D4-D7分两次传送数据,可节省[]卢凯璇,吴丽群.

基于颜色识别的食堂智能结算系统[J].

现代计算机,2020,

(23):94-98.综合以上两种方案的对比,方案一的LCD12864显示器虽分辨率较高,但其显示的信息量大,其应用程序的编写和电路的设计也相对复杂。方案二选用的显示器,控制相对简单,性价比高,所以综合考虑选用方案二的LCD1602显示器。红外检测传感器方案校园自助餐饮自动计费系统的设计中,需要检测是否有餐盘位于结算区域内,所以将选用红外反射传感器进行检测,进而激活颜色识别传感器。本设计选用的红外反射传感器,电压3.3V-5V,OUT输出端口可以直接微控制器的I/O口相连。该传感器的检测反射距离2cm-30cm。该红外反射传感器PCB尺寸:3.2cmX1.4cm,设有3mm的固定螺栓孔,便于固定与安装。电源方案因本系统需要持续供电,蓄电池不适用。本设计将使用的是USB供电,综合以上,系统中用到的是5V电压。所以可以使用电压为5V的移动电源或者直接插入电脑(5V)供电,不需要再进行电压的转换,较为便捷。蜂鸣器方案在本设计中加入一个蜂鸣器,主要是为了在餐盘被系统中的传感器感应到时,发出声音提醒餐盘已被感应到,可起到提示的作用,提高该系统的准确性,防止存在错漏识别餐盘。本设计选用5V供电的电压式蜂鸣器。本章小结本章中主要介绍了校园自助餐饮自动计费系统的硬件总体方案。其中包括对整个系统进行控制的单片机方案以及传感器的选择方案,介绍了相关传感器的优缺点。这些模块都是系统中必不可少的部分。系统硬件设计主控芯片最小系统设计最小系统包括STC、晶振电路及复位电路,它们三者都缺一不可,是使最小系统能够稳定运行的重要保证。主控芯片I/O接口STC89C52微控制芯片是一款8位CPU且具有8位交互式可编程闪存的微控制器,最高运作频率35Mhz。该芯片共有32位I/O接口,片上集成512字节RAM,其I/O接口如图3.1所示。图3.1主控芯片的最小系统复位电路复位电路能给系统制造一个稳定的工作环境。本设计中,电路复位的方式是上电复位,在必要时需要通过手动的方式重新启动电路。作用原理为当低电平信号从单片机复位引脚输入后单片机重新复位。图3.2复位电路晶振电路系统电路中,晶振电路具有核心的地位。系统指令的执行与否都需要通过它来判断。系统的工作速率与其频率有很大的关联,频率越高,系统就能越高效的运行。晶振电路如下图3.3所示。其中电容C2、C3能维持震荡持续,使电路中的晶振趋于稳定。晶振频率为11.0592M,响应能力满足测量要求。图3.3晶振电路红外检测模块校园自助餐饮自动计费系统中,餐盘的感应主要依赖于红外检测。其硬件设计如图3.4所示。系统中,红外传感器工作时,D1会发出红外冲击波,感应到餐盘后,反射回到D2中,接收到的信号经过转换处理,传给单片机,以激活自动计费系统工作。图3.4红外传感器电路设计颜色识别模块图3.5是TCS3200内部结构图,其不同的引脚具有不同的功能。S0用控制电源开关及不同比例因子;S2、S3决定滤波器的选用;OE是决定芯片是否工作;OUT是输出频率;GND接地;VCC接电源;采用5V恒流源供电。TCS3200的各个引脚的接线图如图3.6所示,S0、S1和S2、S3的可用组合如表3.1所示。表3.1S0、S1、S2、S3的组合选项S0S1输出比例S2S3滤波通道01关闭电源00红色(R)011:5001蓝色(B)101:510无111:111绿色(G)TCS3200传感器可以通过改变其光敏感区的光纤颜色来工作,红色光、绿色光、蓝色光分别通过时,根据其频率线性特征,可得到RGB数值。例如,选通红色滤光器时,其他两种色光都被阻止透过感光部位,此时就能得到红色光在此种颜色中的含量信息[[]储庆.基于单片机的智能颜色识别系统研究[]储庆.基于单片机的智能颜色识别系统研究[J].科技视界,2015,(34):202.图3.5TCS3200引脚和功能框图图3.6颜色识别传感器电路图液晶显示电路LCD1602A有16个引脚接口,各引脚功能如表3.2所示。引脚RS、R/W、E为控制引脚。当RS=L时,输入指令;当RS=H时,输入数据;当R/W=L时,写操作;当R/W=H时,读操作。表3.2LCD1602引脚及功能引脚号名称输入/输出功能1VSS——电源地2VDD——电源正端(5V)3V0——对比度调节4RS输入数据/指令选择5R/W输入读/写选择6E输入使能信号7~14DB0~DB7输出数据总线15LEDA——背光电源正极(+5V)16LEDK——背光电源负极(0V)在电路中,LCD1602与单片机为数据并行通信。LCD1602的1、2、15、16引脚分别与电源正、负极相接,提供电源和背光电源;数据总线(7—14引脚)与单片机的P0口(P0.0~P0.7,39脚~32脚)连接,为单片机提供数据信息输入;控制总线RS、R/W和E分别与单片机P25、P26、P27引脚,控制信号输入与输出;V0引脚接一个10K电位器用于调节背光灯亮度[][]赵华峰.

LCD1602模块的汉字显示研究[J].

现代信息科技,2020,

第4卷(17):35-37.图3.7LCD1602与STC89C52引脚连接图按键电路、蜂鸣器及指示灯电路图中设计有按键、蜂鸣器以及指示灯。按键电路主要是通过按键来对系统进行初始化和对传感器进行白平衡的调整。由于本设计只涉及到两个按键的使用,将选用较为简单控制程序的独立按键。按键电路如图3.8所示。将按键的一端接地,SW2与P33接上、SW3与P34接上。在程序编写时,将P33、P34端设置为高电平状态,键未按下时,保持高电平状态;按下时,电路接地,低电平有效。图3.8按键电路连接图指示灯连接VCC引脚和P20引脚,该指示灯的代表校园自助餐饮自动系统的工作状态。当检测到餐盘时,指示灯灭,餐盘拿开结算区域,指示灯又亮起,检测一次餐盘,灯灭一次。其电路图如下图3.9所示。图3.9指示灯连接图蜂鸣器连接VCC引脚和P37引脚,低电平触发,当系统识别到餐盘时,蜂鸣器响起。其电路图如下图3.10所示。图3.10蜂鸣器本章小结本章中重点介绍系统各个硬件的功能,根据其引脚功能完成电路的设计及连接,包括单片机各组成部分的电路连接以及各个模块和各类接口在电路中的连接。详细地分析了各部分电路的原理图以及作用。系统软件设计选用C语言编写程序。先把主程序写出来,然后写各模块子程序,写好后再加入到主程序中去,这样分模块的编写方式,便于检查。主程序设计开始系统初始化白平衡调整红外传感器检测是否有餐盘待计价对餐盘进行颜色识别转换成RGB程序计算价格并显示计价是否结束复位结束NNYY主程序设计之前,先把系统大体的进行步骤规划出来。具体流程如图4.1

所示。首先,要做的就是初始化,主要是包括校准定时器及同步LCD1602A的状态。初始化后,颜色传感器不能直接开始识别工作,需要白平衡调整。完成以上操作之后开始系统初始化白平衡调整红外传感器检测是否有餐盘待计价对餐盘进行颜色识别转换成RGB程序计算价格并显示计价是否结束复位结束NNYY图4.1主流程图主程序设计的程序代码如下:/***************主程序****************/voidmain(){ intRn,Gn,Bn,cd; //初始化颜色值 intzj,dj,CD; s2=0;//初始设定S2引脚 s3=0;//初始设定S3引脚 lcd1602_init();//液晶初始化 hz_lcdDis(0,0,"R:G:B:");//写屏幕 hz_lcdDis(1,0,"Z:D:");//写屏幕 t0_init();//定时器初始化 EA=1;//开总中断 while(1) { sscanf(disp_R,"%d",&Rn); num_lcdDis(0,2,Rn,3); //R显示 sscanf(disp_G,"%d",&Gn); num_lcdDis(0,7,Gn,3); //G显示 sscanf(disp_B,"%d",&Bn); num_lcdDis(0,12,Bn,3); //B显示 num_lcdDis(1,2,zj,2); //显示总价 num_lcdDis(1,10,dj,2); //显示单价}红外检测子程序设计开始红外检测是否有餐盘放入?Y启动颜色识别模块结束Y开始红外检测是否有餐盘放入?Y启动颜色识别模块结束Y[]杨顺,郭燚,刘洋等.

基于TCS230颜色识别的餐盘自动计价系统研制[J].

通信电源技术,2017,第34卷(1):77-79.图4.2红外检测流程图颜色识别子程序设计TCS3200白平衡调整白平衡就是将白色对应的信号值表达给系统。根据赫姆霍兹三基色原理,可得知,各种颜色是由不同比例的红(R)、绿(G)、蓝(B)混合组成的[[]张福军,王晓超,郭伟等.果蔬农药残留萃取液颜色识别系统的研究[J][]张福军,王晓超,郭伟等.果蔬农药残留萃取液颜色识别系统的研究[J].湖北农业科学,2016,第55卷(8):2111-2113,1990.[]LiQiaoyi;XiongYanling;YangWenlong.StudyonColorAnalyzerbasedontheMultiplexingofTCS3200ColorSensorandMicrocontroller[J].InternationalJournalofHybridInformationTechnology,2014,Vol.7(5)颜色识别技术根据上提到的识别技术,将依次选通三个颜色通道,计算出一段时间内的,TCS3200传感器这段时间内的脉冲个数,在这段时间内测得脉冲数就是所对应的R、G、B值[[][]彭飞,

王会良,

谷青峰等.

基于STC89C52单片机的智能搬运机器人设计[J].

科学技术创新,

2019,(10):74-75.以下是颜色识别的程序:/*******************************************/*函数名称:c10ms_out()*函数功能:定时中断0服务程序修改颜色标志disp_tc(0:红1:绿2:蓝)设置S0S1S2S3选择滤波器计算脉冲,读取色值*入口参数:无*出口参数:无/********************************************/voidc10ms_out()interrupt1{ uinttemp; TR0=0;//关闭定时 TR1=0;//关闭计数 //count+1先检测绿色,再蓝色,然后红色,循环检测 if(count==0) { count++; s2=1;s3=1;//选择滤波器为绿色 temp=(8<<TH1)+TL1;//计算这段时间内TCS3200的输出脉冲数 temp/=rp; conversion(temp); disp_R[2]=ge;//因为这次的中断,是上次选择滤波器的数值 disp_R[1]=shi; disp_R[0]=bai; } elseif(count==1) { count++; s2=1;s3=0;//选择滤波器为蓝色 temp=(8<<TH1)+TL1;//计算脉冲数 temp/=gp; conversion(temp); disp_G[2]=ge;//上次滤波器的数值 disp_G[1]=shi; disp_G[0]=bai; } elseif(count==2) { count=0; s2=0;s3=0;//选择滤波器为红色 temp=(8<<TH1)+TL1;//计算脉冲数 temp/=bp; conversion(temp); disp_B[2]=ge;//上次滤波器的数值 disp_B[1]=shi; disp_B[0]=bai; }价格计算原理在当前自助餐饮行业中,已逐渐使用不同颜色的餐盘来装载不同样式的食物,不同颜色的餐盘对应不同的菜品价格。本设计中的校园餐饮也将使用不同颜色的餐盘来防止食物,为了便于实验,本次设计实验不同颜色的小球来代替不同颜色的餐盘。因此,可根据本文前部分提到的颜色传感器,获取不同颜色小球的颜色信号值,通过程序的编译,将其转换成对应的价格。本文将选用黄、绿、蓝、紫四种色差较大易于区分的颜色。反复测量不同颜色的R值、G值、B值,大致的给不同颜色的每个数值定义一个对应的区间,当数值都处在某个颜色对应的三个区间时,才可判断为该颜色。例如蓝色R值区间为30-50,G值区间为73-85,B值区间为20-40。若测量某一餐盘时,测得其R=44,G=80,B=35,这三个值都在蓝色对应区间内,通过程序可识别出其为蓝色餐盘,从而输出蓝色餐盘得价格为4元。其他颜色小球(餐盘)的计费原理与之相似。经过多次测量不同小球的RGB值,不同颜色对应的R、G、B值得区间范围如下表4.1所示。表4.1R值区间G值区间B值区间对应价格绿58-7015-2525-352黄35-4515-2515-303蓝30-5073-8520-404紫50-6040-5030-405液晶显示子程序设计根据LCDI602资料,为了方便程序的使用与下载,LCD1602显示控制的程序代码,独立地编写在LCD1602.C文件中。单片机CPU控制液晶显示LCD模块的方式,可以把LCD1602的内部看作2个寄存器,一个为指令的保存,另外一个为数据的保存,RS控制。液晶显示的写操作的先后顺序,一般是先执行写指令,后执行写数据。写指令和写数据分别对应的程序如下:/**************************************写指令**************************************/voidlcd_Write_com(ucharcom) { RS=0; //定义指令寄存器 RW=0; //写允许 P0=com; //写指令 delay5ms(); E=1; //片选端上拉 delay5ms(); E=0; //下降沿锁存}通过写指令函数程序完成对液晶显示进行写数据的操作,写数据的函数程序如下:/**************************************写数据**************************************/voidlcd_write_date(uchardate) { RS=1; //定义数据寄存器 RW=0; //写允许 P0=date; //写数据 delay5ms(); E=1; //片选端上拉 delay5ms(); E=0; //下降沿锁存}要想液晶LCD1602A显示正常,初始化是显示前的必要步骤。其过程为:将初始化的程序写到其中,程序内容有格式设置、模式的选择、输入方式、屏幕清空等。LCD1602初始化函数如下所示:/**************************************液晶初始化**************************************/voidlcd1602_init(){ lcd_Write_com(0x38); //设置8位格式,2行,5*7 lcd_Write_com(0x01); //清屏 lcd_Write_com(0x0c); //整体显示,关光标,不闪烁 lcd_Write_com(0x06); //设定输入方式,增量不移位 lcd_Write_com(0x80); //初始坐标}/**************************************为了能够精确的对晶振为11.0592MHz的LCD1602进行延时,需要通过延时函数,完成LCD1602的延时。延时函数如下所示:/************************************函数说明:延时程序************************************/voiddelay(uchart){ uintj; uchari; for(i=0;i<t;i++) for(j=0;j<120;j++);}/**************************************短延时**************************************/voiddelay5ms(){uchari,v,k;for(i=1;i>0;i--)for(v=20;v>0;v--)for(k=22;k>0;k--);}LCD1602显示屏上不同位置都有对应的地址。液晶位置映射图如图4.3所示。要想把字符显示在所需的位置,要根据其位置对应的地址编号来编写程序。LCD1602LCD160216字x2行000102030405060708090A0B0C0D0E0F10……27404142434445464748494A4B4C4D4E4F50……67图4.3液晶RAM地址映射图要在对应的位置显示字符,需要写入一个设置数据地址的程序指令,再写入需要显示的字符即可[[][]杨佳,邓力.基于元件技术手册的嵌入式驱动开发的探索——以LCD1602及LPC2106为例[J].企业科技与发展,2016,(3):46-50.显示程序如下:/**************************************显示程序**************************************/voiddis_lcd1602(ucharx,uchary,uchardat){ ucharadd; if(y==1) add=(0x80+x); if(y==2) add=(0xc0+x); lcd_Write_com(add); //写指令 lcd_write_date(dat); //写数据}液晶显示的字符分为字母和数字,不同字符其显示的程序不同。以下是液晶显示的字母显示程序:/**************************************液晶显示字母程序**************************************/voidhz_lcdDis(ucharx,uchary,uchar*p)//字母显示 {uchari=0,temp;if(x)temp=0x40;elsetemp=0;for(i=y;*p!='\0';i++,p++){ lcd_Write_com(i|0x80+temp); lcd_write_date(*p); delay5ms(); }液晶显示的数字显示程序如下:/**************************************液晶显示数字程序**************************************/voidnum_lcdDis(ucharX,ucharY,uintnum,ucharn) { uinti=0,temp,hang; n+=1; if(X)hang=0x40;elsehang=0; for(i=(n-1);i>0;i--){ lcd_Write_com((i+Y-1)|0x80+hang); //从个位开始显示 temp=num%10+0x30; lcd_write_date(temp); delay5ms(); num/=10; } }以上就是液晶显示模块各部分子程序的软件设计。按键电路程序设计按键本身是比较机械性的,由于还需要通过人工手动按下,还可能导致滞后性。按下过程中,由于按键本身及人为的原因,按键会存在抖动的情况。抖动时,一次按下会被当作多次按下处理,此时,将会导致错误发生。为了避免如此,需要对其消除抖动。按键消抖分为硬件和软件消抖[[]程佳佳.

基于[]程佳佳.

基于VHDL的按键消抖程序设计[J].

科教导刊(电子版),2017,

(24):222.键按下时,想要消除其抖动带来的影响,首先不能让系统马上确定其按下,设置一个255ms的延时程序后,再对其状态进行判断。按键电路的子程序设计如下:if(key1==0){be=0;delay(255);be=1;zj=dj=0;}if(key2==0)//当小球放上去CD++;if(CD>20){CD=0;//开始计费zj+=dj;be=0;delay(255);be=1;//总价+等于单价 总价=总价+单价本章小结本章节中主要介绍了与各个硬件模块对应的程序设计,从主程序的设计展开到红外检测、颜色识别、液晶显示各个不同模块的子程序的设计,分析了如何进行白平衡调整,以及如何将R、G、B值和字符在液晶LCD1602上实现显示。本章节中的检测与程序设计时整个软件系统中最为重要的组成部分。系统调试一个完善的系统设计,必须经过调试,从中找到存在的问题,进而做出更完善的系统。系统调试分为硬件与软件的调试。硬件电路正常运行是软件调试的基础,所以需要先对硬件进行调试,再软硬联合调试。硬件调试硬件调试需要使用的仪器硬件调试需检查各元器件的焊接是否良好,排除短路及短路问题,使各电路部分能正常运行。调试需要用到以下几种仪器进行检测。(1)数字万用表一台(2)直流能源一台(3)示波器一台最小系统的调试最小系统在整个系统中占有举足轻重的地位,系统能不能稳定工作都在于它。首先,检查设计原理图与PCB是否一致,检查各元器件的型号、安装是否正确,检查电源有无接地短路保护。本设计使用的STC89C52芯片共有32个引脚,芯片封装形式为双列直插式封装,焊接较为简单,但需要注意漏焊、连焊,焊接完成后,检查各个引脚是否焊接良好且与焊盘连接,最后需要检查VCC与GND是否接地。排除所有问题后,给系统通电,观察电源指示灯是否正常亮起,通过串口检查是否能正常下载程序,如果能够正常下载,表明最小系统的基本工作是正常的,否则说明最小系统是存在问题的。在此过程中遇到的问题如下:(1)无法下载程序ISP下载程序,检测不到有USB接入,检查分析发现,使用了只能供电的USB数据线,不能传输程序,经过换一根USB数据线后,能被正常检测到,程序可正常下载。软件调试本设计的软件调试步骤如下:(1)在Keil4软件中创一个工程名为“校园自助餐饮自动计费系统”并保存,器件选择“STC”目录下的“STC89C52RC”;(2)新建文本编写程序,将文件拓展名命名为“校园自助餐饮自动计费系统.c”;(3)在新建的用户源文件中编写程序,将之前编译好的主程序放入其中,然后加入各个模块的子程序;(4)编译程序完成之后,试运行文件,在提示栏中,检查是否有错误报告,如有,纠正错误,直到无错误信息提示;(5)将无误的程序烧录到系统中。软硬联合调试在检查和调试完所有系统的各个模块之后,进行全面测试和调试,即软件和硬件的联合调试。通过给整个设计系统通电,现场真实的测试整个系统,使得系统调试真实可信。各个模块连接好之后,通电,按下启动开关,此时状态指示灯亮起,TCS3200传感器上的四个白色小灯正常发亮,红外反射传感器的电源指示灯亮起,LCD1602正常显示。下面将检测整个校园自助餐饮自动计费系统的识别与结算功能是否能实现,当把小球(餐盘)放置于传感器之上时,红外反射传感器的开关指示灯亮起,TCS3200传感器识别到小球后,蜂鸣器响应,LCD1602液晶显示屏上显示小球颜色的RGB值以及对应的单价和总价。通过多次识别小球,系统的识别功能与自动计费功能正常实现。本章小结经过对系统各部分和总体的调试,以及对系统进行了试运行,确认系统在功能方面的完备性和可靠性。数据处理与验证在校园自助餐饮自动计费系统中,颜色识别是整个系统中的关键部分,传感器的颜色识别如因受到外界干扰,将会产生识别上的误差,导致餐盘价格的显示结果也将受到影响

温馨提示

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

评论

0/150

提交评论