📄 smg.c
字号:
#include <reg51.h>
#include<intrins.h>
#define uchar unsigned char
sbit SDA=P1^0;
sbit CLK=P1^1;
struct LED
{
uchar count;
uchar content[4];
};
struct LED state[4];
void delay()
{ unsigned int i;
for(i=0;i<1000;i++);
}
void init()
{
uchar k;
for(k=0;k<4;k++)
{
state[k].count=k+1;
}
state[0].content[0]=0xa1;
state[1].content[0]=0x86;
state[1].content[1]=0xa1;
state[2].content[0]=0x88;
state[2].content[1]=0x86;
state[2].content[2]=0xa1;
state[3].content[0]=0x8e;
state[3].content[1]=0x88;
state[3].content[2]=0x86;
state[3].content[3]=0xa1;
}
void send(uchar a)
{
uchar i;
for(i=0;i<8;i++)
{
if(_crol_(a,i)&0x80)
SDA=1;
else
SDA=0;
CLK=0;
CLK=1;
}
}
void display(struct LED a)
{ uchar i;
uchar shm=0xf7;
for(i=0;i<a.count;i++)
{
send(a.content[i]);
P1=shm;
shm=_crol_(shm,1);
delay();
}
}
void main()
{
init();
while(1)
{ uchar i,k;
for(i=0;i<4;i++)
{
for(k=0;k<20;k++)
display(state[i]);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -