基于STC89C52单片机毕业设计完整版附原理图pcb图源程序仿真图综述文档格式.docx
《基于STC89C52单片机毕业设计完整版附原理图pcb图源程序仿真图综述文档格式.docx》由会员分享,可在线阅读,更多相关《基于STC89C52单片机毕业设计完整版附原理图pcb图源程序仿真图综述文档格式.docx(47页珍藏版)》请在冰豆网上搜索。
![基于STC89C52单片机毕业设计完整版附原理图pcb图源程序仿真图综述文档格式.docx](https://file1.bdocx.com/fileroot1/2023-2/4/1fe1698a-265f-4b08-aa96-06b167530018/1fe1698a-265f-4b08-aa96-06b1675300181.gif)
4硬件系统设计……………………………………………………………………………12
4.1设计原理…………………………………………………………………………………12
4.2电源输入电路……………………………………………………………………………12
4.3矩阵键盘…………………………………………………………………………………13
4.4复位电路…………………………………………………………………………………14
4.5晶振电路…………………………………………………………………………………14
4.6报警电路…………………………………………………………………………………15
4.7显示电路…………………………………………………………………………………15
4.8开锁电路…………………………………………………………………………………16
4.9电路总体构成……………………………………………………………………………16
5软件程序设计……………………………………………………………………………18
5.1主程序流程介绍…………………………………………………………………………18
5.2键盘模块流程图…………………………………………………………………………19
5.3显示模块流程图…………………………………………………………………………21
5.4修改密码流程图…………………………………………………………………………22
5.5开锁和报警模块流程图………………………………………………………………23
6电子密码锁的系统调试及仿真………………………………………………………25
6.1硬件电路调试及结果分析………………………………………………………………25
6.2软件调试及功能分析……………………………………………………………………25
6.2.1调试过程……………………………………………………………………………25
6.2.2仿真结果分…………………………………………………………………………26
6.3仿真全图…………………………………………………………………………………28
7结论…………………………………………………………………………………………29
参考文献………………………………………………………………………………………30
附录:
……………………………………………………………………………………………31
1.1电子密码锁简介
电子密码锁是一种通过密码输入来控制电路或是芯片工作,从而控制机械开关的闭合,完成开锁、闭锁任务的电子产品。
它的种类很多,有简易的电路产品,也有基于芯片的性价比较高的产品。
现在应用较广的电子密码锁是以芯片为核心,通过编程来实现的。
其性能和安全性已大大超过了机械锁。
其特点如下:
1)保密性好,编码量多,远远大于弹子锁。
随机开锁成功率几乎为零。
2)密码可变,用户可以随时更改密码,防止密码被盗,同时也可以避免因
人员的更替而使锁的密级下降。
3)误码输入保护,当输入密码多次错误时,报警系统自动启动。
4)无活动零件,不会磨损,寿命长。
5)使用灵活性好,不像机械锁必须佩带钥匙才能开锁。
6)电子密码锁操作简单易行,一学即会。
1.2电子密码锁的发展趋势
日常生活和工作中,住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。
目前门锁主要用弹子锁,其钥匙容易丢失;
保险箱主要用机械密码锁,其结构较为复杂,制造精度要求高,成本高,且易出现故障,人们常需携带多把钥匙,使用极不方便,且钥匙丢失后安全性即大打折扣。
针对这些锁具给人们带来的不便若使用机械式钥匙开锁,为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。
由于电子器件所限,以前开发的电子密码锁,其种类不多,保密性差,最基本的就是只依靠最简单的模拟电子开关来实现的,制作简单但很不安全,在后为多是基于EDA来实现的,其电路结构复杂,电子元件繁多,也有使用早先的20引角的2051系列单片机来实现的,但密码简单,易破解。
随着电子元件的进一步发展,电子密码锁也出现了很多的种类,功能日益强大,使用更加方便,安全保密性更强,由以前的单密码输入发展到现在的,密码加感应元件,实现了真真的电子加密,用户只有密码或电子钥匙中的一样,是打不开锁的,随着电子元件的发展及人们对保密性需求的提高出现了越来越多的电子密码锁。
出于安全、方便等方面的需要许多电子密码锁已相继问世。
但这类产品的特点是针对特定有效卡、指纹或声音有效,且不能实现远程控制,只能适用于保密要求高且供个人使用的箱、柜、房间等。
由于数字、字符、图形图像、人体生物特征和时间等要素均可成为钥匙的电子信息,组合使用这些信息能够使电子防盗锁获得高度的保密性,如防范森严的金库,需要使用复合信息密码的电子防盗锁,组合使用信息也能够使电子防盗锁获得无穷扩展的可能,使产品多样化,对用户而言是“千挑百选、自得其所”。
可以看出组合使用电子信息是电子密码锁以后发展的趋势。
2设计方案
采用以单片机为核心的控制方案
由于单片机种类繁多,各种型号都有其一定的应用环境,因此在选用时要多加比较,合理选择,以期获得最佳的性价比。
一般来说在选取单片机时从下面几个方面考虑:
性能、存储器、运行速度、I/O口、定时/计数器、串行接口、模拟电路功能、工作电压、功耗、封装形式、抗干扰性、保密性,除了以上的一些的还有一些最基本的比如:
中断源的数量和优先级、工作温度范围、有没有低电压检测功能、单片机内有无时钟振荡器、有无上电复位功能等。
在开发过程中单片机还受到:
开发工具、编程器、开发成本、开发人员的适应性、技术支持和服务等等因素。
基于以上因素本设计选用单片机STC89C52作为本设计的核心元件,利用单片机灵活的编程设计和丰富的I/O端口,及其控制的准确性,实现基本的密码锁功能。
在单片机的外围电路外接输入键盘用于密码的输入和一些功能的控制,外接LCD1602液晶显示屏用于显示作用。
当用户需要开锁时,先按键盘开锁键之后按键盘的数字键0-9输入密码。
密码输完后按下确认键,如果密码输入正确则开锁,不正确则重新输入密码,当三次密码错误则发出报警;
当用户需要修改密码时,先按下键盘设置键后输入原来的密码,只有当输入的原密码正确开锁后才能设置新密码。
新密码输入无误后按确认键使新密码将得到存储,密码修改成功。
3主要元器件
3.1主控芯片STC89C52
1)STC89C52单片机的主要特性如下:
Stc89c52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,stc的stc89c52是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案,stc89c52芯片引脚图如图3-1所示。
图3-1stc89c52芯片引脚图
主要特性:
·
与MCS-51兼容
8K字节可编程闪烁存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24Hz
三级程序存储器锁定
128*8位内部RAM
32可编程I/O线
两个16位定时器/计数器
6个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
2)STC89C52RC引脚功能说明:
1、主电源引脚VSS和VSS
STC89C52芯片引脚图
VSS——(40脚)接+5V电压;
VSS——(20脚)接地。
2、外接晶体引脚XTAL1和XTAL2
XTAL1(19脚)接外部晶体的一个引脚。
在单片机内部,它是一个反相放大器的输入端,这个放大器构成了片内振荡器。
当采用外部振荡器时,对HMOS单片机,此引脚应接地;
对SHMOS单片机,此引脚作为驱动端。
XTAL2(18脚)接外晶体的另一端。
在单片机内部,接至上述振荡器的反相放大器的输出端。
采用外部振荡器时,对HMOS单片机,该引脚接外部振荡器的信号,即把外部振荡器的信号直接接到内部时钟发生器的输入端;
对XHMOS,此引脚应悬浮。
3、控制或与其它电源复用引脚RST/VPD、ALE/PROG、PSEN和EA/VPP
①RST/VPD(9脚)当振荡器运行时,在此脚上出现两个机器周期的高电平将使单片机复位。
推荐在此引脚与VSS引脚之间连接一个约8.2k的下拉电阻,与VSS引脚之间连接一个约10μF的电容,以保证可靠地复位。
VSS掉电期间,此引脚可接上备用电源,以保证内部RAM的数据不丢失。
当VSS主电源下掉到低于规定的电平,而VPD在其规定的电压范围(5±
0.5V)内,VPD就向内部RAM提供备用电源。
②ALE/PROG(30脚):
当访问外部存贮器时,ALE(允许地址锁存)的输出用于锁存地址的低位字节。
即使不访问外部存储器,ALE端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的1/6。
因此,它可用作对外输出的时钟,或用于定时目的。
然而要注意的是,每当访问外部数据存储器时,将跳过一个ALE脉冲。
ALE端可以驱动(吸收或输出电流)8个LS型的TTL输入电路。
对于EPROM单片机(如8751),在EPROM编程期间,此引脚用于输入编程脉冲(PROG)。
③PSEN(29脚):
此脚的输出是外部程序存储器的读选通信号。
在从外部程序存储器取指令(或常数)期间,每个机器周期两次PSEN有效。
但在此期间,每当访问外部数据存储器时,这两次有效的PSEN信号将不出现。
PSEN同样可以驱动(吸收或输出)8个LS型的TTL输入。
④EA/VPP(引脚):
当EA端保持高电平时,访问内部程序存储器,但在PS(程序计数器)值超过0FFFH(对851/8751/80S51)或1FFFH(对8052)时,将自动转向执行外部程序存储器内的程序。
当EA保持低电平时,则只访问外部程序存储器,不管是否有内部程序存储器。
对于常用的8031来说,无内部程序存储器,所以EA脚须常接地,这样才能只选择外部程序存储器。
对于EPROM型的单片机(如8751),在EPROM编程期间,此引脚也用于施加21V的编程电源(VPP)。
4.控制或与其它电源复用引脚RST/Vpd,ALE/PROG,PSEN和EA/Vpp。
RST/Vpd当振荡器运行时。
在此引脚上出现两个机器同期的高电平(由低到高跳变),将使单片机复位。
在VSS掉电期间,此引脚可接上备用电源,由Vpd向内部RAM提供备用电源,以保持内部RAM中的数据。
ALE/PROG正常操作时为ALE功能(允许地址钱存),提供把地址的低字节锁存到外部锁存器。
ALE引脚以不变的频率(振荡周期的1/6)周期性地发出正脉冲信号。
但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲。
ALE端可以驱动(吸收或输出电流)八个LSTTL电路。
对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲(PROG功能)。
PSEN外部程序存储器读选通信号输出端。
在从外部程序存储器取指令(或数据)期间;
PSEN在每个机器周期内两次有效。
PSEN同样可以驱动八个LSTTL输入。
EA/VppEA为内部程序存储器和外部程序存储器选择端。
当EA为高电平时,访问内部程序存储器(PS值小于4K)。
当EA为低电平时,则访问外部程序存储器。
对于EPROM型单片机,在EPROM编程期间,此引脚上加21VEPROM编程电源(Vpp)。
5、输入/输出(I/O)引脚P0、P1、P2、P3(共32根)
①P0口(39脚至32脚):
是双向8位三态I/O口,在外接存储器时,与地址总线的低8位及数据总线复用,能以吸收电流的方式驱动8个LS型的TTL负载。
②P1口(1脚至8脚):
是准双向8位I/O口。
由于这种接口输出没有高阻状态,输入也不能锁存,故不是真正的双向I/O口。
P1口能驱动(吸收或输出电流)4个LS型的TTL负载。
对8052、8032,P1.0引脚的第二功能为T2定时/计数器的外部输入,P1.1引脚的第二功能为T2EX捕捉、重装触发,即T2外部控制端。
对EPROM编程和程序验证时,它接收低8位地址。
③P2口(21脚至28脚):
在访问外部存储器时,它可以作为扩展电路高8位地址总线送出高8位地址。
在对EPROM编程和程序验证期间,它接收高8位地址。
P2可以驱动(吸收或输出电流)4个LS型的TTL负载。
④P3口(10脚至17脚):
是准双向8位I/O口,在MSS-51中,这8个引脚还用于专门功能,是复用双功能口。
P3能驱动(吸收或输出电流)4个LS型的TTL负载。
作为第一功能使用时,就作为普通I/O口用,功能和操作方法与P1口相同。
作为第二功能使用时,各引脚的定义如表所示。
值得强调的是,P3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能。
如表3-1。
表3-1P3口管脚备选功能
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(外部数据存储器读选通)
3.2晶体振荡器
晶体振荡器,简称晶振,其作用在于产生原始的时钟频率,这个频率经过频率发生器的放大或缩小后就成了电脑中各种不同的总线频率。
以声卡为例,要实现对模拟信号44.1kHz或48kHz的采样,频率发生器就必须提供一个44.1kHz或48kHz的时钟频率。
如果需要对这两种音频同时支持的话,声卡就需要有两颗晶振。
但是现在的娱乐级声卡为了降低成本,通常都采用SCR将输出的采样频率固定在48kHz,但是SRC会对音质带来损害,而且现在的娱乐级声卡都没有很好地解决这个问题。
现在应用最广泛的是石英晶体振荡器。
石英晶体振荡器是一种高精度和高稳定度的振荡器,石英晶体振荡器也称石英晶体谐振器,它用来稳定频率和选择频率,是一种可以取代LC谐振回路的晶体谐振元件。
石英晶体振荡器广泛地应用在电视机、影碟机、录像机、无线通讯设备、电子钟表、单片机、数字仪器仪表等电子设备中。
为数据处理设备产生时钟信号和为特定系统提供基准信号。
在单片机中为其提供时钟频率。
石英晶体振荡器是利用石英晶体(二氧化硅的结晶体)的压电效应制成的一种谐振器件,它的基本构成大致是:
从一块石英晶体上按一定方位角切下薄片(简称为晶片,它可以是正方形、矩形或圆形等),在它的两个对应面上涂敷银层作为电极,在每个电极上各焊一根引线接到管脚上,再加上封装外壳就构成了石英晶体谐振器,简称为石英晶体或晶体、晶振。
其产品一般用金属外壳封装,也有用玻璃壳、陶瓷或塑料封装的。
只要在晶体振子板极上施加交变电压,就会使晶片产生机械变形振动,此现象即所谓逆压电效应。
当外加电压频率等于晶体谐振器的固有频率时,就会发生压电谐振,从而导致机械变形的振幅突然增大。
时钟信号用来提供单片机片内的各种微操作的时间基准,时钟信号通常用两种电路形式得到:
内部振荡和外部振荡。
MCS-51单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大电器的输入端和输出端,由于采用内部方式时,电路简单,所得的时钟信号比较稳定,实际使用中常采用这种方式,外接晶体振荡器(简称晶振)或陶瓷谐振器就构成了内部振荡方式,片内高增益反向放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起可构成一个自激振荡器并产生振荡时钟脉冲。
外接晶体以及电容C2和C3构成并联谐振电路,它们起稳定振荡频率、快速起振的作用,其值为30pF左右,晶振频率选11.0592MHz
3.3LCD显示密码模块的设计
显示模块主要由LCD1602显示屏组成,他显示的是键盘输入的密码,以及密码正确与错误的提示。
当输入密码时,出于安全性的考虑,显示的密码是有*号代替,为暗密。
当输入六位密码后按下确认键,系统会与存于ROM的密码对比,若密码错误,显示屏会显示Error,若密码正确,显示屏会显示Right。
3.3.1LCD1602简介
1)1602功能介绍
1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。
每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用,正因为如此所以他不能显示图形。
1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。
2)1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如下表3-2所示:
表3-2引脚功能说明
编号
符号
引脚说明
1
VSS
电源地
9
D2
数据
2
VDD
电源正极
10
D3
3
VL
液晶显示偏压
11
D4
4
RS
数据/命令选择
12
D5
5
R/W
读/写选择
13
D6
6
E
使能信号
14
D7
7
D0
15
BLA
背光源正极
8
D1
16
BLK
背光源负极
其引脚图如下图3-2所示:
图3-2LCD1602引脚图
3)LCD寄存器的选择
表3-3LCD寄存器的选择
功能说明
写入命令寄存器
写入数据寄存器
读取忙碌标志及RAM地址
读取RAM数据
X
不动作
3.3.2LCD1602液晶显示模块与单片机连接电路
图3-3LCD1602液晶显示模块与单片机连接电路
4硬件系统设计
4.1设计原理
本设计主要由单片机、矩阵键盘、液晶显示器和密码存储等部分组成。
其中矩阵键盘用于输入数字密码和进行各种功能的实现。
由用户通过连接单片机的矩阵键盘输入密码,后经过单片机对用户输入的密码与自己保存的密码进行对比,从而判断密码是否正确,然后控制引脚的高低电平传到开锁电路或者报警电路控制开锁还是报警,实际使用时只要将单片机的负载由继电器换成电子密码锁的电磁铁吸合线圈即可,当然也可以用继电器的常开触点去控制电磁铁吸合线圈。
本系统共有两部分构成,即硬件部分与软件部分。
其中硬件部分由电源输入部分、键盘输入部分、密码存储部分、复位部分、晶振部分、显示部分、报警部分、开锁部分组成,软件部分对应的由主程序、初始化程序、LCD显示程序、键盘扫描程序、启动程序、关闭程序、建功能程序、密码设置程序、EEPROM读写程序和延时程序等组成。
图4-1组成原理
4.2电源输入电路
三端集成稳压器LM7805和LM7905是作为固定输出电压的典型应用。
正常工作时,输入、输出电压差为2--3V。
电容C为输入稳定电容,其作用是减小纹波,消振、抑制高频和脉冲干扰,它一般为0.1--1uF。
电容C为输出稳定电容,其作用是改善负载的瞬态响应,它一般为1uF。
使用三端稳压器时要根据输出电流的大小选择加散热器,否则会由于过热而无法工作到额定电流。
图4-2电源输入电路
4.3矩阵键盘
由于本设计所用到的按键数量较多而不适合用独立按键式键盘。
采用的是矩阵式按键键盘,它由行线和列线组成,也称行列式键盘,按键位于行列的交叉点上,密码锁的密码由键盘输入完成,与独立式按键键盘相比,要节省很多I/O口。
本设计中使用的这个4*4键盘不但能完成密码的输入还能作特别功能键使用,比如清空显示功能等。
键盘的每个按键功能在程序设计中设置。
其大体功能(看键盘按键上的标记)及与单片机引脚接法。
图4-3矩阵键盘
4.4复位电路
单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第—个单元取指令。
无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位。
在复位期间(即RST为高电平期间),P0口为高组态,P1-P3口输出高电平;
外部程序存储器读选通信号PSEN无效。
地址锁存信号ALE也为高电平。
根据实际情况选择如图2-8所示的复位电路。
该电路在最简单的复位电路下增加了手动复位按键,在接通电源瞬间,电容C1上的电压很小,复位下拉电阻上的电压接近电源电压,即RST为高电平,在电容充电的过程中RST端电压逐渐下降,当RST端的电压小于某一数值后,CPU脱离复位状态,由于电容C1足够大,可以保证RST高电平有效时间大于24个振荡周期,CPU能够可靠复位。
增加手动复位按键是为了避免死机时无法可靠复位。
当复位按键按下后电容C1通过R5放电。
当电容C1放电结束后,RST端的电位由R11与R15分压比决定。