亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mima.c

?? 電子密碼鎖24C02
?? C
字號:
//proteus仿真論壇:proteus.5d6d.com
#include<reg51.h>
#include<intrinS.h>
#include<absacc.h>

#define uchar unsigned char
#define C02_write 0xa0
#define C02_read  0xa1

#define no0 0x28
#define no1 0x14
#define no2 0x24
#define no3 0x44
#define no4 0x12
#define no5 0x22
#define no6 0x42
#define no7 0x11
#define no8 0x21
#define no9 0x41
#define enter 0x88
#define backspace 0x81

#define lcm_write_cmd_add XBYTE[0x80FF]
#define lcm_write_data_add XBYTE[0x81FF]
#define lcm_read_busy_add XBYTE[0x82FF]
#define lcm_read_data_add XBYTE[0x83FF]

uchar idata temp5_password[6]={0x00,0x00,0x00,0x00,0x00,0x00};
uchar idata key_code[]={no0,no1,no3,no4,no5,no6,no7,no8,no9};

sbit SCL=P3^0;
sbit SDA=P3^1;
sbit i=P3^2;
bit ack;

uchar	int_counter_1;
unsigned int int_counter_2;

void delayms(uchar i)
{
	uchar j;
	for(;i>0;i--)
	for(j=124;j>0;j--);
}

void longdelay(uchar i)
{
	unsigned int j;
	for(;i>0;i--)
	for(j=10000;j>0;j--);
}

void lcm_wait()
{
	while(lcm_read_busy_add&0x80);
}

void lcm_write_cmd(uchar lcm_cmd)
{
	lcm_wait();
	lcm_write_cmd_add=lcm_cmd;
}

void lcm_write_data(uchar lcm_data)
{
	lcm_wait();
	lcm_write_data_add=lcm_data;
}

uchar lcm_read_data(void)
{
	uchar lcm_data;
	lcm_wait();
	lcm_data=lcm_read_data_add;
	return(lcm_data);
}

void lcm_setxy(uchar x,uchar y)
{
	if(y==1) lcm_write_cmd(x|0x80);
	if(y==2) lcm_write_cmd(x|0xc0);
}

void lcm_write_string(uchar *string)
{
	uchar i=0;
	while(string[i]!='\0')
	{
		lcm_write_data(string[i]);
		i++;
	}
}

void lcm_roll_display(uchar *string,uchar y)
{
	uchar counter;
	lcm_write_cmd(0x06);
	lcm_setxy(0,y);
	while(string[counter]!='\0')
	{
		lcm_write_data(string[counter]);
		counter++;
		if (counter==19) lcm_setxy(19,y);
		longdelay(2);

	}
	lcm_write_cmd(0x07);
	lcm_setxy(19,y);
		while(string[counter]!='\0')
	{
		lcm_write_data(string[counter]);
		counter++;
		if (counter==19) lcm_setxy(19,y);
		longdelay(2);

	}
}

void lcm_init()
{
	delayms(20);
	lcm_write_cmd_add=0x38;
	delayms(4);
	lcm_write_cmd_add=0x38;
	delayms(1);
	lcm_write_cmd_add=0x38;
	lcm_write_cmd(0x38);
	lcm_write_cmd(0x0f);	
	lcm_write_cmd(0x01);
	lcm_write_cmd(0x06);
}

void I2C_start(void)
{
	SDA=1;
	SCL=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SDA=0;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SCL=0;
	_nop_();
	_nop_();
}

void I2C_stop(void)
{
	SDA=0;
	SCL=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SDA=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SCL=0;
	_nop_();
	_nop_();
}

void I2C_ackownledge(void)
{
	SDA=0;
	_nop_();
	_nop_();
	SCL=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SCL=0;
	_nop_();
	_nop_();
	_nop_();
}

void I2C_no_ackownledge(void)
{
	SDA=1;
	_nop_();
	_nop_();
	SCL=1;
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SCL=0;
	_nop_();
	_nop_();
	_nop_();
}

