单片机案例开发——电子密码锁

#include <STCREG.H>
#define uint unsigned int
#define	uchar unsigned char
#define pwdLEN 10                   
#define STLEN 3                    
sbit l1 = P3^5;						
sbit bump = P3^6;					
sbit relay = P3^7;				
sbit lcden = P1^3;					
sbit lcdrw = P1^2;
sbit lcdrs = P1^1;
sbit sda = P1^6;				
sbit scl = P1^7;				

uchar code xianshi0[] = " input  password:";
uchar code xianshi1[] = " Please come in!";	
uchar code xianshi2[] = "*";				
uchar code xianshi3[] = " you are thief!";
uchar code xianshi4[] = " new  password:";	
uchar code xianshi5[] = " alter succeed!";	
uchar code xianshi6[] = "  first error!";
uchar code xianshi7[] = "  second error!";	
uchar code xianshi8[] = "  third error!";	
uchar code xianshi9[] = "  alter fail!!";	
uchar table[pwdLEN];					
uchar table1[12] ={0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x01,0x02,0x03};				
uchar mima[pwdLEN];					
uchar num, num1, num2, num3, etimes, fanhui, kai;
bit alterflog, cpflog, suoflog;	
void keyscan();						
void init();
void keydeal15();
void keydeal16();					

void delay_xs(uint x)
{
	uint i, j;
	for(i = x; i > 0; i--)
		for(j = 123; j > 0; j--);
}

void writecom(uchar com)			
{
	P0 = com;
	lcdrs = 0;
	lcdrw = 0;
	lcden = 0;
	lcden = 1;
}

void writedate(uchar date)		
{
	P0 = date;
	lcdrs = 1;
	lcdrw = 0;
	lcden = 0;
	lcden = 1;
}


void delay()		
{;;}

void start()					
{	
	sda = 1;
	delay();
	scl = 1;
	delay();
	sda = 0;
	delay();
}

void stop()						
{
	sda = 0;
	delay();
	scl = 1;
	delay();
	sda = 1;
	delay();
}

void respons()						
{
	uchar i;
	scl=1;
	delay();
	while((sda == 1) && (i < 250))
		i++;
	scl = 0;
	delay();
}

void write_byte(uchar date)			
{
	uchar i, temp;
	temp = date;

	for(i = 0; i < 8; i++)
	{
		temp = temp << 1;
		scl = 0;
		delay();
		sda = CY;
		delay();
		scl = 1;
		delay();
	}
	scl = 0;
	delay();
	sda = 1;
	delay();
}

uchar read_byte()				
{
	uchar i, k;
	scl = 0;
	delay();
	sda = 1;
	delay();
	for(i = 0; i < 8; i++)
	{
		scl = 1;
		delay();	
		k = (k <<1 ) | sda;
		scl = 0;
		delay();	
	}
	return k;
}

void 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值