- 定义包
#include<reg52.h>
/*****************************************************************************/
//变量定义
/*****************************************************************************/
sbit wei1=P3^1;
sbit wei2=P3^4;
sbit wei3=P3^5;
sbit wei4=P3^6;
//定义位选
sbit led=P3^0;
//定义led灯
//模拟开锁功能
sbit buzzer=P3^7;
//定义蜂鸣器
//模拟提示\报警功能
unsigned char pwnum=0;
//密码位选
//用来记录此时的键值已经在哪个密码位
bit err=0;
//密码错误标志位
//err=0时
//密码没有错误
//err=1
//进入密码有误状态,接下执行密码错误函数
unsigned char count=0;
//错误次数
//记录输入键值的错误次数
unsigned char key=12;
//键值
//默认12,一直进入数码显示中断
bit restart=0;
//密码重置标志
//restart=0
//普通输入状态
//restart=1
//密码重置状态
unsigned char rsright=0;
//密码修改标志
//rsright=0
//退出密码修改状态
//rsright=1
/*****************************************************************************/
//定义数组
/*****************************************************************************/
unsigned char password[]={
0,0,0,0};
//密码数组
//记录密码
unsigned char keynum[]={
14,14,14,14} ;
//键值数组
//记录按下的键值,组成一个四位数组
unsigned char key_mod[]={
0xd7,0xee,0xde,0xbe,0xed,
0xdd,0xbd,0xeb,0xdb,0xbb,
0xe7,0xb7} ;
//键模
//0~9
//重启键 退出重启键
unsigned char mod1[]={
0x3f,0x06,0x1b,0x0f,0x26,
0x2d,0x3d,0x07,0x3f,0x2f,
0x39,0x76,0x3f,0x33,0xc0};
//低八位字模
//0~9
//10:E 11: N 12:O 13:R 14:*
unsigned char mod2[]={
0x00,0x00,0x22,0x22,0x22,
0x22,0x22,0x00,0x22,0x22,
0x22,0x04,0x00,0x26,0x3f};
//高八位字模
//0~9
//10:E 11: N 12:O 13:R 14:*
- 函数包
#include<reg52.h >
#include<defination.h>
/*---------------------------------------------------------------------------*/
//ms级delay函数
/*---------------------------------------------------------------------------*/
void delay(int i){
unsigned char k;
while (i