新手遇到动态数码管显示问题求解答
#define p0du P0 //选段口
#define p2we P2 //选位口
void Didisplay(); //动态显示函数
unsigned char code we[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};// 位数组
unsigned char code du[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //段数组
unsigned char display[8];
void main ()
{
unsigned int i;
for(i=0;i<8;i++)
{
display[i]=du[i];
}
while(1)
{
Didisplay();
}
}
void Didisplay()
{
unsigned char i;
unsigned int j;
for (i=0;i<8;i++)
{
p2we=we[i];
p0du=display[i]; // 发送段码
j=10; // 扫描时间
while(j--);
p0du=0x00; //消影
}
}
这个程序运行的过程是怎样的,,尤其帮我解释一下动态显示函数部分和while(1)中循环的部分。麻烦大家乐
为什么发了这么久。没有大神肯教一下呢
大神么。路过的。顺便帮我看看
加qq1209362668.。
自己写的
效果是延时啊!
void main ()
{
unsigned int i;//定义两个变量
for(i=0;i<8;i++)//循环语句
{
display[i]=du[i];循环9次,依次把du[0-9]中的元素赋值给display[0-9]
}
while(1)//大循环
{
Didisplay(); 循环显示display[0-9]的元素
}
}
谢谢了