#include
#include
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define nop() nop()
#define INBUF_LEN 4 //数据长度
#define Nop() _nop() //定义空指令
sbit key1=P3^5;
sbit key2=P3^6;
sbit SDA=P3^4; //模拟I2C数据传送位
sbit SCL=P3^3; //模拟I2C时钟控制位
bit ack; //应答标志位
unsigned char ch;
unsigned char RevBuffer[30];
unsigned char RevBuffer1[30];
uchar data bMenued,count,flag1;
bit flag2;
sbit BEEP=P2^1;
sbit door=P2^0;
#include"rc522.c"
#include"LCD1602.H"
#include"1402.H"
void main()
{
uchar i;
init_1602();
InitRc522();
flag=0;
IRcvStr(0xae,8,RevBuffer1,8);
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH0=-500000%256;
TL0=-50000%256;
EA=1;
ET0=1;
ET1=1;
TR0=0;
TR1=0;
while(1)
{
// flag2=0;
keyscan(); //按键判断
if(flag==0) //是否开门
{
ctrlzhu();
if (RI==1)
{
RI = 0 ;
ch=SBUF;
}
}
if(flag==1) //写入信号
{
ctrlxie();
if (RI==1)
{
RI = 0 ;
ch=SBUF;
}
}
if(flag==2) //清零信号
{
ctrlqing();
if (RI==1)
{
RI = 0 ;
ch=SBUF;
}
}
if(flag1==1)
{
door=1;
WRITE_LCD1602_COM(0x01); //清屏
WRITE_LCD1602_COM(0x01);
flag1=0;
flag=0;
WRITE_LCD1602_COM(0x80); //显示主页面
for(i=0;i<16;i++)
WRITE_LCD1602_DAT(DIS_TAB1[i]);
WRITE_LCD1602_COM(0x80+0x40);
for(i=0;i<15;i++)//第2行要显示的11个字符
{
WRITE_LCD1602_DAT(table8[i]);
}
ctrlzhu();
if (RI==1)
{
RI = 0 ;
ch=SBUF;
}
}
// if(removeflag==1)
// {
// removeflag=0;
// display_cardnum(); //成功显示卡号
// TR0=1;
// }
}
}