自动存包柜的设计

更新时间:2024-01-27 01:13:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

摘要

近年来,随着生活水平的提高,人们对于社会消费品的质量和数量的要求也在逐渐增加。为了更好的为广大顾客服务,在一些商场、影院、超市等公共场合通常设置有自动存包柜,它具有功能实用、操作简便、安全可靠、抗干扰性强等特点。

本文详细介绍了国内自动存包控制系统的发展现状,发展中所面临的问题。并详细介绍了本系统采用的单片机做控制器,可以同时管理多个存包柜。柜门锁由电磁阀控制,当顾客需要存包的时候,可以自行到存包柜前按“开门”键,单片机接收到一脉冲信号,并通过系统I/O口发出相应的信号,控制锁柜门的电磁阀将一空箱打开,顾客即可存包,并将柜门关上。当顾客需要取包时,要将只要将条码放置到条形码阅读器前方,条形码阅读器采集到条码信息输出相应的高低电平信号传给单片机,系统比较密码一致后,发出开箱信号至电磁阀将柜门打开,顾客即可将包取出。

关键词:自动存包柜;单片机;条形码阅读器

I

ABSTRACT

In recent years, with the improvement of living standards, people for social consumer goods quality and quantity requirements are to increase gradually. In order to better service for the general customers, in some stores, movie theaters, supermarkets public Settings are to be put automatically usually bag ark, it is functional practical, simple operation, safe and reliable, anti-jamming strong sexual characteristics.

This paper describes the control system of the domestic auto-save package development status of the problems faceing the development. And details of the system microcontroller to do with the controller, can manage a package of counters. Controlled by a solenoid valve cabinet locks, when customers need to save the package, they can keep their own bag to the counter before the press the \port to issue the appropriate signal, control lock door of the solenoid valve will be an empty box is opened, the customer can deposit bags, and cabinet door. When the customer needs to take when the package is to simply place the barcode in front of bar code readers, bar code readers bar code information collected by the high-low output signals to the appropriate microcontroller, the password system is relatively consistent, the issue out of the box signal to the solenoid valve is the door open, the customer can remove the package. Keywords: Automatic Storage Bag; Microcontroller; Bar Code Reader

II

目录

1 绪论 .............................................. 1

1.1 题目来源及课题意义 .................................... 1 1.2 自动存包柜控制系统的工作原理及技术要求 ................ 1 1.3 系统的主要技术参数: .................................. 2

2 系统方案论证 ...................................... 2

2.1 自动存包柜系统框图 .................................... 2 2.2 主机电路核心器件的选择 ................................ 3 2.3 光电开关的选择 ........................................ 6 2.4 键盘、显示器接口电路 .................................. 7 2.5 开箱控制电路 .......................................... 8 2.6 打印机控制电路 ........................................ 8

3 系统硬件设计 ...................................... 9

3.1 AT89C51的组成及管脚介绍 .............................. 9 3.2 输入电路设计 ......................................... 12 3.2.1 条码技术介绍 .................................... 12 3.2.2 光电开关介绍 .................................... 16 3.2.3 限位开关介绍 .................................... 19 3.2.4 74LS138介绍 .................................... 19 3.2.5 输入电路连接 .................................... 21 3.2.6 键盘设计 ........................................ 22 3.3 芯片使用 ............................................. 24 3.3.1 外部地址锁存器介绍 .............................. 24 3.3.2 程序存储器EPROM的扩展介绍 ...................... 25 3.3.3 静态数据存储器的扩展介绍 ........................ 28 3.4 输出电路设计 ......................................... 30 3.4.1 显示部分设计 .................................... 30

III

3.4.2 驱动电路设计 .................................... 32 3.4.3 报警电路设计 .................................... 34

4 系统软件设计 ..................................... 36

4.1 主程序模块 ........................................... 36 4.2 键输入程序设计 ....................................... 37 4.3 驱动电路程序设计 ..................................... 37

参考文献 ........................................... 39 致谢 ............................................... 40 附录一 程序清单 .................................. 41 附录二 系统硬件图 ................................. 52

IV

1 绪论

这次毕业设计是学校为我们每个理工科学生安排的一次实践性的总结,是就业前的一次大练兵,是对每个学生大学期间所学知识的总体检测,为我们步入社会走向岗位做好了准备。

1.1 题目来源及课题意义

近年来,随着生活水平的提高,人们对于社会消费品的质量和数量的要求也在逐渐增加。为了更好的为广大顾客服务,在一些商场、影院、超市等公共场合通常设置有自动存包柜,它具有功能实用、操作简便、安全可靠、抗干扰性强等特点。顾客可以根据简明清晰的操作说明自行的完成取物品的工作,自助式存取可以避免开放式存包带来的不必要的纠纷,又可以节约人员开支,达到减员增效的目的。同时,存包可以解放顾客的双手,使顾客放开双手,更方便的进行购物。

1.2 自动存包柜控制系统的工作原理及技术要求

本系统采用AT89C51单片机做控制器,可以同时管理24个存包柜。柜门锁由电磁阀控制,当顾客需要存包的时候,可以自行到存包柜前按“开门”键,单片机接收到一脉冲信号,并通过系统I/O口发出相应的信号,控制锁柜门的电磁阀将一空箱打开,顾客即可存包,并将柜门关上。当顾客需要取包时,要将只要将条码放置到条形码阅读器前方,条形码阅读器采集到条码信息输出相应的高低电平信号传给单片机,系统比较密码一致后,发出开箱信号至电磁阀将柜门打开,顾客即可将包取出。

要求本系统具有较高的自动化程度,它是以AT89C51单片机为核心,自动控制柜门的打开,并通过条码技术实施红外线检测开门。关门后通过打印机打印条码,并自动切纸;实时显示无物的箱体号。并具有断电保护

1

功能,用红外线检测箱内是否有物品,并报警。在现实生活中有着积极的作用。

1.3 系统的主要技术参数

(1) 工作电压:AC220V,50Hz (2) 控制门数:24门 (4列×6) (3) 显示无物箱号

(4) 采用条码红外线检测开门技术 (5) 断电保护功能

2 系统方案论证

2.1 自动存包柜系统框图

自动存包柜的系统框图如图2.1。该系统AT89C51单片机为核心,还有显示屏及按键,打印机,红外线检测,断电保护等部分。

开门存包红外线检测箱内扫描条码断电保护关门打印机打印条码空箱显示MCS51有物体门开开门

图 2.1 自动存包柜系统框图

报警

2

2.2 主机电路核心器件的选择

