#include <reg52.h>
#include "1602.h"
#include <stdio.h>
#include "KEY4X4.h"
#include "eeprom2.h"
static bit flag; /* 定义刷新标志 */
volatile uchar Key_Value = 0xff;
uint count; /* 定义计数标志 */
uchar input_state = 0; /* 输入状态 0显示时间 1输入密码 2指纹录入 */
extern void DS1302Init();
sbit LED = P3^1;
extern void read_time( uchar curr_time[] );
extern void set_time( uchar *pSecDa );
/*typedef struct Timer{
* uchar year;
* uchar month;
* uchar day;
* uchar hour;
* uchar min;
* }Timer;
* Timer Timer_now;*/
uchar getTimebuf[7]; /* 存放时间数据 */
uchar position_input = 0;
uchar key_buf[6];
uchar password[6];
uchar mode;
char shwobuf[15] = "";
#define CHK_PASSWORD (password[0] == key_buf[0]) && (password[1] == key_buf[1]) && (password[2] == key_buf[2]) && (password[3] == key_buf[3]) && (password[4] == key_buf[4]) && (password[5] == key_buf[5])
void Timer0Init() /* 定时计0数器初始化 */
{
TMOD = 0x01;
TH0 = 0xf8; /* 2ms定时 */
TL0 = 0x30;
ET0 = 1;
TR0 = 1;
EA = 1;
flag = 1; /* 定时1秒标志 */
}
void Initial_com()
{
TMOD &= 0x0f; /* 设置定时器模式 */
TMOD |= 0x20; /* 定时器T1,在方式2中断产生波特率 */
PCON = 0x00; /* SMOD=0 */
SCON = 0x50; /* 方式1 由定时器控制 */
TH1 = 0xfd; /* 波特率设置为9600 */
TL1 = 0xfd;
TR1 = 1; /* 开定时器T1运行控制位 */
ES = 1;
}
sbit DOOR = P3 ^ 0;
uchar usrcnt = 0;
uchar redflg = 0;
uchar user[8];
uchar msg_cnt = 0;
void delaylong()
{
uint x, y;
for ( x = 0; x < 400; x++ )
for ( y = 0; y < 1000; y++ )
;
}
void Delay_1ms( unsigned int i ) /* 1ms延时 */
{
unsigned int x, j;
for ( j = 0; j < i; j++ )
for ( x = 0; x <= 148; x++ )
;
}
void main()
{
uchar usr_tmp, sign_user;
uint chk_cnt;
init_1602();
Timer0Init();
Initial_com();
user[0] = 0;
user[1] = 0;
user[2] = 0;
user[3] = 0;
user[4] = 0;
user[5] = 0;
user[6] = 0;
user[7] = 0;
LED = 1;
RW24XX( &redflg, 1, 0x0000, READEEP, M24128 );
if ( redflg != 0xaa )
{
redflg = 0xaa;
usrcnt = 0;
msg_cnt = 0;
RW24XX( &redflg, 1, 0