void I2C_sendB(uchar byte)
{
	uchar counter;
	for(counter=0;counter<8;counter++)
	{
		if(byte&0x80)	SDA=1;
		else	SDA=0;
		_nop_();
		SCL=1;
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		_nop_();
		SCL=0;
		_nop_();
		_nop_();
		byte<<=1;
	}
	_nop_();
	_nop_();
	SDA=1;
	_nop_();
	_nop_();
	_nop_();
	SCL=1;
	_nop_();
	_nop_();
	_nop_();
	if(SDA==0)	ack=1;
	else 	ack=0;
	SCL=0;
	_nop_();
	_nop_();
}
	
uchar I2C_receiveB(void)
{
	uchar temp;
	uchar counter;
	temp=0;
	SDA=1;
	_nop_();
	_nop_();
	for(counter=0;counter<8;counter++)
	{
		 _nop_();
		 _nop_();
		 _nop_();
		 _nop_();
		 _nop_();
		 SCL=1;
		 _nop_();
		 _nop_();
		 if(SDA==1)	temp=(temp<<1)|0x01;
		 else	temp=temp<<1;
		 _nop_();
		 _nop_();
		 SCL=0;
		 _nop_();
		 _nop_();
		 _nop_();
	}
	_nop_();
	_nop_();
	return(temp);
}

/*bit I2C_write_byte(uchar byte,uchar address)
{
	I2C_sendB(address);
	if(ack=0)	
	{
		I2C_stop();
		return(0);
	}
	else	I2C_sendB(byte);  */
	

bit I2C_send_string(uchar *string,uchar no,uchar address)
{
	uchar counter;
	for(counter=0;counter<no;counter++)
	{
		I2C_start();
		I2C_sendB(C02_write);
		if(ack==0) return(0);
		I2C_sendB(address+counter);
		if(ack==0) return(0);
		I2C_sendB(string[counter]);
		I2C_stop();
		delayms(20);		
	}
	return(1);
}

bit I2C_receive_string(uchar *string,uchar no,uchar address)
{
	uchar counter;
	for(counter=0;counter<no;counter++)
	{
		I2C_start();
		I2C_sendB(C02_write);
		if(ack==0) return(0);
		I2C_sendB(address+counter);
		if(ack==0) return(0);
		I2C_start();
		I2C_sendB(C02_read);
		if(ack==0) return(0);
		*(string+counter)=I2C_receiveB();
		I2C_no_ackownledge();
		I2C_stop();
	}
}

uchar get_key()
{
	uchar row_code;
	uchar col_code;
	P1=0xf0;
	if(P1!=0xf0)
	{
		delayms(10);
		if(P1!=0xf0)
		{
			row_code=0xfe;
			while(row_code!=0x7f)
			{	
				P1=row_code;
				if(P1!=row_code)
				{
					col_code=(P1&0xf0)|0x0f;
					return(	(~col_code)|(~row_code));
				}
				row_code=((row_code<<1)|0x01);
			}
		}
	}
	return(0x00);
}

void convert_code(uchar *string)
{
	uchar counter=0;
	for(counter=0;counter<6;counter++)
	{
		switch(*string)
		{
			case no0:
						*string=0x00;
						break;
			case no1:
						*string=0x01;
						break;
			case no2:
						*string=0x02;
						break;
			case no3:
						*string=0x03;
						break;
			case no4:
						*string=0x04;
						break;
			case no5:
						*string=0x05;
						break;
			case no6:
						*string=0x06;
						break;
			case no7:
						*string=0x07;
						break;
			case no8:
						*string=0x08;
						break;
			case no9:
						*string=0x09;
						break;
			default:
						break;
		}
		string++;				
	}
}

bit compare_string(uchar *string1,uchar *string2)
{
	uchar counter;
	for(counter=0;counter<6;counter++)
	{
		if(string1[counter]!=string2[counter]) return(0);
	}
	return(1);
}

