📄 head.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 + -