新人求救,可以帮我解释下这个代码嘛
proteus吧
全部回复
仅看楼主
level 2
樱花刧º 楼主
#define uchar unsigned char
#define uint unsigned int
#define data_point P0
sbit cs1=P2^1;
sbit cs2=P2^0;
sbit sda=P2^6;
sbit sclk=P2^7;
uchar code hz[]={
0x00,0x00,0x00,0x01,0x00,0x02,0x00,0x04,
0x00,0x08,0x00,0x30,0x01,0xC0,0xFE,0x00,
0x01,0xC0,0x00,0x30,0x00,0x08,0x00,0x04,
0x00,0x02,0x00,0x03,0x00,0x02,0x00,0x00,
0x00,0x00,0x1F,0xFE,0x30,0x84,0xD0,0x84,
0x10,0x84,0x10,0x84,0x3F,0xFE,0x14,0x00,
0x09,0x00,0xF0,0x80,0x10,0xC2,0x10,0x01,
0x10,0x02,0x3F,0xFC,0x10,0x00,0x00,0x00,
0x00,0x82,0x03,0x02,0x0C,0x42,0x78,0x42,
0x08,0x42,0x08,0x42,0x08,0x42,0xFF,0xFE,
0x08,0x42,0x08,0x42,0x08,0x42,0x08,0xC2,
0x18,0x42,0x08,0x06,0x00,0x02,0x00,0x00,
};
uint p;
void init()
{
unsigned char i;
data_point=0;
cs1=1;cs1=0;
cs2=1;cs2=0;
sda=1;
for(i=0;i<32;i++)
{
sclk=1;
sclk=0;
}
}
void display()
{
uint i,j,k;
k=p<<1;
data_point=0;
cs1=1;cs1=0;
cs2=1;cs2=0;
sda=0;
sclk=1; sclk=0;
sda=1;
for(i=0;i<16;i++)
{
data_point=hz[k];
cs1=1; cs1=0;
k++;
data_point=hz[k];
cs2=1; cs2=0;
k++;
if(k>=sizeof(hz))k=0;
for(j=100;j>0;j--);
data_point=0;
cs1=1;cs1=0;
cs2=1;cs2=0;
sclk=1;sclk=0;
}
}
void main(void)
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
ET0=1;
EA=1;
p=0;
TR0=1;
init();
while(1)
{
display();
}
}
void timer0()interrupt 1
{
static uchar t=0;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
t++;
if(t==10)
{
t=0;
p++;
if(p>=sizeof(hz)/2)p=0;
}
}
2019年06月10日 09点06分 1
1