毕业设计4LXW单片机课程设计.docx
- 文档编号:11036266
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:23
- 大小:208.03KB
毕业设计4LXW单片机课程设计.docx
《毕业设计4LXW单片机课程设计.docx》由会员分享,可在线阅读,更多相关《毕业设计4LXW单片机课程设计.docx(23页珍藏版)》请在冰豆网上搜索。
毕业设计4LXW单片机课程设计
基于单片机控制的简易电子密码锁
1引言
目前,最常用的锁是20世纪50年代意大利人设计的机械锁,其机构简单、使用方便、价格便宜。
但在使用中暴露了很多缺点:
一是机械锁是靠金属制成的钥匙上的不同齿形与锁芯的配合来工作的。
据统计,每4000把锁中就有两把锁的钥匙齿牙相同或类似,故安全性低。
根据国外的统计资料,装有电子防盗装置的商业区或居民区盗窃犯罪率平均下降30%左右。
二是钥匙一旦丢失,无论谁捡到都可以将锁打开。
三是机械锁的材料大多为黄铜,质地较软,容易损坏。
四是机械锁钥匙易于复制,不适于诸如宾馆等公共场所使用。
出于安全、方便等方面的需要,许多智能锁(如指纹辨别、IC卡识别)已相继问世,但这类产品的特点是针对特定指纹或有效卡,只能适用于保密要求高且仅供个别人使用的箱、柜、房间等。
另外,卡片式的IC卡易丢失,加上其成本一般较高,在一定程度上限制了这类产品的普及和推广。
随着人们生活水平的提高,电子密码防盗锁作为防盗卫士的作用日趋重要。
电子密码防盗锁用密码代替钥匙,不但省去了佩戴钥匙的烦恼,也从根本上解决了普通门锁保密性差的缺点。
如果采用8位密码,则密码组合可达到10的8次方,每增加1位,密码组合就增加10倍;同时可设多组密码,其中有一组是管理员密码,可以增加用户密码又清除所有用户密码。
笔者设计的电子密码防盗锁利用具有掉电保护功能和用户RAM的时钟芯片DS12887,将设置的密码存入具有掉电保护的用户RAM中,从而克服了旧式电子密码锁电路断电后所设置密码丢失的缺点。
另外,该锁还具有报警、时钟、管制等辅助功能,是典型的机电一体化产品。
机电一体化的电子密码锁,其功能大大超过机械锁,且性能更稳定、更安全。
其特点:
首先保密性好;其次编码可变;其三误码输入保护;其四掉电不掉码。
由于自身的优势,电子密码锁会越来越受到欢迎,使用会越来越广泛,必将为社会所接受。
本从介绍简易电子密码锁电路开始,从而延伸到使用各种功能键控制的电子密码锁电路,对其电路的工作过程,工作原理,以及硬件电路和软件进行详细的说明。
2单片机概述
单片机微型计算机是微型计算机的一个重要分支,也是颇具生命力的机种。
单片机微型计算机简称单片机,特别适用于控制领域,故又称为微控制器。
通常,单片机由单块集成电路芯片构成,内部包含有计算机的基本功能部件:
中央处理器、存储器和I/O接口电路等。
因此,单片机只需要和适当的软件及外部设备相结合,便可成为一个单片机控制系统。
单片机经过1、2、3、4代的发展,目前单片机正朝着高性能和多品种方向发展,它们的CPU功能在增强,内部资源在增多,引脚的多功能化,以及低电压低功耗。
3系统设计方案论证
该密码锁主要是设计以实现如下功能。
(1)密级<108,每位的取值范围为0~9,初始密码为:
12345678
(2)用户可以自行设定和修改密码,只有输入原设定的正确密码后才能修改密码。
(3)开锁密码错3次要报警,并死锁30分钟。
报警期间若输入密码正确,则停止报警。
(4)系统上电显示当前时间,并可设置当前时间。
(5)可设置管制时间区。
在管制时间区内,执行开锁操作和修改密码的操作均非法,并出发报警。
(6)掉电后密码和时钟信息不丢失。
(7)成本要比较低,硬件和软件都尽可能简洁可靠,易于批量生产。
基于以上功能要求,我提出两种设计方案:
方案一:
将密码锁要实现的功能用软件编程,用89C51的定时/计数器来实现时钟功能,并将密码信息和时间信息都写入EEPROM芯片,即24C02芯片以防掉电丢失。
方案二:
将密码锁要实现的功能用软件编程,用89C51的定时/计数器来实现时钟功能,并给整个系统加备用电源以防掉电丢失。
方案三:
将密码锁要实现的功能用软件编程,用具有内置锂电池的DS12887芯片代替24C02芯片来保存所有信息。
比较三方案:
方案一存在三个不缺陷,第一,虽然能保护密码信息掉电不丢失,但是一旦掉电,时间即停止运行,每次上电都必须重新设置时间;第二,时间部分需要用软件来实现,增加了编程的难度,同时加长了程序的长度;第三,EEPOOM芯片的擦除次数有限。
方案二可以解决方案一的部分缺陷,但是给整个系统加备用电源,成本增加,体积增大,可靠性降低。
方案三使用具有内置锂电池的DS12887时钟芯片,该芯片不但可以保护时间信息掉电不丢失,同时还可以保护用户RAM的信息不丢失,将密码信息存入DS12887的用户RAM中即安全又可靠;DS12887芯片能自动产生时间信息,免去了编写时钟程序的麻烦。
因此,选择方案三进行设计。
4器件选择与简介
本系统是基于AT89C51单片机的简易电子密码锁,由于本系统需要键盘和显示电路,考虑到AT89C51的I/O口不够,扩展一片可编程I/O芯片8255A,别外本系统需要时钟功能和掉电不丢失的功能,因此使用内置锂电池的时钟芯片DS12887,同时,DS12887配合一块廉价的
4.1AT89C51芯片简介
4.1.1AT89C51单片机内部结构
图 1
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明:
•中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。
•数据存储器(RAM)
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
•程序存储器(ROM):
8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。
•定时/计数器(ROM):
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。
•并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、P1、P2或P3),用于对外部数据的传输。
•全双工串行口:
8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。
•中断系统:
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。
•时钟电路:
8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。
下图是MCS-51系列单片机的内部结构示意图。
图2
4.1.2MCS-51的引脚说明
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
现在我们对这些引脚的功能加以说明:
如图3
图3
Pin9:
RESET/Vpd复位信号复用脚,当8051通电,时钟电路开始工作,在RESET引脚上出现24个时钟周期以上的高电平,系统即初始复位。
初始化后,程序计数器PC指向0000H,P0-P3输出口全部为高电平,堆栈指针写入07H,其它专用寄存器被清“0”。
RESET由高电平下降为低电平后,系统即从0000H地址开始执行程序。
然而,初始复位不改变RAM(包括工作寄存器R0-R7)的状态,8051的初始态。
8051的复位方式可以是自动复位,也可以是手动复位,见下图4。
此外,RESET/Vpd还是一复用脚,Vcc掉电其间,此脚可接上备用电源,以保证单片机内部RAM的数据不丢失。
图4
·Pin30:
ALE/
当访问外部程序器时,ALE(地址锁存)的输出用于锁存地址的低位字节。
而访问内部程序存储器时,ALE端将有一个1/6时钟频率的正脉冲信号,这个信号可以用于识别单片机是否工作,也可以当作一个时钟向外输出。
更有一个特点,当访问外部程序存储器,ALE会跳过一个脉冲。
如果单片机是EPROM,在编程其间,
将用于输入编程脉冲。
·Pin29:
当访问外部程序存储器时,此脚输出负脉冲选通信号,PC的16位地址数据将出现在P0和P2口上,外部程序存储器则把指令数据放到P0口上,由CPU读入并执行。
·Pin31:
EA/Vpp程序存储器的内外部选通线,8051和8751单片机,内置有4kB的程序存储器,当EA为高电平并且程序地址小于4kB时,读取内部程序存储器指令数据,而超过4kB地址则读取外部指令数据。
如EA为低电平,则不管地址大小,一律读取外部程序存储器指令。
显然,对内部无程序存储器的8031,EA端必须接地。
在编程时,EA/Vpp脚还需加上21V的编程电压。
4.2时钟芯片DS12887介绍
DS12887是美国达拉斯半导体公司(Dallas)最新推出的并行接口实时时钟芯片,采用CMOS技术制成,具有内部晶振和时钟芯片备份锂电池,同时它与目前IBMAT计算机常用的时钟芯片MC146818B和DS1287管脚兼容,可直接替换。
它所提供的世纪字节在位置32h,世纪寄存器32h到2000年1月1日从19递增到20。
采用DS12887芯片设计的时钟电路不需任何外围电路和器件,并具有良好的微机接口。
DS12887芯片具有微功耗,外围接口简单,精度高,工作稳定可靠等优点,可广泛用于各种需要较高精度的实时时钟系统。
4.2.1DS12887主要功能简介
(1)内含一个锂电池,断电情况运行十年以上不丢失数据。
(2)计秒,分,时,天,星期,日,月,年,并有闰年补偿功能。
(3)二进制数码或BCD码表示时间,日历和定闹。
(4)12小时或24小时制,12小时时钟模式带有PM和AM指示,有夏令时功能
(5)MOTOROLA和INTEL总线时序选择。
(6)有128个字节RAM单元与软件接口,其中14个字节作为时钟和控制寄存器,114字节为通用RAM,所有RAM单元数据都具有掉电保护功能。
(7)可编程方波信号输出。
(8)中断信号输出(IRQ)和总线兼容,定闹中断,周期性中断,时钟更新周期结束中断可分别由软件屏蔽,也可分别进行测试。
4.2.2DS12887原理及管脚说明
DS12887内部由振荡电路,分频电路,周期中断、方波选择电路,14字节时钟和控制单元,114字节用户非易失RAM,十进制、二进制计加器,总线接口电路,电源开关写保护单元和内部锂电池等部分组成。
DS12887管脚分配如图5。
图 5
·Vcc:
直流电源+5V电压。
当5V电压在正常范围内时,数据可读写;当Vcc低于4.25V,读写被禁止,计时功能仍继续;当Vcc下降到3V以下时,RAM和计时器供电被切换到内部锂电池。
·MOT(模式选择):
MOT管脚接到Vcc时,选择MOTOROLA时序,当接到GND时,选择INTEL时序。
·SQW(方波信号输出):
SQW管脚能从实时时钟内部15级分频器的13个抽头中选择一个作为输出信号,其输出频率可通过对寄存器A编程改变。
·AD0—AD7(双向地址/数据复用线):
总线接口,可与MOTOROLA微机系列和INTEL微机系列接口。
·AS(地址选通输入):
用于实现信号分离,在AD/ALE的下降沿把地址锁入DS12887。
·DS(数据选通或读输入):
DS/RD管脚有两种操作模式,取决于MOT管脚的电平,当使用MOTORO2LA时序时,DS是一正脉冲,出现在总线周期的后段,称为数据选通;在读周期,DS指示DS12887驱动双向总线的时刻;在写周期,DS的后沿使DS12887锁存写数据。
选择INTEL时序时,DS称作(RD),RD与典型存贮器的允许信号(OE)的定义相同。
·R/W(读/写输入):
R/W管脚也有两种操作模式。
选MOTOROLA时序时,R/W是一电平信号,指示当前周期是读或写周期,DS为高电平时,R/W高电平指示读周期,R/W信号是一低电平信号,称为WR。
在此模式下,R/W管脚与通用RAM的写允许信号(WE)的含义相同。
·CS(片选输入):
在访问DS12887的总线周期内,片选信号必须保持为低。
·IRQ(中断申请输入):
低电平有效,可作微处理的中断输入。
没有中断的条件满足时,IRQ处于高阻态。
IRQ线是漏极开中输入,要求外接上接电阻。
·RESET(复位输出):
当该脚保持低电平时间大于200ms,保证DS12887有效复位。
4.2.3DS12887内部功能
DS12887内部框图如图6
图6
·地址分配
DS12887的地址由114字节的用户RAM。
10字节的存放实时时钟时间,日历和定闹RAM及用于控制和状态的4字节特殊寄存器组成,几乎所有的128个字节直接读写。
·时间、日历和定闹单元
时间和日历信息通过读相应的内存字节来获取,时间、日历和定闹通过写相应的内存字节设置或初始化,其字节内容可以是二进制或BCD形式。
时间可选择12小时制或24小时制,当选择12小时制时,小时字节的高位为逻辑“1”代表PM。
时间、日历和定闹字节是双缓冲的,总是可访问的。
每秒钟这10个字节走时1秒,检查一次定闹条件,如在更新时,读时间和日历可能引起错误,三个字节的定闹字节有两种使用方法。
第一种,当定闹时间写入相应时,分、秒、定闹单元,在定允许闹位置高的条件下,定闹中断每天准时起动一次。
第二种,在三个定闹字节中插入一个或多个不关心码。
不关心码是任意从C0到FF的16进制数。
当小时字节的不关心码位置位时,定闹为每小时发生一次;同样,当小时和分钟定闹字节置不关心位时,每分钟定闹一次;当三个字节都置不关心位时,每秒中断一次。
·非易失RAM
在DS12887中,114字节通用非易失RAM不专用于任何特殊功能,它们可被处理器程序用作非易失内存,在更新周期也可访问。
·中断
RTC实时时钟加RAM向处理器提供三个独立的、自动的中断源。
定闹中断的发生率可编程,从每秒一次到每天一次,周期性中断的发生率可从500ms到122μs选择。
更新结束中断用于向程序指示一个更新周期完成。
中断控制和状态位在寄存器B和C中,本文的其它部分将详细描述每个中断发生条件。
·晶振控制位
DS12887出厂时,其内部晶振被关掉,以防止锂电池在芯片装入系统前被消耗。
寄存器A的BIT4-BIT6的其它组合都是使晶振关闭。
·方波输出选择
15级分频抽头中的13个可用于15选1选择器,选择分频器抽头的目的是在SQW管脚产生一个方波信号,其频率由寄存器A的RS0-RS3位设置。
SQW频率选择器与周期中断发生器共享15选1选择器,一旦频率选择好,通过用程序控制方波输出允许位SQWE来控制SQW管脚输出的开关。
·周期中断选择
周期中断可在IRQ脚产生500ms一次到每122μs一次的中断,中断步率同样由寄存A确定,它的控制位为寄存器B中的PIE位。
·更新周期
DS12887每一秒执行一次更新周期,保证时间、日历的准确。
更新周期还比较每一定闹字节与相应的时间字节,如果匹配或三个字节都是不关心码,则产生一次定闹中断。
2.2.4、状态控制寄存器
·DS12887内部寄存器A:
UIP
DV2
DV1
DV0
RS3
RS2
RS1
RS0
UIP=I:
更新已到,不能读/写DS12887;UIP-O:
更新末到,能读/写DS12887。
DV2、DV1、DV0应设置为010,表示打开晶振,允许计时。
RS3、RS2、RS1、RS0为方波频率选择位,产生方波周期
中断。
·DS12887内部寄存器B:
SET
PIE
AIE
UIE
SQWE
DM
24/12
DSE
SET=O:
时间更新正常进行,每秒计数1次;SET=1:
禁止更新,程序可初始化时间和日历。
PIE=I:
允许周期中断;PIE=O:
禁止周期中断。
AIE=I:
允许报警中断;AIE-0:
禁止报警中断。
UIE=I:
允许更新结束中断;UIE-O:
禁止更新结束中断。
SQWE为方波允许位。
SQWE=I:
将RS3、RS2、RS1、RS0选定的方波输出。
DM=I:
BCD码;DM--O:
二进制。
该位不受复位信号影响。
24/12:
1表示24小时制;0表示12小时制。
DSE为夏时制允许位。
DSE=I:
采用夏时制;DSE=0:
不采
用夏时制。
·DS12887内部寄存器C:
IRQF
PF
AF
UF
0
0
0
0
IRQF为中断申请标志。
PF为方波周期中断标志。
PF=1:
方波周期结束,申请中断。
AF为闹铃中断标志。
AF=1:
当前时间与闹铃时间匹配时即刻申请中断。
UF为更新周期结束中断标志。
UF=I:
更新周期结束时申请中断。
·DS12887内部寄存器D:
VRT
0
0
0
0
0
0
0
VRT为内部锂电池状态。
vRT_1:
锂电池正常;VRT=0:
锂电池耗尽。
4.38255芯片简介
4.3.18255引脚功能
RESET:
复位输入线,当该输入端外于高电平时,所有内部寄存器(包括控制寄存器)均被清除,所有I/O口均被置成输入方式。
CS:
片选信号线,当这个输入引脚为低电平时,表示芯片被选中,允许8255与CPU进行通讯。
RD:
读信号线,当这个输入引脚为低电平时,允许8255通过数据总线向CPU发送数据或状态信息,即CPU从8255读取信息或数据。
WR:
写入信号,当这个输入引脚为低电平时,允许CPU将数据或控制字写入8255。
D0~D7:
三态双向数据总线,8255与CPU数据传送的通道,当CPU执行输入输出指令时,通过它实现8位数据的读/写操作,控制字和状态信息也通过数据总线传送。
PA0~PA7:
端口A输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位数据输入锁存器。
PB0~PB7:
端口B输入输出线,一个8位的I/O锁存器,一个8位输入输出缓冲器。
PC0~PC7:
端口C输入输出线,一个8位的数据输出锁存器/缓冲器,一个8位数据输入缓冲器。
端口C可以通过工作方式设定而分成2个4位的端口,每个4位的端口包含一个4位的锁存器,分别与端口A和端口B配合使用,可作为控制信号输出或状态信号输入端口。
PA3--140--PA4
PA2--239--PA5
PA1--338--PA6
PA0--437--PA7
RD--536--WR
CS--635--RESET
GND--734--D0
A1--833--D1
A0--932--D2
PC7--1031--D3
PC6--1130--D4
PC5--1229--D5
PC4--1328--D6
PC0--1427--D7
PC1--1526--VCC
PC2--1625--PB7
PC--1724--PB6
PB0--1823--PB5
PB1--1922--PB4
PB2--2021--PB3
A1、A0:
端口地址总线,8255中有端口A、B、C和一个内部控制字寄存器,共4个端口,由A0、A1输入地址信号来寻址。
4.3.28255方式控制字格式说明
方式控制字格式说明:
D7
D6
D5
D4
D3
D2
D1
D0
D7:
设定工作方式标志,1有效。
D6、D5:
A口方式选择
00—方式0
01—方式1
1×—方式2
D4:
A口功能(1=输入,0=输出)
D3:
C口高4位功能(1=输入,0=输出)
D2:
B口方式选择(0=方式0,1=方式1)
D1:
B口功能(1=输入,0=输出)
D0:
C口低4位功能(1=输入,0=输出)
8255可编程并行接口芯片工作方式说明:
方式0:
基本输入/输出方式。
适用于三个端口中的任何一个。
每一个端口都可以用作输入或输出。
输出可被锁存,输入不能锁存。
方式1:
选通输入/输出方式。
这时A口或B口的8位外设线用作输入或输出,C口的4条线中三条用作数据传输的联络信号和中断请求信号。
方式2:
双向总线方式。
只有A口具备双向总线方式,8位外设线用作输入或输出,此时C口的5条线用作通讯联络信号和中断请求信号。
4.4CD4017简介
CD4017为带有10个译码输出及一个进位输出的5级约翰逊计数器。
该器件有清除功能,当清除(RST)为电平时强制Q1—Q9为低电平,Q0和CO为高电平,当ENA为低电平时,CLK上升沿计数,Q0—Q9通常为低电平,每个输出仅在10个CLK脉冲的个同期内依次变为高电平。
5硬件电路的设计
电路系统框图如下:
图七
5.1主控器件及扩展
由AT89C51和8255A组成的核心部分如图所示
8255A的数据口和AT89C51的P0口相连,A1、A0分别与P21、P20相连,CS与P27相连,这样就确定了5288的地址:
PA口—7C00H、PB口—7D00H、PC口—7E00H、控制口—7F00H。
5.2时钟及看门狗电路
由DS12887和CD4017组成的看门狗电路如图所示
将DS12887数据地址复用口AD接到AT89C51的P0口,使能端CE接AT89C51的P26口这样便可确定DS12887的起始地址为:
BF00H。
中断引脚IRQ接AT89C51的INT0,将DS12887设置为时钟更新周期结束中断,这样,每过一秒钟,DS12887就向AT89C51申请一个中断,AT89C51响应中断后从DS12887中读取时间信息并送显示,这样就完成的时钟部分的设计。
DS12887的SQW脚为方波输出脚,它给计数器4017提供定时时钟脉冲,单片机的P11口与4017复位脚RST相接(高电平有效),一旦P11口输出高电平脉冲,则4017被复位,Q0端为高电平,Q1~Q9均输出低电平,4017重新开始计数。
4017的Q3端输出的信号经二极管D1后到达单片机AT89C51的复位端RST。
由于是Q3输出复位信号,则4017的CLK只需3个脉冲,Q3即输出高电平信号,可预设DS12887的输出方波周期为0.5s,那么,该电路的看门狗周期为1.5秒。
如果在1.5秒内,P12端不能输出高脉冲复位4017,则整个电路将被复位一次。
SQW端一旦开始允许方波输出,不管单片机是否死机都可输出定时方波,这样,通过DS12887的SQW端,外加一片廉价的4017就可以构成单片机的看门狗电路。
5.3键盘部分
键盘部分如图所示
键
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 LXW 单片机 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)