我没有板子,看书许多细节里的东西看不太懂,就编了这么个小程序,大家帮忙看看这个程序有没有问题,要是我仅把此程序下载到板子里,能点亮数码管吗?请给指点一下吧
用S3C2440的GPC0~7连了一个6位的共阴极数码管的8个断码,用GPC8~13接6个位码,做动态显示timebuf[]里的数,
#define rGPCCON (*(volatile unsigned *)0x56000020)
#define rGPCDAT (*(volatile unsigned *)0x56000024)
#define rGPCUP (*(volatile unsigned *)0x56000028)
uchar dispcode[]={};//共阴极断码表
uchar timebuf[]={12,33,57};//用来显示的三个数
uchar chai[]={0,0,0,0,0,0};//将上述三个数拆成个位、十位的形式,放在这里
/*延时函数*/
void delay1ms (void)
{
uchar j;
for(j=250;j>0;j--)
{;}
}
/*拆送显示缓冲区*/
void chai()
{
uchar j,i;
for(i=0;i<3;i++)
{
display_data[j]=timebuf[i]/10;
j++;
display_data[j]=timebuf[i]%10;
j++;
}
}
/*动态显示*/
void display()
{ uchar i,A=0x0100;//A是位码,此时的值是点亮第一个数码管
for(i=0;i<6;i++)
{
rGPCDAT=dispcode[display_data[i]|A];//送断码和位码
A<<1;//位码移位
delay1ms();
}
}
void main()
{
rGPCCON=0x55555555;//GPCX设置为输出
while(1)
{
display();
}
} |