1、用户密码以及IC卡号和IC卡刷入序列号,保存到STC12C5A60S2的EEPROM中,实现掉电数据保存功能。
2、支持非接触式IC卡授权功能,可连续授权(授权需输入管理员密码程序默认“000”)。
3、支持手动选卡销卡,支持单卡刷入销卡,支持注销所有卡(注销所有卡需输入管理员密码程序默认“000”)
4、自动识别非接触式IC卡功能。如刷授权过的IC卡,提示“欢迎光临”,显示卡号并且开门,5秒后自动关门。如果刷未授权的IC卡,提示“该卡未授权”,显示卡号不开门。
5、如忘记携带IC卡,可通过键盘手动输入用户密码,程序默认“000000”。密码输入错误,显示器会出现错误提示且继电器不工作(不开门);若密码输入正确则继电器工作(开门)。
6、支持手动更改用户密码(更改用户密码需输入管理员密码程序默认“000”)
7、支持待机时钟显示功能(功能:显示年月日时分秒周,阴历,天干地支,生肖,温度,可改时间,具有掉电走时功能)
//延时
void delay(int i)
{
unsigned char d, j;
while(--i)
{
d = 2;
j = 239;
do
{
while (--j);
} while (--d);
}
}
//写指令到LCD
void write_cmd(unsigned char cmd)
{
char i;
lcd_rs=0;
for(i=0;i<8;i++)
{
lcd_sclk=0;
if(cmd&0x80) lcd_sid=1;
else lcd_sid=0;
lcd_sclk=1;
cmd<<=1;
}
}
//写数据到LCD
void write_dat(unsigned char dat)
{
char i;
lcd_rs=1;
for(i=0;i<8;i++)
{
lcd_sclk=0;
if(dat&0x80) lcd_sid=1;
else lcd_sid=0;
lcd_sclk=1;
dat<<=1;
}
}
//LCD初始化
void lcd_init()
{
lcd_cs=0;
rom_cs=0;
// lcd_reset=0;//低电平复位
delay(20);
// lcd_reset=1;//复位完毕
delay(20);
write_cmd(0xe2);//软件复位
delay(5);
write_cmd(0x2c);//升压步骤1
delay(5);
write_cmd(0x2e);//升压步骤2
delay(5);
write_cmd(0x2f);//升压步骤3
delay(5);
write_cmd(0x23);//粗调对比度,范围:0x20-0x27
write_cmd(0x81);//微调对比度
write_cmd(0x2b);//微调对比度的值,范围:0x00-3f
write_cmd(0xa2);//1/9偏压比(bias)
write_cmd(0xc8);//行扫描顺序:从上到下
write_cmd(0xa0);//列扫描顺序:从左到右
write_cmd(0x60);//起始行:第一行开始
write_cmd(0xaf);//开显示
lcd_cs=1;
}