📄 24c02.txt
字号:
#include<reg51.h>
#define uint unsigned int
#define uchar unsigned char
#define wda 0xa0
#define rda 0xa1
sbit key0=P2^0;
sbit key1=P2^1;
sbit key2=P2^2;
sbit scl=P0^0;
sbit sdl=P0^1;
void delay(uchar i)
{ uchar j;
while(i--)
{for(j=0;j<121;j++)
{;}
}
}
void start()
{sdl=1;
scl=1;
sdl=0;
scl=0;
}
void stop()
{
scl=0;
sdl=0;
scl=1;
sdl=1;
}
noask()
{
sdl=1;
scl=1;
scl=0;
}
bit testask()
{ bit EB;
sdl=1;
scl=1;
EB=sdl;
scl=0;
return(EB);
}
write8bit(uchar input)
{ uchar a;
for(a=0;a<8;a++)
{
sdl=(bit)(input&0x80);
scl=1;
scl=0;
input=input<<1;
}
}
write(uchar dc,uchar address)
{
start();
write8bit(wda);//发送器件地址
testask();
write8bit(address);//发送字节地址
testask();
write8bit(dc);//发送数据
testask();
stop();
delay(10);
}
read8bit()
{ uchar a,temp=0;
for(a=0;a<8;a++)
{ scl=1;
temp=temp<<1;
temp=temp|((uchar)sdl);
scl=0;
}
return(temp);
}
read(uchar address)
{ uchar date;
start();
write8bit(wda);
testask();
write8bit(address);
testask();
start();
write8bit(rda);
testask();
date=read8bit();
noask();
stop();
return(date);
}
uchar code table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void main(void)
{ uchar n1=0x12,n2=0x25,n3;
while(1)
{
if(!key0)
{ write(n1,0x01);
while(!key0);
delay(20);
}
if(!key1)
{ write(n2,0x01);
while(!key1);
delay(20);
}
if(!key2)
{ n3=read(0x01);
while(!key2);
delay(20);
}
P1=table[n3/10];
P3=table[n3%10];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -