用4位共阴型数码管动态显示“1234”,
#include "reg51.h"
unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
void IN_Init()
{
P1=0x00;
P2=0x00;
}
void Delay(unsigned int i)
{
unsigned int j;
for(;i>0;i--)
for(j=0;j<100;j++);
}
void Disp1234()
{
unsigned int i;
unsigned int temp=0x6e;
for(i=1;i<5;i++)
{
P2=temp;
P1=table[i];
Delay(20);
temp=temp<<1;
}
}
void main()
{
IO_Init();
while(1)
{
Disp1234();
}
}
那个table里面的数值是怎么确定的?temp=temp<<1有什么作用?
呃,这个我知道,我问的是table里面的值是怎么得到的,比如说table[0]是0x3f,这个0x3f是怎么得来的,是随意写的,还是硬件规定的,还是怎样。。。
追答规定的
追问呃,不知道是你没听清楚,还是我说不明白:
我指的是开始那个全局数组unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
,在程序运行前就确定了,里面的11个16进制数是怎样得到的