版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
NoNoPAGE基于单片机的二维码识别结算系统设计目录引言 51二维码识别结算分析 81.1条码的应用背景及现状 91.3二维码识别结算对社会、经济、环境的影响 122系统总体设计 152.1设计目的 152.2系统功能设计 152.3系统结构 163系统硬件设计 203.1STM32单片机核心电路设计 203.2按键电路设计 223.3蜂鸣器报警电路(高电平有效)设计 233.4TFT触摸彩屏1.44寸模块 243.5GM65条形码二维码扫描识别模块电路设计 254系统软件设计 304.1编程语言的选择 304.2Keil程序开发环境 314.3FlyMcu程序烧录软件介绍 324.4CH340串口程序烧写模块介绍 334.5软件程序设计 354.5.1主程序流程图 354.5.2主程序设计 365系统调试及运行 435.1电路图全况 435.2实物演示 44结论 46参考文献 48摘要随着社会经济的发展动态,每日生活节奏的变化,以及商场收银的转换,智能移动终端的普及,二维码的应用范围越来越广泛,已经逐渐演变日常生活中的重要组成部分。特别在超市收银系统中,工作人员通过扫描商品二维码,系统进行累加计算,从而精准而快速地算出消费者购买全部商品的总金额及详细信息。本设计以STM32F103C8T6为核心电路设计,并搭载按键电子开关,蜂鸣器报警电路、TFT触摸彩屏1.44寸模块、GM65条形码二维码扫描识别模块电路设计等。此系统的软件系统是由c++语言对软件进行编程,以单片机的软件系统开发环境Keil进行编辑,编译,连接,调试。再通过FlyMcuSTM32F103C8T6进行程电路编程,采用CH340串口数据烧写控制模块来完成了对单片机编译器的程序。在本次的设计中,红外线扫描仪传感器可以通过扫描并自动识别商品二维码,当扫描成功后,显示屏上将会显示被扫描商品的名称,数量,单价,金额等信息,并通过不断地扫描可以进行商品的累加结算。通过软硬件的相互配合,二维码将会在大范围内上替代条形码,将实现“码商(二维码-商超)”互联。本系统的设计可以提高超市收银的效率,增加超市同比时间的容客量,减少商品的生产成本,是二维码支付扫描系统应用的未来发展趋势,对类似的系统应用有一定的借鉴性。关键词:条码扫描;结算系统;二维码支付;STM32单片机引言近年来,随着我国经济发展高水平的变化,人们愈来愈追求生活的幸福感与高品质。对于超市的条码使用也是越来越讲究,结账时候的便利问题在居民的日常生活要求中所占的比重也越来越大。随着社会的发展,愈来愈多的人注重日常生活的便利,即二维码识别支付结算,因此二维码在日常生活中的出现率是很高的,尤其在超市收银结算系统中的利用率是巨大的。在日常生活中人们的空暇时间被诸多的工作、家庭等内容占据过多的精力,因此人们所用在超市购物的时间越来越少,想通过更便利的方式进行超市购物,那么如何确保完成准确收银的前提下,保证收银系统的稳定高效成为必须要解决的关键问题。根据近些年物联网的猛速发展,传统的一维码储存信息容量不够,很容易被其他组织进行复制,也没有方式去显示汉字与图像,于是就产生了二维码,并广泛应用于人们的每日生活中。使用二维码的主要优点有:黑白二值图像,只有黑白两种颜色,图像的识别更加迅速;不仅三个定位点可以携带信息,还可以进行信息的补充;它的允许犯错能力是很强大的,当二维码收到了外力的破损之后,依据已经毁损图案还是可以正常识别,可观的是破损面积达到30%依旧可以进行信息的复原[1]。最后,生成二维码的成本非常低,制作方法简单。通过二维码的种种优势,可以获取出,本设计将条形码取代成二维码甚至在条形码的基础上加以更新将会在未来的经济市场上具有一定的影响力。随着科技水平的跃升,二维码的出现在很多方面改变了我们的日常生活。二维码是一种能够实现自动识别信息、存储信息与追踪信息的信息技术。其原理是输入设备配置摄像机、扫描仪等,加之一些光电扫描设备为基础作为识别器[2],最终实现对信息的自动处理。该技术具有信息密度高、编码范围广,容错性强、准确率极高,制作简易,成本低廉等特征,且具有一定的空间灵活性。这使之成为超市商品信息及数据储存、传输的有力载体,并使之具备支持标准化程度高、信息容量大、信息传递频繁的超市日常资金流动活动的条件。目前,二维码技术还未大范围普及到超市收银系统中,如果采用这种方式,将为超市的财务结算提供诸多便利。本论文设计的二维码支付结算以STM32为主控制芯片,方便快捷,节约成本。通过分析条形码的现状弊端,提出以二维码作为扫描支付结算的形式,搭载红外传感器摄像头扫描仪,TFT彩屏等设计,研究了二维码扫描的灵敏度,并进行程序控制运行,以获取二维码扫描的信息。本设计采用的STM32存储空间是巨大的,其管脚的应用也是很广泛的,电池供电性能好,具备高端应用的功能,且全系列脚对脚、外设及软件的高度兼容性,可以随时随地照顾到设备的灵活运用性[2]。而且它可以不用修改原来的大框架及软件结构,就可以升级随着储存空间大小的变化自由更改。二维码作为一种实体与手机生活的连接点,给人们的日常生活带来了极大的便利。而二维码能够储存大量信息的功能,现在仅需要带有扫描仪功能的移动设备就可实现二维码的识别与扫描,并得到我们所需要的全部信息。二维码越来越多的在生活中出现,作为一种标志界的风向标,以其廉价简单方便的使用很快普及到生活的角角落落,像衣食住行等等,而且这种使用的增长率还在不断升高。二维码的存在形式是点阵方式,在垂直与水平的的二维空间内都可以存储信息,也具有很强的抗损坏能力(即使破损程度很严重),普通阅读器正常读取信息是没有问题的,在某种程度上补上了一维条码的不足之处。二维码作为一维条码的更高级的形式。一维码只能记录一个方向的信息(通常是水平方向),而二维码可以在水平和垂直方向存储信息。二维码可以存储数字、汉字、图像等信息,因而二维码的应用是更加广泛的[3]。在历史发展的长河中,条形码产生的时代已经很久了,对跟紧现在的发展产生了局限性,但是也因为其存在的时间长久,技术的成熟性也是有所目睹的。但是随着时代的发展,计算机以及物联网的告诉发展,会使二维码的技术日益成熟,愈发完善,其能够搭配大容量信息以及超强的抗破损能力将会在未来的发展中得到极大的发挥作用。本论文设计出了将条形码替代成二维码,以达到对每个用户的时间负责以及对于商品的有效了解,确保了用户愉悦的购物体验,同时商品管理者将对于超市商品进行有效的后台监控与管理,系统会根据用户所使用的二维码扫描工具进行有效反应,最终实现对商品的有效便利付款。该系统在确保高效收银的同时保证了用户购物体验的提升。本论文通过单片机嵌入程序的操作进行对二维码支付的控制,不会在条码转换系统中出现不兼容等一系列问题,并且可高效地应用于人们的日常生活之中,实现二维码应用到到人们需求的方面,最终达到对二维码高效付款的有效利用,从而有效保障人民群众的生活便利。1二维码识别结算分析根据现如今社会的支付情况,基于现有的二维码支付条件,并在了解当下的支付环境秩序之后,发现条码支付这种形式正在逐步升级并不断在深入人们的日常购物领域中。纵观以往的条码支付方式中,发现以前的条形码是存在一些弊端及不方便性,因此通过条形码进行扫描的话,信息密度较低,信息容量较小,不具备应当的纠错能力。而二维码识别技术可以和商品、设备管理数据库进行匹配,实现每个方面信息的快速查询,同时也适合多种场合的应用,利用数据库及通讯网络,精准而快速。随着5G时代二维码技术的不断完善,将二维码采用到商品日常管理以及扫描活动中是社会上的每类行业创造的主要形式。换句话说,商管与扫描是相辅相成的关系[4]。只有保证对二维码有清晰框架的前提下认知它的识别原理,才能够对我们进行具体的操作时有着根基的作用。二维码的支付识别,在技术层面上来说,把对象商品信息载入到二维码,商家或者用户通过设备的扫描获取有关信息并实现支付完成的指令。二维存储的信息是很全面的,交易信息、程序信息、全平台信息、账户信息等,具有集中性、隐私性、可识别性等特点[5],在各种方面上都对支付环节有了良好的保障。总的来说,二维码识别支付是一种图像ocr过程[6],依据摄像头对图像进行扫描并获取信息,之后再经过一些加密技术的处理,就可以获取到二维码的扫描信息,这就代表完成此次操作,紧接着再与商家的端口进行连接,这就完成了一整套的支付流程。在日常交易中,我们只需要扫描一下就可以完成操作,其实幕后的制作处理过程还是很繁杂的,二维码的扫描、识别、整合、支付的每一步都是必不可少的。而本设计通过二维码生成识别扫描技术,不但可以有效地降低维护成本以及升级等问题,还可以减少人力物力的安排,并可以做到多种信息的同步识别,这样可以有效解决条码识别一直存在的问题并将得到更好的完善。通过研究分析本设计是一种可进行实时二维码识别结算,当进行商品扫描时将会在扫描仪上显示全部信息,提升了用户便捷付款的购物体验。研究分析人们日常的付款习惯,确保系统的稳定运行,在确定方案之后还要充分考虑实物的呈现形式,力求简便易用,符合用户的日常使用方式,并且利用软硬件来实现初步的功能。最终以实物形式呈现,做出二维码识别扫描结算装置,来确保人们的以往惯于的购物形式,最终来确保整个结算系统能够稳定运行。1.1条码的应用背景及现状随着社会的进步,商场的商品交易在很大程度上有了飞跃的发展,其中条形码与二维码的应用广泛程度可以说是无处不在的,商超环境是推动条码发展的核心主力军之一。条形码(barcode)是由大大小小的黑色条状图和多个空白区域组成的,根据固定的编码规则进行排列,来表达一类信息的一种表示符号。条形码的识别技术是每一组都按照固定的编码规则进行排列,并采用固定的字符与数字符号组成的完整信息框架。它起源于20世纪40年代后期,应用于70年代,普及于80年代[7],为消费者的超市购物节约了大量的时间。根据社会大趋势的发展,在每种物品的周转与管理中用来记录商品信息及来源途径以不同规格的条形码用加以区分,能在同一时间内得到各个环节的信息结果是提高管理力与升级流转物品的重要手段。商品上的条形码特点有:条形码的数量和种类是巨多的,大大小小的规格也是不定的,间距很小且藏有文字,倾斜角度也是多变的,在流通过程中,特殊物品上有其他类型的几何形状,由于特殊原因导致有些条码并没有印刷在码盘上等等。条形码的适用范围常见于超市商品货架上的价格标签,电子加工厂元件码盘上,快递上面的物流信息单号等。传统的一维条形码仅仅可以携带几十位字符的信息,而二维码则是它储存信息能力的上百倍,而且可以自动纠错。据相关新闻报道,一些食品企业使用食品包装后,条码作废被取消使用后,但仍被其他的企业继续使用,因此必须设置不同的商品条码。但在实际研究检查过程中,一类食品会共同使用同一个条形码,有时它能识别相同的两种不同的食品代码,因此与扫描结果和管理后台是混乱的。另一个问题是,设计师不了解条码两边的空白区域,因此面积相对较小,导致一个代码栏,通常无法正常读取信息。在市场控制和检查中发现,印在食品包装上的放大率是非常小的,如果放大系数太小,就会影响代码的识别。如果修改代码,就会出现高度截断的现象,这就导致用户需要在扫描过程中更准确地对准条形码,最后的结果是会影响阅读速度和效果,降低了工作效率。此外还是一个关键的问题是,符号的等级也难以合格。条码工具产生的代码以及打印机数量不够的原因,打印过程中油墨量范围变化很大,存在污点脱墨的现象,打印错误太多导致作废,所有这些都被禁止使用的。鉴于上述问题,我们需要设置二维码的使用。它包含更多信息,可以保存更多字节。同时,二维码的编码译码是准确的,严密性更好不会轻易被他人获取到。1.2二维码识别结算系统分析本系统由STM32F103C8T6单片机核心板、二维码/条形码摄像头模块、1.44寸TFT彩屏、蜂鸣器提醒电路、按键组成。【1】本系统能够通过摄像头识别二维码/条形码具体内容进行彩屏TFT显示,另外开发模拟类似超市餐饮等扫码统计计费结账系统。【2】系统分“二维码/条形码结算模式”、“二维码/条形码识别模式”;上电默认结算模式,按键可以切换模式。【3】系统上电后,自动初始化二维码/条形码模块配置,进入“二维码/条形码结算模式”。该模式下,仅仅可识别录入系统的“苹果”“肉”“玩具”“茄子”的二维码/条形码(未录入系统的,无效,未录入系统码可以通过“识别模式”识别码信息)。摄像头扫描仪可以随机扫描任意商品的二维码/条形码;并且对扫描到的物品顺序进行自动排序显示,显示内容包括:名称、数量、单价、金额;同时显示所有扫描的总金额。比如显示如下(每扫描一次二维码数量加一次):名称数量单价金额苹果020510 肉类022040 玩具031545 茄子030309 总额:104元扫描结束后,可以通过按键按下表示进行结算,结算后,重新进入到结算模式,同商超一样。【4】通过按键按下进入“二维码/条形码识别模式”,该模式下摄像头扫描到任何商品数字二维码/条形码(包括生活中任何物品及设备上的数字二维码/条形码)会自动分析识别,并把结果显示在液晶屏上。并且扫描到下一个码时自动显示覆盖上一个显示结果,不需要任何按键清屏操作。比如扫描到二维码直接显示:http://www.HellowW【5】注意:二维码/条形码摄像头自动感应扫描,如果光线条件不变自动低功耗,感应条件变化自动识别,可以有效防止反复识别同一个码。如果想反复识别同一个码,将摄像头转动下位置再次转回进行识别(和生活中使用相同)。1.3二维码识别结算对社会、经济、环境的影响随着时代的发展,二维码的出现在很大程度上便捷了人们的生活。那么首先要提到的就是二维码的识别技术,它不仅可以与商品的管理后台数据库进行匹配,同时还可以达到对所需求信息的便捷查询,同时应用多数场合,利用通讯网络及数据库,快速便捷。跟着5G大时代的到来,二维码技术也走向了一个新的阶段,在后台商品的管辖内及进行扫描时嵌入二维码的识别技术已经成为各行各业的一个潮流新趋势。换句话说,二维码的识别技术与设备的管理之间是相互作用互相成就的。在了解二维码技术之前,我们首先对二维码的识别原理有一个大致框架的了解,对我们之后学习二维码识别技术等等各个方面起着奠定基础的作用。在设备管理发展的历史长河中,为了对商品的差别有所区分,引入了条形码这个概念并加以使用,尽管是这样,大量的工作内容也会有出错的时候,这就导致了信息与商品内容不符的情况。而且,条形码所能承载的信息是有限的,在对信息的补充和细化工作上,传统的条形码并不能胜任。将二维码识别技术引入商品管理的工作中,可以对商品的全部详细内容,通过生成器生成新的二维码,将出现的问题全部记录在二维码中,直接传输到数据库中心。因为录入二维码生成器的信息是针对每个商品的信息,所以我们生成的二维码,每个商品都是不同的,这样基本上可以避免由于信息不匹配造成的失误。通过扫描二维码,相关的管理人员也可以直接获取二维码中的全部信息,对有问题的地方及时修正,从而提高工作质量。同时,在超市收银方式中,出现了卖家自助收银柜台,顾客自己可以通过扫描商品条形码逐一结算,而且这种方式将会在未来愈加普及。现有小部分超市推出了商超APP,即顾客边购买边可扫描商品相关信息,如果将条形码替代成二维码将能容纳更多的信息量,细节到商品的成分是否适合特殊体质人群等等。而且,边购物边扫描边结算将会大大减少收银柜台的客流量,特别是在疫情防控下,尽量减少人员聚集是很有必要的。二维码的出现,促进了更多的应用,使更多的行业对二维码的初步使用有了深入了解,在很大程度上提升了人们的购物体验。中国将在下一步进行二维码的标准规划化加大整改力度,同时会进入到一下全新的水平,将会在各个领域进行二维码的统一管理化。作为当今移动互联网行业流量的关键切入点和互动中心,二维码也产生了新的模式、格式和产业,作为数字经济的主要代表,从中我们可以看出,二维码的未来一定是相互联系的,这是一个全球性的互联互通,在当今社会的发展阶段,中国不仅要实行与国际接轨的统一二维码标准化,而且还要促进有关技术的主要研发,加强保护知识产权建设,在未来的关系中获得国际竞争力。2系统总体设计本设计采用ST公司的ARM控制器STM32F103C8T6作为主控制器,STM32F103C8T6是一个由32位组成的一种微控制器,速度为72MHz,64KB是它的程序储存容量,工作温度为-40~85℃[8],足以应对此系统的全线功能设计。同时对比于一维条码、RFID(射频)等技术,仅仅一个很小范围内的二维码就可以容纳超多的信息量,识别效率大大提升,同时保密性也更高。此外,二维码的空间利用率高,对于编码的码制需求是很宽泛的,及时校对功能以及加密能力都是非常强大的。此系统的硬件设计以STM32为核心电路设计,并搭载几个主要的硬件,按键电子开关,蜂鸣器报警电路、TFT触摸彩屏1.44寸模块、GM65条形码二维码扫描识别模块电路设计等。此系统的软件系统由C语言进行编程,通过单片机的开发环境Keil,进行编辑,编译,连接,调试。再通过FlyMcu进行程电路编程,最后通过CH340串口烧写模块实现对单片机程序的烧写。2.1设计目的此设计针对目前社会经济市场的现状,针对一维条形码容纳信息量少,容易更改等一系列的问题,而二维码可容纳更多的信息量,编码范围广泛,译码准确,可以增加加密保护信息功能,且成本低廉,制作方式简单。将条形码替代成二维码,方便快捷人们的超市购物生活。2.2系统功能设计本系统由STM32F103C8T6单片机核心板、二维码/条形码摄像头模块、1.44寸TFT彩屏、蜂鸣器提醒电路、按键组成。设计能够通过摄像头进行对二维码进行识别,并且通过彩屏TFT发出显示,模拟超市的扫描统计结算系统,并将有关商品的名称,数量,单价,金额等全部信息及累加信息结算结果。其结构图如图1所示。二维码/条形码摄像头模块S二维码/条形码摄像头模块STM32F103C8T6单片机1.44寸TFT彩屏按键输入1.44寸TFT彩屏按键输入蜂鸣器提醒电路蜂鸣器提醒电路按键按键图1二维码识别结算系统结构框图用单片机STM32F103C8T6作为控制中心,通过摄像头读取被扫描的二维码,判断其是否是系统里已经嵌入的商品信息,再传递给TFT彩屏,在对应位置显示其信息,蜂鸣器的提醒电路也被开启,最后,在接收到复位模块的信号后,将一切都初始化,重新运行。2.3系统结构此设计由几部分组成,分别是DC座、JXDR极性电容、BELL蜂鸣器、Powerswitch电源开关、JZ晶振、LED灯、DZ直插电阻、2.54单排座、KEY按键、2.54单排针、USB电源线、AMS1117-3.3芯片、DX导线、焊锡丝、TFT触摸彩屏1.44模块、GM65条形码二维码扫描识别模块、8050直插三极管、STM32F103C8T6单片机核心板模块。(1)DC座图2DC座原理图封装图(2)电解电容电解电容器是一种特定的电容器,金属箔是正极(铝或钽)并且是接近氧化膜(氧化铝或五氧化二钽)正极的电介质。阴极是由导电材料、电解质(电解质可以是液体或固体)和其他材料组成。由于电解液是阴极的主要组成部分,电解电容器也是由于此原因得名。同时,电解电容器的正负极侧不应接错。铝电解电容器可以分为四类:引线型铝电解电容器;牛角型铝电解电容器;螺栓式铝电解电容器;固态铝电解电容器。电解电容器通常制造成金属粉末(Al/TA)的正极和金属粉末(al2o3/ta2o5)绝缘氧化物的介电层。电解电容器按正电解分为铝电解电容器和钽电解电容器。添加到电解溶液(液体电解质)中,二氧化锰通常用作钽电解电容器的负极。之所以提到电解质电容器,是因为它使用电解质作为负极。电解电容具有良好的性能,在使用过程中能发挥到最大的作用,因而采用它是不会出错的选择。图3电解电容PCB图封装图(3)BELL蜂鸣器图4BELL蜂鸣器PCB图封装图(4)Powerswitch电源开关图5BELL电源开关PCB图封装图(5)JZ晶振晶体振荡器是以一定的方位角从石英晶体上切下的薄片,称为石英晶体或晶体振荡器;振荡电路已添加的晶体元素叫晶体振荡器,一般采用用金属外壳包装或者玻璃外壳、陶瓷或塑料等做包装。(6)LED灯图6LED灯PCB封装图(7)DZ直插电阻色环电阻,通过涂上一定的颜色在电阻封装上(即电阻表面),代表的是电阻的阻值。图7电阻PCB封装图(8)KEY按键图84脚按键PCB封装图(9)8050直插三极管
图98050PCB封装图3系统硬件设计3.1STM32单片机核心电路设计STM32系列处理器是基于ARM7的32位单片机,支持跟踪和实时仿真,由于系统设计不追求最低功耗或最低功耗,所以选用了该控制芯片。主要目的是为了能够拥有更好的灵敏接口和丰富的功能应对实验所需。该控制芯片在完成单片机课程学习后,更易于使用。广泛应用于医疗器械等领域,研究和实验研究价值都是值得深入探讨的[9]。一、STM32的主要优点:(1)使用ARM最新的、先进架构的Cortex-M3内核(2)优异的实时性能(3)杰出的功耗控制(4)出众及创新的外设(5)最大程度的集成整合(6)开发容易,使产品进入市场的速度更快二、STM32——最佳的平台选项使用同一平台开发多个项目,STM32无疑是最好的选择。(1)拥有更多的存储空间和管脚的应用(2)在复杂的性能应用中,电池电源的供电性能(3)从简单和成本敏感的应用程序到高级的应用程序(4)全方位的脚对脚,高兼容性的外部设备和软件,灵活性能是全方面的。在不修改原始框架和软件的情况下,它可以根据实际情况精简储存空间和容纳更多的存储空间,或者使用不同的包装规范STM32F103C8T6原理图-单片机核心板接口如图10所示。图10STM32单片机核心板接口原理图STM32单片机实物图如图11所示。图11STM32单片机核心板实物图3.2按键电路设计按键产品下的一类分类产品-轻触按键,实际上是一种电子类开关,接通方式是按下开关,一旦松开就是断开电路,实现的主要原理是通过内部所属的金属弹片接受外力弹动达到断开与接通。在这个系统中,系统的输入由按键来完成,起到了人与机器的互相联系的作用。按键的单片机控制引脚默认为高电平,当按键按下后,单片机的相关引脚则变成低电平。进而实现对系统的手动输入。注意,按键个数可变。其电路原理图如图12所示。图12按键电路原理图同时,电阻有着电路中用作上拉电阻的作用,在按键信号的输出过程中保证稳定。如图13所示。按键个数是可以更改的。图13按键电路原理图3.3蜂鸣器报警电路(高电平有效)设计有源蜂鸣器作为一种电子讯响器具有一体化结构,直流电压是主要的供电形式,广泛应用于电脑、复印机、报警提示器、打印机、电子玩具、汽车内部的电子使用器、电话、计时器等电子产品作为可以发出声音的器件。本系统采用的报警模块为5V有源蜂鸣器模块,由电路中的三极管9012来供电。只要单片机所控制的引脚转速高,警报就会触发,否则不会触发。还可以通过控制单片机引脚的方波来控制。此电路的电阻是限流电阻,保护电路。图14蜂鸣器报警电路原理图3.4TFT触摸彩屏1.44寸模块TFT(ThinFilmTransistor,TFT)是一种薄膜场效应晶体管,是一种有源矩阵液晶显示器。TFT-LCD是一种薄膜晶体管型液晶显示器,即“真彩”(TFT)。TFT每像素配备一个半导体开关。每个像素都可以直接由点脉冲控制,因此每个节点是独立的,可以不间断地控制,在一定程度上提高了显示屏的响应速度,而且可以精确控制显示屏的色彩比例。TFT具有亮度好、对比度高、层次感强、色彩鲜艳等特点。但是它也有很高的功耗和成本。TFT液晶技术作为手机彩屏发展的主力军。彩屏手机基本支持65536色、26万和13万屏。有些甚至支持1600万个彩色屏幕[10]。在这一点上,高对比度和丰富的彩色TFT的优势是非常重要的。该模块是一个通用的TFTLCD模块,采用了一种新型的LCD模块,具有良好的质量。一、该模块有如下特点:(1)128×128的分辨率,显示清晰(2)1.44寸彩屏。(3)驱动IC:ST7735。(4)色彩深度:16位(65K色)二、接口定义表1接口表示及说明管脚顺序管脚定义功能说明1GDN电源地2VCC电源正3SCLSPI时钟输入4SDASPI数据输入5RES屏的复位6DC数据/命令选择7CSSPI片选输入8BL背光控制输入三、模块实物图图15所示。图15模块实物图3.5GM65条形码二维码扫描识别模块电路设计条形码是一种图形标识符,它按照一定的编码规则排列若干条不同宽度的黑色条和空格来表示一组信息。常用的条形码是一种平行线图案,由一条反射率不同的黑白条组成。条形码可以代表显示生产国、生产商、产品名称、生产日期、图书分类号、邮政起止位置、分类、日期等诸多信息,使其在商品流通、图书管理、邮政管理、银行业等众多领域都有非常广泛的使用。条码技术是计算机应用所产生和发展起来的一种自动识别技术。实现了信息的自动扫描。它是快速、准确、可靠地采集数据的有效方法。条码技术的应用解决了数据采集及录入的关键问题,为物流管理提供了方便的技术支持。条码技术的核心内容是通过光电扫描装置来自动识别机器,并将数据快速准确地传输到计算机进行数据处理,实现自动管理的目的。条码技术的研究对象包括标准符号技术、自动识别技术、编码规则、打印技术和应用系统设计五个部分[11]。二维码又称二维条码,常见的二维码为QRCode,QR全称QuickResponse,是一种新型方式,在最近今年的移动设备上盛行的一种编码方式,相较于传统的条形码它能够容纳更多的信息量,还可以表示更多的数据类型。二维条码/二维码是一种具有一定黑白几何形状的平面分布图(2D方向)。它记录数据符号的信息,巧妙地运用构成计算机内部逻辑基础的二进制流概念“0”和“1”,文本的数字信息由二进制对应的若干几何图形表示,通过图像输入装置或光电扫描装置的自动读取来实现信息的自动处理,具有条码技术的一些共同特点。每个编码系统都有自己的固定的字符集;每个字符都有一定的宽度;它还具有自动识别不同节点信息和处理图形旋转变化点的功能。2016年8月3日,支付清算协会向\t"/item/%E4%BA%8C%E7%BB%B4%E7%A0%81/_blank"支付机构下发《条码支付业务规范》(征求意见稿),草案明确了支付机构开展条码业务必须遵守的安全标准,这是央行自2014年叫停二维码支付以来,第一次承认二维码的存在地位[12]。一维条码仅在一个方向(通常是水平方向)进行信息的表示,但不表示垂直方向的任何信息。它的高度通常是为了阅读器的校准。条码存储在水平和垂直的二维空间中的信息,称为二维条码。与一维条码相比,二维条码收集的数据更为复杂,如图像、网络连接等。提高信息录入的速度作为一位条形码的主要特点,同时差错率也较小,然而一维条形码也有很多弊端:(1)数据容量较小:30个字符左右(2)只能包含字母和数字(3)条形码的面积占比过大,浪费空间范围(4)条形码遭到损坏后便不能阅读
相较于一维的条形码,二维码有着更多的优势性能,主要是以下几点:(1)数据容量更大(2)超越了字母数字的限制(3)条形码相对尺寸小(4)具有抗损毁能力MG65条码阅读器模块是一个性能优良的扫描引擎,不仅可以方便地读取所有类型的一维条码,还可以快速读取二维条码。线性条码扫描速度很快,也可以方便地扫描纸码和显示器上的条码;GM65条码读取模块是一种基于图像智能识别算法的先进条码解码算法,能够方便、准确地读取条码符号,大大简化了条码读取产品的困难程度,它能够满足最苛刻的扫描要求,并确保在完全黑暗的环境和较高的温度范围内具有一致的扫描性能。模块GM65功耗低,电流小于150mA,集成化设计,体积很小;支持TTL232和USB接口;支持所有通用的一维条码和通用的二维码,手机屏幕也是可以识别的。一、模块可以读取的类型:(1)识读条码种类(1D):UPC/EAN,UPC/EANwithsupplementals,BooklandEAN,ISSN,UCCCouponExtendedCode,Code128,GS1-128,ISBT128,Code39,TotalASCIICode39,TriopticCode39,Code32,Code93,Code11,Matrix2of5,Interleaved2of5,Discrete2of5,Current,MSI,Chinese2of5,VariantsGS1DataBar,Korean3of5,ISBTConcat(2)识读二维码种类(2D):QRCode,PDF417,DataMatrixGM65模块读取的数值可以在WORD等文本文件上直接显示出来。二、模块技术参数(1)光学系统:CMOS(2)捕捉光源:617nmLED(3)照明光源:6500KLED(4)识读角度:旋转360(5)偏转±60°(6)倾斜±65°(7)扫描角度:34°(水平)26°(垂直)(8)最低对比度:30%(9)分辨率:≥0.1mm(4mil)(10)电压:DC3.3V(11)电流:扫描时120mA/待机时30mA(12)接口:USB,URAT(13)工作温度:温度:0℃~50℃(14)存储温度:-40℃~70℃(15)工作湿度:10%~80%(16)环境光:环境光:0~86,000luxGM65条形码二维码扫描识别模块实物图如图16所示。图16照传感器传感器实物图模块接口原理图如图17所示图17GM65条形码二维码扫描识别模块接口原理图4系统软件设计4.1编程语言的选择所使用的一整个程序都是十分的复杂,还存在较大的计算量,浮点数计算也在其中使用了很多运用了很多,以至于最终在程序的编写采用了C语言。对于大部分的单片机来说,运用到C语言类似的比较高级的语言以及在用到汇编语言时候会出现有如下优点:(1)不必知道所运用处理器的指令集,更没有必要知晓存储器的结构。(2)而编译器的作用则是负责管理寄存器的分配和寻找地址的方式,所以在编程时就可以不去考虑存储器的地址和数据类型等细节。(3)指定操作的变量选择组合提高了程序的可读性。(4)和人的思维十分相近的关键字以及操作函数也被允许使用其中。(5)在与汇编语言的对比比较之中,所使用的程序的开发和调试时间也被可控制的缩短到最小。(6)许多标准的例程都在C语言的库文件中所进行有效的体现。(7)模块化编程技术也是十分方便的通过C语言落实下来,在新程序中也可以将已编制好的程序加入其中十分便利。(8)C语言广泛运用到人们日常生活的各个方面,以至于超过百分之九十以上的目标系统都可以在C语言编译器中标进行有效呈现,所以已完成的项目就会十分容易简单便捷的由此处转换到所有其余的处理器以及很多特定的环境中,与汇编语言相比,C语言在功能上、结构性、可读性、可移植性、可维护性上有明显的优势,易学易用。4.2Keil程序开发环境本设计中单片机开发环境是Keil,Keil是美国KeilSoftware公司出品的就是广泛应用的51系列兼容单片机C语言软件开发系统,与其他的汇编系统想进行比较而言,C语言这种系统在各个方面都体现了其功能优势。Keil提供了包括C语言编译器、宏汇编、链接器、库管理和一个具有强大功能的十分仿真的调试器这些为主要功能的较为完善的开发以及运行方案,之后再将以上内容由一个集成开发环境(μVision)将所有部分进行整合并最终实现运行。对于Keil软件所需要的运行系统为WIN98、NT、WIN2000以及WINXP,以上这些都可以有效运行系统。但是当你你使用C语言进行编程的时候,可以完全信任keil这个系统,即便在不是很想不使用C语言进行操作是而是仅仅想进行汇编语言的编程,它的方便好理解的集成的环境以及十分强大的类似软件仿真的调试工具也会大大提高办事效率。其中Keil有以下特点:(1)在WINXP以及WIN7等多种常用的操作系统中都可以有效运行Keil软件,这个软件则是供给了十分丰富的库函数以及有着强大功能的开发工具进行研究。(2)Keil可以完成从构思、编译、到连接、调试的一套开发流程。Keil软件界面如图18所示。(3)uVision5IDE集成开发环境与uVision4相差不大,在编译工具栏右侧多了两个绿色按钮,ManageRun-timeEnvironment和PackInstaller按钮。MDKCore是一个独立的安装包,大概300M左右大小。下载安装以后就可以一直使用,如果Keil有芯片支持、CMSIS或者中间库的升级,直接通过Softwarepacks本地升级即可。图18KeiluVision5开发界面图4.3FlyMcu程序烧录软件介绍对于FlyMcu来说这是一款十分好操作的stm32烧录程序的软件,这非常适用于十分专业的单片机开发者以及很多其他操作者,这种软件不但在与电路编程(ICP)以及应用编程(IAP)的多个领域有着广泛范围的应用,同时对于编程、校验以及读器件信息的读取也有着很大的作用。可以通过下载器(即CH340等串口烧写模块)下载单片机程序。单片机开发板、下载器以及PC连接好后,首先需要在软件中选择串口号,然后选择项目程序“hex”文件所在的地址,最后就可以点击开“开始编程(P)”按钮即可下载程序。具体下载界面如图19所示。图19烧录软件下载界面4.4CH340串口程序烧写模块介绍对于单片机程序的烧写在这个设计中是运用到CH340的有效串口烧写模块进行有效地烧写。CH340串口烧写模块在运用到USB接口方面也是有着十分大的讲究,这样的设计十分便捷的解决了电脑平板的使用者对于STC系列的各种单片机的程序烧写问题进行有效地解决,本下载器所用到的价格十分低并且具有十分高的性能,必然是开发STC系列单片机的必备工具之一。一、CH340串口烧写模块特点:(1)支持USB1.1或USB2.0通信;(2)对于WIN98、WINME、WIN2000、WINXP、VISTA、WIN7等操作系统有着十分大的亲和性;(3)采用USB口供电;(4)在对于芯片编程的过程中使用到所使用系统的自身的能源,并且可以使用到编程器从特定的USB的接口处进行抽取电量提供给所需的目标板,但是这的注意的是在共给电流时需要保证所需的目标板电流小于等于500mA,如果超过这个值就会无法编程;(5)编程的成功与否不会对于所需目标板有任何的不良影响;(6)支持STC全系列芯片烧录;(7)3.3V与5V的电压输出接口共给在编程器上,使编辑器正常运行;(8)对于速度方面则是比较于并口编程有着更加快速以及更加的稳定的特点,更方便于电脑以及平板的使用者进行有效的使用;(9)本品采用在国外纯进口的原装芯片,能够实现版本的高速运行以及编程的稳定进行;模块如图20所示。图20CH340串口烧写模块二、CH340串口烧写模块引脚说明(1)+5V5V输出,因有USB电源线,故本开发板不接,不需要(2)VCC本开发板不接,不需要(3)3V33.3V输出,本开发板不接,不需要(4)TXD接单片机的RXD引脚(5)RXD接单片机的RXD引脚(6)GND接GND。三、如表2示就是CH340串口烧写模块以及在单片机上的十分详细的接线图。表2CH340串口烧写模块与单片机接线CH340模块单片机开发板TXDRXD(单片机引脚PA10)RXDTXD(单片机引脚PA9)GNDGND4.5软件程序设计系统的整体设计离不开硬件与软件的相互配合,如果想要得到设计最终的预想结果,就要对软件进行大框架的设计以保证整个系统的正常运行。本系统主要是以扫描仪的扫描功能为基础,架构二维码识别结算支付功能,对于与C语言编程相结合,以及在Keil5的特定的开发环境之中进行编译以及调试等等,再使用FlyMcu进行编程与CH340串口程序进行烧写,最后将整个程序录入到STM32F103C8T6芯片中。4.5.1主程序流程图主程序流程图是系统的基本工作过程,确定了该系统程序运行的主体思路,是所有程序设计的基本理念。此设计的主程序流程如图21所示:图21主程序流程图程序说明:初始化设置:上电显示,开关按钮,彩屏亮,基础信息显现。切入模式:结算模式/识别模式结算模式:摄像头扫描,通过红外线扫描仪对二维码进行扫描并识别,如此二维码是苹果商品,则显示名:苹果,量01,单价05,金额5,以此类推,进行商品数量叠加及不同商品的累计。识别模式:将摄像头对准被识别的二维码或条形码,例如采用二维码生成器生成带有数字信息的二维码,进入到扫描模式可以获取有关信息,还利用识别模式扫描例图上面的网址信息。4.5.2主程序设计以下是涉及的主程序函数:屏幕初始化函数typedefstruct{char*IDcode;//对应编号u8displace;//显示位置u16num;//数量u16renum;//记录此次数量如果变化更新显示u16price;//单价u16money;//单价}_Qrbar_msg_obj;//编码位置数记数单价价格_Qrbar_msg_objobj_apple={"8001100110118",0,0,0,5,0};_Qrbar_msg_objobj_meat={"8456746745678",0,0,0,20,0};_Qrbar_msg_objobj_toys={"aaMyDesiner6aa",0,0,0,15,0};_Qrbar_msg_objobj_egg={"bbChaShi168bb",0,0,0,3,0};u16allMoney=0;//总金额#defineBASIC_DIS_Y3u16i;u8curObjYplace=BASIC_DIS_Y;//扫描后液晶显示的最初始的一行u8curMode=0;//当前模式分结算模式和扫码模式voidOnGetQrBarCode(const_qrbar_msg_obj*qrbarMsgRec)//处理接收到的数据{char*strPtr;u8disXplace,disYplace;//显示位置变量switch(curMode){结算模式的函数case0://结算模式if((strPtr=strstr(qrbarMsgRec->payload,obj_apple.IDcode))!=NULL)//扫描到对应的号{if(obj_apple.displace==0)//首次扫描到没有显示位置{obj_apple.displace=curObjYplace++;}obj_apple.num++;//数量++}elseif((strPtr=strstr(qrbarMsgRec->payload,obj_meat.IDcode))!=NULL)//扫描到对应的号{if(obj_meat.displace==0)//首次扫描到没有显示位置{obj_meat.displace=curObjYplace++;}obj_meat.num++;//数量++}elseif((strPtr=strstr(qrbarMsgRec->payload,obj_toys.IDcode))!=NULL)//扫描到对应的号{if(obj_toys.displace==0)//首次扫描到没有显示位置{obj_toys.displace=curObjYplace++;}obj_toys.num++;//数量++}elseif((strPtr=strstr(qrbarMsgRec->payload,obj_egg.IDcode))!=NULL)//扫描到对应的号{if(obj_egg.displace==0)//首次扫描到没有显示位置{obj_egg.displace=curObjYplace++;}obj_egg.num++;//数量++}识别模式函数case1://识别模式LCD_Fill(0,48,128,128,Color16_BLACK);disXplace=0;disYplace=2;for(i=0;i<qrbarMsgRec->length;i++)//传递接收到的数据{if(i%15==0)//超过显示行换行即另起一行{disXplace=0;disYplace++;}if(qrbarMsgRec->payload[i]!=0x0d&&qrbarMsgRec->payload[i]!=0x0a)//回车换行不进行显示{MyLCD_ShowChar(disXplace++,disYplace,qrbarMsgRec->payload[i]);//显示具体字符}}break;}My_LEDBlink(PA4,BEEP_ON,2,50,100);//蜂鸣器动作}chardis0[64];charcheckChangeFlag=0;//变化标志intmain(void){USARTx_Init(USART1,9600);//串口初始化USARTx_Init(USART2,9600);My_LED_Init();My_KEY_Init();识别/结算模式切换函数My_KeyScan();if(KeyIsRelease(KEY_1))//按键按下{obj_apple.displace=0;obj_apple.num=0;obj_apple.renum=0;obj_apple.money=0;//所有数据清空重新开始obj_meat.displace=0;obj_meat.num=0;obj_meat.renum=0;obj_meat.money=0;//所有数据清空重新开始obj_toys.displace=0;obj_toys.num=0;obj_toys.renum=0;obj_toys.money=0;//所有数据清空重新开始obj_egg.displace=0;obj_egg.num=0;obj_egg.renum=0;obj_egg.money=0;//所有数据清空重新开始curObjYplace=BASIC_DIS_Y;LCD_Fill(0,48,128,128,Color16_BLACK);My_LEDBlink(PA4,BEEP_ON,1,100,100);//蜂鸣器动作}elseif(KeyIsPress(KEY_2))//按键按下{//**Allnotescanbedeletedandmodified**//LCD_Fill(0,48,128,128,Color16_BLACK);if(curMode==0)//结算模式{curMode=1;//切换到识别模式FRONT_COLOR=Color16_LIGHTGRAY;MyLCD_Show(0,1,"识别模式");//显示FRONT_COLOR=Color16_LIGHTGREEN;MyLCD_Show(0,2,"识别内容:");//显示}else{curMode=0;//切换到结算模式FRONT_COLOR=Color16_LIGHTGRAY;MyLCD_Show(0,1,"结算模式");//显示FRONT_COLOR=Color16_LIGHTGREEN;MyLCD_Show(0,2,"名量单价金额");//显示}My_LEDBlink(PA4,BEEP_ON,1,100,100);//蜂鸣器动作}if(mySendFlag_tick)//更新显示{mySendFlag_tick=false;//清空标志}My_QrBarCode_Process();//处理串口数据,次函数会在接收到数据后调用OnGetQrBarCodeMy_LEDBlinkProcess();//蜂鸣器处理(5)封装和简化输出管脚函数#include"my_led.h"//LEDIO初始化voidMy_LED_Init(void){ u8i; for(i=0;i<ArrayCount(Pins_LED);i++) {#if !defined(USE_HAL_DRIVER) GPIO_Pin_Init(Pins_LED[i],GPIO_Mode_Out_PP);#else GPIO_Pin_Init(Pins_LED[i],GPIO_MODE_OUTPUT_PP,GPIO_PULLUP);#endif }}(6)SPI接口TFT彩屏驱动程序#include"my_lcd_spi.h"//管理LCD重要参数//默认为竖屏_lcd_devlcddev;//画笔颜色,背景颜色Color16FRONT_COLOR,BACK_COLOR;u16DeviceCode;voidSPIv_WriteData(u8Data){u8i=0;for(i=8;i>0;i--){if(Data&0x80){LCD_MOSI=1;//输出数据}else{LCD_MOSI=0;}//**Allnotescanbedeletedandmodified**//Data<<=1;}}(7)获取以回车换行结束的串口数据#include"my_qrbarcode.h"static_qrbar_msg_objrecMsg[COUNT_MSG_QRBAR_MAX];staticu8index_dat=0;voidQRBAR_SendMessage(_QRBAR_msg_objmsgDat)//设置串口输出voidMy_QRBAR_SetUartOut(void){_QRBAR_msg_objmsgDat_send;msgDat_send.cmd=QRBAR_MSG_CMD_WRIT;msgDat_send.length=0x01;msgDat_send.addr.value=QRBAR_MSG_ADDR_0D;msgDat_send.data=0x00;//设置串口输出模式msgDat_send.crc.value=QRBAR_MSG_CRC_DISEN;QRBAR_SendMessage(msgDat_send);}//设置扫描模式为感应模式voidMy_QRBAR_SetOutMode(void){_QRBAR_msg_objmsgDat_send;msgDat_send.cmd=QRBAR_MSG_CMD_WRIT;msgDat_send.length=0x01;msgDat_send.addr.value=QRBAR_MSG_ADDR_00;msgDat_send.data=0xD7;//控制类型参考手册其中设置感应模式msgDat_send.crc.value=QRBAR_MSG_CRC_DISEN;QRBAR_SendMessage(msgDat_send);}//保存设置数据到eeprom中掉电不丢失voidMy_QRBAR_SaveToEeprom(void){_QRBAR_msg_objmsgDat_send;msgDat_send.cmd=QRBAR_MSG_CMD_SAVE;msgDat_send.length=0x01;msgDat_send.addr.value=0x0000;//保存命令此处固定为0000msgDat_send.data=0x00;//保存命令此处固定为0000msgDat_send.crc.value=QRBAR_MSG_CRC_DISEN;QRBAR_SendMessage(msgDat_send);}(8)处理接受数据函数voidMy_QrBarCode_Process(void){staticu8index_msg_process=0;u8i;if(recMsg[index_msg_process].enable==true)//如果接收到了一个完整的数据{OnGetQrBarCode(&recMsg[index_msg_process]);recMsg[index_msg_process].enable=false;//**Allnotescanbedeletedandmodified**////指向下一条信息index_msg_process++;if(index_msg_process==COUNT_MSG_QRBAR_MAX){index_msg_process=0;}5系统调试及运行在前文的论述中对系统的硬件及软件部分已做了详细的设计框架,根据框架还要做出相应的运行电路,以此来实现二维码的精确扫描结果及程序的运行情况。在调试过程中需要经历多次的实际操作,才能够发现其中的问题,通过存在的问题进行对应性的调试,才能够得到最完美的运行结果。首先,在给电器元件通电之前先做一个全面的检查看看连接是否有破损漏电,短路等情况,并且对各个元件的连接性进行再一次的筛查,是否有不符合常理的连接。第二,接通电源,看电路是否可以正常运行,是否会出现电路板烧坏,电源开关无法打开,显示屏无法显示等情况,排查一切问题后,经过多调试以达到系统能够正常运行的状态。5.1电路图全况硬件组成:STM32F103C8T6+红外线扫描模块+TFT屏显+蜂鸣报警器+GM65条形码二维码扫描识别模块+按键电路电路图如图22所示。图22电路图全况5.2实物演示整体电路连接完毕后,经过上电之后进行实物操纵演示,操作步骤如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 审计专业技术资格(初级)经典案例分析题(带答案)
- 公路水运工程试验检测师《水运材料》真题汇编(含解析)
- 公路水运工程试验检测专业技术人员职业资格道路工程真题汇编(带评分标准)
- 2026 年防范暴雨引发连锁自然灾害科普
- 人工智能在证券营销中的应用
- 2026年秋季初中新生军训 军训日志与心得分享
- 2026年成都天府文旅职业学院单招综合素质考试模拟试卷含答案详解(轻巧夺冠)
- 2027年济南能源职业学院高职单招职业技能考试模拟试卷附答案详解【综合卷】
- 2026年阿尔专修学院高职单招职业适应性测试考试模拟试卷及答案详解(真题汇编)
- 2024年山东省青岛市单招职业技能考试模拟试卷附答案详解(模拟题)
- 北京市门头沟区城子街道办事处招聘城市协管员3人考试参考题库及答案详解
- 2026年汛期防汛排涝安全培训试题(含答案)
- 2025年教育综合知识真题试题及答案
- 铅山县2026年回村任职大学生集中选聘【40人】笔试参考题库及答案详解
- 2026年浙江省综合性评标专家库评标专家考试在线题库
- 2026年教研员面试试题及答案(含解析)
- 2025-2026学年四年级数学下学期期末真题重组试题01(山东专用 青岛版五四制) 含答案
- 2026年国企招聘副总测试题及答案
- 2026年留疆战士考核综合应试能力提升练习题含答案
- 重庆市2026年普通高等学校招生全国统一考试 生物+答案
- 2026综合版《安全员手册》
评论
0/150
提交评论