00 01
10 11
将00与01的行控制线一对一连接,10和11的行控制线一对一连接;
00与10的列控制线一对一连接,01和11的列控制线一对一连接。
最后,00和01的16根列控制线就是16x16的列控制线;
00和10的行控制线就是16x16的行控制线。
#include"at89x51.h"unsigned char code led[]={0x10,0x04,0x10,0x03,0xD0,
0x00,0xFF,0xFF,0x90,0x00,
0x18,0x1D,0xF7,0x13,0x14,
0x11,0x54,0x15,0x94,0x19,
0x14,0x51,0x14,0x91,0xF6,
0x7F,0x04,0x11,0x00,0x01,
0x00,0x00,
0x04,0x04,0x04,0x02,0x04,
0x01,0xC4,0xFF,0x3F,0x00,
0x04,0x20,0x04,0x10,0x04,
0x08,0xE4,0x3F,0x04,0x42,
0x1F,0x41,0x84,0x40,0xC4,
0x40,0x06,0x40,0x04,0x70,
0x00,0x00}
unsigned char i=0,j=0,time_50ms=0
delay()
main()
{
TMOD=0X01
TH0=0X3C
TL0=0XB0
TR0=1
ET0=1
EA=1
while(1)
{
P1=i
P2=led[32*j+2*i]
P3=led[32*j+2*i+1]
delay()
i++
if(i==16)
i=0
if(time_50ms==20)
{
time_50ms=0
j++
if(j==2)
j=0
}
}
}
int_T0() interrupt 1
{
TH0=0X3C
TL0=0XB0
time_50ms++
}
delay()
{
unsigned char t1
for(t1=0t1<100t1++)
}
我估计 是z的缘故 你的z是全局变量(在前面定义) 然后 你后面在delay函数里给z赋了值 所以 在家了while(1)之后 不停地循环 z值已经不是 原始值0我估计是这样的 你重新定义个变量 理论上 写程序的时候 最好不要有变量名冲突的情况啊
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)