- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
                        查看更多
                        
                    
                电子密码锁完整代码
                    #includereg51.h
#include intrins.h
#include absacc.h
#include VIIC_C51.h
#define uchar unsigned char
#define uint unsigned int
#define 	CSI24WC02 	0XA0
#define 	uchar unsigned char
sbit lcdrs=P2^0;
sbit lcdrw=P2^1;
sbit lcden=P2^2;
sbit alarm=P2^3;
sbit red=P2^7;
sbit green=P2^6;
sbit KEY_INT=P3^2;
//led test
sbit LED1=P3^5;
sbit LED2=P3^1;
uchar hour,min,sec,us;
uchar flag=1,canscan=0,lock=0;
uchar password[8]={0,0,0,0,0,0,0,0};
uchar input[8]={0,1,2,3,4,5,6,7};
uchar code a[]={0xF7,0xFB,0xFD,0xFE};
unsigned char DelayNS(unsigned char  no)
{ 
	unsigned char  i,j;					
  	for(; no0; no--)
  	{ 
		for(i=0; i100; i++)
     		for(j=0; j100; j++);
  	}
  	return 0; 
}
unsigned char  delay_eep(unsigned char  j)
{
  	unsigned char  k,l;
  	for(l=0;l=j;l++)
    	for(k=0;k=250;k++);
	return 0;
}
void t0_init() 
{ 
TMOD=0x01; 
TL0=0xb0;
TH0=0x3c; 
TR0=0; 
EA=1; 
ET0=1;
} 
void delay(uchar n)
{
  uchar i;
  while(n--)
     for(i=125;i0;i--);
}
//lcd 写命令
void write_com(uchar com)
{
 lcdrs=0;
 lcdrw=0;
 P0=com;
 delay(2);
 lcden=1;
 delay(2);
 lcden=0;
}
//lcd 写数据
void write_data(uchar date)
{
 lcdrs=1;
 lcdrw=0;
 P0=date;
 delay(2);
 lcden=1;
 delay(2);
 lcden=0;
}
//lcd 的初始化
 void init_lcd()
{
 write_com(0x38);
 write_com(0x0c);
 write_com(0x06);
 write_com(0x01);
}
// lcd 清屏
void clearscn()
{
   
	 write_com(0x06);
	 write_com(0x01);
}
//lcd 显示坐标
void gotoxy(uchar x,uchar y)
{
 if(x==1)
 	write_com(0x80+y);
 if(x==2)
	write_com(0xc0+y);
}
//写lcd字符串
void write_str(uchar *str)
{
 	while(*str!=\0)
		{
	 	 write_data(*str);
		 delay(2);
			str++;
    	}
}
//写一位数字
void write_num(uchar num)
{
 write_data(0x30+num);
}
//写两位数
void write_num2(uchar num)
{
 uchar x,y;
 x=num/10;
 y=num%10;
 write_num(x);
 write_num(y);
}
//  矩阵键盘扫描函数
uchar scan(void)
{
  uchar row,col;
  uchar j,m;
  P1=0xF0;
	if((P10xF0)!=0xF0)
	{
		delay(1);
		if((P10xF0)!=0xF0)
		col=~(P1|0x0F);
		j=0;
		P1=a[j];
		while(j=3)
		{
		if((P10xF0)!=0xF0)
		{
		row=~a[j];
		break;
		}
		else
		{j++;P1=a[j];}
		}
		m=row
                 原创力文档
原创力文档 
                        

文档评论(0)