自动存包柜系统设计.docx

上传人:wj 文档编号:632359 上传时间:2023-04-29 格式:DOCX 页数:62 大小:241.32KB
下载 相关 举报
自动存包柜系统设计.docx_第1页
第1页 / 共62页
自动存包柜系统设计.docx_第2页
第2页 / 共62页
自动存包柜系统设计.docx_第3页
第3页 / 共62页
自动存包柜系统设计.docx_第4页
第4页 / 共62页
自动存包柜系统设计.docx_第5页
第5页 / 共62页
自动存包柜系统设计.docx_第6页
第6页 / 共62页
自动存包柜系统设计.docx_第7页
第7页 / 共62页
自动存包柜系统设计.docx_第8页
第8页 / 共62页
自动存包柜系统设计.docx_第9页
第9页 / 共62页
自动存包柜系统设计.docx_第10页
第10页 / 共62页
自动存包柜系统设计.docx_第11页
第11页 / 共62页
自动存包柜系统设计.docx_第12页
第12页 / 共62页
自动存包柜系统设计.docx_第13页
第13页 / 共62页
自动存包柜系统设计.docx_第14页
第14页 / 共62页
自动存包柜系统设计.docx_第15页
第15页 / 共62页
自动存包柜系统设计.docx_第16页
第16页 / 共62页
自动存包柜系统设计.docx_第17页
第17页 / 共62页
自动存包柜系统设计.docx_第18页
第18页 / 共62页
自动存包柜系统设计.docx_第19页
第19页 / 共62页
自动存包柜系统设计.docx_第20页
第20页 / 共62页
亲,该文档总共62页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

自动存包柜系统设计.docx

《自动存包柜系统设计.docx》由会员分享,可在线阅读,更多相关《自动存包柜系统设计.docx(62页珍藏版)》请在冰点文库上搜索。

自动存包柜系统设计.docx

JIANGSUTEACHERSUNIVERSITYOFTECHNOLOGY

本科毕业设计(论文)

自动存包柜系统设计

学院名称:

专 业:

班 级:

姓 名:

指导教师姓名:

指导教师职称:

2011年06月

江苏技术师范学院毕业设计说明书(论文)

自动存包柜系统设计

摘要:

随着社会的发展、科技的进步以及人们生活水平的逐步提高,各种方便于生活的自动化系统开始进入了人们的生活。

本文介绍了利用单片机STC89C52最小系统产生一组6位随机密码来控制柜门开关的自动存包柜系统。

此系统设计有14个按键和6个数码管显示密码,可以对20个柜子进行控制,每组密码使用一次有效,客户通过键盘输入随机密码进行存取包。

此论文重点描述了自动存包柜的设计思想及软硬件电路的工作原理、设计过程,并叙述了调试过程以及调试中所出现的问题,并做了相应分析。

关键词:

自动存包柜;单片机;随机密码

Thedesignofautomaticstoringabagofcupboards

Abstract:

Withthesocialandscientificdevelopmentandimprovementofpeople’slivingstandard,variousremoteautomaticsystemsfortheconvenienceofourlifecomeintobeing.ThispaperintroducesstoringabagofcupboardsthatSTC89C52microcontrollerminimumsystemproducesasetofsixrandompasswordtocontroltheopeningandclosingofcupboards.Thissystemhas14buttonsand6digitaltubethatcanshowthepasswordtocontrol20cabinet,eachgrouppasswordonceusingeffective.Customersneedtoaccessthekeyboardtooperatethebagofstoringandgettingoutofthebag.Thispaperfocusesonthedescriptionofthedesignandpricipleofstoringabagofcupboardsremotecontrolofsinglechip,andaccountsforthesystemdebugginganditsproblemsrelatedandtheanalysisare

provided.

Keywords:

Store a bag of cupboards, Single Chip Micro Computer,Password

目录

前言 1

第一章设计任务 2

1.1设计的内容 2

1.2技术指标与功能 2

第二章总体设计方案 3

2.1设计方案的论证 3

2.1.1单片机的选择 3

2.1.2键盘/显示部分的选择 3

2.1.3显示器件选择 4

2.2自动存包柜电路的原理框图以及各部分作用 4

第三章系统硬件电路的设计 6

3.1自动存包柜的硬件电路 6

3.1.1单片机STC89C52的最小系统的连接电路 7

3.1.2键盘控制电路 8

3.1.3数码显示电路 10

3.1.4执行部分电路 10

第四章自动存包柜的软件设计 13

4.1自动存包柜软件设计 13

4.1.1自动存包柜主程序 13

4.1.2键扫描程序 17

4.1.374LS165数据检测程序 19

4.1.4执行部分程序 21

4.1.5显示程序 23

第五章 系统调试 25

5.1硬件调试 25

5.1.1最小系统板得调试 25

5.1.2键盘显示电路的调试 25

5.1.38255A电路的调试 25

5.2软件调试 25

5.2.1查键显程序的调试 25

5.2.2随机密码产生及核对程序的调试 26

5.2.3三次容错的调试 26

5.3整机调试 26

第六章 测试结果 28

6.1测试结果 28

第七章系统的改进 29

7.1硬件存在的问题与改进 29

7.2软件存在的问题与改进 29

7.3系统功能扩展分析 30

参考文献 31

致 谢 32

附 录 33

附录一发送接收电路原理图 33

附录二程序清单 34

附录三元器件清单 45

附录四英文资料 46

前言

单片机是20世纪70年代中期发展起来的一种大规模集成电路器件。

单片机有体积小、功能强、价格低、使用灵活等特点。

20世纪80年代以来,国际上单片机的发展迅速,其产品之多令人目不暇接,单片机应用不断深入,新技术层出不穷。

在国内,尽管开发和应用单片机的时间不长,但也得到了迅猛的发展。

目前单片机已成功地运用到智能仪表、机电设备、过程控制、数据处理、自动检测与控制和家用电器等各个方面,为我国的国民经济建设作出了重要贡献[1]。

我们在各大超市可以看到的自动存包柜就是应用单片机技术控制的方便顾客存取包的设备。

由于它的方便性和安全性,目前,自动存包柜在超市和其它场合得到了广泛的应用,并且根据用途和场合,其种类不断增多,功能也不断完善,大大的方便了人们的日常生活[2]。

就其使用方式而言,自动存包柜主要有两种:

其一为投币式,即需要付费的,是通过从投币口投入硬币或纸币来控制存取包;其二是密码式,即通过一组系统产生的随机密码或顾客自己设定的密码来控制柜门的开关,从而达到存取包的目的[3]。

这次我们设计的就是利用系统产生一组6位随机密码来控制柜门开关的自动存包柜系统。

它是利用单片机STC89C52实现的,具有14个按键和6个数码管显示6位随机密码。

客户通过键盘输入随机密码可以进行存取包操作。

此系统可以对20个柜子进行控制,每组密码使用一次有效。

整个系统稳定可靠,且有容错功能,使用和安装都十分方便。

第57页共56页

第一章设计任务

1.1设计的内容

设计一个可以同时管理20个存包柜的管理系统。

当顾客需要存包的时候,可以自行到存包柜前按“开门”键,单片机接收到一脉冲信号,并通过系统I/O口发出相应的信号,将一空箱打开,顾客即可存包,并将柜门关上。

当顾客需要取包时,通过键盘输入随机码传给单片机,系统比较密码一致后,发出开箱信号将柜门打开,顾客即可将包取出。

要求本系统以STC89C52单片机为核心,自动控制柜门的打开,并且产生此时的随机码。

取包时,通过随机码的输入开门取包;当顾客发生密码丢失的情况,管理员输入最高密码101010可将全部柜门打开,即可取包;具有三次容错功能。

20个存包柜可以用20个发光二极管替代。

1.2技术指标与功能

(1)工作电压:

5V

(2)总共可存包20个,顾客只需按“存包”即可打开柜门,并且产生随机密码。

(3)取包时,通过产生的随机密码输入之后按“确定”按钮即可取包,当输入错误之后,按“取消”按钮重新输入密码。

(4)当顾客发现密码丢失或忘记时,管理员输入最高密码“101010”即可将全部柜门打开。

(5)具有三次容错功能,当顾客输入三次密码都错误,第四次输入密码,无法将柜

门打开,必须由管理员输入最高密码“101010”才可将柜门打开。

第二章总体设计方案

2.1设计方案的论证

2.1.1单片机的选择

本设计所用的单片机可以用C-31,STC89C-52单片机等多种单片机来实现。

考虑本设计的要求,需要编写程序,但是C-31没有内部存储器,那么就要用外

部扩展,比较麻烦。

本设计所编写的程序比较简单,功能也比较少,如果用羚羊单片机就过于麻烦,大材小用,本设计所用到的输入输出端口也不是很多,所以我们决定用STC89C52单片机来完成本设计,既方便也很实用。

2.1.2键盘/显示部分的选择

方案一:

利用8155并行扩展口控制芯片(8122芯片可以用作单片机片外256B数据存储器,也可以用作扩展I/O口使用以及用作定时器扩展使用,此处用作扩展I/

89C52

8155

8个数码管

7407

O口使用,分别为PA、PB、PC口)来管理键盘和显示部分。

硬件框图如图2-1所示:

14个键盘

75452

图2-1 8155接口电路框图

89C52外扩一片8155H,8155H的RAM地址为7E00H-7EFFH,I/O口地址为7F00H-

7F05H,8155H的PA口为输出口,控制键盘的列线Y0-Y7的电位,PA口作为键盘扫描口,同时又是8位LED的扫描口,PB口作为显示器的段数据口,8155H的PC口作为输入口,PC0-3接行线Y0-Y3,称为键输入口。

用反相驱动器75452驱动键盘,用同相驱动器7407驱动数码管。

此方案原理较简单,但外围芯片数较多(四片75452、两片7407),成本高,而且

当我们对其硬件调试时,如果出现问题,会对检查线路造成困扰。

方案二:

利用两片8位并入串出的移位寄存器芯片74LS165来检测键盘信号,利用三极管做数码驱动,驱动6个数码管显示6位随机密码。

硬件框图如图2-2所示。

图2-2 键盘和显示框图

此套方案中,我觉得所用到的器件都是我们学过的,比较好理解,虽然感觉所用到的元器件很多,但相比方法一来,芯片数量减少,价格相对也便宜,所以我选择第二种方法。

2.1.3显示器件选择

在单片机应用系统中,使用的显示器主要有LED(发光二极管)以及LCD(液晶显示器),两种显示器配置灵活,与单片机接口方便。

但是它们也是各有特点的:

LED接口非常简单,不需要专用的驱动程序,在设计程序时也非常的简单,而且价格相对便宜;LCD显示的字比较丰富,也比较清楚,给人的感觉很好,但是它接口复杂,且要自己造字库,难度不小。

故没必要采用LCD,用LED发光二极管就够了。

2.2自动存包柜电路的原理框图以及各部分作用

图2-3 自动存包柜电路的原理框图

各部分作用:

(1)单片机控制部分:

它是系统的核心部分。

由89C52单片机、时钟、复位电路等组成。

(2)键盘控制部分:

这是用户对自动存包柜进行操作的控制面板。

由两片8位并入串出的移位寄存器芯片74LS165和4*4键盘组成。

通过它可以实现所有的控制功能。

键盘功能定义如下表2-1所示:

表2-1 键盘功能定义表

键符

功 能

0-9

用来对随机密码的输入

存包

客户需要存包所按的键

取包

客户需要取包所按的键

确认

对输入的数据进行确认

清除

对输入的数据进行清除以便重新输入

(3)数码显示部分:

这是用户对自动存包柜进行操作后,能够显示6位随机密码,由三极管驱动电路驱动数码管显示。

由数码显示驱动电路和6个数码管组成。

(4)执行部分:

这一部分是通过可编程并行接口8255A芯片给每一位发送高低电平控制发光二极管的亮灭(柜门的开关)来模拟的。

由可编程并行接口8255A和20个发光二极管构成。

第三章系统硬件电路的设计

3.1自动存包柜的硬件电路

图3-1自动存包柜的硬件电路

自动存包柜硬件电路可以分成四部分组成,它们分别为单片机部分、键盘控制部分(核心芯片为两片8位并入串出的移位寄存器芯片74LS165)、执行部分(核心芯片为可编程并行接口8255芯片)和三极管驱动显示部分。

元件接线说明:

(1)单片机部分:

1脚P1.0接8255芯片36脚为WR端;2脚P1.1接74LS165(U3)的9脚QH为OUT1端;3脚P1.2接8255芯片的6脚为CS端;4脚P1.3接8255芯片的5脚为RD端;5、6脚P1.4、P1.5分别接8255芯片的9脚和8脚为

A1、A0端;7脚P1.6接U3、U4的2脚为CLK端;8脚P1.7接U3、U4的1脚为SH端;

9脚接8255的35脚为RST端;10~17脚作为P3口分别接8255的27~34脚为D0~D7

端;21~28脚P2.0~P2.7分别接驱动三极管Q1、Q2、Q3、Q4、Q5、Q6的基极;

