基于单片机四位单片机液晶显示密码锁-毕设课设资料
【资源下载】下载地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
随着微机测量和控制技术的迅速发展与广泛应用,以单片机为核心的电子密码锁的设计研发与应用在很大程度上改善了人们的生活,尤其是在一些公共场合(比如大型超市)保存私人物品等方面起到了不可估量的作用。本设计论述了一种以STC89C52单片机为主控制单元,以LCD1602为显示器件的电密码锁系统。该控制系统可以每次随机生成四位数的密码,并显示在LCD上,用户记住改密码后进行输入并核对是否正确。系统设计了相关的硬件电路和相关应用程序。硬件电路主要包括STC89C52单片机最小系统,LCD显示电路、LED指示电路,按键电路等等。系统程序主要包括主程序,密码生成和校验程序、LCD显示程序以及按键模块程序等。
功能主要包括如下几个方面:
1. 按下“存包”按键生成随机的四位数密码;
2. 按下“取包”按键后,进行密码输入并自动校验;
3. 密码校验时对错与否,通过不同的LED指示灯来指示;
4. LCD实时显示相关信息;
5. 用protues仿真软件实现上述功能。
#include <reg51.h>
#include <intrins.h>
#include <stdlib.h>
#include <string.h>
#include<absacc.h>
#include "lcd1602.h"
#include "main.h"
#include "key.h"
sbit Lock = P3^7; //代表锁控的继电器IO 高电平关锁,低电平开锁
sbit LEDRED = P3^3; //代表密码输入错误的红灯IO 高电平熄灭,低电平点亮
sbit LEDGREEN = P3^4; //代表密码输入正确的绿灯IO 高电平熄灭,低电平点亮
uchar genPasswd[4]; //存储生成的四位随机数密码
uchar inpPasswd[4]; //存储取包时输入的四位密码
uchar code welcome[8]="welcome"; //开机显示的欢迎标语
uchar code set[7]="Passwd"; //显示生成的密码标题
uchar code close[12]="close door!"; //提示关门
uchar code input[13] = "input passwd"; //提示请输入密码
/****************定时器设置相关的变量***********************/
unsigned char TL0_temp; /*暂存TL0的初值*/
unsigned char TH0_temp; /*暂存TH0的初值*/
#define INT_CLOCK 10 /*INT_CLOCK为定时值,单位为ms ,此处定义为10ms*/
#define CRY_FREQUENCY 11059200 /*CRY_FREQUENCY为晶振频率,单位为Hz*/
/*延时程序*/
void delay(uint z)
{
unsigned int i,j;
for(i=0;i<z;i++)
for(j=0;j<100;j++);
}
/******************************
显示首页 welcome
******************************/
void display1()
{
unsigned char i;
for(i = 0;i < 7;i++)
{
wr_com(0x85+i);
wr_dat(welcome[i]);
}
}