proteus的仿真行不? 只是ABCD的 其他的你可以自己弄一下 这样自己才能得到提高
#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
#define ul unsigned long
uchar code table[]=
{
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0
0x80,0xe0,0x9c,0x13,0x9c,0xe0,0x80,0x00, //A
0x00,0x81,0xff,0x89,0x89,0x89,0x76,0x00, //B
0x00,0x3c,0x42,0x81,0x81,0x81,0x67,0x00, //C
0x00,0x81,0xff,0x81,0x81,0x42,0x3c,0x00, //D
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //0
};
uchar i,temp,num,j;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void init()
{
TMOD=0x01;//方式1,16位模式,不会自动清零。
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=1;
EA=1;
ET0=1;
num=0;
j=0;
}
void main(void)
{
init();
while(1)
{
P2=0;
temp=0xfe;
for(i=0;i<8;i++)
{
P3=temp;
P2=table[i+j];
delay(3);
temp=0x1|(temp<<1);
}
}
}
void timer0() interrupt 1
{
num++;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(num==10)
{
num=0;
j++;
if(j==40)
j=0;
}
}
2023-08-24 广告