32~39脚P0.0~P0.7分别接限流电阻R1~R7的一端,限流电阻R1~R7另一端依次接

接数码管的1~8脚为a、b、c、d、e、f、g、dp端;

(2)移位寄存器芯片74LS165部分:

U4的3~6脚和11~14脚分别接按键的一端为A1~A8;9脚输出端QH接U3的10脚串行输出端SER;U3的3~6脚和11~14脚分别接按键的一端为B1~B8;

(3)可编程并行接口8255芯片部分:

PA口只用高四位,PB口和PC口为八位。

37~40脚分别接发光二极管的限流电阻R的一端为PA4~PA7;18~25脚分别接发光二极管的限流电阻R的一端为PB0~PB7端,10~17脚分别接发光二极管的限流电阻R的一端为PC0~PC7端;

(4)三极管驱动显示部分:

驱动三极管Q1、Q2、Q3、Q4、Q5、Q6的集电极

1H、2H、3H、4H、5H、6H分别接数码管的9脚;发射机都接5V电源。

3.1.1单片机STC89C52的最小系统的连接电路

最小系统包括单片机的基本供电、时钟电路和复位电路。

单片机由5V电源供电。

(1)时钟和时钟电路:

时钟电路是计算机的心脏,它控制着计算机的工作节奏。

STC89C52单片机允许的时钟频率的典型值12MHz,也可以是6MHz。

本设计采用12MHz。

单片机时钟电路图如图3-2所示。

图3-2单片机时钟电路

图3-2中晶振频率选择12MHz。

接到晶振两端的瓷片电容作用是使振荡器起振和对f 微调补偿,典型值为30pF。

当单片机加电以后延迟约10ms的时间振荡器起振产生时钟,不受软件控制(XTAL2输出幅度为3V左右的正弦波)。

(2)复位和复位电路:

计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于

一个确定的初始状态,并从这个状态开始工作。

单片机的复位引脚是RST,当振荡器起振后,该引脚上出现2个周期的高电平,是器件复位,只要RST保持高电平,单片机

保持复位状态。

单片机复位方式有二种:

上电复位(如图3-3)、人工复位(如图3-4)。

本设计采用的是图3-3上电复位,具体电路如图3-5所示。

图3-3上电复位电路 图3-4人工复位

注:

RST与Vss之间的那个电阻在NMOS型单片机种需要接,但是在CMOS型单片机中不接。

其中电容选择22uF的电解电容。

图3-5复位和复位电路

3.1.2键盘控制电路

由两片74LS165、14个键盘按钮组成。

74LS165是8位并入串出的移位寄存器芯片,是把检测到的按键信号传输给单片机。

74LS165为8位移位寄存器(并行输入,互补串行输出)。

当移位/置入控制端

(SH/LD)为低电平时,并行数据(A-H)被置入寄存器,而时钟(CLK/CLKINH)及串行数据(SER)均无关。

当SH/LD为高电平时,并行置数功能被禁止。

CLK和CLKINH在功能上是等价的,可以交换使用。

当CLK和CLKINH有一个为低电平并且SH/LD为高电平时,另一个时钟可以输入。

当CLK和CLKINH有有一个为高

电平时,另一个时钟被禁止。

只有在CLK为高电平时CLKINH才可变为高电平。

165有18个引脚,一般为双列直插DIP封装。

引脚图如图3-6所示。

图3-674LS165管脚图

165芯片的移位/置入控制端SH接单片机的P1.7脚,时钟CLK接P1.6脚,单片机

P1.1脚接165芯片U3的输出脚QH,U4的输出端QH接U3的串行数据输入端SER,A1-A8,B1-B8分别接按键一端。

当键有按下时,74LS165芯片检测到按键信号,经U3的输出端QH传输给单片机的P1.1脚,单片机根据键盘扫描程序进行处理。

键盘控制电路如图3-7所示。

图3-7键盘控制电路

3.1.3数码显示部分

利用7段共阳极数码管进行显示,数码管与P0口的P0.0~P0.7相连,并接一个

10K*8的排阻,P2口的P2.0~P2.5与6个PNP型三极管的基极相连,6个PNP型三极管作为驱动数码管的驱动部分,当单片机选通某一个片选端时,给对应三极管一个高低电平,三极管通过饱和、截止来控制数码管的显示。

三极管发射极接5V电源,集电极分别接数码管的1H、2H、3H、4H、5H、6H。

采用动态扫描方式。

电路如图3-6所示。

