📄 huangjian8563main.c
字号:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
code uchar led[]={0x11,0xd7,0x32,0x92,0xd4,0x18,0x98,0xd3,0x10,0x90,0xfe,0xff};
uchar d[]={0,0x20,0,0,0,0,0};
uchar *p=d;
sbit sda_8563=P0^7;
sbit scl_8563=P0^6;
sbit sda_164=P0^2;
sbit scl_164=P0^3;
delay(uchar i)
{
while(--i);
}
void start()
{
sda_8563=1;
scl_8563=1;
delay(2);
sda_8563=0;
delay(2);
scl_8563=0;
}
void stop()
{ sda_8563=0;
scl_8563=1;
delay(2);
sda_8563=1;
}
void wrbyte(uchar dat)
{
int i;
scl_8563=0;
for(i=0;i<8;i++)
{ if(dat&0x80)sda_8563=1; else sda_8563=0;
scl_8563=1;
delay(2);
scl_8563=0;
dat<<=1;
}
sda_8563=1;
scl_8563=1;
scl_8563=0;
}
uchar rebyte()
{ int i;
uchar a=0;
sda_8563=1;
for(i=0;i<8;i++)
{ scl_8563=1;
a<<=1;
a|=sda_8563;
scl_8563=0;
delay(2);
}
sda_8563=1;
scl_8563=1;
scl_8563=0;
return(a);
}
void refrom8563()
{ int i;
for(i=0;i<3;i++)
{ start();
wrbyte(0xa2);
wrbyte(0xa2+i);
start();
wrbyte(0xa3);
switch(i)
{ case 0:*(p+i)=(rebyte())&0x7f;break;
case 1:*(p+i)=(rebyte())&0x7f;break;
case 2:*(p+i)=(rebyte())&0x3f;break;
default:break;
}
stop();
}
}
void wrto8563()
{int i;
wrbyte(0xa2);
wrbyte(0xa2+i);
wrbyte(d[i]);
stop();
}
shift(uchar t)
{ int i,dat;
dat=d[t];
scl_164=0;
for(i=0;i<8;i++)
{ if(dat&0x80)sda_164=1;else sda_164=0;
scl_164=1;
scl_164=0;
dat<<=1;
}
}
void display()
{ int i;
for(i=0;i<3;i++)
{
shift(0xff);
shift(*(p+i)&0x0f);
shift((*(p+i)&0xf0)>>4 );
}
}
/* main()
{
wrto8563();
while(1)
{ int y;
refrom8563();
display();
for(y=0;y<200;y++);
delay(0xff);
}
}
*/
main()
{
wrto8563();
while(1)
{
int y;
refrom8563();
display();
for(y=0;y<1000;y++)
delay(200);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -