⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 head.h

📁 单片机控制电子门 密码锁
💻 H
字号:
#include<reg52.h>
#include <intrins.h>
#define uchar		unsigned char 
#define uint		unsigned int
#define  Writesec  		0x80
#define  Readsec   		0x81
#define  Writemin  		0x82
#define  Readmin   		0x83
#define  Writehour    	0x84
#define  Readhour     	0x85
#define  Writeday    	0x86
#define  Readday     	0x87
#define  Writemon  		0x88
#define  Readmon    	0x89
#define  Writeweek   	0x8a
#define  Readweek    	0x8b
#define  Writeyear    	0x8c
#define  Readyear     	0x8d
#define  Wp				0x8e		

//bit flag2;
bit flag3;//------------------------test
bit b;//-------------------------------------------------test
bit	lock_flag;//键盘是否锁定标志位	0锁定	1开启
bit ch_flag;
bit pw_flag;//密码正确标志位
bit newpw_flag;//是否需要修改密码 0不需要  1需要
bit newok_flag;//自设密码是否输入完全
bit open_flag;//开门标志位  想办法可以省掉的,因为和报警同用T1,加上需要修改密码不方便控制
//bit alarm_flag;//开门标志位  想办法可以省掉的

sbit CLK=P0^0;		  //时钟线  595
sbit DAT=P0^1;		  //数据线
sbit LCK=P0^2;		  //锁存线
sbit DS1302_CE=P0^5;
sbit DS1302_SCK=P0^4;
sbit DS1302_DAT=P0^3;
sbit ACC_7=ACC^7;
sbit ok=P3^0;//电磁铁吸合
sbit no=P3^1;//单次密码输入错误
sbit speak=P3^2;//三次密码错误报警指示
sbit yes=P3^3;//已开门指示
sbit LED=P3^4;//亮-灭表示可以修改密码,亮灭亮灭亮灭表示修改密码成功
sbit ch=P3^5;//新密码输入完毕标志,调试用,完成可以删掉
sbit scl=P3^6;// E2PROM 时钟线  
sbit sda=P3^7;// E2PROM 数据线

uchar c;//----------------------------------test
uint count;//定时计数
uchar num;//输入密码位数计数
uchar num1;
uchar tmp;//键值传递
uchar wrong;//记录输入密码错误次数

uchar t[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0};//ds1302实时时间
uchar timepw[]={5,5,5,5};//存放查询时间密码,对显示时间
uchar pw[]={0,1,2,3};//初始密码				   
uchar pwbuf[]={11,11,11,11};//输入密码
//uchar pwbuf[]={0,1,2,3};//输入密码       ----------------------------------------test 
uchar newpw[]={11,11,11,11};//自设新密码存储区
//uchar newpw[]={1,2,3,4};//自设新密码存储区  ---------------------------------test
uchar code tab1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};//段
uchar code tab2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};//位 可以通过算法精简
/****************************			  
函数声明
*****************************/
void Init();//
void Seg_Init();//数码管上电初始化
void Time_Init();//定时器初始化
void delay(uint x);
void display();//数码管显示函数
void display2();
void enter_pw();//密码输入函数
void enter();//确定键处理函数 
void check();//密码检测
void esc();//取消键
void esc2();//取消键
void open();//开门
void close();//关门
void alarm();//报警
void clearpw();//清除密码
void changepw();//修改密码函数
void newpw_ok();//新密码输入密码
void savepw(uchar len,uchar *dp); //存储密码 len 密码长度   dp 密码
void readpw(uchar len); //读取密码 len 密码长度   
void delay1();
void start();  //开始信号
void stop();   //停止
void respons();  //应答
void E2_init();//E2PROM 初始化
void write_byte(uchar date);//写字节
uchar read_byte();// 读字节
void write_add(uchar address,uchar date);//写
uchar read_add(uchar address);//读
uchar keyscanf();//待返回值的按键扫描
void getpw();
void in_pw();
void display3();//DS1302显示函数

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -