///****密码锁****1602***矩阵键盘****发光二极管替代控制装置*******
//********STC89C52RC****24C02****2011 年 3 月 8 日**********
//*****由于该开始你不知 24c02 里存的数据是什么。所以要想办法显示出来;
//*****密码取值范围 1~999 9999 9999 9999 最多十五位****
//*****注意**一个变量同时用在 1 个以上的子函数
//**里一定要用全局变量定义,不然就会出错*******
#include <reg52.H>
#define uchar unsigned char
#define uint unsigned int
#define ulong unsigned long
#define lcd_date P0 //lcd 数据口
#define mdate P2 //矩阵键盘 数据口
sbit sda=P1^2;
sbit scl=P1^3;
sbit lcden=P1^1;
sbit lcdrs=P1^0;
sbit led0=P1^7;//发光二极管
uchar code table[]={"Error"};//5 个字符
uchar code table6[]={"Right"};//5 个字符
uchar code table5[]={"Complete"};//8 个字符
uchar code table1[]={"Input code"};//10 个字符
uchar code table2[]={"Input code again"};//16 个字符
uchar code table3[]={"Input old code"};//14 个字符
uchar code table4[]={"Input new code"};//14 个字符
uchar code table7[]={"Welcome enter"};//13 个字符
ulong result,password,a=10;
uchar key,places=0,flag,flag7,flag8,flag9,m;
//*****延时******
void delay(uint z)//定时 1ms
{uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
//****延时*****
delay1()
{;;}
//*****写命令****
void write_com(uchar com)
{ lcdrs=0;
lcd_date=com;
delay(5);//定时(5x1ms=5ms)
lcden=1;
delay(5);
lcden=0;