下载

0下载券

加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 [最新]单片机操纵激光条码扫描器

[最新]单片机操纵激光条码扫描器.doc

[最新]单片机操纵激光条码扫描器

一双红色高跟鞋
2018-10-11 0人阅读 举报 0 0 0 暂无简介

简介:本文档为《[最新]单片机操纵激光条码扫描器doc》,可适用于综合领域

最新单片机操纵激光条码扫描器单片机控制激光条码扫描器单片机控制激光条码扫描器系统设计毕业论文::阅读评论字号:大中小订阅时间过的真快毕业设计那段忙碌的时光还历历在目那时紧张的无法形容为了便于学弟学妹们学习我把我做的论文主要部分公布下:第三章系统单元模块设计数据采集模块设计通常条码阅读设备都可以直接和PC机相连而且接口是可以直接识别的无需做额外的接口设计。但是对于单片机系统而言由于没有现成的接口处理器。尤其是对PS口位单片机没有键盘口的IP核鉴于条码扫描器为串行数据传输因此本文直接采用单片机串行口接收数据实现通信。条码扫描器的插头为键盘圆形插针如图所示。其管脚定义如下::Data(数据脚)、:NC:Ground(电源地)。:V(电源脚)和:Clock(时钟脚)、:NC当条码扫描器扫描到有效条码时会自动产生时钟信号同时通过数据线按位将扫描码送到单片机。因为单片机本身集成了串口通信的IP核,串口的控制相当成熟主要做软件上的设计。图PS结构图本文提出两种采集数据方案:串行方式并行方式。串行方式在接口设计中条码扫描器的输出接口选用键盘口搭配PS协议采用串行方式进行数据传输时连线较为简单主要将Clock线和Data线与单片机相连读取数据时可采用中断触发方式将Clock线接到单片机外部中断请求入口端P上见图。为保证在每一个时钟信号的下降沿单片机能准确读取Data线的状态(一位数据)触发形式有两种方案:中断方式和查询方式。图中断串行接收方式在中断方式中在主程序中将中断口初始化为下降沿触发方式并将PS接口的Data线和Clock线都初始化为空闲状态即高电平状态使程序在每个时钟下降沿时自动进入到中断服务程序读取数据。当中断进行次后说明一帧数据接收完毕设置一个标志位为后续程序查询所用转向扫描码的判断和ASCII码的转换程序。如果设计中其他应用程序占用了中断口就必须采用查询方式来接收条码数据。设计中要保持CPU一直检测Clock线上的电平一旦出现拉低开始检测Data线的电平状态得到一位数据同时记录Clock线跳变次数满次记录一个位的字符数据。这两种方式各有优缺点:中断触发减轻了CPU负担处理速度更快查询方式为系统设计节省中断口供应用程序使用在实际应用中可根据设计需要采用不同的采集方式。并行方式设计的核心是采用串入并出芯片如HC条码输入设备输出的串行数据脉冲和时钟脉冲分别接到HC的数据端AB端及时钟输入CLK端由Clock脉冲的下降沿经非门后控制HC的移位操作条码输入设备每输出一个字符的扫描码由CLK控制在HC的输出脚QQ上分别输出扫描码的DD位这部分转换完成后接口通知单片机将转换完毕的扫描码读入。由于QQ不能直接和P口相连因此为了保证单片机准确读取HC的QQ脚上的扫描码设计一片HC将他们隔开HC是八位双向态缓冲电路在ENABLE与DIR同时为低电平的时候HC将BB上的数据传送至AA上为使单片机准确地发出读数命令接口电路要完成HC转换完一个扫描码之后通知单片机接收HC的QQ数据。设计中采用对Clock脉冲的下降沿记数来实现输入至HC的CLK脉冲同时又输入至单片机的T脚见图。利用T对CLK脉冲记数因为条码扫描器输出数据中每个负脉冲对应一帧扫描码因此T每记数次向CPU发出中断请求从而保证CPU准确地读取数据。图并行接收数据原理图数据处理模块设计条码扫描器内部数据处理类似于键盘。对于大多数键码而言只要一个键被按下就一定会产生一个通码只要一个键被释放就一定会产生一个断码。于是对于一个键值而言它的组成就是通码断码。在第二套通码中对于绝大多数键而言通码为单字节,断码为双字节的。其规则为:断码的第一个字节是Fh第二个字节是这个键的通码。比如:按键“a”的通码为CH,而其断码则为FH,CH,整个代码CH,Fh,CH就表示按键小写字母“a”的一个动作。若在PS键盘中整个击键的过程先按下左SHIFT键再按下a键释放a键释放左SHIFT键这些时间段内分别产生了左SHIFT的通码(H)A的通码(CH)A的断码(FH,CH)SHIFT断码(FH,H)查表后可以得出产生了H,CH,FH,CH,FH,H这一连串表示大写字母“A”的扫描码。根据以上数据传输格式本设计采用的数据处理方法为去除断码保留通码。并将通码顺序保存到内存RAM单元以备数据处理模块程序调用处理。数据显示模块设计目前常用的显示器是LED显示器和LCD液晶平面显示器二种LED显示屏是由发光二极管排列组成的显示器件。它采用低电压扫描驱动具有:使用寿命长、成本低、亮度高、故障少、视角大、可视距离远等特点。LCD液晶平面显示器其工作原理就是利用液晶的物理特性:通电时排列变得有序使光线容易通过不通电时排列混乱阻止光线通过说简单点就是让液晶如闸门般地阻隔或让光线穿透。其优点主要包括零辐射、低功耗、散热小、体积小、图像还原精确、字符显示锐利等。由于LCD显示屏具有功耗低、控制方便、设计灵活等诸多优点因此本课题设计采用LCD作为条码扫描器的显示器。以下将简要介绍LCD工作原理。LCD概述在日常生活中我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件如在计算器、万用表、电子表及很多家用电子产品中都可以看到显示的主要是数字、专用符号和图形。在单片机的人机交流界面中一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD目前常用***和*行等的模块。图LCD液晶显示器LCD的基本参数及引脚功能LCD分为带背光和不带背光两种基控制器大部分为HD带背光的比不带背光的厚是否带背光在应用中并无差别两者尺寸差别如下图所示图LCD尺寸图LCD主要技术参数:显示容量:×个字符芯片工作电压:V工作电流:mA(V)模块最佳工作电压:V字符尺寸:×(W×H)mm引脚功能说明LCD采用标准的脚(无背光)或脚(带背光)接口各引脚接口说明如表所示:表:引脚接口说明表编号符号引脚说明编号符号引脚说明VSS电源地D数据VDD电源正极D数据VL液晶显示偏压D数据RS数据命令选择D数据RW读写选择D数据E使能信号D数据D数据BLA背光源正极D数据BLK背光源负极LCD的指令说明及时序液晶模块内部的控制器共有条控制指令表:控制命令表序号指令RSRWDDDDDDDD清显示光标返回*置输入模式IDS显示开关控制DCB光标或字符移位SCRL**置功能DLNF**置字符发生存贮器地址字符发生存贮器地址置数据存贮器地址显示数据存贮器地址读忙标志或地址BF计数器地址写数到CGRAM或DDRAM)要写的数据内容从CGRAM或DDRAM读数读出的数据内容液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:为高电平、为低电平)指令:清显示指令码H,光标复位到地址H位置。指令:光标复位光标返回到地址H。指令:光标和显示模式设置ID:光标移动方向高电平右移低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效低电平则无效。指令:显示开关控制。D:控制整体显示的开与关高电平表示开显示低电平表示关显示C:控制光标的开与关高电平表示有光标低电平表示无光标B:控制光标是否闪烁高电平闪烁低电平不闪烁。指令:光标或显示移位SC:高电平时移动显示的文字低电平时移动光标。指令:功能设置命令DL:高电平时为位总线低电平时为位总线N:低电平时为单行显示高电平时双行显示F:低电平时显示x的点阵字符高电平时显示x的点阵字符。指令:字符发生器RAM地址设置。指令:DDRAM地址设置。指令:读忙信号和光标地址BF:为忙标志位高电平表示忙此时模块不能接收命令或者数据如果为低电平表示不忙。指令:写数据。指令:读数据。读写操作时序如图和所示:图读操作时序图写操作时序LCD工作过程条码扫描器读取数据后经过RXD接收给单片机单片机进行数据处理后通过LCD显示出来其中LCD的RS端、RW端和E端分别与单片机的P、P和P口相连接。RS为寄存器选择高电平时选择数据寄存器、低电平时选择指令寄存器。RW为读写信号线高电平时进行读操作低电平时进行写操作。当RS和RW共同为低电平时可以写入指令或者显示地址当RS为低电平RW为高电平时可以读忙信号当RS为高电平RW为低电平时可以写入数据。E端为使能端当E端由高电平跳变成低电平时液晶模块执行命令。表LCD基本操作时序表读状态输入RS=LRW=HE=H输出DD=状态字写指令输入RS=LRW=LDD=指令码E=高脉冲输出无读数据输入RS=HRW=HE=H输出DD=数据写数据输入RS=HRW=LDD=数据E=高脉冲输出无系统整体方案定型在接口设计中条码扫描器的输出接口选用PS协议采用单片机串行口直接接收条码数据选用方式位数据帧格式与条码扫描器数据帧格式一致将Data线与单片机的RXD线相连并且使用上拉电阻将电位拉高闲置时保持数据线为高电平状态。MCS串行口MCS单片机串行口专用寄存器结构如图所示。SBUF为串行口的收发缓冲器其中包含了接收器和发射器寄存器可以实现全双工通信。但这两个寄存器具有同一地址(H)由指令控制选择SBUF。MCS的串行数据传输十分方便只要向缓冲器写入数据就可发送数据。而从接收缓冲器读出数据既可接收数据。A:串行通信寄存器SCON控制寄存器是一个可位寻址的专用寄存器用于串行数据通信的控制物理地址是H其结构格式如下:表SCON寄存器结构SCONDDDDDDDDSMSMSMRENTBRBTIRI位地址FHEHDHCHBHAHHH下面对控制位功能介绍如下:()SM、SM:串行口工作方式控制位SMSM工作方式功能说明方式移位寄存器方式(用于IO扩展)方式位UART波特率可变(T溢出率n)方式位UART波特率为fosc或fosc方式位UART波特率可变(T溢出率n)由于激光条码扫描器输出一帧代码为位并且波特率为bs因此本设计采用方式来接收条码扫描器发送的数据。REN设置为“”(允许接收)综上所述本文设SCON的初始值为DH如下表所示:表串行口控制寄存器SMSMSMRENTBTBTIRI定时器T设置串行口方式的波特率由定时器T的溢出率和SMOD所确定的。T工作方式设置为方式自动重装模式可最大限度的减小误差。当定时器T作为串行口的波特率发生器时串行口方式波特率由下式确定:在定时器T为方式时方式字为:表定时计数器的初始化CATECMMGATE:表示不参与控制C:选择为定时方式MM:选定定时器T工作在方式所以定时器TMOD控制字为H。根据条码扫描器串形通信波特率为bs选用的是方式晶体振荡器频率为MHzSMOD设置为定时器T中C=方式为预装初值为FDH。晶震为MHz波特率为bs单片机工作方式为串行方式T是方式所以X=**()(*)=把十进制转换成十六进制数为FDH所以定时器预装初始值为FDH。控制过程PS协议通信中串行口设置为方式它是一个位帧格式的异步串行通信接口TXD为数据发送端RXD为数据接收端方式的波特率由定时器T的溢出率所确定的。方式中一帧信息为位位起始位位数据位位奇校验位以及位停止位。图PS口数据时序本文采用的方式是串行口采集方式在主程序将PS接口的Data线和Clock线初始化为空闲状态即高电平状态时。使程序在PS接口的Data线为低电平时读取数据当进行次后说明一帧数据接收完毕安排一个标志BF为后续程序表明然后转向扫描码的判断和ASCII码的转换程序。扫描码和ASCII码完全不相同所以接口设计的一个重要任务是在扫描码和ASCII之间建立一种映射关系将读取的扫描码转换为ASCII码。对于大多数扫描码而言只要一个键被按下就一定会产生一个通码只要一个键被释放就一定会产生一个断码。于是对于一个键值而言它的组成就是通码断码。在第二套通码中对于绝大多数键而言通码为单字节,断码为双字节的。其规则为:断码的第一个字节是Fh第二个字节是这个键的通码。由于扫描码无规律可循,因此由扫描码获得相应扫描值(字符键为其ASCII值)可以通过查表的方式获得也可以直接对扫描的数据直接赋值。基于上面单个字符的接收程序解读原始数据识别所收到的条码数据判断是否为回车符(DCH)回车符作为一串条码接收完成标志如果为回车符则立即置位条码扫描结束标志位中断返回后将转入对这一串条码数据的处理将处理的数据输入到显示缓冲区然后调用显示子程序最终完成条码数据的扫描显示。在数据处理及调用显示子程序过程中单片机串行口中断开放时时等待下一条码数据接收。接收数据是否正确判断:单片机在接收每帧数据时自动检测最后一位停止位数据是否为只有停止位为时才认为当前接收的一帧数据有效否则丢弃该数据单片机接收到一帧有效数据后对奇偶校验位进行校验。由于条码扫描器数据帧为奇校验形式如果当前位数据位中“”的个数为奇数时那么RB中的奇偶校验为一定为否则为。因此可在软件设计中对此比较如果不符合这个原则那么将在显示器上显示ERROR表示数据传输出现错误可重新扫描数据传输直到到数据传输正确为止由于单片机抗干扰能力很强这种错误出现的概率极低稳定性很高。详细程序及电路原理图见附件。第四章系统软硬件设计及实验验证硬件设计部分通常条码阅读器的输出接口选用键盘口搭配PS,协议或者串口搭配串行传输的SPI协议。其中串口相比键盘口速度是可调整的。在对数据传输速度有要求的情况下一般都使用串口。因为单片机本身集成了串口通信的IP核串口的控制相当成熟并且相对简单点同时这样又可以节约成本所以本方案采用串口通信。电路各元件选型根据设计内容以及要求在ProtelSE上画出原理图。从实训项目库中选取元件ATS:单片机U:上拉电阻LCD:LCD显示器U:振荡器PS:串形接口U:单片机复位电路POWER、POWER单片机ATS作为微控制器RXD端接PS的DATA端用来接收扫描器读取的信息XTAL、XTAL分别为反相放大器输入和输出端外接晶振和电容组成的振荡器振荡器产生的时钟频率主要由晶振的频率决定电容C、C的作用有两个:其一是使振荡器起振其二是对振荡的频率f起微调作用(C、C变大f变小)ATS的RST复位键接单片机复位电路当振荡器运行时在此引脚上出现两个机器周期的高电平将使单片机复位P口是数据总线接LCD的D,D脚传输数据给LCD显示地址总线接另一个上拉电阻LCD的RS、RW、E脚接ATS的P、P、P脚控制显示过程中写指令、写数据、读数据的过程POWER、POWER在此过程中是提供电源。电路焊接及注意事项根据设计好的硬件电路原理图购买元器件导线等按照原理图合理布置元器件、布线、地线以及电源线。布好电路板后检查各管脚是否完好检查完毕、纠正错误并确认无误后小心仔细地将管脚焊接在电路板上。再次检查电路板检测各条线路、管脚是否通路检查完毕、纠正错误并确认无误后将ATS单片机安装在电路板上。通电后对照原理图进行调试。如有错误对照原理图使用万用表不断检查是否有误纠正错误直至调试成功达到设计目标。在硬件安装过程中出现了很多问题先是布局布线这点很重要因为这会影响到后面添加元件以及布线还有就是影响美观。安装好后要对照原理图检查是否完整有没有漏接的还有要注意原理图与元件的封装是有区别的有些隐藏脚要接地和电源的不能忘记。在这点上我便犯了错误导致了LCD数码管显示一直不正常且不稳定在老师的帮助下发现了这个错误并且纠正后显示便正常了。在焊接过程中也要注意不能虚焊也不能把不相干的焊盘焊在一起那样会通电后会引起短路。还有一些小问题也不能忽视在认真检查后调试终于无误硬件工作状态正常良好。但是本次设计还是存在一些问题比如扫描器扫描时LCD会显示乱码这种情况由于能力以及时间有限所以在这块还有待改进。软件设计软件的设计是本次毕业设计的另一个重要方面。它的好坏直接关系毕业设计的成功与否。软件是用汇编完成的需要能熟练的掌握汇编语言还要熟悉ATS单片机下面作详细介绍:程序流程图图主程序图中断处理子程序主程序部分主程序主要完成显示程序初始化中断程序初始化完成各功能模块程序的调度使其协调工作。主程序如下:START:MOVSP,#HMOVTMOD,#HMOVTH,#FDHMOVTL,#FDHMOVSCON,#BMOVPCON,#HSETBEASETBESSETBTRSETBRSMOVR,#H存放扫描接收数据首地址HMOVR,#HCLRRSMOVR,#H存放转换后的扫描数据MOVDAT,#HLCALLENABLELCALLCLRDISBUFFDISP:LCALLLCDINITLCALLJISUANMOVR,#HDISP:MOVDAT,RLCALLWRDATINCRCJNER,#H,DISPMOVDAT,#CHLCALLENABLEAJMPDISPDISP:CJNER,#H,DISPMOVR,#HMOVDAT,#HLCALLENABLEAJMPDISP数据采集程序部分数据采集部分是在中断服务子程序中完成的首先对采集的数据进行判断如果为结束帧DCH则置中断标志位否则保存通码丢弃断码。程序详见附录。数据处理程序部分在数据处理子程序中首先检测标志位状态如果一个条码数据扫描结束则清除标志位转入数据转换。由于扫描码源码无规律可循并且绝大部分条形码为阿拉伯数字因此本文采用先判断后赋值的方式转换数据并将转换后的数据依次保存到显示缓冲区以便被显示子程序调用。在数据转换结束后调用一次显示子程序。在数据处理过程中串口中断始终处于开放状态以等待下一条码数据的到来。程序详见附录。显示程序部分显示部分主要是对LCD的控制单片机的P、P、P与的RS、RW、E的连接显示子程序主要负责将转换的数据显示到显示屏。程序详见附录。实验调试与结果验证KeilC既可以编辑、编译和调试汇编语言程序也可以编辑、编译和调试C程序使一个基于Windows平台的集成开发环境。它不但可以模拟一般的程序运行而且可以仿真模拟IO口、定时器计数器、串行口及中断等单片机特有的功能部件。调试过程中遇到很多问题首先是硬件上的器件在焊接过程中有的拐角焊接不牢使的LCD显示器显示不了然后用万用表测量不停的测试使得硬件得以完成最重要的是软件部分首先程序中有一些错误使得显示器显示不了数据或者是现实乱码通过不断调试修改程序使得硬件软件工作协调一致最终完成了实物制作经过条码扫描实验验证该设计满足毕业设计要求。部分验证图如下:附录A:程序清单RSEQUPRWEQUPEEQUPDATEQUPSCANMARKEQUHORGHAJMPSTARTORGHLJMPRXDORGHSTART:MOVSP,#HMOVTMOD,#HMOVTH,#FDHMOVTL,#FDHMOVSCON,#BMOVPCON,#HSETBEASETBESSETBTRSETBRSMOVR,#H存放扫描接收数据首地址HMOVR,#HCLRRSMOVR,#H存放转换后的扫描数据MOVDAT,#HLCALLENABLELCALLCLRDISBUFFDISP:LCALLLCDINITLCALLJISUANMOVR,#HDISP:MOVDAT,RLCALLWRDATINCRCJNER,#H,DISPMOVDAT,#CHLCALLENABLEAJMPDISPDISP:CJNER,#H,DISPMOVR,#HMOVDAT,#HLCALLENABLEAJMPDISPCLRDISBUFF:MOVR,#HMOVA,#''CLR:MOVR,AINCRCJNER,#H,CLRMOVR,#HRETJISUAN:MOVR,#HMOVR,#HJS:MOVA,RCJNEA,#H,JSMOVA,#''LJMPJSOUTJS:CJNEA,#AH,JSMOVA,#''LJMPJSOUTJS:CJNEA,#CEH,JSMOVA,#''LJMPJSOUTJS:CJNEA,#H,JSMOVA,#''LJMPJSOUTJS:CJNEA,#CH,JSMOVA,#''LJMPJSOUTJS:CJNEA,#CH,JSMOVA,#''LJMPJSOUTJS:CJNEA,#CAH,JSMOVA,#''LJMPJSOUTJS:CJNEA,#FH,JSMOVA,#''LJMPJSOUTJS:CJNEA,#EH,JSMOVA,#''LJMPJSOUTJS:CJNEA,#H,JSOUTMOVA,#''JSOUT:MOVR,AINCRINCRCJNER,#H,JSMOVR,#HMOVR,#HRETRXD:PUSHPSWPUSHACCCLRRISETBRSMOVA,SBUFCJNER,#H,RXDCJNEA,#DCH,RXDMOVR,#HAJMPRXDRXD:MOVR,AINCRRXD:INCRCJNER,#H,RXDMOVR,#HRXD:CLRRSPOPACCPOPPSWRETIWRDAT:SETBRSCLRRWCLREACALLBUSYSETBERETLCDINIT:MOVDAT,#HLCALLENABLEMOVDAT,#HLCALLENABLEMOVDAT,#CHLCALLENABLEMOVDAT,#HLCALLENABLEMOVDAT,#HLCALLENABLERETENABLE:CLRRS送命令CLRRWCLREACALLBUSYSETBERETDELAYMS:MOVR,#D:MOVR,#D:MOVR,#D:DJNZR,DDJNZR,DDJNZR,DRETBUSY:MOVP,#FFHCLRRSSETBRWCLRENOPSETBEJBP,BUSY判断忙标志RETEND

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

评分:

/30

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利