假设当单片机的P2口全为高电平输出,三极管Q1~Q6中的基极也全为高电平,发射极为5V也为高电平,三极管Q1~Q6都截止,集电极为低电平输出,则传到数码管的1H、2H、3H、4H、5H、6H端都为低电平,因为数码管是7段共阳极数码管,所以

6个数码管都有显示。

图3-6数码显示电路

3.1.4执行部分

这一部分是由8255A芯片后接20个发光二极管来进行模拟实现。

发光二极管灯亮,

表示柜中有物,反之则柜中无物。

8255A共有40个引脚,一般为双列直插DIP封装,40个引脚可分为与CPU连接的数据线、地址和控制信号以及与外围设备连接的三个端口线。

8255A的内部结构有以下几部分组成:

(1)并行I/O端口A、B、C 8255A的内部有3个8位并行I/O口:

A口、B口、C

口。

3个I/O口都可以通过编程选择为输入口或输出口,但在结构和功能上有所不同。

A口:

含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器。

B口:

含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。

C口:

含有一个8位数据输出锁存/缓冲器和一个8位输入锁存器(不锁存)。

当数据传送不需要联络信号时,这3个端口都可以用作输入口或输出口。

当A口B口需要有联络信号时,C口可以作为A口和B口的联络信号线。

管脚图如图3-7所示。

图3-78255A管脚图

(2)工作方式控制电路:

8255A的三个端口在使用时可分为A、B两组。

A组包括

A口8位和C口高4位:

B组包括B口8位和C口低4位。

两组的控制电路中分别有控制寄存器,根据写入的控制字决定两组的工作方式,也可对C口每一位置“1” 或清

“0”。

本设计中,A口高四位接4个发光二极管,B口、C口分别接8个发光二极管,每个发光二极管对应一个柜子,单片机的WR、RD、CS分别与8255A相应端口相接,

8255A的A1A0为输入端口控制信号,2位可构成四种状态,分别寻址A口、B口、C口

和控制寄存器,它与单片机的相应端口相接,来控制A口B口C口的寻址,单片机的D0-D7端口与8255A的D0-D7口相接。

单片机89C52通过8255A给每一位发送高低电平来控制其亮灭(柜门的开关),从而实现存取包。

其电路如图3-8所示。

图3-8执行部分电路图

第四章自动存包柜的软件设计

4.1自动存包柜软件设计

4.1.1自动存包柜主程序

图4-1自动存包柜主程序流程图

图4-1是自动存包柜主程序流程图:

首先初始化程序,然后调用按键扫描程序进行扫描。

存包,中断显示密码;取包,输入密码,判断密码是否正确,然后根据发光二极管的亮暗来判断柜中有无物品。

(1)自动存包柜部分初始化程序如下:

unsignedcharkey_s,key_v; //定义数码管显示段码

unsignedcharcodedis_code[12]={0x03,0x9f,0x25,0x0d,0x99,//定义键盘号码0,1,2,3,4

0x49,0x41,0x1f,0x01,0x09,0xff,0xfd};//定义键盘号码4,5,6,7,8,9,off

ucharLED_flag1=0x01;//定义20个发光二极管

……ucharLED_flag20=0x01;

sbitK1=P3^6; //定义P3^6为P3口的第7位

sbitK2=P3^7; //定义P3^7为P3口的第8位

sbitK3=P3^5; //定义P3^5为P3口的第7位

(2)中断初始化程序:

voidmain(void)

{P0=0xff;P2=0xff;

TMOD=0x11; //定时器0,1工作模式1,16位定时方式

TH0=0xFC;TL0=0x17;TCON=0x01;

IE=0x8a; //使能timer0,1中断

TR0=1;}

(3)存包过程

自动存包柜的作用决定了它必须具有较好的安全性和可靠性,解决这个问题通用的方法是利用密码核对。

即用户存包后,系统能产生一组密码,用户取包时,必须输入这组密码,系统核对正确后,取包才能成功,否则,系统不于响应。

首先密码位数需要清零,存包取密码(flagy1=0)时,根据柜号密码存入数组中,使相对应的发光二极管亮,即存包。

程序如下:

KSLEE[0]=KSLEE[1]=KSLEE[2]=KSLEE[3]=KSLEE[4]=KSLEE[5]=10;//.密码位数清零KKSM=5;

flagy1=0;//显示等待存包状态

KKKSJJ=0;//显示密码变量清零while

(1)

{if(MMJS

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2