uchar step_choose(void)
{
	unsigned int i;
	uchar key;
	do{
		lcm_write_cmd(0x01);
		lcm_write_cmd(0x06);
		lcm_setxy(0,1);
		lcm_write_string("input password");
		lcm_setxy(0,2);
		lcm_write_string("please press 1");
		for(i=0;i<30000;i++)
		{
			key=get_key();
			if((key==no1)||(key==no2))	break;
		}
		if((key!=no1)&&(key!=no2))
		{
			lcm_write_cmd(0x01);
			lcm_write_cmd(0x06);
			lcm_setxy(0,1);
			lcm_write_string("change password");
			lcm_setxy(0,2);
			lcm_write_string("please press 2");
			for(i=0;i<30000;i++)
			{
				key=get_key();
				if((key==no1)||(key==no2))	break;
			}
		}
		}
	while((key!=no1)&&(key!=no2));
	return(key);
}

bit input_password(uchar *password)
{
	uchar counter;
	uchar key;
	lcm_setxy(0,2);
	for(counter=0;counter<7;counter++)
	{
		longdelay(3);
		if(counter<6)
		{
			do{
				key=get_key();
		  	   }
		    while(key==0x00);
			if((key!=backspace)&&(key!=enter))
			{
				lcm_write_data('*');
				password[counter]=key;
			}
			if(key==backspace)
			{
				if(counter>0)
				{
					lcm_setxy(--counter,2);
					lcm_write_data(' ');
					password[counter]=0x00;
					lcm_setxy(counter,2);
					counter--;
				}
			}
			if(key==enter)
			{
				lcm_setxy(0,1);				
				return(	0);
			}		
		}
		if(counter==6)
		{
			do{
				key=get_key();
		  	   }
			while((key!=backspace)&&(key!=enter));
			if(key==backspace)
			{
				lcm_setxy(--counter,2);
				lcm_write_data(' ');
				password[counter]=0x00;
				lcm_setxy(counter,2);
				counter--;
			}
			if(key==enter)
			{  						
				return(1);			
		    }
		}		
	}
}

void mima()
{
	uchar key;
	uchar idata temp1_password[6]={0,0,0,0,0,0};
	uchar idata temp3_password[6]={0,0,0,0,0,0};
	uchar idata temp2_password[6]={0,0,0,0,0,0};
	uchar idata temp4_password[6]={0,0,0,0,0,0};
	key=step_choose();
	if(key==no1)
	{
		I2C_receive_string(temp1_password,6,0x00);
		lcm_write_cmd(0x01);
		lcm_write_cmd(0x06);
		lcm_setxy(2,0);
		lcm_write_string("input password");	
		if(input_password(temp2_password))
		{
			convert_code(temp2_password);
			if(compare_string(temp1_password,temp2_password))
			{
				lcm_setxy(0,2);
				lcm_write_string("correct!");
				longdelay(6);
				return;
			}
			else 
			{
				lcm_setxy(0,2);
				lcm_write_string("wrong password");
				longdelay(6);
				return;
			}
		}
		else
		{
			lcm_setxy(0,2);
			lcm_write_string("error!  ");
			longdelay(6);
		}		 
	}
	else
	{
		I2C_receive_string(temp1_password,6,0x00);
		lcm_write_cmd(0x01);
		lcm_write_cmd(0x06);
		lcm_setxy(0,0);
		lcm_write_string("input old password");
	    if(input_password(temp2_password))
		{
			convert_code(temp2_password);
			if(compare_string(temp1_password,temp2_password))
			{
				lcm_setxy(0,2);
				lcm_write_string("password correct!");
				longdelay(6);
				lcm_write_cmd(0x01);
				lcm_write_cmd(0x06);
				lcm_setxy(0,1);
				lcm_write_string("input new password");
				if(input_password(temp3_password))
				{
					lcm_write_cmd(0x01);
					lcm_write_cmd(0x06);
					lcm_setxy(0,1);
					lcm_write_string("input password again");
					if(input_password(temp4_password))
					{
						if(compare_string(temp3_password,temp4_password))
						{
							convert_code(temp3_password);
							I2C_send_string(temp3_password,6,0x00);
							lcm_write_cmd(0x01);
							lcm_write_cmd(0x06);
							lcm_setxy(0,1);
							lcm_write_string("password has");
							lcm_setxy(0,2);
							lcm_write_string("been changed");
							longdelay(10);
							return;
						}
						else
						{
						   lcm_write_cmd(0x01);
						   lcm_write_cmd(0x06);
						   lcm_setxy(0,1);
						   lcm_write_string("twice input");
						   lcm_setxy(0,2);
						   lcm_write_string("is different");
						   longdelay(10);
						   return;
						}
					}
					else
					{
						lcm_setxy(0,2);
						lcm_write_string("error!  ");
						longdelay(10);
						return;
					}
				}
				else
				{
					lcm_setxy(0,2);
					lcm_write_string("error!  ");
					longdelay(10);
					return;
				}
			}
			else 
			{
				lcm_setxy(0,2);
				lcm_write_string("wrong password");
				longdelay(6);
				return;
			}
		}
		else
		{
			lcm_setxy(0,2);
			lcm_write_string("error!  ");
			longdelay(6);
			return;
		}		 
	}
			   
				
}

