密码时钟基于51单片机的电子密码锁资料Word文档格式.docx
- 文档编号:17970798
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:40
- 大小:1.94MB
密码时钟基于51单片机的电子密码锁资料Word文档格式.docx
《密码时钟基于51单片机的电子密码锁资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《密码时钟基于51单片机的电子密码锁资料Word文档格式.docx(40页珍藏版)》请在冰豆网上搜索。
2.1工作原理5
2.2开发工具6
2.3系统整体原理框图8
3系统单元模块设计9
3.1单片机核心控制模块9
3.2串口通讯模块13
3.3数据存储模块15
3.4键盘模块16
3.5显示模块17
3.6功能扩展22
3.7开锁指示电路22
4软件设计23
4.1主程序模块23
5系统实现23
5.1仿真调试23
5.2程序下载28
5.3运行结果29
结论30
致谢31
参考文献32
附录A33
电子密码锁时钟系统软件设计
引 言
单片机,亦称单片微电脑或单片微型计算机。
它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。
计算机的产生加快了人类改造世界的步伐,但是它毕竟体积大。
单片机在这种情况下诞生了,它为我们改变了什么?
纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。
1.SCM即单片微型计算机(SingleChipMicrocomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。
“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。
在开创嵌入式系统独立发展道路上,Intel公司功不可没。
2.MCU即微控制器(MicroControllerUnit)阶段,主要的技术发展方向是:
不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。
它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。
从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。
在发展MCU方面,最著名的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。
因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
3.SoC即片上系统(SystemOnChip)阶段。
单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;
因此,专用单片机的发展自然形成了SoC化趋势。
随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。
因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
随着微电子技术的不断创新和发展,大规模集成电路的集成度和工艺水平不断提高。
硅材料与人类智慧的结合,生产出大批量的低成本、高可靠性和高精度的微电子结构模块,推动了一个全新的技术领域和产业的发展。
在此基础上发展起来的器件可编程思想和微处理(器)技术可以用软件来改变和实现硬件的功能。
微处理器和各种可编程大规模集成专用电路、半定制器件的大量应用,开创了一个崭新的应用世界,以至广泛影响着并在逐步改变着人类的生产、生活和学习等社会活动。
单片机小巧灵活,成本低,可靠性高,控制能力强,广泛的被应用在智能仪器仪表、机电一体化、实时控制、民用电子产品等方面。
电子密码锁作为其一种产品一定会给人们的生产生活带来更多的方便,本系统集单片机的最小系统应用于一体,在设计其电路的过程中,力求简洁明了,资源共享,方便实用,并预留单片机所有接口的克隆扩展输出接口(一对一输出),便于用户开发成品时直接插拔。
其包含典型的电源电路,复位启动电路,晶体振荡时钟电路,键盘输入电路,MAX232串行通讯电路,串行EPROM的在线擦写(可随时更改信息密码),LED数码管扫描显示电路等。
1系统功能设计
1.1操作流程设计
将密码锁时钟板接上电源(DC+5V),电源接通后,红色的电源指示灯点亮,数码管显示应为“000000”,系统正常。
输入已设定密码后,再按“D键”,密码锁驱动部份被打开,此时输出指示绿灯闪烁,表示锁已被打开;
,单板机自动进入时钟计时状态,数码管显示“120000”,意为12点0分0秒。
可以通过按键“C”“B”“A”分别调整“时”“分”“秒”。
显示已存密码:
按住“C”键即可读到已存的密码,初始密码由8X51程序中的“TAB[360368]”决定,所以初值为“360368”的密码,或从EEPROM93C46中读取上一次已更改的密码;
放开则显示“000000”。
清除输入显示:
按“#”键为清除显示器,数码管显示即为“000000”。
设置(更改)密码:
欲更改密码时,在清除显示后,先键入新密码,然后按“*”键,即可建立新密码,并存入EEPROM93C46的1~3地址中,以备下次启动时用。
进入时钟显示时设置:
按一下“A”键:
秒位加一。
按一下“B”键:
分位加一。
按一下“C”键:
小时位加一。
以上键均可连续按不断加一直到校正为止。
如要回到初始密码锁状态只需按一下复位键(Reset)系统重新启动即可.
1.2键盘规划及编码规划,键盘功能,功能扩展
1.2.1、键盘规划如图:
图3.3键盘规划
1.2.2、编码规划如图:
表3.1编码规划
01
02
03
0C
04
05
06
0D
07
08
09
0E
0A
00
0B
0F
1.2.3键盘功能
(1)“1--9”数字键为输入密码键,输入密码有效位每次为6位数字。
(2)“*”符号键,为密码输入的确认键。
(3)“#”符号键,为显示屏清除键。
按下后清除数码管为“000000”。
(4)“D”符号键,为开锁确认键。
密码输入正确后按下此键,既可打开驱动,绿色灯闪亮或喇叭响作为指示。
(5)“C”符号键,为密码显示键。
按下后即可显示开机密码。
(6)“A”“B”“C”符号键,为机动保留键。
用户可在源程序中设定其功能使用。
(在时钟显示状态下可调时分秒)
1.2.4、功能扩展
P8X5X电子密码锁时钟板,预留输出功能控制部分P2口,用户可把须保留类控制设备直接连接到P2口,即可扩展多路密码控制设备的功能,同样达到,用户只有输入与设定`.密码相符的密码,才能打开设备。
因此用户可以用此设备开发成其它电控密码产品或成品。
2系统总体方案设计
2.1工作原理
电子密码锁时钟板,采用了PHILPS公司的AT89S52可在线下载的单片机芯片,用户可以通过板上的跳线设置,直接通过MAX232口将用户在PC机上的程序代码烧录到单片机上直接演示,免去再购置烧录器的重复投资。
本设计集单片机的最小系统应用于一体,在设计其电路的过程中,力求简洁明了,资源共享,方便实用;
为单片机的二次开发和初学者提供极大的方便。
并预留单片机所有接口的克隆扩展输出接口(一对一输出),便于用户开发成品时直接插拔。
其包含典型的电源电路,复位启动电路,晶体振荡时钟电路,键盘输入电路,MAX232串行通讯电路,串行EPROM的在线擦写(可随时更改信息密码),LED数码管扫描显示电路等,是单片机初学者的最佳范例极品。
也是工程开发人员可随手取及的最佳半成品。
密码锁时钟板像其它51类实验板一样,上电复位后进入启动工作状态,程序自动将LED数码管上电显示并且清零,等待接收指令状态,当在键盘上输入六位数字的数码时,单片机通过键盘输入口(即定为P1口),将键盘的数据读入处理后,将其对应值通过74LS47传送数据到LED数码管显示,并经74LS138译码控制器译码后以扫描的方式逐个连续点亮六个数码管;
在此同时单片机还要判断所收到的键盘码是开锁码?
如是,则将P2.7口置低电平,此时绿色指示灯亮(或喇叭响),表示给出一个开锁动作的信号,此时程序自动进入时钟显示状态,时钟初始显示为“12:
00:
00”可直接作为时钟显示;
如不是则再判断是否是要更改密码?
如是则将键盘的对应值储存于EEPROM(93c46)中,以备下次开机后使用,EEPROM93C46是掉电存储密码的设备,也就是说当密码设定后,它就存储在EEPROM93C46中了,单片机掉电后密码不会消失;
如判断读入的数值均非单片机预设的指令码,则本单片机系统不理它。
4*4键盘输入部分与P8X5X单片机的P1口相联接,也是以扫描的方式来读取键位值;
而P2口是预留功能控制输出部分。
单片机初始内设定密码为“367553”,开机时读取哪一种密码,由93C46地址“0”所放的位来决定,若存入位置为“1”,表示EEPROM中已存在密码,须到EEPROM中读取;
若存入不是“1”表示EEPROM中未存放密码,必须读取单片机内设定密码。
内定密码只是提供给未设定密码的新板产品。
本系统所涉及的器件主要有AT89S52,74LS138,74LS47,CAT24WC02,RS232、三极管、数码管等,其中AT89S52为核心处理器(CPU),负责整个系统的过程控制;
74LS138和74LS47组成数码管的驱动电路,CAT24WC02用来保存系统密码和用户设置密码。
RS232用于与PC机进行通讯。
2.2开发工具
2.2.1硬件开发工具PROTEL99SE
PROTEL99SE是目前最为流行的电路辅助设计软件工具,具有强大的原理图设计和印制板设计功能。
2.2.2软件开发工具keilc
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
图2为KeilC51主界面。
KeilC51编译器提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
近年来,KeilC51不断升级,目前已经有V7.0以上的版本了。
高版本的KeilC51编译器,尤其是KeiluVision2(基于Windows的C51集成编译环境)以其性能优越、使用方便,受到了众多单片机爱好者的欢迎。
KeilC51以软件包的形式向用户提供主要包括C51交叉编译器、A51宏汇编器、BL连接定位器等一系列工具和uVision2模拟仿真、调试器等。
C51具有丰富的函数库,包含100多种功能函数,为用户编程提供了极大的方便。
C51程序可以实现与汇编语言的接口,两者相互之间的调用十分方便。
单片机的C语言采用C51编译器(简称C51)。
由C51产生的目标代码短、运行速度高、所需存储空间小、符合C语言的ANSI标准,生成的代码遵循INTEL目标文件格式,而且可与A51汇编语言或PL/M51语言目标代码混合使用。
应用C51编程具有以下优点:
(1)C51管理内部寄存器和存储器的分配,编程时无需考虑不同存储器的寻址和数据类型等细节问题;
(2)程序由若干函数组成,具有良好的模块化结构;
(3)有丰富的子程序库可直接引用,从而大大减少用户编程的工作量。
(4)C语言和汇编语言可以交叉使用,汇编语言程序代码短、运行速度快,但复杂运算编程耗时。
如果用汇编语言编写与硬件有关的部分程序,用C语言编写与硬件无关的运算部分程序,充分发挥两种语言的长处,可以提高开发效率。
和汇编语言一样,C语言源程序经过C51编译器编译、L51(或BL51)连接/定位后生成目标程序为.BIN文件和.HEX文件,目前C51大多使用KEILC51编译器。
C语言程序仿真调试的集成软件和汇编语言使用的是同一个集成软件包(WAVE或KEIL包)。
2.3系统整体原理框图
根据各个芯片的功能和作用,在本系统中设计的硬件系统框图如图2.10。
图2.10硬件系统连接框图
3系统单元模块设计
3.1单片机核心控制模块
3.1.1工作原理
本系统以AT89S52单片机为核心,加上外围辅助电路来完成课题的要求,其中AT89S52的主要是实现整个系统的过程控制、人机界面、通讯、数据保存等功能。
由图2.10中可以发现,在本系统的方案设计中共占用了28个I/O口、一个串行口,由AT89S52的内部资源可以看出该单片机完全符合课题的要求。
AT89S52的最小系统图如图3.1所示。
图3.1AT89S52最小系统电路图
3.1.2芯片特点
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位I/O口线,看门狗定时器,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
图2.1AT89S52单片机内部结构图
图2.2AT89S52管脚分布图
AT89S52的管脚功能定义如下:
VCC:
电源
GND:
地
P0口:
P0口是一个8位漏极开路的双向I/O口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;
在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚
第二功能
P1.0
T2(定时器/计数器T2的外部计数输入),时钟输出
P1.1
T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)
P1.5
MOSI(在系统编程用)
P1.6
MISO(在系统编程用)
P1.7
SCK(在系统编程用)
表2.1P1口功能复用列表
P2口:
P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVXDPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
P3口亦作为AT89S52特殊功能(第二功能)使用,如下表所示。
在flash编程和校验时,P3口也接收一些控制信号。
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(外部数据存储器读选通)
表2.2P3口功能复用列表
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALE/PROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EA/VPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
XTAL1:
振荡器反相放大器和内部时钟发生电路的输入端。
XTAL2:
振荡器反相放大器的输出端。
3.2串口通讯模块
3.2.1工作原理
串口通讯模块实现单片机系统与PC机之间的通信。
在本系统中目前只在程序编程下载时使用,同时可作为后续设计时实现与PC机的实时数据通信。
图3.4串口通讯原理系统图
图3.4为串口通讯原理图方块图,单片机把检测到的信号通过串行通讯口(P3.0,P3.1)与PC机进行交互,由于单片机与PC进行通讯所允许的高低电平不一致,故需要使用一个接口进行电平转换,本设计使用的是符合RS232协议的MAX232芯片作为单片机与PC的电平转换接口。
MAX232通讯的具体
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 密码 时钟 基于 51 单片机 电子 密码锁 资料