#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit smg1=P2^0;
sbit smg2=P2^1;
sbit smg3=P2^2;
sbit smg4=P2^3;
sbit sda=P2^5;
sbit scl=P2^4;
sbit SOUNDER=P1^7;
uchar a;
uint n=0,m=0,js,error=0;
uchar key;
uchar mima[]={0x00,0x00,0x00,0x00};
uchar e_mima[]={0x01,0x02,0x03,0x04};
uchar new_mima[]={0x01,0x02,0x03,0x04};
uchar code dis[]= //0~9,A~F的共陰顯示代碼
{0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71
};
uchar code tab[]= //矩陣鍵盤按鍵位置碼
{
0x77,0xb7,0xd7,0xe7,
0x7b,0xbb,0xdb,0xeb,
0x7d,0xbd,0xdd,0xed,
0x7e,0xbe,0xde,0xee
};
void init();
void change_mima();
void delay02()
{ ;; }
void start() //開始信號
{
sda=1;
delay02();
scl=1;
delay02();
sda=0;
delay02();
}
void stop() //停止
{
sda=0;
delay02();
scl=1;
delay02();
sda=1;
delay02();
}
void respons() //應答
{
uchar i;
scl=1;
delay02();
while((sda==1)&&(i<250))i++;
scl=0;
delay02();
}
void at2402init()
{
sda=1;
delay02();
scl=1;
delay02();
}
void write_byte(uchar date)
{
uchar i,temp;
temp=date;
for(i=0;i<8;i++)
{
temp=temp<<1;
scl=0;
delay02();
sda=CY;
delay02();
scl=1;
delay02();
// scl=0;
// delay();
}
scl=0;
delay02();
sda=1;
delay02();
}
uchar read_byte()
{
uchar i,k;
scl=0;
delay02();
sda=1;
delay02();
for(i=0;i<8;i++)
{
scl=1;
delay02();
k=(k<<1)|sda;
scl=0;
delay02();
}
return k;
}
void delay11(uchar x)
{
uchar a,b;
for(a=x;a>0;a--)
for(b=100;b>0;b--);
}
void write_add(uchar address,uchar date)
{
start();
write_byte(0xa0);
respons();
write_byte(address);
respons();
write_byte(date);
respons();
stop();
}
uchar read_add(uchar address)
{
uchar date;
start();
write_byte(0xa0);
respons();
write_byte(address);
respons();
start();
write_byte(0xa1);
respons();
date=read_byte();
stop();
re |