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

? 歡迎來(lái)到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? mima.c

?? 4*4鍵盤輸入
?? C
字號(hào):
//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();
	}
}
	
				

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久综合视频| 中文字幕一区二区三中文字幕| 26uuu欧美| 麻豆精品在线播放| 欧美日韩在线播| 亚洲免费在线视频| 91免费视频网| 国产精品久久国产精麻豆99网站| 国产99久久久国产精品| 国产调教视频一区| 亚洲一区二区三区四区在线免费观看 | 亚洲综合色噜噜狠狠| 欧美第一区第二区| 蜜臀国产一区二区三区在线播放| 亚洲视频电影在线| 欧洲精品一区二区| 亚洲国产精品一区二区www在线| 精品视频在线免费| 色综合色狠狠天天综合色| 亚洲精品欧美二区三区中文字幕| 欧美在线观看你懂的| 大胆亚洲人体视频| 一区在线中文字幕| 欧美韩国日本一区| 91网站最新网址| 成人免费毛片高清视频| 国产在线不卡视频| 国产精品无圣光一区二区| 91黄视频在线观看| 蜜臀av性久久久久蜜臀aⅴ| 亚洲一区二区偷拍精品| 亚洲精品欧美激情| 亚洲欧美日韩一区二区| 国产精品传媒入口麻豆| 国产精品视频一区二区三区不卡| 久久久99精品久久| 国产日韩三级在线| 欧美肥妇bbw| 国产盗摄一区二区三区| 亚洲国产成人av好男人在线观看| 亚洲激情图片qvod| 一区二区视频在线看| 91精品国产综合久久久久久| 国产成人午夜电影网| 国产福利一区在线| youjizz国产精品| 日本午夜精品视频在线观看| 国产性色一区二区| 国产精品人成在线观看免费| 欧美韩日一区二区三区| 亚洲人成亚洲人成在线观看图片| 亚洲日本中文字幕区| 一区二区理论电影在线观看| 亚洲精品视频自拍| 亚洲风情在线资源站| 日韩av午夜在线观看| 免费欧美高清视频| 亚洲一区二区三区四区的 | 日韩毛片精品高清免费| 亚洲最大成人综合| 秋霞国产午夜精品免费视频| 韩国一区二区三区| 石原莉奈一区二区三区在线观看| 亚洲国产精品t66y| 亚洲美女精品一区| 日韩有码一区二区三区| 久久国产精品72免费观看| 性久久久久久久久| 亚洲综合免费观看高清完整版在线 | 亚洲猫色日本管| 亚洲电影激情视频网站| 久久国产精品99久久久久久老狼| 国产成人午夜精品影院观看视频| 在线观看网站黄不卡| 日韩欧美一区二区三区在线| 国产精品美女久久久久久久久久久| 一区二区三区在线视频观看58| 日日嗨av一区二区三区四区| 国产精品综合av一区二区国产馆| 美女网站一区二区| www.日本不卡| 日韩一级免费观看| 日韩一级大片在线观看| 中文字幕二三区不卡| 亚洲成av人综合在线观看| 国产在线观看一区二区| 欧洲人成人精品| 国产日韩精品视频一区| 视频在线在亚洲| 91蜜桃免费观看视频| 欧美不卡视频一区| 久久久五月婷婷| 亚洲国产精品精华液网站| 国产福利视频一区二区三区| 欧美在线观看视频一区二区三区| 久久久激情视频| 日韩黄色在线观看| 色综合久久88色综合天天免费| 精品国产三级电影在线观看| xvideos.蜜桃一区二区| 亚洲午夜视频在线| 成人18精品视频| 欧美在线free| 国产精品午夜久久| 久久成人久久爱| 欧美日韩精品欧美日韩精品一| 在线不卡欧美精品一区二区三区| 国产精品国产三级国产普通话蜜臀| 免费观看成人鲁鲁鲁鲁鲁视频| 91久久精品一区二区二区| 中文字幕va一区二区三区| 麻豆一区二区99久久久久| 在线欧美一区二区| 综合自拍亚洲综合图不卡区| 国产乱国产乱300精品| 91精品欧美综合在线观看最新| 一区二区在线观看视频在线观看| 成人av在线资源| 久久精品亚洲国产奇米99| 麻豆国产精品一区二区三区| 欧美日韩高清在线播放| 亚洲综合色丁香婷婷六月图片| 99re这里只有精品首页| 欧美一区二区三区思思人| 亚洲精品一区二区三区精华液 | 亚洲地区一二三色| 在线观看国产一区二区| 综合精品久久久| 99久久精品免费精品国产| 国产精品色哟哟网站| 国产99一区视频免费| 亚洲国产精品二十页| 成人综合日日夜夜| 欧美韩日一区二区三区四区| 成人国产电影网| 日韩一区中文字幕| 91丨porny丨最新| 亚洲视频在线一区观看| 96av麻豆蜜桃一区二区| 亚洲欧美国产毛片在线| 在线区一区二视频| 天天爽夜夜爽夜夜爽精品视频| 成人伦理片在线| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 夜夜嗨av一区二区三区网页| 欧美视频三区在线播放| 中文天堂在线一区| 99国产精品久久久久| 亚洲男人的天堂在线观看| 色综合天天综合网天天看片| 日韩欧美国产一区在线观看| 黄色资源网久久资源365| 国产色婷婷亚洲99精品小说| 97se亚洲国产综合自在线观| 亚洲精品五月天| 日韩视频一区二区三区在线播放 | 久久成人免费网| 国产精品免费视频网站| 色综合久久综合网欧美综合网 | 成人精品小蝌蚪| 一区二区三区美女视频| 欧美日本高清视频在线观看| 久久精品国产99| 中文成人综合网| 欧美日韩午夜影院| 精品亚洲aⅴ乱码一区二区三区| 欧美日韩精品免费观看视频| 老司机精品视频线观看86 | 亚洲综合丁香婷婷六月香| 正在播放一区二区| 国产麻豆精品在线| 亚洲精品一二三| 精品少妇一区二区| 99热99精品| 青青国产91久久久久久| 国产精品三级电影| 4438成人网| av中文字幕不卡| 亚洲h动漫在线| 中文字幕精品一区二区精品绿巨人| 色美美综合视频| 精品一区二区三区影院在线午夜 | 日韩欧美国产一区在线观看| 99视频热这里只有精品免费| 欧美a级理论片| 日韩码欧中文字| 亚洲精品在线观| 欧美日韩亚洲国产综合| 国产99久久久国产精品免费看| 午夜伦欧美伦电影理论片| 中文字幕欧美三区| 日韩视频在线永久播放| 色婷婷久久久久swag精品| 九一九一国产精品| 亚洲综合精品自拍| 日韩理论在线观看| 国产午夜一区二区三区| 制服丝袜亚洲色图| 欧美日韩精品一区二区三区| 9i看片成人免费高清|