单片机是在一块硅片上集成了微处理器,存储器和各种输入、输出接口,这样的一块芯片具有一台计算机的属性,因而被称为单片微型计算机,简称单片机。单片机的优点是体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好,开发也较为容易。目前单片机已经广泛的应用在工业自动化控制,自动检测,智能仪表,家用电器等各个方面。随着单片机的发展趋势,为了满足不同用户的需要,单片机有了很大的改善。

(1)CPU的改进 (2)存储器的发展 (3)片内I/O的改进 (4)外围电路内装化。 (5)低功耗化。

AT89C51也是我们常用到的单片机芯片。AT89C51是美国ATMEL公司生产的低电压,高性能CMOS 8位单片机,片内含4K bytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(ROM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元。AT89C51单片机可提供许多高性价比的应用场合,可灵活应用于各种控制领域。 AT89C51主要性能参数如下:

(1)与MCS-51产品指令系统完全兼容 (2)4K字节可重擦写Flash闪速存储器 (3)1000次擦写周期

(4)全静态操作:0Hz---24MHz (5)三级加密程序存储器 (6)128×8字节内部RAM (7)32个可编程I/O 口线 (8)2个16位定时/计数器 (9)6个中断源

3

(10)可编程串行UART通道 (11)低功率空闲和掉电模式 AT89C51 功能特性概述:

AT89C51提供以下标准功能:4K字节Flash闪速存储器,128字节内部RAM,32个I/0 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可将至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。

AT89C51 引脚功能说明:

AT89C51引脚图如图2.2其各引脚功能如下

图2.2 AT89C51引脚图

VCC:供电电压。

GND:接地。

4

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 INT0(外部中断0) P3.3 INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 WR(外部数据存储器写选通) P3.7 RD(外部数据存储器读选通)

5

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。

PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。

振荡器特性:

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。

芯片擦除:

整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。

2.3 光电开关的选择

红外线光电开关(光电传感器)是利用被检测物体对红外光束的遮光或反射,由同步回路选通而检测物体的有无,其物体不限于金属,对所有能反射光线的物体均可检测。根据检测方式的不同,红外线光电开关可分为:

6

1.漫反射式开关

一般来说当被检测物体的表面光亮或其反光率极高时,我们都选用漫反射式开关。

2.镜反射式光点开关

镜放射光电开关是集发射与接受器于一体,光电开关发射出的光线经过反射镜反射回接收器,当被检测物体经过且完全阻断光线时,光电开关就产生了检测开关的信号。

3.对射式光电开关

当检测物体是不透明时,对射式光电开关是最可靠的检测模式。 4.槽式光电开关

槽式光电开关比较安全可靠的适合检测高速变化,分辨透明与半透明物体。

5.光纤式光电开关

光纤式光电开关采用塑料或玻璃光纤传感器来引导光线,以实现被检测物体不在相近区域的检测。

传感器也可以使用应变式传感器,他是利用金属的电阻应变效应,将检测物体变形转换成电阻的变化的传感器。当金属丝在外力作用下发生机械变形时,其电阻值将发生变化,这种现象称为电阻丝的应变效应,应变式传感器正是利用了金属丝的这一效应。但是这种传感器的安装不是很方便,而且检测的效果也不是很好,灵敏度不过,很有可能造成错误,给顾客带来不必要的麻烦。

由以上可以很容易的看出在这里我们选用漫反射式光电开关。用它来检测存包柜能是否有物体,并把相应的信号传输给单片机,单片机根据收到的信号可以通过I/O线控制其他的器件工作。

2.4 键盘、显示器接口电路

该系统中键盘的主要功能是用于顾客选择适当的柜来存包,这里我们用4×8矩阵式键盘,用24个按键来控制24个柜门的打开,剩余的8个键可以作为其他控制或用在以后系统的更新使用上,键盘是用AT89C51单片

7

机经74LS373扩展一片8255A构成键盘借口电路的。使用编程扫描方式可以很容易的实现键盘和显示的功能,而且还具有消抖功能。

键盘还可以使用单片机I/O扩展接口芯片8155H来实现,AT89C51外扩一片8155H,8155H的RAM地址为7E00H~7EFFH,I/O口地址为7F00H~7F05H,8155H的PA口为输出口,控制键盘的列线电位,PA口为键扫描口,同时也是显示器的扫描口。在这里我们的系统需要的键盘显示要求不是非常高,只需要要使用8255A即可,如果使用8155H也可以实现键盘显示器的连接,但是很显然就造成了不必要的浪费,所以在这里我们选用通过8255A连接使用的键盘。

2.5 开箱控制电路

开箱控制电路功能用来打开箱锁。该系统共控制24个存包柜,其中使用了8255A的PA、PB、PC三口的24跟口线作为输出,输出信号经三极管放大后驱动电磁锁动作,从而将箱锁打开。同时在箱的门沿上还装有限位开关,来检测门的闭合与否。并在适当的时候来进行报警,提醒顾客关好柜门。为了保证安全,锁簧需要有较强的弹力。电磁锁的驱动功率需要20W以上,可以采用20V直流电源,产生1A的驱动电流,为加强驱动功率,采用二级直流放大。在这里我们使用DSN-Y电磁锁,他的技术指标即参数都能够满足我们的需要。

2.6 打印机控制电路

现场印制设备通常有电阵、激光、热敏、以及喷墨打印机设备等。点阵打印机是一种计算机输出设备,用于打印各种拷贝文件,它是重复使用色带的。它只能打出中、低密度的条码符号,适用于小批量的的印制。激光打印机是利用图形感应半导体表面上的充电荷的原理设计的。它可以打印较高、中密度的条码。热敏打印机,这种打印机已经使用多年了,它是最普遍的打印机,热敏打印机的打印过程比较简单,打印的格式灵活,图象质量高,速度快而且成本很低,分辨率高,环境适应性强。它是通过压力和热作用,将油墨转印到其他的介质上,操作十分方便。所以在这里我

8

们完全可以使用热敏式打印机。热敏打印机控制电路的功能是用来驱动打印机系统产生密码。用AT89C51的P0口接打印机的数据线,用P1.7口接打印机的选同信号上,用P1.6接收音机的BUSY信号。

3 系统硬件设计

3.1 AT89C51的组成及管脚介绍

AT89C51内部有8个部件组成,即CPU、时钟电路、数据存储器、串行口、并行口(P0~P3)、定时计数器和中断系统,它们均由单一总线连接并被集成在一块半导体芯片上,即组成了单片微型计算机,AT89C51就是MCS-51系列单片机中的一种。见图3.1

AT89C51 时钟 图3.1 AT89C51内部组成结构

1. CPU中央处理器

中央处理器是AT89C51的核心,它的功能是产生控制信号,把数据从存储器或输入口送到CPU,或将CPU数据写入存储器或送到输出端口。还可

9

以对数据进行逻辑和算术的运算。

2. 时钟电路

AT89C51内部有一个频率最大为12MHz的时钟电路,它为单片机产生时钟序列,但需要外接石英晶体做振荡器和微调电容调整频率。

3. 内存

内部存储器可分做程序存储器和数据存储器,但在AT89C51中无片内程序存储器 。

4. 定时/计数器

AT89C51有两个16位的定时计数器,每个定时器和计数器都可以设置成定时的方式和计数的方式,但只能用其中的一个功能,以定时或计数结果对计算机进行控制。

5. 并行I/O口

AT89C51有四个8位的并行I/O口,P0,P1,P2,P3,以实现数据的并行输入输出。

6. 串行口

它有一个全双工的串行口,它可以实现计算机间或单片机同其它外设之间的通信,该串行口功能较强,可以作为全双工异步通讯的收发器,也可以作为同步移位器用。

7. 中断控制系统

AT89C51有五个中断源,既外部中断两个,定时计数器中断两个,串行中断一个,全部的中断分为高和低的两个输出级。

AT89C51的制作工艺为HMOS,采用40管脚双列直插式DIP封装,引脚说明如下:

VCC(40引脚)正常运行时提供电源。 VSS(20引脚)接地。

XTAL1(19引脚)在单片机内部,它是一个反向放大器的输入端,该放大器构成了片内的震荡器,可以提供单片机的时钟信号,该是引脚也可以接外部的晶振的一个引脚,如采用外部振荡器时,

10

图3.2 AT89C51管脚图

对于AT89C51此引脚应该接地。

XTAL2(18引脚)在内部,接至上述振荡器的反向输入端,当采用外部振荡器时, 对MCS51系列该引脚接收外部振荡信号,即把该信号直接接到内部时钟的输入端。

RST/VPD(9引脚)在振荡器运行时,在此引脚加上两个机器周期的电平 将单片机复位,复位后应使此引脚电平保持不高于0.5V低电平以保证AT89C51正常工作。在掉电时,此引脚接备用电源VDD,以保持RAM数据不丢失,当BVCC低于规定的值时,而VPD在其规定的电压范围内时,VPD就向内部数据存储器日工备用电源。

ALE/PROG(30引脚)当AT89C51访问外部存储器时,包括数据存储器和程序存储器,ALE9地址锁存允许0输入的脉冲的下沿用语锁存16位地址的低8位,在不访问外部存储器的时候,ALE仍有两个周期的正脉冲输出,其频率为振荡器的频率的1/6,在访问外存储器的是候,在两个周期中,ALE只出现一次,ALE断可驱动8个LSTTL负载,对于有片内EPROM的而言,在EPROM编程期间,此脚用于输入编程脉冲PROG。

PSEN(29引脚)此脚输出为 单片机内访问外部程序存储器的读选通信号,在读取外部指令期间, PSEN有两次在每个周期有效,在此期间,每当访问外部存储器时,两个有效的PSEN将不再出现,同样这个引脚可驱动8个LSTTL负载。

EA/VPP(31引脚)当EA保持高电平时,单片机访问内部存储器,当PC值超过0FFFH时,将自动转向片外存储器。当EA非保持低电平时,则只访问外部程序存储器,对8031而言,此脚必须接地。

AT89C51有一个全双工串行口,这个串行口既可以在程序下把CPU的8位并行数据变成串行数据一位一位的从发送数据线发送出去,也可以 把串行数据接受来变成并行数据给CPU,而且这种串行发送和接收可以单独进行也可以同时进行。

AT89C51的串行发送和接收利用了P3口的第二功能,利用P3.1做串行数据接收线,串行接口的电路结构还包括了串行口控制寄存器SCON,电源及波特率选择寄存器PCON和串行缓冲寄存器SBUF,他们都属于SFR,PCON和SCON用于设置串行口工作方式和确定数据发送和接收,SBUF用于存放欲

11

发送的数据起到缓冲的作用。 AT89C51的工作方式

AT89C51的工作方式可以分做复位,掉电和低功耗方式等。 (一)、复位方式

单片机复位后,程序计数器PC和SFR的状态。复位后,PC初始话为0000H,使单片机能从0000H开始执行程序,故单片机除正常工作的程序运行出错或操作出错而导致死机时,需要复位键进行重新启动,复位不影响RAM存放的内容,因为复位操作是在带电的状态下将程序存储器的地址改变,而ALE和PSEN非在复位期间将输出高电平。

RST是复位信号的输入端,RST输入一个有效的高电平旧能使系统复位,当高电平持续24个振荡脉冲周期的时候,单片机完成了复位的操作,假如晶振的频率为6MHZ,则复位信号的持续时间不应小于4us。

复位可以是上电复位,按键手动复位,和二者混合式。复位信号中的电阻和电容是为了保证RST断能保证两个机器周期以上的高电平来完成复位操作而特意设定的。

(二)、掉电和低功耗方式

人们往往在程序运行中发生系统掉电的故障,使RAM和寄存器中的数据内容丢失,使人们丢失珍贵的数据而束手无策,AT89C51有掉电保护功能,是先把有用的数据保存,再用备用电源进行供电。

3.2 输入电路设计

在自动存包柜的设计中输入部分是十分重要的一个环节,在这里我们需要检测门的限位,检测箱内是否有物体,还有相应的打印密码,并在顾客需要的时候检测密码,并自动打开柜门。还需要显示是否有空箱以及空箱的位置,来为顾客提供选择。 3.2.1 条码技术介绍

条形码是由美国的N.T.Woodland在1949年首先提出的。近年来,随着计算机应用的不断普及,条形码的应用得到了很大的发展。条形码可以标出商品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件

12

起止地点、类别、日期等信息,因而在商品流通、图书管理、邮电管理、银行系统等许多领域都得到了广泛的应用。

条形码是由宽度不同、反射率不同的条和空,按照一定的编码规则(码制)编制成的,用以表达一组数字或字母符号信息的图形标识符。即条形码是一组粗细不同,按照一定的规则安排间距的平行线条图形。常见的条形码是由反射率相差很大的黑条(简称条)和白条(简称空)组成的。如图3.3

图 3.3 常见的条码

(1) 条形码的识别原理

由于不同颜色的物体,其反射的可见光的波长不同,白色物体能反射各种波长的可见光,黑色物体则吸收各种波长的可见光,所以当条形码扫描器光源发出的光经光阑及凸透镜1后,照射到黑白相间的条形码上时,反射光经凸透镜2聚焦后,照射到光电转换器上,于是光电转换器接收到与白条和黑条相应的强弱不同的反射光信号,并转换成相应的电信号输出到放大整形电路。白条、黑条的宽度不同,相应的电信号持续时间长短也不同。但是,由光电转换器输出的与条形码的条和空相应的电信号一般仅10mV左右,不能直接使用,因而先要将光电转换器输出的电信号送放大器放大。放大后的电信号仍然是一个模拟电信号,为了避免由条形码中的疵点和污点导致错误信号,在放大电路后需加一整形电路,把模拟信号转换成数字电信号,以便计算机系统能准确判读。整形电路的脉冲数字信号经译码器译成数字、字符信息.它通过识别起始、终止字符来判别出条形

13

码符号的码制及扫描方向;通过测量脉冲数字电信号0、1的数目来判别出条和空的数目。通过测量0、1信号持续的时间来判别条和空的宽度。这样便得到了被辩读的条形码符号的条和空的数目及相应的宽度和所用码制,根据码制所对应的编码规则,便可将条形符号换成相应的数字、字符信息,通过接口电路送给计算机系统进行数据处理与管理,便完成了条形码辨读的全过程。

(2) 条码识读系统

条码符号是图形化的编码符号,对条码符号的识读就是要借助一定的专用设备,将条码符号中含有的编码信息转换成计算机可以识别的数字信息。条码识读系统是由扫描系统、信号整形、译码三部分组成,如图3.4

图 3.4 条码识读系统

在这里我们使用CLV 414型条码检测仪。它的工作参数如下: 扫描方式:单线式,可选光栅式;顶部或侧面阅读 光源头:激光二极管,670nm红光 阅读频率:200-800 Hz

识读能力:每一扫描线上可有1-3个条码;每个阅读周期可读1-10个条码;每线及每周期可辨别3种码制 工作电压:4.5-30 V (功率约2.5W) (3) 条码印制

条码是一种传递信息的特殊图形,它的固有特性决定了印制条码与其

14

他产品不同。条码符号必须符合国家条码标准中对光学、尺寸精度的要求才能顺利地在条码阅读器上正确的扫描识读,因此条码印制技术已经成为了条码结束的重要组成部分。通常我们把用于直接印制条符号的物体叫符号载体,常用的符号载体有普通白纸,不干胶标签纸等。不同的用处对符号载体的性能要求也不同,归纳起来主要有以下几点:

1.符号载体要有一定的强度,以保证在一定的受力条件下,或者接触扫描的时候不至于破碎和发生明显的变形。

2.符号载体要有稳定的物理性能,在一定的温度和压力下,物理形态不发生变化。

3.符号载体要有一定的几何尺寸和形状,印制条码的表面应为光滑表面,能适合光电扫描器的扫描。

4.符号载体要有一定的涂料附着能力,并要求快速干燥。

5.符号载体要有一定的光学特性。当直接利用符号载体的表面做条码的空(或条)的时候,要保证与涂料印制的条或空行形成一定的光学对比度。

条码打印的常用设备有点阵、激光、热敏即喷墨打印设备等。在这里我们选用热敏式打印机Zebra-105SL来打印条码,该打印机具有32为微处理器,配以简单易用的APLII编程语言,可以做到一边打印一边排版,可以在很短的时间内打印出标签。他的分辨率是(解析度: 203dpi(8点/mm)/300dpi(12点/mm)。最大列印宽度:104mm最快列印速度:203MM/秒(203dpi)/152MM/秒(300dpi)非常适合用于存包柜条码的印制。打印机与AT89C51的连接如图3.5

15

图3.5 打印机与AT89C51接口

3.2.2 光电开关介绍

光电开关是传感器大家族中的成员,它把发射端和接收端之间光的强弱变化转化为电流的变化以达到探测的目的。由于光电开关输出回路和输入回路是电隔离的(即电缘绝),所以它可以在许多场合得到应用。 (1) 光电开关的工作原理

光电开关(光电传感器)是光电接近开关的简称,它是利用被检测物对光束的遮挡或反射,由同步回路选通电路,从而检测物体有无的。物体不限于金属,所有能反射光线的物体均可被检测。光电开关将输入电流在发射器上转换为光信号射出,接收器再根据接收到的光线的强弱或有无对目标物体进行探测。工作原理如图3.3.1中图1所示。多数光电开关选用的是波长接近可见光的红外线光波型。图2中是德国SICK公司的部分光电开关的外型图3.6。

16

图3.6 部分光电开关外形

(2) 光电开关的分类

①漫反射式光电开关:它是一种集发射器和接收器于一体的传感器,当有被检测物体经过时,物体将光电开关发射器发射的足够量的光线反射到接收器,于是光电开关就产生了开关信号。当被检测物体的表面光亮或其反光率极高时,漫反射式的光电开关是首选的检测模式。

②镜反射式光电开关:它亦集发射器与接收器于一体,光电开关发射器发出的光线经过反射镜反射回接收器,当被检测物体经过且完全阻断光线时,光电开关就产生了检测开关信号。

③对射式光电开关:它包含了在结构上相互分离且光轴相对放置的发射器和接收器,发射器发出的光线直接进入接收器,当被检测物体经过发射器和接收器之间且阻断光线时,光电开关就产生了开关信号。当检测物体为不透明时,对射式光电开关是最可靠的检测装置。

④槽式光电开关:它通常采用标准的U字型结构,其发射器和接收器分别位于U型槽的两边,并形成一光轴,当被检测物体经过U型槽且阻断

17

光轴时,光电开关就产生了开关量信号。槽式光电开关比较适合检测高速运动的物体,并且它能分辨透明与半透明物体,使用安全可靠。

⑤光纤式光电开关:它采用塑料或玻璃光纤传感器来引导光线,可以对距离远的被检测物体进行检测。通常光纤传感器分为对射式和漫反射式。

它们的工作光线示意图如图3.7所示。

图 3.7 各种光电开关的示意图

(3) 光电开关的使用注意事项

①红外线传感器属漫反射型的产品,所采用的标准检测体为平面的白色画纸。

②红外线光电开关在环境照度高的情况下都能稳定工作,但原则上应回避将传感器光轴正对太阳光等强光源。

③对射式光电开关最小可检测宽度为该种光电开关透镜宽度的80%。 ④当使用感性负载(如灯、电动机等)时,其瞬态冲击电流较大,可能劣化或损坏交流二线的光电开关,在这种情况下,请将负载经过交流继电器来转换使用。

⑤红外线光电开关的透镜可用擦镜纸擦拭,禁用稀释溶剂等化学品,以免永久损坏塑料镜。

⑥针对用户的现场实际要求,在一些较为恶劣的条件下,如灰尘较多的场合,所生产的光电开关在灵敏度的选择上增加了50%,以适应在长期使用中延长光电开关维护周期的要求。

18

⑦产品均为SMD工艺生产制造,并经严格的测试合格后才出厂,在一般情况下使用均不会出现损坏。为了避免意外性发生,请用户在接通电源前检查接线是否正确,核定电压是否为额定值。

这本设计中我们需要对存包柜中进行检测,并且实时显示无物的箱号,顾客门没有关靠的时候发出报警,所以我们选用漫反射式光电开关。

我们选取FR12-40型,它的工作参数如下: 1.工作电压: 5 - 12V. 2.动态工作电流:5-20mA. 3.最大输出电流10mA.

4.12V供电时有效控制距离最大为3.5米. 5.外型尺寸:21x68x37mm 3.2.3 限位开关介绍

限位开关可以根据运动部件的位置来切换电路。工作时由挡块和限位开关的轮子或触杆相撞使限位开关的触点接通或断开,常用于控制运动部件的方向、行程长短、位置。还可以用来检测开关物体是否闭合。我们使用LJ-DFJ型限位开关,它的特点是: 1、单棒式探头,工作稳定,感度好。

2、不受测定物性质的影响,安装后无须调整,即可稳定投入使用 3、采用压电元件内置于棒体和厚管壁的不锈钢管的探头,消振管仅9mm长(同类比为最短),抗重荷、安全可靠、寿命长。

4、依据所测定对象不同,可调整测定感度(高、中、低) 5、使用15A大容量接点继电器开关,可直接实行对电机控制。 3.2.4 74LS138介绍

74LS138是一种3~8译码器,有3个数据输入线,经译码产生8种状态。起引脚图如图3.8。译码功能如表3.2.1所示,从表3.2.1中可以看出,当译码器的输入为某一编码时其输出就有一个固定的引脚输出为低电平,其余的都为高电平。AT89C51与74LS138的连接图如图3.9所示。

19

图 3.8 74LS138管脚图

图 3.9 AT89C51与74LS138接口电路

20

输 入 G1 G2A G2B 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 C B A 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 × × × 输 出 Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 表 3.1 74LS138真值表

3.2.5 输入电路连接

由于输入电路很多,每一组都有一个控制端,所以在这里我们使用74LS244来进行扩展。74LS244是三态输出的八缓冲器,由2组、每组四路输入、输出构成。每组有一个控制端,由控制端的高或低电平决定该组数据被接通还是断开,功能表如下表所示。

G 输 入 A L H X L L H 输 出 Y L H X H—高电平 L—低电平

X—任意 Z—高阻

表 3.2 74LS244功能表

将1G、2G通过或门接到单片机的输出口上,1A1~1A4、2A1~A4接到光电传感器上,1Y1~1Y4、2Y1~2Y4接到AT89C51的输入端。光电传感

21

器输入信号接线图和限位开关输入信号的接线图分别如图3.10,图3.11所示

图3.10 光电传感器与7LS244接口电路

图3.11 限位开关与7LS244接口电路

3.2.6 键盘设计

键盘在单片机应用系统中能实现向单片机输入数据、传输命令等功能,是人工干预单片机的主要手段。键盘实际是一组按键开关的集合。通常,键盘所用的开关为机械弹性开关,均利用了机械触点的合、断作用。

键盘的闭合与否,反映在行线输出电压上就是呈现出高电平或低电

22

平,如果高电平表示断开的话,那么低电平就表示键闭合,所以通过对行线电平的高低状态的检测,便可以确认按键按下与否。

常用的键盘接口分为独立式按键接口和矩阵式键盘接口。我们在这里选用矩阵式键盘接口。矩阵式键盘结构如图3.12

矩阵式键盘工作原理:按键设置在行、列线交点上,行列线分别连接到按键开关的两端。行线通过上拉电阻接到+5V电源上。平时无按键按下时,行线处于高电平状态,而当有按键按下时,行线电平状态将由与此行线相连的列线电平决定。列线电平如果为低电平,则行线电平为低电平;列线电平如果为高,则行线电平也为高电平。这是识别矩阵键盘按键是否被按下的关键所在。由于矩阵键盘中行、列线为多键共用,各按键均影响该键所在行和列的电平。因此各按键彼此将互相发生影响,所以必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。

图3.12 矩阵式键盘结构

23

3.3 芯片使用

在这里我们使用了外部地址锁存器74LS373程序存储器27128静态数据存储器6116,扩展芯片8255A,下面来详细的介绍这几个器件

3.3.1 外部地址锁存器介绍

AT89C51单片机由于受引脚数的限制,数据线和地址线是复用的,由P0口兼用。为了将它们分离出来,以便同单片机片外的扩展芯片正确的连接,需要在单片机外部增加地址锁存器。我们这本设计中使用74LS373。74LS373是一种带有三态门的8D锁存器,其引脚如图3.13所示

图3.13 锁存器74LS373的引脚

其引脚的功能如下: D7~D0:8位数据输入线 Q7~Q0:8位数据输出线

G:数据输入锁存选通信号,高电平有效。当该信号为高电平的时候,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。

OE:数据输出允许信号,低电平有效。当该信号为低电平的时候,三

态门打开,锁存器中数据输出到数据输出线。当该信号为高电平的时候,输出线为高阻态。

24

74LS373的功能表见下表

OE G 1 1 0 ×

D 1 0 × × Q 1 0 不变 高阻态 0 0 0 1 表3.3 74LS373的功能

3.3.2 程序存储器EPROM的扩展介绍

程序存储器一般采用只读存储器,因为这种存储器在电源关断后,仍能保存程序(我们称此特性为非易失性的)在系统上电后,CPU可以取出这些指令予以重新执行。只读存储器简称为ROM(Read Only Memory)。ROM总的信息一旦被写入之后,就不能随意更改,特别是不能在程序运行的过程中写入新的内容,故称之为只读存储器。向ROM中写入信息叫做ROM编程。根据编程的方式不同,ROM分为以下几种:掩模ROM、可编程ROM、EPROM、E2PROM、Flash ROM。程序存储器扩展可以根据需要使用上述的各种只读存储器的芯片。在这里我们使用27128EPROM芯片,型号名称“27”后面的数字表示其位存储器容量的大小。如果换成字节容量只需要将该数字除以8就可以了。27128的芯片引脚图如图3.14

25

图3.14 27128芯片引脚图

它的各引脚功能如下: A13~A0:地址线引脚。 D7~D0:数据引脚

CE:片选输入端 OE:输出允许控制端

PGM:编程时,加编程脉冲的输入端

VPP:编程时编程电压(+12V或+25V)输入端 VCC:+5V,芯片的工作电压 GND:数字地 NC:无用端

27128芯片的工作方式

27128一般都有5种工作方式,由CE、OE、PGM各信号的状态组合来确定。5种工作方式如下表所示。

26

方式 引脚 读出 为选中 编程 程序校验 编程禁止 CE/PGM OE VPP +5V +5V +25V(或+12V) +25V(或+12V) +25V(或+12V) D7~D0 程序读出 高阻 程序写入 程序读出 高阻 低 高 正脉冲 低 低 低 × 高 低 高 表3.4 27128的工作方式

(1)读出方式

一般情况下,EPROM工作在这种方式。工作在此种方式的条件是使片选控制线CE为低,同时让输出允许控制线OE为低,VPP为+5V,就可以将EPROM中的指定地址单元的内容从数据引脚D7~D0上读出。

(2)未选中方式

当片选控制线CE为高电平的时候,芯片进入未选中方式,这时数据输出为高阻抗悬浮状态,不占用数据总线。EPROM处于低功耗的维持状态。

(3)编程方式

在VPP端加上规定好的高压,CE和OE端加上合适的电平,就能将数据线上的数据写入到指定的地址单元。此时,编程地址和编程数据分别由系统的A13~A0和D7~D0提供。

(4)编程校验方式

在VPP端保持相应的编程电压(高压),再按读出方式操作,读出编程固化好的内容,以校验写入的内容是否正确。

(5)变成禁止方式

本工作方式输出呈高阻状态,不写如程序。 典型的EPROM接口电路如图3.15

27

图3.15 AT89C51与27128的接口电路

3.3.3 静态数据存储器的扩展介绍

MCS-51单片机的内部有128个字节RAM。在实际的应用中,仅靠片内RAM往往是不够用的,必须扩展外部数据存储器。常用的数据存储器有静态存储器(SRAM)和动态存储器(DRAM),在单片机应用系统中,外扩的数据存储器都采用静态存储器。

所扩展的数据存储器空间地址,又P2口提供高8位地址,P0口分时提供低8位地址和用作8位的双向数据总线。片外数据存储器RAM的读写由8031的RD(P3.7)和WR(P3.6)信号控制,而片外程序存储器EPROM的输出允许端(OE)由读选通PSEN信号控制。尽管与EPROM共处同一地址空间,但是由于控制信号不同,所以不会发生总线冲突。

单片机系统中常用的SRAM芯片的典型型号有:6116(2K×8),6264(8K×8),62128(16K×8)。它们都用单一+5V电源供电,双列直插封装。在这里我们使用6116 SRAM,它的引脚为24个,引脚图如图3.16

28

图3.16 6116引脚图

6116的各引脚功能如下: A0~10:地址输入线。 D0~D7:双向三态数据线。

CE:片选信号输入线,低电平有效。

OE:读选通信号输入线,低电平有效。V1L V1H WE:写允许输入信号线,低电平有效。

VCC:工作电压+5V。 GND:地线。

6116存储器有读出、写入、维持三种工作方式,这些工作方式的操作控制如下表 方式 信号 CE OE WE 00~07 29

读 写 维持 V1L V1L V1H V1L V1H 任意 V1H V1L 任意 数据输出 数据输入 高阻态 表3.5 6116的操作控制

3.4 输出电路设计

在输出电路中包含了显示部分,驱动部分,报警部分,下面详细介绍各部分的功能及工作过程。 3.4.1 显示部分设计

随着仪器、仪表智能化、多功能化的要求,液晶显示器以其体积小、功耗低、接口方便等优点在显示器市场中脱颖而出,取代了传统的LED、CRT等显示方式而成为现代显示技术发展的主流。

系统采用液晶显示器(LCD),液晶显示器是一种被动式的显示器,即液晶本身并不发光,而是利用液晶经过处理后能改变光线通过方向的特性,而达到白底黑字或者黑底白字显示的目的。液晶显示器在单片机系统中作为输出器被广泛使用有以下原因:

① 显示质量高 ② 数字接口 ③ 体积小、重量轻 ④ 功率消耗小 LCD的显示原理:

在LCD显示器的上下两电极间加有液晶材料,液晶分子呈平行排列,具有旋光性,平时呈透明态,当上下电极间加上一定电压时,液晶分子转成垂直排列,失去旋光性而呈黑色。

LCD显示分为笔段型、点阵字符型、点阵图形型。本设计采用点阵字式LCD显示器。要使用本显示器,必须有相应的LCD控制器,驱动器来对LCD显示器进行扫描、驱动,以及一定空间的ROM和RAM来存储写入的命令和显示字符的点阵。现在人们已经将LCD控制器、驱动器、RAM、ROM和LCD

30

显示器用PCB连接到一起,称为液晶显示模块LCM(LCD Module)。使用者只要想LCM送入相应的命令和数据就可以实现所需要的显示,这种模块与单片机接口简单,使用灵活方便。

在这里我们选用LCM045型号显示器,它的基本结构如下: (1)液晶板

在液晶板上排列着若干5×10点阵的字符显示位,没个显示位可以显示1个字符。 (2)模块电路

模块电路是由控制器HD44780、驱动器HD44100及几个电阻电容组成的。HD44100是扩展显示字符位用的。PCB上有14个引脚,其中有8条数据线,3条控制线,其功能见下表可以很容易的很8031相接(如图3.19)通过送入数据和指令可以对显示方式和显示内容做出选择。

(3)驱动器和控制器

驱动器HD44100是用低功耗CMOS技术制造的大规模LCD驱动IC。它即可以当行驱动,也可以当列驱动,由20×2bit二进制移位寄存器、20×2bit数据寄存器和20×2bit驱动器组成。

引 角 号 1 2 3 4 5 6 7 · · 14

符 号 VSS VDD VLCD RS R/W E DB0 · · DB7 31

名 称 地 电路电源 液晶驱动电压 寄存器选择 读/写 使能 功 能 0V 5V±5% 见图3.2.2 H 数据寄存器 L 指令寄存器 H 读 L写 下降沿触发 8位数据线 数据传输

表3.6 引线功能

LCD控制器HD44780是用低功耗CMOS技术制造的大规模模点阵LCD控制器(兼带驱动器)和4位/8位微处理器相连,它能使点阵LCD显示大小写英文字母,数字和符号。应用HD44780,用户能用少量元件就可以组成一个完整点阵LCD系统。

图3.17 LCD与单片机连接图

3.4.2 驱动电路设计

存包柜由若干个独立分隔的铁壳箱体组成。每个箱体的门都是由一个电磁线圈控制的,当单片机接受到密码检测信号,并且密码正确,就会给电磁线圈一个信号使电磁线圈的电,吸动锁扣,箱门就自动打开。当箱门关闭的时候,锁扣被推上,箱门就可靠的锁住。在这里我们使用DSN-Y电磁锁。

DSN型电磁锁的结构原理:

DSN电磁缩是由电气和机械两部组成。电气部分:开锁指示灯、电源按钮、电磁铁线圈。机械部分:外壳、锁栓、复位弹簧、开锁钮、解锁机构、电磁铁机构。它的接线原理图如图3.18

32

图 3.18电磁锁接线原理图

工作原理:

H(开锁指示灯) R(限流电阻) S(电源按钮)L(电磁铁线圈) KA(闭锁接点)

当闭锁接点接通后,按下电源按钮,指示灯亮,电磁铁的线圈通电,铁芯往下吸解除锁栓受控,用手拨动开锁钮带动锁栓即可开锁。完成上述开锁合,锁栓自动复位并保持锁定位置。当闭锁接点不接通,则不能开锁。在特殊情况下,如电磁铁失压(无电源)或应急解锁可用专用锁匙实现开锁。驱动电路连接图如图3.19

图3.19 电磁锁驱动电路

33

3.4.3 报警电路设计

顾客在存包的时候很容易出现存完包或则是取完包忘记关门的现象,我们在这里设计一个自动报警装置,可以在适当的时候提醒顾客关好柜门。LM555是美国国家半导体公司的时基电路。我国和世界各大集成电路生产商均有同类产品可供选用,是使用极为广泛的一种通用集成电路。LM555功能强大、使用灵活、适用范围宽,可用来产生时间延迟和多种脉冲信号,被广泛用于各种电子产品中。

LM555 时基电路有双极型和 CMOS 型两种。LM555属于双极型。优点是输出功率大,驱动电流达 200mA。而另一种 CMOS 型的优点是功耗低、电源电压低、输入阻抗高,但输出功率要小得多,输出驱动电流只有几毫安。 LM555的引脚图如图3.20

图3.20 LM555引脚图

LM555的内部结构如图3.21

34

图3.21 LM555的内部功能

电路特点

LM555 时基电路内部由分压器、比较器、触发器、输出管和放电管等组成,是模拟电路和数字电路的混合体。其中 6 脚为阀值端(TH),是上比较器的输入。2 脚为触发端(TR),是下比较器的输入。3 脚为输出端(OUT),有 0 和 1 两种状态,它的状态由输入端所加的电平决定。7 脚为放电端(DIS),是内部放电管的输出,它有悬空和接地两种状态,也是由输入端的状态决定。4 脚为复位端(R),叫上低电平(< 0.3V)时可使输出端为低电平。5 脚为控制电压端(CV ),可以用它来改变上下触发电平值。8 脚为电源(VCC),1 脚为地(GND)。

这个特殊的 R-S 触发器有两个特点:(1)两个输入端的触发电平要求一高一低:置零端 R 即阀值端 TH 要求高电平,而置位端 S 即触发端 TR 则要求低电平。(2)两个输入端的触发电平,也就是使它们翻转的阀值电压值也不同,当 CV 端不接控制电压是,对 TH(R) 端来讲,> 2/3VCC 是高电平 1,< 2/3VCC 是低电平 0;而对 TR(S)端来讲,> 1/3VCC 是高电平 1,< 1/3VCC 是低电平 0。如果在控制端 CV 加上控制电压 VC,这时上触发电平就变成 VC 值,而下触发电平则变成 1/2VC。可见改变控制端的控制电压值可以改变上下触发电平值。

35

4 系统软件设计

为了使本系统的整个程序清晰明白,便于调试和修改,程序设计时把系统的各种功能分为若干部分,对于每一部分功能编制相对独立的程序块,各程序在运行的时候各负其责。

4.1 主程序模块

该模块的功能包括显示的初始化,判断是否有空箱,键盘扫描,密码扫描等功能。

通电开始初始化显示空箱Y存包状态判断N取包打印密码读密码Y判断门是否关好N报警提示关门N判断密码是否正确Y门开取物关门判断门是否关好报警返回

图4.1 主程序流程图

36

4.2 键输入程序设计

键盘采用扫描工作方式,输入程序功能有以下4个方面:

(1)判断键盘上有无键闭合,其方法为扫描口PA0~7输出全“0”,读PC口的状态,若PC0~3为全“1”(键盘上行线全为高电平)则键盘上没有闭合键若PC0~3不全为“1”,则有键处于闭合状态。

(2)去除键的机械抖动,其方法为判断出键盘上有键闭合后,延迟一段时间再判别键盘的状态,若仍有键闭合,则认为键上有一个键处于稳定的闭合期,否则认为是键的抖动。

(3)判别键闭合的键号,方法对键盘的列线进行扫描,扫描口PA0~7PA7 1 1 …… 0 依次输出:

相应的依次读PC口的状态,若PC0~3为全“1”则列线为“0”的这一列上没有键闭合。闭合键的键号等于为低电平的列号加上为低电平的行的首键号。

(4)使CPU对键的一次闭合仅做一次处理,采用的方法为等待闭合键释放后在作处理。流程图见4.2

PA6 1 1 …… 1 PA5 1 1 …… 1 PA4 1 1 …… 1 PA3 1 1 …… 1 PA2 1 1 …… 1 PA1 1 0 …… 1 PA0 0 1 …… 1 4.3 驱动电路程序设计

继电器板负责自动存包柜的开箱控制,利用红外线检测箱内是否有物体,并将状态信息上传到主机板,做为下一次分配箱时的依据。继电器接受主机板下达的命令,根据主机指令的箱号,驱动相应的继电器开门,同时检测门限位开关的信号,确定门是否开启。流程图见图4.3

37

开始是否有键闭合Y软件延时10msNN是否有键闭合Y确定按键位置N闭合键是否释放开Y输入键号—>A返回

图4.2 键盘输入子程序流程图

38

开始检测箱内是否有物体并将状态传给主机接受主机命令如果没有开门命令,则退出循环按照主机指定的箱号,驱动继电器开门检测限位开关开门,如没开则继续驱动开门检测门是否关上,是则检测非空箱显示,否则报警

图4.3 继电器板软件流程图

参考文献

[1]李群芳,张士军,黄建. 单片微型计算机与接口技术. 北京:电子工业出版社,2010.11

[2]高峰. 单片微机应用系统设计及实用技术. 北京:机械工业出版社,2004

39

[3]韦元华,舟子. 条形码技术与应用. 北京:中国纺织出版社,2003.6 [4]薛文达,谢文和. 传感器应用技术. 江苏:东南大学出版社,1998 [5]张成海,张佚. 现代自动识别技术与应用. 北京:清华大学出版社,2002 [6]张毅刚,姜守达. 新编MCS-51单片机应用设计. 哈尔滨:哈尔滨工业大学出版社,2003.7

[7]何立民,MCS—51系列单片机应用系统设计.北京:航空航天大学出版社,1989.4

[8]阎石. 数字电子技术. 吉林:高等教育出版社出版,2000 [9]胡荣等. Protel电路设计教程.北京:清华大学出版社,2001

[10]Adel S.Sedra and Kenneth.Smith[M]:Microelectronic Circuits,4rd ed,Oxford University Press.Inc,1998.20~58.

致谢

值此论文完成之际,首先感谢我的指导老师荆刚老师在论文完成过程中给予我的帮助和鼓励。

在毕业设计过程中我学到了许多知识,其中认真严谨,实事求是,坚持不懈是我在这次设计中最大的收益。我想这是一次意志的磨练,是对我实际能力的一次提升,会对我未来的学习和工作有很大的帮助。也为将来的人生之路做好了一个很好的铺垫。

当我初涉设计时,各种问题层出不穷,后来就慢慢的进入了状态,思路也逐渐的清晰了,历经了几个月的奋战,紧张而又充实的毕业设计终于落下了帷幕。回想这段日子的经历和感受,我感慨万千,在这次毕业设计的过程中,我拥有了无数难忘的回忆和收获。

最后再次对所有帮助过我的老师和同学表示感谢。

40

附录

附录一 程序清单

主程序清单:

ORG 00H JMP MAIN

ORG 23H 行中断入口地址

JMP COM_INT 服务程序

主程序开始

ORG 30H

MAIN: MOV SP,#30H LCALL REST 初始化

LCALL COMM 串口初始化

JMP $ ;原地等待

初始化

REST: MOV P0,#00H 管显示

41

;串;设置堆栈 ; ;;禁止数码 ;串行中断

MOV P2,#255

CLR BEEP ;禁止蜂鸣器

MOV P1,#255 ;禁止LCD显示

RET ;返回

串口初始化

设置串行口工作方式1,定时器1作为波特率发生器 波特率设置为 2400 ;

COMM: MOV TMOD,#20H 时器T1工作方式2

MOV TL1,#0F3H ;定时器计数初值

MOV TH1,#0F3H ;定时器重装值

SETB EA ;允许总的中断

SETB ES ;允许串行中断

MOV PCON,#00H 波特率不倍增

MOV SCON,#50H 42

;设置定 ; ;设置串

口工作方式

SETB TR1 ;定时器开始工作

RET ;返回 串口中断服务程序

COM_INT: CLR ES 断

;清除接收标志位

;从缓冲区取出数据

查数据

;收到联机信号并发送

;等待发送完毕

;清除发送标志

;允许串行中断

CLR RI MOV A,SBUF MOV P1,A MOV DPTR,#TAB

CJNE A,#0FFH,IN_1 MOV SBUF,#255 JNB TI,$ CLR TI SETB ES RETI 43

;检

;禁止串行中

;中断返回

IN_1: CJNE A,#1H, IN_2 ;如果收到1

MOVC A,@A+DPTR

MOV SBUF,A ;发送 'H'

;等待发送完毕

;清除发送中断标志

;允许串行中断

;中断返回

IN_2: CJNE 到 2

;发送 'E'

;等待发送完毕

;清除发送中断

;允许串行中断

JNB TI,$ CLR TI SETB ES RETI A,#2,IN_3 MOVC A,@A+DPTR

MOV SBUF,A JNB TI,$ CLR TI SETB ES 44

接收 ;

RETI ;中断返回

IN_3: MOV A,#03H

MOVC A,@A+DPTR

MOV SBUF,A ;发送 'J'

JNB TI,$ ;等待发送完毕

CLR TI ;清除发送中断标志

SETB ES ;允许串行中断

RETI ;返回

TAB: DB '2','H','E','J' END

键输入字程序清单: KEYI: ACALL KS1

JNZ LK1 NI: ACALL DIR

AJMP

KEYI LK1: ACALL DIR

ACALL DIR

ACALL

KS1

45

;调用判有无键闭合子程序

;调用显示子程序,延迟6ms

;延迟12ms

;调用判有无键闭合子程序

JNZ

ACALL

AJMP

LK2: MOV

MOV

LK4: MOV MOV MOVX INC INC MOVX JB MOV

AJMP

LONE: JB MOV

AJMP

LTW0: JB MOV

AJMP

LTHR: JB

MOV LKP: ADD

PUSH

LK3: ACALL

LK2 DIR

KEYI R2,#0FEH R4,#00H DPTR,#7F01H A,R2 @DPTR,A DPTR

DPTR A,@DPTR

ACC.0,LONE A,#00H LKP

ACC.1,LTWO A,#08H LKP

ACC.2,LTHR A,#08H LKP

ACC.3,NEXT A,#18H A,R4 A DIR

;调用显示子程序延迟6ms

;扫描模式—>R2

;扫描模式—>8155H的PA口

;数据指针增2,指向PC口

;读8155H PC口的行线状态 ;转判1行

;0行有键闭合,首键号0—>A ;跳键号计算子程序 ;转判2行

;1行有键闭合,首键号8—>A ;跳键号计算子程序 ;转判3行

;2行有键闭合,首键号10H—>A ;跳键号计算子程序 ;转判下一行

;行有键闭合,首键号18H—>A ;行首键号+列号=按下的键号 ;键号进栈保护

;调用显示子程序,延时6ms

46

本文来源:https://www.bwwdw.com/article/pesw.html

Top