48
概括
随着微机测控技术的迅速发展和广泛应用,以单片机为核心的电子密码锁的设计、开发和应用极大程度地改善了人们的生活,特别是在一些公共场所(如大型超市)。 个人物品等方面都发挥了不可估量的作用。 本设计讨论了一种以STC89C52单片机作为主控单元、LCD1602作为显示器件的电密码锁系统。 控制系统每次可随机生成一个四位密码并显示在液晶显示屏上。 用户更改密码后可记得输入密码并检查密码是否正确。 系统设计了相关的硬件电路和相关应用。 硬件电路主要包括STC89C52单片机最小系统、LCD显示电路、LED指示电路、按钮电路等。系统程序主要包括主程序、密码生成与验证程序、LCD显示程序和按键模块程序等。
关键词:密码; 微控制器; 液晶屏1602
抽象的
随着计算机测控技术的迅速发展和广泛应用,以单片机为核心的电子密码锁的设计开发和应用在很大程度上改善了人们的生活,特别是在一些公共场所(如大型超市) )节省私人物品,起到不可估量的作用。 设计了一种基于STC89C52单片机的控制单元,以LCD1602作为显示器件的电密码锁系统。 控制系统可随机生成四位密码,并显示在液晶显示屏上,用户输入后记得更改密码并检查是否正确。
设计了相关硬件电路和相关应用。 硬件电路主要包括STC89C52单片机最小系统、LCD显示电路、LED指示电路、按键电路等。 系统程序主要包括主程序、密码生成与校准程序、LCD显示程序以及按键模块程序等。
[关键词]:密码; 单片机; 液晶屏1602
1 引言 1.1 研究背景及选题意义
安全问题是现代社会普遍关注的焦点之一。 在现实生活中,电子密码锁的应用场合很多,比如门禁系统、银行账户管理、保险柜等地方,对它们的要求也非常高。 因此,高安全性密码锁的研究已成为必要的课题。 近年来,各种安全产品(如指纹识别、卡识别、红外防盗等)相继推出,但此类产品的特点是针对特定的指纹或有效卡。 只能适用于保密要求较高或个人使用的保险箱。 这些产品虽然安全性较高,但生产成本较高,且携带、安装和使用不方便,一定程度上限制了此类产品的普及。 和推广。
随着微控制器的快速发展,其应用领域越来越广泛,如消费电子、家用电器、办公设备、商业营销设备、工业控制和机电一体化控制系统、智能测量仪器以及汽车和航空航天电子系统等。 微控制器得到广泛应用。 51系列单片机以其良好的可靠性和强大的扩展控制功能,成为国内应用最广泛的8位单片机之一。 随着微控制器的应用领域越来越广泛,其优越性和可靠性可见一斑,因此将其应用于保密和安全是必然的。 也是相当靠谱、有意义的。 基于微控制器的电子密码锁研究可以给人们在保护财产和人身安全方面带来更多更好的选择。
1.2 项目设计的目的和主要内容
随着社会不断发展,物质生活水平不断提高,人们对自身的生活水平也提出了更高的要求,特别是在安全和隐私方面。 因此,洗一把安全好用的密码锁就显得极其重要,它已经成为人们日常生活的重要组成部分。
本系统设计了一种以LCD1602、单片机为控制核心的高性价比电子密码锁系统。
本项目的设计功能主要包括以下几个方面:
1. 按“保存包”按钮,生成随机四位密码;
2.按下“获取包”按钮后,输入密码并自动验证;
3、验证时密码正确与否由不同的LED指示灯指示;
4.LCD实时显示相关信息;
5、使用protues仿真软件实现以上功能。
2.系统硬件设计 2.1. 系统总体硬件设计
为了满足系统要求,硬件应包括以下部分:
单片机最小系统,最小系统主要包括时钟电路和复位电路;
LCD电路,为了直观地看到生成的密码和用户输入的密码,需要有显示装置。 在单片机系统中,比较常见的显示器件是LED和LCD。 与LED相比,LCD显示效果更美观、更真实;
密钥电路需要人机交互才能提取和验证密码。 本设计使用机械按键来实现此功能。
LED电路,本设计有两个红色和绿色LED。 密码验证正确时,绿灯亮; 反之,当密码验证错误时,红灯亮。
继电器电路,为了模拟锁的打开和关闭,使用继电器的开关来模拟。
系统总体框图如图2-1所示
图 2-1 总体硬件框图 2.2 单片机型号选择
本项目设计的电动足浴盆温度控制系统的主控芯片是STC89C52单片机。 其特点如下:
1、STC89C52单片机简介
目前,无论是工业、农业还是消费电子领域,51系列单片机随处可见。 比如我们可以用单片机来检测温度和湿度,检测空气质量,还有我们日常使用的电子钟就非常方便。 使用51单片机来实现。 STC89C52单片机是深圳市宏晶科技有限公司生产的一款单片机,它在一块小型集成电路上集成了微型计算机。 每台单片机的组成都离不开以下几个部件:
CPU:51系列单片机内部集成的CPU均为8位;
IO口; 并行端口用于数据输入和输出。 51单片机有32个IO口,分别是P0、P1、P2、P3,每个口有8根数据线;
ROM:片上程序存储器,主要用于存储程序,一般大小为4K;
RAM:片内数据存储器,主要用于存储临时数据,大小一般为512K;
中断源; 主要用于触发中断,有5个中断源;
定时器:主要用于计数、计时。 有两个51单片机,分别是定时器0和定时器1;
2.STC89C52单片机时序
任何微控制器的运行都离不开时钟。 时钟就像人的心脏。 只有当心脏起搏时,系统才能运行。 单片机的时钟信号由晶振产生,分为外部晶振和内部晶振。 一般来说,使用外部晶振的稳定性要高得多。 有了晶振,系统各部分就可以在晶振产生的时钟下有序、按自己的步调工作。
51单片机的时序可分为以下几个术语:节拍、振荡周期、机器周期。 它们的关系是一个机器周期分为12个振荡周期,一个振荡周期分为6个节拍。
CPU的运算分为算术运算和逻辑运算,以及运算完成后数据的传输,例如寄存器之间的传输。 所以大多数情况下,操作操作都会发送到P1设备,而传输操作则发生在P2期间。 并且对于不同类型的指令,其时序也不同,大致可分为以下几种:
对于单周期指令,当指令操作码被读入指令寄存器时,指令从S1P2开始执行。 如果是双字节指令,则在同一机器周期的s4中读取第二个字节。
3.STC89C52单片机引脚介绍
STC89C52单片机共有40个引脚,其中32个IO口,分别是P0(8个)、P1(8个)、P2(8个)和P3(8个),以及8个专用引脚。 现分为四大部分介绍如下:
(1) 电源引脚Vcc和Vss
Vcc(引脚40):接+5V电源正极;
Vss(引脚20):连接+5V电源正极。
(2) 外部晶振引脚 XTAL1 和 XTAL2
XTAL1是单片机的第19脚,悬空即可; 当我们连接外部晶振时,有两种连接方式。 最常用的连接方法是将这两个引脚分别连接到晶振的两个引脚(无极性),然后分别连接。 与地并联一个电容(电容的大小根据晶振的大小而定); 另一种连接方法是将XTAL1连接到晶振的一个引脚,晶振的另一个引脚接地,XTAL2悬空或接地。
(3) 控制引脚
单片机共有四个状态控制信号引脚,分别是RST、EA、PSEN和ALE。
(A)。 RST/VPD:该引脚是微控制器的第九引脚。 从名字就可以看出它有两个功能。 第一个是复位功能(RST的意思是RESET,复位)。 当单片机上电后,晶振开始工作,如果该引脚连续两个振荡周期为高电平,则可以正常复位,即单片机进入工作状态。 否则,如果复位不成功,单片机可能无法工作; 第二个功能是掉电保护功能,可以外接备用电源,防止VCC失效。
(b). ALE/P:该引脚是微控制器的第30引脚。 当内部程序空间不够,需要连接外部程序存储器时,该引脚就派上用场了。 不连接时,该引脚始终保持高电平。 ,与外部连接时,该引脚接低电平。
(C)。 PSEN:该引脚是微控制器的第二十九引脚。 当连接外部程序存储器时,该引脚用于决定是否开始读取外部存储器。 该引脚为低电平时,单片机可以读取外部存储器,反之,为高电平时,禁止读取。 同时,该引脚对外部数据存储器的读写没有影响。
(d). EA/Vpp:该引脚是微控制器的第 31 引脚。 当内部程序空间不够,需要连接外部程序存储器时,该引脚就派上用场了。 未连接时,该引脚始终连接高电压。 连接外部设备时,该引脚应接低电平。
(4)IO口P0、P1、P2、P3
(a) P0 口:这组引脚有 8 条数据线,即 P0.0 到 P0.7,位于单片机的 39 到 22 脚。 该引脚主要有三个功能。 正常情况下,作为普通IO口,数据输入输出; 连接外部存储器时,作为地址总线的高8位; 同时,如果单片机内部有EEPROM,读写EEPROM时也必须从P0口输入或输出指令。
(b) P1 口:该组引脚有 8 条数据线,即 P1.0 至 P1.7,位于单片机的第 1 至第 8 引脚。 该引脚主要有两个功能。 正常情况下,作为普通IO口,数据输入输出; 另外,对于本设计中使用的STC89C52单片机,P1.0和P1.1还有其他功能。 :作为两个计数脉冲输入端子,可对脉冲数进行计数。 这广泛用于测试频率和速度。
(c).P2口:这组引脚有8条数据线,即P2.0至P2.7,位于单片机的21至28引脚。 该引脚主要有两个功能。 正常情况下,作为普通IO口,数据输入输出; 当连接到外部程序存储器时,P2端口用于地址总线的高8位。
(d) 端口 P3(引脚 10 至 17):这组引脚有 8 条数据线,即 P2.0 至 P2.7,位于单片机的引脚 10 至 17。 该引脚主要有两个功能。 正常情况下,作为普通IO口,数据输入输出; 同时,它的每个端口还有第二个功能。 P3口的第二个功能如下表所示
表1 MCU P3.0引脚含义
别针
第二功能
P3.0
RXD(串口输入0)
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(部分数据存储器读选通信号输出,低电平有效)
综上所述,STC89C52单片机的引脚功能可以概括为以下两点:
1)。 只需几根数据线即可实现多种功能;
2)。 IO口除了作为一般的数据输入输出外,还具有地址总线和数据总线分时复用的功能。
2.3 最小微控制器系统
任何处理器都有相应的最小系统。 该系统可以保证处理器启动后能够继续正常运行。 此外,没有其他冗余功能,因此成为最小系统。 对于51位单片机来说,最小系统一般包括:单片机、复位电路和晶振电路。 最小系统如图2-2所示。
图2-2 单片机最小系统
由电阻和电容组成的电路常用于单片机的复位电路中。 其工作流程如下。 当系统上电时,RST引脚会立即出现高电平。 同时,电阻和电容(RC)的乘积决定了除了高电平持续时间外,51单片机对这个时间的要求是2个机器周期以上。 因此,适当的RC值组合可以保证可靠的复位。 一般来说,C取10UF,R取10K,其他参数值也可以改变。 原则是让RC组合在RST引脚上产生不少于2个信号。 机器循环高电平保证可靠复位。
晶振电路中的晶振采用典型的11.0592M,因为这个频率的晶振可以产生更精确的波特率。 用于RS232通讯场合。 内部经过12分频后,产生11.0592/12M的机器频率。同时,为了保证晶振能够稳定可靠的启动,一般需要在两端并联两个电容的晶体振荡器。 电容值一般在10到47pf之间。
另请注意,单片机的引脚 31 用于确定上电时是从内部 ROM 还是从外部 ROM 读取数据。 当为高电平时,表示从内部ROM读取; 当为低电平时,表示来自外部ROM,在本设计中,考虑到实际程序的体积不是特别大,不需要外部ROM,所以该引脚接高电平。
2.4液晶屏选型
随着人机界面变得越来越人性化,液晶显示屏应运而生。 1880年代,奥地利科学家莱尼茨从一种植物中提取了一种看起来奇怪的物质。 它既不是液体也不是液体。 ,不是固体,徘徊于两者之间,但它兼有固体和液体的特性。 因此,当时的人们称其为液晶,这就是今天液晶的前身。
市场上的液晶显示器种类繁多,有拼接墙、几十英寸等大型的,从人才角度看,有TFT、LED等,但对于单片机系统来说,还有两种常用的液晶显示器:分别。 分别是1602和12864型号。
12864表示液晶点阵为128行*64列,总共8192个像素点,控制器AIP31020。 可显示汉字和图形,内置8192个汉字(16X16点阵)、128个汉字(8X16点阵)和64X256点阵显示RAM(GDRAM)。 它可以直接与CPU接口,并提供两种与微处理器连接的接口:8位并行和串行连接方式。 具有多种功能:光标显示、屏幕移位、睡眠模式等。其硬件结构如图2-3所示。
图2-312864内部结构
1602表示液晶屏的点阵为16行*2列,总共32个像素点。 1602液晶屏分为带背光和不带背光两种。 带背光的使用起来比较方便,但缺点是比较厚。 ,不带背光,需要自己加一块背光片,使用起来不方便,但比较薄、轻。
1602LCD主要技术参数:
显示容量:16×2字符
芯片工作电压:4.5-5.5V
工作电流:2.0mA(5.0V)
模块最佳工作电压:5.0V
字符尺寸:2.95×4.35(宽×高)
1602LCD的引脚也分为两种标准。 无背光的使用14针,有背光的使用16针。 各引脚接口说明如表1所示。
序列号
象征
引脚说明
序列号
象征
引脚说明
电压信号
电源地
D2
数据
电源电压
电源正极
10
D3
数据
VL
显示偏差
11
D4
数据
RS
数据/命令选择
12
D5
数据
读/写
读/写/选择
13
D6
数据
使能够
14
D7
数据
D0
数据
15
乙二胺四乙酸
背光正极
D1
数据
16
黑
背光负极
引脚1:VSS为地电源。
引脚2:VDD连接5V正极电源。
引脚3:VL为LCD对比度调节端。 当该引脚接5V时,电压差几乎为0,因此对比度最弱,显示内容几乎看不见。 当该引脚接地时,电压差几乎最大。 对比度最高,可能会产生“重影”。 因此,为了给显示器带来舒适的感觉,在使用过程中可以通过10K电位器调节对比度,并根据不同的外界光线灵活调节亮度。
引脚4:RS为读写内容选择端。 当要向LCD发送数据时,需要将此端拉低; 反之,当要向LCD发送命令时,该端需要置高。
Pin 5:选择读写端子。 当写入LCD时,需要将该端子拉低。 相反,当需要从LCD读取时,需要将该端子设置为高电平。 而它与RS的结合可以产生不同的效果。 详细信息请参见表 2。
表2
RS
RW
操作
写命令或显示地址
读取忙信号
数据输入
读取数据
6脚:E端是enable的缩写,意思是使能。 为了使液晶模块能够执行读写操作,该引脚上的信号需要有下降沿。
引脚7至14:D7至D0为总线,共8位,可用作数据线或地址线。
引脚15:背光正极。
第16脚:背光负极。
由于本设计不需要显示太多内容,信息量也不大,经过分析,1602就足够了。
2.5 LCD电路设计
LCD1602与单片机连接电路图如图2-4所示
图2-4 LCD1602与单片机连接图
LCD的8个数据端口连接到单片机P1的8个端口。 控制信号RS连接到P30,RW连接到P31,E连接到P32。
2.6LED提示电路
本设计使用一个红色LED和一个绿色LED来指示输入的密码是否正确。 每个LED的正极通过限流电阻连接到电源正极,然后负极分别连接到P33和P34。 当IO口为高电平时,灯灭,当LED为低电平时,灯亮。 图2-5是其连接图。
图2-5LED提示灯电路
2.7 继电器电路
本设计使用继电器来模拟锁的动作。 当继电器闭合时,表示门锁开始关闭。 当继电器断开时,表示已断开。 继电器的控制引脚连接到单片机的P37端口。 高电平使其闭合,低电平使其断开。 图2-6是其连接图。
图2-6 继电器与单片机连接图
2.8 按键电路
为了满足输入功能的需要,本设计采用了14个按键。 如果全部作为独立按钮连接,则需要14个IO口,占用资源过多。 因此,这里采用了矩阵4*4键盘,显得多余。 两个按钮用作备份。 共占用8个IO口,分别与P0口相连。 由于P0口的特殊结构,必须接上拉电阻才能输出高电平。
键盘电路如图2-7所示。
图2-7 按键电路
其主要功能如下:
数字键0-9用于输入密码;
“保存包”按钮——按下此按钮可生成四位随机数密码
“获取包”按钮–按此按钮提示输入密码
“清除”按钮——在输入密码过程中,按此按钮可清除刚刚输入的号码。
“确认”按钮 – 输入密码后,按此按钮验证密码。
3.系统软件设计
系统的软件主要采用单片机专用的C语言——C51对单片机进行编程,实现全部功能。 主程序对模块进行初始化,然后调用按键扫描程序、显示子程序、LED子程序和继电器模块程序。 图3-1是其主程序流程图。
图3-1 主流程图
在主程序中,首先对单片机的硬件资源进行初始化。 硬件资源的初始化包括:
1、IO口初始化。 本设计中使用的51单片机有32个IO口,单片机复位后,所有IO口默认都分配为高电平(1),这给某些功能带来了一些不必要的问题。 这是一个问题,所以需要将一些上电时需要置低的IO口置低电平(比如本设计中的一些LCD引脚);
2. 定时器的初始化。 定时器是微控制器中非常重要的资源。 有了它,微控制器可以“并行”处理多个事物。 否则,要想实现定时,就只能通过等待来实现。 这会造成MCU资源的大量浪费,更严重的是,MCU运行起来会很不流畅;
3. 串口初始化。 串口的存在给单片机与外界的通信带来了很大的便利。 由于它遵循标准的RS232协议,因此可以与任何具有RS232接口的设备进行通信。
基础资源初始化完毕后,程序接着进入while(1)无限循环,保证程序继续运行。 在这个循环中,多个任务按照顺序一一执行。
3.1LCD子程序模块
LCD1602的读取时序如图3-2所示。
图3-2 LCD1602读取时序
LCD1602的写时序如图3-3所示。
图3-3LCD2602写时序
从时序图可以看出,首先判断RS和RW。 从硬件章节我们知道RS代表指令的操作(高电平)或者数据操作(低电平),RW代表过去的操作。 向LCD写入数据(高电平)或从LCD读取数据(低电平),因此读时序如图3-5所示,写时序如图3-6所示。
然后通过控制器将使能端拉低(从上面的章节我们知道,如果该引脚为高电平,则表示芯片被禁用,如果该引脚为低电平,则表示芯片被使能)。 将其拉低后,需要延时。 至于是否延时,延时多长时间,对于51单片机来说,其实关系不大,不影响使用。
以上两步准备工作完成后,就可以开始阅读和写作了。 也就是说,从此时开始,数据或地址信号被发送到数据总线。 数据发送完毕后,使能端被拉高(芯片被禁用)。 ),当然需要一个建立时间延迟,最小变化时间为40纳秒。 然后将使能端拉低(使能),数据总线上的数据就可以发送到LCD了。
根据上述时序,可以得出如图3-4所示的流程图
图3-4 LCD1602流程图
3.3 按钮模块流程图
P0的8个端口连接了16个按钮,其中P00-P03为四行,P04-P07为四列。 本设计采用行扫描方式,即一次输出四行中的一行。 平(其他三行为高电平),然后读取四列的值。 如果发现四列均为高电平,则说明没有按键被按下。 如果一列是低电平,则表示有一个按钮。 受压。
其工作流程图如图3-5所示
图3-5 按钮流程图
3.4LED指示灯流程图
密码验证过程中,如果密码正确,绿灯会亮起; 如果密码验证不正确,红灯亮。流程图如图3-6所示
图3-6 LED指示灯流程图
参考
[1] 李光地,朱越秀,王秀山。 《微控制器基础》北京航空航天大学出版社,2001(07)。
[2]蔡美琴,张伟民等,《MCS-51系列单片机系统及其应用》,高等教育出版社,2004(06)。
[3] 张以刚,等。 MCS-51单片机应用设计[M]. 哈尔滨工业大学出版社,1997。
[4]刘瑞兴,胡健,等。 《Protel DXP实用教程》机械工业出版社,2003(04)。
[5]于海生. 《计算机控制技术》机械工业出版社2007(05)。
[6]谭浩强. 《C程序设计》清华大学出版社。
[7] 康华光. 《电子技术基础仿真部分》高等教育出版社1998(08)。
[8]于西村. 《单片机原理与接口技术》西安电子科技大学出版社,2003年。
致谢
本论文是在导师的精心关怀和精心指导下完成的。 在项目提案和论文写作过程中,老师给了我很多指导。 导师始终以认真、负责、细致的工作态度阅读并修改文章中的不足之处。 他优秀的作风和严谨的治学态度深深地影响了我。 在此,我谨向我的恩师致以最诚挚的谢意和崇高的敬意!
同时,我要感谢我的同学,特别是我的室友。 正是他们这几年来和我一起成长、一起学习,才成就了我今天的成就。 他们在我的日常学习和生活中给予了我无私的关心和帮助,我谨表示最诚挚的谢意。