void	int_service(void)	using 0 interrupt	0
{
	EA=0;
	EX0=0;
	for(int_counter_1=10;int_counter_1>0;int_counter_1--)
	{
		for(int_counter_2=0xffff;int_counter_2>0;int_counter_2--)
		{
			if(i)
			{
				EA=1;
				EX0=1;
				return;
			}	
		}
	}
	lcm_write_cmd(0x01);
	lcm_write_cmd(0x06);
	lcm_write_string("rest success!");
	longdelay(12);
	I2C_send_string(temp5_password,6,0x00);

	(*(void(*)())0)();
}
  


void main(void)
{
	
	IT0=1;
	EX0=1;
	EA=1;
	
	lcm_init();
    while(1)
	{
		mima();
	}
}
	
				

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕欧美三区| 国产精品一区在线观看你懂的| 天天av天天翘天天综合网色鬼国产| 日本视频免费一区| av电影天堂一区二区在线| 欧美日韩精品一区二区三区蜜桃 | 老色鬼精品视频在线观看播放| 不卡在线观看av| 精品乱码亚洲一区二区不卡| 亚洲最快最全在线视频| 国产精品一卡二卡| 日韩精品最新网址| 亚洲五码中文字幕| 波多野结衣视频一区| 精品免费99久久| 日韩国产欧美在线播放| 91成人免费电影| 亚洲美女屁股眼交| 成人av在线资源| 久久精品无码一区二区三区| 日本aⅴ免费视频一区二区三区| 成人精品免费网站| 日本一区二区免费在线观看视频| 美女诱惑一区二区| 日韩一区二区三区精品视频| 亚洲第一成人在线| 日本韩国欧美在线| 一区二区三区在线播| 国产aⅴ综合色| 国产欧美一区二区精品久导航 | 一区二区三区在线免费播放 | 国产精品久久久久久久浪潮网站| 国产揄拍国内精品对白| 欧美一区二区三区四区视频| 亚洲午夜一二三区视频| 欧美日韩久久一区二区| 亚洲成人午夜电影| 欧美高清激情brazzers| 亚洲成人av电影在线| 欧美日韩一区二区三区四区 | 正在播放一区二区| 玖玖九九国产精品| 精品99999| 狠狠色综合色综合网络| 久久久久久亚洲综合| 国产91清纯白嫩初高中在线观看 | 亚洲国产视频在线| 91精品国产综合久久蜜臀 | 日韩一区二区精品在线观看| 卡一卡二国产精品| 中文字幕在线不卡一区二区三区| 成人高清伦理免费影院在线观看| 亚洲欧美日韩在线| 制服.丝袜.亚洲.中文.综合| 蜜桃视频在线观看一区二区| 国产亚洲一区二区在线观看| 国产剧情一区二区| 亚洲女同ⅹxx女同tv| 欧美疯狂性受xxxxx喷水图片| 裸体一区二区三区| 最新热久久免费视频| 欧美日韩国产区一| 国产激情精品久久久第一区二区| 专区另类欧美日韩| 欧美一级高清大全免费观看| 国产一区二区三区久久久| 亚洲欧美视频在线观看视频| 欧美一区二区三区视频免费 | 国产白丝网站精品污在线入口| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 一本一道久久a久久精品| 午夜a成v人精品| 中文字幕第一区第二区| 欧美日韩不卡在线| 成人黄色小视频| 免费观看在线综合色| 欧美韩国日本一区| 欧美一卡二卡三卡四卡| 91香蕉视频在线| 精品一区二区三区在线观看国产| 国产精品久久久久久久午夜片| 6080午夜不卡| 91黄色免费网站| 国产精品一区二区在线看| 午夜精品久久久久久久 | 99国产精品久久久久久久久久久| 日本麻豆一区二区三区视频| 专区另类欧美日韩| 国产视频在线观看一区二区三区| 欧美日韩综合色| 99精品一区二区三区| 国模一区二区三区白浆| 图片区小说区区亚洲影院| 国产精品白丝在线| 久久久久久日产精品| 欧美高清视频不卡网| 在线看日韩精品电影| 成人三级伦理片| 国产高清在线精品| 久草这里只有精品视频| 图片区小说区国产精品视频| 亚洲精品中文字幕在线观看| 国产偷国产偷亚洲高清人白洁| 欧美精品国产精品| 在线观看日韩电影| 99热这里都是精品| 99久久99久久精品免费看蜜桃| 国产精品1区2区| 国产精品综合二区| 国产精品69毛片高清亚洲| 韩国av一区二区| 激情深爱一区二区| 国内精品国产三级国产a久久| 三级一区在线视频先锋 | 日韩欧美激情一区| 日韩欧美国产wwwww| 欧美一级淫片007| 精品国产乱码久久久久久1区2区 | 一区二区三区四区在线| 亚洲女人的天堂| 亚洲资源在线观看| 天堂一区二区在线免费观看| 午夜精品久久久久| 麻豆精品国产91久久久久久| 裸体一区二区三区| 国产精品77777| 99re成人精品视频| 欧美丝袜丝nylons| 日韩女优av电影| 国产欧美一区二区精品仙草咪| 国产精品情趣视频| 亚洲一区二区三区自拍| 奇米精品一区二区三区在线观看| 极品少妇xxxx偷拍精品少妇| 国产精品18久久久久久久久久久久 | 国产精品色噜噜| 一区二区三区在线免费视频| 午夜精品久久久久久不卡8050| 久久国产欧美日韩精品| 成人免费av资源| 欧美性做爰猛烈叫床潮| 日韩欧美中文字幕一区| 国产日韩成人精品| 依依成人综合视频| 蜜桃一区二区三区在线| 成人app在线观看| 欧美日韩国产小视频在线观看| 日韩欧美区一区二| 自拍偷拍亚洲激情| 久久精品噜噜噜成人av农村| 懂色av一区二区三区免费观看 | 亚洲成人动漫在线观看| 精品一区二区三区久久久| 成人精品在线视频观看| 欧美色综合网站| 中文在线免费一区三区高中清不卡| 亚洲人一二三区| 国内精品伊人久久久久av一坑 | 成人做爰69片免费看网站| 欧美日韩国产一级二级| 中文子幕无线码一区tr| 日韩1区2区3区| av日韩在线网站| 欧美大片国产精品| 亚洲国产成人av网| 成人激情av网| 久久免费视频色| 丝袜美腿一区二区三区| av在线一区二区| 久久午夜免费电影| 日韩制服丝袜av| 91精品福利在线| 亚洲视频1区2区| 高清不卡在线观看| www激情久久| 日本亚洲免费观看| 日本精品视频一区二区| 国产欧美日韩麻豆91| 毛片av中文字幕一区二区| 欧美视频一区二区三区四区| 国产精品毛片大码女人| 久久国内精品视频| 欧美一级欧美一级在线播放| 亚洲欧美日韩在线播放| 国产精品久久久久影院色老大| 国内成人精品2018免费看| 欧美在线制服丝袜| 国产精品福利一区| 国产激情一区二区三区桃花岛亚洲| 337p亚洲精品色噜噜| 亚洲主播在线观看| 色香蕉成人二区免费| 欧美高清在线一区| 国产69精品久久777的优势| 精品国产99国产精品| 男男gaygay亚洲| 4438x亚洲最大成人网| 亚洲国产视频一区| 欧美剧情片在线观看| 五月婷婷色综合|