1、 毕业设计(论文)基于单片机的自动存取柜的设计系 别自动化工程系专 业测控技术与仪器班级学号5060806姓 名雷宏指导教师宋爱娟2010年 6 月 15 日 东北大学秦皇岛分校毕业设计(论文) 第I页基于单片机的自动存取柜的设计摘 要 本文介绍了自动存取柜控制系统的设计与实现方法。本课题由AT89S52单片机构成核心控制系统,整个系统由主控部分、键盘显示和条码扫描部分、执行部分三部分组成,通过密码的核对完成自动存包取包的过程。 第一部分:CPU核心控制部分,由单片机AT89S52、复位电路、时钟电路等构成,是整个系统的核心。 第二部分:键盘显示和条码扫描部分,该部分通过按下存包键以及对条码数
2、据进行扫描来完成存包取包过程,并且通过液晶(LCD)显示各种提示信息。 第三部分:执行部分,该部分通过AT89S52的并行口扩展两片8255A芯片,并通过8255A控制16个锁来完成开门关门动作。 软件部分主要是密码产生过程,即把存包时刻作为密码。而密码的产生、核对过程就对应存包、取包的过程。本系统具有如下特色:经济实用、操作简单且便于安装。能产生一组密码,密码使用一次有效。利用软件产生密码而不是硬件,使得硬件更为简洁、可靠、稳定。关键词:自动存取柜,AT89S52单片机,液晶显示,密码 东北大学秦皇岛分校毕业设计(论文) 第 II 页The design based on minicompu
3、ter for the roboticized access tank Author:Lei Hong Tutor:SongaijuanAbstractThis article describes the automatic control system access cabinet design and implementation. The issue posed by the AT89S52 microcontroller core control system, the entire system from the master part, the keyboard display a
4、nd bar code scanner part, the operative part of three parts, the completion of checking by the password automatically saved packet access packet.Part I: CPU core control part, by the MCU AT89S52, reset circuit, clock circuit, etc., and is the core of the system.Part II: the keyboard display and bar
5、code scanner part, the part of the package by pressing the save button and the scanned bar code data packet access package to complete the deposit process, and through the liquid crystal (LCD) display a variety of prompts.Part III: the operative part, the part of the parallel port extension through
6、AT89S52 two 8255A chips, and 16 through the 8255A control door lock to complete the closing action. Software component is the password generating process, that is, to save time package as the password. The password generation, the reconciliation process on the corresponding deposit bag, takes packet
7、.This system has the following characteristics:Economical and practical, simple and easy to install. Can generate a password, the password to use one effectively. Password generated by software rather than hardware, making hardware more concise, reliable and stable.Key words: Automatic Access Tank,
8、AT89S52 Single chip, LCD, the password 东北大学秦皇岛分校毕业设计(论文) 第51页目 录1 绪论11.1 自动存取柜的设计背景及目的11.2 国内外研究状况和相关领域中已有的研究成果11.3 课题的研究方法及研究内容21.4 论文构成32 系统总体方案设计与选择的论证42.1 系统工作原理介绍42.2 系统采用的各个部件及其功能介绍42.2.1 系统的输入部分42.2.2 系统的输出部分42.2.3 系统的输入/输出部分52.2.4 扩展芯片52.3 系统工作原理框图52.4 选择该系统方案的论证62.4.1 主控单元单片机AT89S52介绍62.4.2
9、 显示模块液晶显示器1602的介绍102.4.3 扩展芯片8255A并行I/O口扩展112.4.4 条码设备条码打印机与条码扫描器142.4.5 时钟芯片DS1302162.4.6 外部存储器CAT24C02(2K)182.4.7 门磁的介绍203 系统硬件部分的设计223.1 硬件电路设计的原则223.2 系统各部分电路原理223.2.1 单片机的最小系统223.2.2 控制锁电路单元253.2.3 蜂鸣器报警电路263.2.4 液晶显示1602与单片机的连接263.2.5 打印机GP16与单片机的连接273.2.6 条码扫描器的接口283.2.7 单片机与DS1302、AT24C02的连接
10、294 系统软件部分的设计314.1 系统典型部分软件设计介绍314.1.1 液晶显示模块314.1.2 打印机GP16模块314.1.3 基于PS/2口的条码扫描器324.2 系统软件流程图334.2.1 存包流程图334.2.2 读取条码数据流程图364.2.3 取包流程图36结 论38致 谢39参考文献40附 录41附录A 系统硬件原理图41附录B 英文附录文献43附录C 英文文献参考译文471 绪论1.1 自动存取柜的设计背景及目的近年来,随着生活水平的提高,人们对于社会消费品的质量和数量的要求以及对社会的服务质量也在逐渐增加。为了更好的为广大的顾客服务,在一些商场、影院(尤其是超市)
11、等公共场合通常有电脑控制的自动存取柜,来方便广大的顾客朋友们。各种各样的自动存取柜也陆续出的产生了。它具有功能实用、操作简便、安全可靠、抗干扰性强等特点,能够更好的服务于不同市场的广大群众。顾客可以根据简明清晰的操作说明自行的完成取物品的工作,自助式存取可以避免开放式存包带来的不必要的纠纷,又可以节约人员开支,达到减员增效的目的。同时,存包可以解放顾客的双手,使顾客开放双手,更方便的进行购物。1.2 国内外研究状况和相关领域中已有的研究成果“自动存取柜”就是让使用者可以实现自助式储存物品,原产日本,后来在台湾广泛应用。1999年开始在中国大陆出现并逐步广泛应用。目前主要分为机械型和电脑型两大系
12、列。主要规格分为:10格、12格、15格、18格、24格。下面介绍几种常见的自动存取柜:(1)投币式机械自动存取柜这种存取柜是1999年由深圳亿家福公司最先引入中国大陆的。目前使用范围有:超市、图书馆、海滨浴场等。(2)投币式收费型存取柜用于车站、码头、公共场合募捐旅游景点等。这些场所一般使用18格或15格。(3)机设条码多功能电子存取柜用于超市、卖场、新华书店等公共场合。这些场所一般使用10格或15格。(4)傻瓜型非接触卡长效存取柜用于小区信报管理、员工更衣室、租赁柜等,也用于有人员职守的公共场合,如:网吧、旅馆、浴池。这些场所一般使用24格或36格。(5)一次有效扫卡存取柜利用员工卡扫描存
13、取、利用学生卡扫描存取、利用会员卡扫描存取。这些场所一般使用24格。(6)异型卡、钥匙型卡存取柜用于洗浴更衣、桑拿更衣、员工更衣等。这些场所一般使用18格或24格。1.3 课题的研究方法及研究内容本次设计以基于单片机的超市电子自动条码存取柜为代表,这种自动存取柜免去了工作人员的辛劳,存包的顾客只要按一下小键盘上的“存”键,它就会自动打印出带有密码及相应柜子号的凭条,当顾客拿出凭条时,柜子会自动弹开,顾客可以将要存放的东西放到里面,关上柜门后,只有凭借顾客拿的凭条上的密码才能打开此柜门。这种自动存取柜的出现,显然既方便了顾客,又节省了超市的人力物力。这种存取柜具备普通密码型的全部功能,并增加了条
14、码的打印和识别功能,用户开箱取物时只需将条码纸在条码扫描区内进行扫描,即可完成取物操作,方便快捷,安全性高。条形码纸的条码通过加密形成唯一性的密码,避免被偷窥密码的可能性,此条码纸一经使用就会失效,使用安全成倍提高;快速存取:索取时自动打印条码,取物时快速的扫描识别。简单操作:只需按“存”就可打印条码纸,读取条码只需扫描一下。该存取柜系统主要由柜体、箱格和主控单元三部分组成,主控单元包含单片机、液晶显示屏、微型打印机、操作键盘和扫码区。单片机控制箱柜存取操作,安全方便。液晶显示屏可以显示寄存信息,如:存物箱号、箱满提示、扫码错误提示、时间等信息,帮助用户自助式完成存取操作。箱柜表面经除锈、磷化
15、,并采用先进静电粉体涂装,外表美观,质感高雅。产品结构性能稳定、安全牢靠,具有防撬功能。顾客需要存包的时候,可以自行到存包柜前按“存”键,单片机接收到一脉冲信号,并通过系统I/O口发出相应的信号,控制锁柜门的电磁阀将一空箱打开,顾客即可存包并将柜门关上。当顾客需要取包时,只要将条码放置到条形码扫描器前方,条码扫描器采集到条码信息输出相应的高低电平信号传给单片机,系统比较密码一致后,发出开箱信号至电磁阀使柜门打开,顾客即可将包取出。条码型存取柜系统具有较高的自动化程度,是以单片机为核心,自动控制柜门的打开,并通过条码技术实施红外线检测开门。关门后通过条码打印机打印条码,并自动切纸;有存包请求时显
16、示无物的箱体号。并具有断电保护功能,通过软件检测箱内是否有物品,并报警。在现实生活中有着积极的作用。1.4 论文构成论文包括绪论,论文主体以及结论三部分。其中绪论部分包括毕业设计的背景及目的;国内外研究状况和相关领域中已有的研究成果;课题的研究方法及研究内容以及论文构成。论文的主体部分包括论文总体方案设计与选择的论证;论文各部分(包括硬件与软件)的设计计算;试验方案设计的可行性、有效性以及试验数据的处理及分析;对本研究内容及成果较全面、客观的理论阐述,即指出本研究内容中的创新、改进与实际应用之处。结论部分阐述自己的新的见解及其意义和作用。2 系统总体方案设计与选择的论证2.1 系统工作原理介绍
17、该系统是用来为顾客在超市购物存包,取包过程提供便利的一个平台。顾客存包时,首先把开启的箱门全部关上,按下“存包”键,此时,系统打印条码,顾客取出条码的同时,对应的箱门自动开启,存包后,关闭箱门。取包时,先把所有开启的箱门关上,将条码放在扫描区,如果条码信息与系统存储的密码一致,对应的箱门开启,取包后,关闭箱门。2.2 系统采用的各个部件及其功能介绍本系统采用ATMEL公司的增强型51系列单片机AT89S52作为整个系统的运算与控制部件,负责与外部设备与存储器交换数据,响应外部的中断请求等。外部设备及芯片包括输入部分、输出部分、输入/输出部分以及连接单片机与外设的扩展芯片。2.2.1 系统的输入
18、部分1)按键输入,此按键作为存包键,与单片机的相连,顾客按此键,便构成一个中断请求,单片机响应此请求后,通过程序控制箱门的打开。2)门磁传感器输入,此输入作为状态的输入,指示箱门打开或者关闭。3)条码扫描输入,该部分作为识别开箱门的部件,当顾客将条码对准扫描口时,对应的箱门会自动打开。2.2.2 系统的输出部分1)液晶显示部件,型号:1602。当单片机检测到所有的门磁传感器状态均表明箱门闭合且有物时,液晶显示“FULL(箱满)”字样;当有至少一个箱门闭合且无物时,液晶显示实时的时刻;当有存包请求时,若有空箱,则液晶显示器显示空箱号码;在扫描条码后,若条码数据与存储器中的密码核对不一致,则显示出
19、错信息“WRONG(错误)”。2)微型打印机,型号:GP16。当顾客按存包键以后,单片机将DS1302记录的实时时刻做成密码,然后打印机将密码及其相应的柜号打印成条码。3)继电器的输出,当条码信息与单片机存储的密码核对一致时,单片机控制继电器动作,进而控制电控锁的开启。2.2.3 系统的输入/输出部分1)实时时钟芯片DS1302。读操作:该芯片为系统工作提供实时的时刻,并且在有存包请求时,单片机把动作时刻的信息存入到外部存储器中,同时还要送到打印机打印出来。写操作:单片机要将控制信息写到DS1302的控制字中,用来控制DS1302的工作方式。2)外部存储器芯片AT24C02。该存储器用来存储由
20、柜号和时刻信息构成的二维数组信息,单片机与存储器之间的操作分为读操作和写操作。2.2.4 扩展芯片8255A可编程并行口扩展芯片,该芯片连接了电控锁以及门磁传感器。将PA口设置为输出状态,输出的低电平控制开电控锁;将PB口设置为输入状态,读入门磁传感器指示的高低电平。2.3 系统工作原理框图 图2.1 系统的硬件结构框图2.4 选择该系统方案的论证2.4.1 主控单元单片机AT89S52介绍AT89S52单片机是AT89系列中的增强型产品,采用了ATMEL公司的技术领先的Flash存储器,是低功耗、高性能、采用CMOS工艺制造的8位单片机。1、AT89S52单片机的主要特性(1)8位字长的CP
21、U;(2)可在线ISP编程的8KB片内Flash存储器;(3)256B的片内数据存储器;(4)可编程的32根I/O口线(P0P3);(5)4.05.5V电压操作范围;(6)3个可编程16位定时/计数器;(7)双数据指针DPTR0和DPTR1;(8)具有8个中断源、6个中断矢量、2级优先权的中断系统;(9)可在“空闲”和“掉电”两种低功耗方式运行;(10)3级程序锁定位;(11)全双工的UART串行通信口;(12)1个看门狗定时器WDT;(13)具有断电标志位POF;(14)振荡器和时钟电路的全静态工作频率为030MHz;(15)与MCS-51单片机产品完全兼容。2、单片机的封装以及引脚图AT8
22、9S52具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。其中,PDIP(塑料双列直插)封装的芯片使用方便,可以灵活插拔,因此最为常用。如下图所示为PDIP封装的AT89S52芯片引脚图。图2.2 AT89S52 芯片引脚图3、单片机各个引脚的功能介绍AT89S52与其他PDIP封装的51单片机芯片一样,具有40个引脚。下面介绍各引脚的功能。 VCC:电源正极,一般为+5V。 GND:电源地。 P0:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地
23、址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时输出指令字节。程序校验时,需要外部上拉电阻。 P1:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器T2的外部计数输入(P1.0/T2)和定时器/计数器T2的触发输入(P1.1/T2EX),具体见下表2.1。在flash编程和校验时,P1口接收低8位地址字节。表2
24、.1 P1接口第二功能引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR)时,P2口送出高8位地址。
25、在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVXRI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用,见表2.2。在flash编程和校验时,P3口也接收一些控制信号。表2.2 P3口的第二功能引脚号第二功能P3.0R
26、XD(串行输入)P3.1TXD(串行输出)P3.2(外部中断0)P3.3(外部中断1)P3.4T0(定时/计数器0外部输入)P3.5T1(定时/计数器1外部输入)P3.6(外部数据存储器写选通)P3.7(外部数据存储器读选通)RST:复位输入。晶振工作时,RST脚持续两个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚也用作编程输入脉冲。在一
27、般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置“1” ,ALE操作将无效。这一位置“1” ,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。:外部程序存储器选通信号。当AT89S52从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在访问外部数据存储器时,将不被激活。/VPP:访问外部程序存储器控制信号。为使能从0000H到FF
28、FFH的外部程序存储器读取指令,必须接GND。为了执行内部程序指令,应该接VCC。在flash编程期间,也接收12V VPP电压。XTAL1和XTAL2:外接晶振引脚。当使用芯片内部时钟时,此二引脚用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。2.4.2 显示模块液晶显示器1602的介绍液晶显示器以其微功耗、体积小、显示内容丰富、超薄轻巧的诸多优点,在各类仪表和低功耗系统中得到广泛的应用。根据显示内容可以分为字符型液晶,图形液晶。根据显示容量又可以分为单行16字,2行16字,两行20字等等。2行16字的字符型液晶模块是一种通用模块,与数码管相比该模块有如下优点:(1)位
29、数多,可显示32位,32个数码管体积相当庞大。(2)显示内容丰富,可显示所有数字和大、小写字母。(3)程序简单,如果用数码管动态显示,会占用很多时间来刷新显示,而1602自动完成此功能。 图2.3 1602模块的实物图1602采用标准的16脚接口,其中:(模块背面有标注)第1脚:VSS为地电源第2脚:VDD接5V正电源第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:RW为读写信号线,高电平时进行读操作,低电平
30、时进行写操作。第6脚:E端为使能端,当E端由高电平跳变为低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第1516脚:空脚(有的用来接背光)。1602液晶模块内部的字符发生存储器(CGROM)已经存储了不同的点阵字符图形,这些字符有,阿拉伯数字、英文字母的大小写、常用的符号和日文假名等,每一个字符都有一个固定的代码,其中数字与字母同ASCII码兼容。其内部还有自定义字符(CGRAM),可用以存储自己定义的字符。2.4.3 扩展芯片8255A并行I/O口扩展8255A是Intel公司生产的可编程输入输出接口芯片,具有3个8位的并行I/O接口,3种工作方式,可通过程序改变其功能,
31、可以与单片机直接相连,因而使用灵活方便,通用性好,可作为单片机与多种外围设备连接时的中间接口电路。8255A的引脚图如图2.4所示。1、8255A各引脚功能 8255A共有40个引脚,双列直插式封装的引脚功能如下。 D7D0:三态双向数据线,与单片机数据总线连接,用来传送数据信息。 :片选信号线,低电平有效,表示芯片被选中。 :读出信号线,低电平有效,控制数据的读出。 :写入信号线,低电平有效,控制数据的写入。 PA0PA7:端口A的输入/输出线。 PB0PB7:端口B的输入/输出线。 PC0PC7:端口C的输入/输出线。 RESET:复位信号线。若RESET=1,8255复位。复位状态控制寄
32、存器被清除,A,B,C口被置为输入方式。 A1A0:地址线,用来选择8255A内部端口。图2.4 8255A引脚图 2、8255A内部各部分功能 8255A的内部包括3个并行数据输入/输出端口,2个工作方式控制电路,一个读/写控制逻辑电路和8位总线缓冲器。各部分功能概括如下。 (1)端口A、B、C 8255A有3个8位并行口,即A、B和C,都可以选择作为输入或输出工作方式,每个并行口都具有一个8位数据输出锁存器/缓冲器,一个8位数据输入锁存器。但在功能和结构上有些差异。 A口、B口作为数据输入/输出端口,C口既可以作为输入/输出端口使用,又可以在软件的控制下,分为两个4位的端口,作为A口、B口
33、选通方式操作时的控制信号。 (2)工作方式控制电路 工作方式控制电路包括A组控制电路和B组控制电路。两组控制电路共用一个控制命令寄存器,用来接收CPU发来的控制字,以决定两组端口的工作方式,也可以根据控制字的要求对C口按位清0或者按位置1。 A组控制电路用来控制A口和C口的上半部分(PC7PC4)。B组控制电路用来控制B口和C口的下半部分(PC3PC0)。(3)数据总线缓冲器数据总线缓冲器是一个三态双向8位缓冲器,作为8255A与系统总线之间的接口,用来传送数据、指令、控制命令以及外部状态信息。(4)读/写控制逻辑电路读/写控制逻辑电路接收CPU发来的控制信号RD,WR,RESET以及地址信号
34、A1A0等,然后根据控制信号的要求,将端口数据读出,送到CPU;或者将CPU送来的数据写入端口。各端口的工作状态如下表所示。表2.3 8255A端口的操作状态端口地址选择操作选择CPU操作功能CSA1A0所选端口RDWR0(选中)00A口01读A口内容01B口01读B口内容10C口01读C口内容00A口10写入A口01B口10写入B口10C口10写入C口11控制寄存器10写入控制字1XX未选中XXD0D7三态3、8255A的工作方式8255A有3种基本工作方式。方式0:基本输入输出。方式1:选通输入输出。方式2:双向传送。(1)工作方式0 基本输入/输出方式。这种方式不需要选通信号。PA,PB
35、和PC中任一端口都可以通过方式控制字设定为输入或输出。 (2)工作方式1 工作方式1是选通输入/输出工作方式。该方式时3个端口分为两组,即A组和B组。每一组包括一个8位数据端口和一个4位的控制/状态端口。每一个8位数据端口均可设置为输入或者输出,输入输出均可锁存。4位端口作为8位数据端口的控制/状态信号端口。A组包括A口和PC7PC4,A口可以由编程设定为输入或输出,PC7PC4作为输入/输出操作的选通信号和应答信号。B组包括B口和PC3PC0,用法同A组。 (3)工作方式2 只有A口可以工作于方式2。按照方式2工作时,A口成为双向数据总线端口,既可以发送数据,又可以接收数据。此时C口有5条线
36、被固定为A口与外设之间的联络信号线。C口余下的3条线可以作为B口方式1下的联络线;也可以和B口一起作为方式0的I/O线。2.4.4 条码设备条码打印机与条码扫描器1、条形码知识(1)条形码介绍:条形码是由美国的N.T.Woodland在1949年首先提出的。近年来,随着计算机应用的不断普及,条形码的应用得到了很大的发展。条形码可以记录很多信息,像商品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,因而在商品流通、图书管理、邮电管理、银行系统等许多领域得到了广泛的应用。条形码是由宽度不同、反射率不同的条和空,按照一定的编码规则(码制)编制成的,用以表达一组数字
37、或字母符号信息的图形标识符。即条形码是一组粗细不同,按照一定规则安排间距的平行线条图形。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)组成的。(2)条形码识别系统的组成 为了阅读出条形码所代表的信息,需要一套条形码识别系统,它由条形码扫描器、放大整形电路、译码接口电路和计算机系统等部分组成。(3)条形码的识别原理 由于不同颜色的物体,其反射的可见光的波长不同,白色物体反射各种波长的可见光,黑色物体则吸收各种波长的可见光,所以当条形码扫描器光源发出的光经光阑及凸透镜1后,照射到黑白相间的条形码上时,反射光经凸透镜2聚焦后,照射到光电转换器上,于是光电转换器接收到与白条和黑条相应的
38、强弱不同的反射光信号,并转换成相应的电信号输出到放大整形电路。白条、黑条的宽度不同,相应的电信号持续时间长短也不同。但是,由光电转换器输出的与条形码的条和空相应的电信号一般仅10mV左右,不能直接使用,因而先要将光电转换器输出的电信号送放大器放大。放大后的电信号仍然是一个模拟电信号,为了避免由条形码中的疵点和污点导致错误信号,在放大电路后需加一整形电路,把模拟信号转换成数字电信号,以便计算机系统能准确判读。 整形电路的脉冲数字信号经译码器译成数字、字符信息。它通过识别起始、终止字符来判别出条形码符号的码制及扫描方向;通过测量脉冲数字电信号0、1的数目来判别出条和空的数目。通过测量0、1信号持续
39、的时间来判别条和空的宽度。这样便得到了被辩读的条形码符号的条和空的数目及相应的宽度和所用码制,根据码制所对应的编码规则,便可将条形符号换成相应的数字、字符信息,通过接口电路送给计算机系统进行数据处理与管理,便完成了条形码辩读的全过程。(4)条形编码方式(本系统用到一维条码) 一维条码:有225中以上的一维条码,每种一维条码都有自己的一套编码规格,规定每个字母(可能是文字或数字或文数字)是由几个线条(Bar)及几个空白(Space)组成,以及字母的排列。一般叫流行的一维条码有39码、EAN码、UPC码、128码,以及专门用于书刊管理的ISBN、ISSN等。2、条码扫描器条码扫描器是计算机系统的标
40、准输入设备之一,它将扫描到的图像信息转换为数字信号,继而转化为与计算机兼容的数据,而且它与计算机的接口可以直接识别,无需做额外的接口设计。尽管可与PC机简单直接相连,但在一些较小系统中这样设计也是不经济的。举例说明,像自动存包柜系统中设置条码扫描器,如果在每一个存包柜配一台PC机来完成条码数据的读取和柜子的开关的话,那由于PC机价格高、体积大,这样组成的系统一方面成本高,另一方面要设计PC机的安放位置。在这种情况下,选用价格低、可靠性好的单片机来完成这台PC机的功能就具有较大的优越性。但是对于单片机系统而言,由于没有现成的接口处理器,尤其是对PS/2口,8位单片机没有键盘口的IP核,因此就必须
41、自己设计接口,利用单片机现有的资源,模拟接口处理,实现通信。系统的设计包括两个主要部分硬件连接的设计和软件协议的仿真。其中软件协议的实现是核心,其本质是在硬件接口设计好的情况下,实现单片机系统与条码阅读器的一个广义上的通信。条码扫描器的插头为键盘圆形插针。其中只有四个脚有意义,它们分别是Clock(时钟脚)、Data(数据脚)、+5V(电源脚)和Ground(电源地)。在PS/2键盘与PC机的物理连接上只要保证这四根线一一对应就可以。PS/2设备靠PC的PS/2端口提供+5V电源,另外两个脚Clock(时钟脚)和Data(数据脚)都是集电极开路的,所以必须接大阻值的上拉电阻。它们平时保持高电平
42、,有输出时才被拉到低电平,之后自动上浮到高电平。表2.4 PS/2端口定义1DATA数据信号端2n/c未定义3GND电源地4VCC+5V电源5CLK时钟信号端6n/c未定义3、条码打印机 单片机在工业控制、智能仪器和机电一体化领域中得到越来越广泛的应用,它的输出设备常常使用打印机,以便将测量、运算结果保存下来。GP16智能打印机是通用的微型打印机,它是由MODEL150I型机械点阵打印头机芯和控制器二部分组成。机芯部分包括微型电机、打针驱动部件、色带传动机构等;控制器配有微处理器接收和执行主机送来的命令,通过控制口和驱动电路,实现对打印机械动作的控制。因此,GP16打印机除了具有体积小、价格低
43、、可靠性高、通用性强、打印灵活、与主机接口方便等特点外,还具有很强的处理功能。GP16打印机可接受主机多种命令,相应地打印出ASCII字符(每行十六个字符)、数据、图标、汉字等。打印机接口各信号功能如下:I/O0I/O7:双向三态数据总线,是CPU与GP16打印机之间命令、状态和数据信息传输线。:设备选择线。、:读、写信号线。BUSY:打印机状态输出,高电平表示GP16处于忙状态,可供CPU查询或作中断请求线。GP16控制器具有数据锁存器,与单片机连接十分方便。2.4.5 时钟芯片DS1302 DS1302是美国Dallas公司推出的一种高性能、低功耗、带RAM的实时时钟芯片。DS1302是D
44、S1202的升级产品,与DS1202兼容,但增加了主电源/备用电源双电源引脚,同时提供了对电源进行涓细电流充电的能力。1、DS1302的主要特点:工作电压为2.55.5V。可对年、月、日、星期、时、分、秒进行计时,闰年补偿,有效至2100年。可采用12h或24h方式计时。可采用突发方式一次传送多个字节的时钟信号或RAM数据。内部有一个318位的用于临时存放数据的RAM寄存器。采用双电源(主电源和备用电源)供电,可设置备用电源充电方式,并且可以关闭充电功能,同时提供了对备用电源进行涓细电流充电的能力。采用SPI三线接口与CPU进行通信。采用普通32.768kHz晶振。2、DS1302的引脚及功能:DS1302引脚图如下所示。图2.5 DS1302引脚图VCC1接后备电源,VCC2接主电源:在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由VCC1或VCC2两者中的较大者供电。当VCC2VCC1+0.2V时,VCC2给DS1302供电。当VCC2VCC1时,DS1302由VCC1供电。X1和X2:外接32.768kHz晶振,为芯片提供计时脉冲。:复位/片选线。I/O:串行数据输入输出端(双向)。SCLK:串行时钟输入端。3、DS1302的控制字及寄存器通过对DS1302寄存器的控制字进行读写操作完成对DS1302的读写。(1)DS1302的控制字D