基于单片机的条形码扫描系统设计

您所在的位置:网站首页 扫码器的功能介绍 基于单片机的条形码扫描系统设计

基于单片机的条形码扫描系统设计

2023-10-10 11:48| 来源: 网络整理| 查看: 265

博主福利:100G+电子设计学习资源包!

http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect --------------------------------------------------------------------------------------------------------------------------

  一维条形码的二进制表示方法

 

条形码的编码方法比较常规和普遍。即用模板组合的方式进行编制。那么何为模板宽度,谓模板宽度就是组成条形码宽度的一个基本单位。EAN-13前文已经提到,他的组成字符为0-9这10个阿拉伯数字字符。每个数字字符都是由两个条和两个空构成。共占据7个模板宽度。每个条的宽度范围在1到4个模板宽度之间。并且都是模板长的整数倍。1和0分别表示了条形码的条和空部分。

 

 

条码字符集是收集了所有一维条形码的字符集合。他的组成是由三个子集。分别为A子集,B子集,C子集。其部分二进制表示如图9所示。一共组成的编码形式有30种,即每个字符有3个表示形式。至于奇偶形式的表示则由二进制1的个数决定。但是,有三个字符是固定的,分别是条形码的起始符,中间分隔符,终止符。其对应的二进制形式分别是101,01010,101。因此他们三个也不会包含在二进制编码表里面。从图9所示的对应表里面也可以看出,每个数字字符集的奇数子集A和偶数子集C的元素是相反的,偶数子集B和偶数子集C是倒序的。

 

 

识别的相关算法

 

条形码的自动识别技术可以分为两个结构组成。即扫描和译码两部分。扫描结构顾名思义就是将条形码本身携带的信息用一些特殊的设备和技术将其读取出来。比如利用激光,将光信号转换成了电信号。扫描的最终结果是为了得到模板的宽度,也就是条可空的波形的宽度,其方法就是根据条和空的反射不同的效果进行读取。在前文已经提到,条反射回来的是弱信号,而空反射回来的是强信号。译码的原理是接着扫描操作进行的。就是将扫描得到的一些电信号,用一些特定的方式进行翻译,得到最终的数据信息,并且输入客户终端计算机。再将所得到的信息经过一个比较规则的整流电路进行整流处理,最后得到了我们在生活中总能看到的条形码图形。

本文设计的基础是系统识别相应的条码图像到显示在相应的液晶显示器上。系统的运行过程就是是读入图片到识别图片的过程,所以在分析它的功能的时候就按运行的过程进行模块划分。

 

 

便携式商品条形码识别器,上面提到主要由四大模块组成。激光扫描,单片机,12864液晶显示器,电源模块。其工作的大致原理为,激光扫描到条形码并进行存储。同时蜂鸣器开始鸣响,然后扫描器将数据信息通过串口通信传输给单片机,单片机收到信息后会与事先设定好的程序进行对比,并将对比后的信息传输给12864液晶显示器。显示器也会根据事先设计好的程序进行相应的显示格式,并完成工作。

               

系统总体方案设计

 

 

系统由五个模块组成:

1.考虑系统整体的采集速度,扫描器使用激光式条形码扫描器。

2.按键模块,由于没有过多的功能选择,所以本装置使用独立键盘。

3.本装置处理器选择使用STC89C52单片机。

4.由于本装置先显示内容较多,所以选择12864液晶显示模块。

5.电源首先选用开关电源将市电转换为12V直流电源,然后再由78系列芯片转到系统需要的电压。

以上问题的解决方案:

1.电源模块使用开关电源模块将市电220V转换为系统所需要的5V,3.3V等。

2.复位电路使用单片机经典复位电路。

3.显示模块使用液晶显示。

4.按键模块使用独立键盘做键盘输入。

5.扫描器模块使用激光式扫描模块。

6.时钟模块使用石英晶振和单片机内部起振电路。

本次设计便携式商品条形码商品识别器硬件主要可分为4大模块。由激光扫描模块,52单片机控制模块,电源模块,显示器模块组成。其在本次设计系统中的功能分别介绍如下:

 

条形码识别电路设计

 

激光扫描模块在本次设计中负责采集条码信息,进行快速的读取和识别功能。是本次设计中的总输入端口。由于其不能和单片机直接相连接,所以连接了RS232电平转换模块。由激光扫描读取条码信息后,传输给相应的蜂鸣器进行告知。关于激光扫描的原理和结构组成,可参考本文的2.3章节。注意激光扫描模块的规定电压为5V。激光扫描电路设计如图所示。

 

 

电源电路设计

 

电源模块主要负责给整个设计系统进行供电的作用。本次设计采用的是市场比较常见的5V在线式充电插头进行供电。这里市电为220V,通过这个电源的一些电路结构会产生12V电压,但这也不是我们所需要的,因为单片机的规定电压为5V,而激光扫描的规定电压为3.3V。所以我们需要在传入12V电压时,连接个7805型号的稳压芯片,将电压进行转换变成5V,给52单片机等需要5V的模块进行供电。之后又通过型号为1117的稳压芯片,将5V电压转换为3.3V电压,继续给激光扫描模块进行供电。电源电路设计如图所示。

 

 

显示电路设计

 

本次选用的显示器为比较适用的12864液晶显示器。其最明显的优势是显示的字符多,可以显示汉字。并且使用了串口通信。这正好符合单片机的特点,通过单片机的串口传输接口,把从程序中对比之后的信息结果呈现出来。其在本次设计系统中的硬件电路图如图所示。

 

 

按键电路设计

 

在由单片机组成的便携式商品条形码识别器,最实用的独立式键盘。这种键盘具有硬件与软件相对简单的特点,其缺点是按键数量较多时,要占用大量口线。独立按键电路设计如图所示。

 

时钟电路设计

 

单片机的时钟电路分为采用外部时钟信号和使用片内的震荡电路两种形式。前者工作时,时钟信号需从引脚1输入,这时引脚2处于悬空状态,因为CPU片内时钟信号取自作为反馈放大元件的二输入与非门的一个输入端;后者工作时,时钟信号从引脚1输入,引脚2输出,这时晶振、电容以及片内与非门(起反馈、放大作用的元件,类似于电容三点式震荡电路中的三极管)构成电容三点式振荡器。由于石英晶体振荡器中的静态电容、外接震荡电容均远大于晶体弹性等效串联电容,正因如此,晶体振荡器与谐振并联所产生的频率决定了震荡的频率。在本系统中,采用外部时钟信号的形式作为晶振电路,如果单片机内部没有晶振,就没有时钟周期,没有时钟周期,就无法执行程序代码,就无法实现整个电路,系统时钟电路设计如图所示。

 

 

系统总程序设计

 

本次设计的流程大致为初始化LCD,初始化个串口,接下来由激光扫描读取条码信息,并识别条码。将结果传送给单片机,进行与数据库做对比,并将对比结果传送给液晶显示器,并呈现出来。整个程序设计如图所示。

 

 

条形码识别程序设计

 

在读取和扫描条形码的电路设计上,我采用了激光扫描器的流程设计。其优点是速度快,精度高。其流程如图所示。

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3