用for语句使数码管动态显示

如题所述

数码管动态显示程序,本就应该用for循环语句写,那些一位一位地显示的程序,太不规范啦,程序显得很长,很乱的。

如下的仿真图,是8位数码管,就得用for循环语句写,程序很简单,很简洁。

程序如下

#include<reg52.h>

#include<intrins.h>

unsigned char code ledtab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,

0x77,0x7c,0x39,0x5e,0x79,0x71};//共阴数码管段码表

unsigned char buffer[]={1,2,3,4,5,6,7,8};

void delay()

{

unsigned int j;

for(j=400;j>0;j--);

}

void display()

{

unsigned char i,ledbit=0xfe;

for(i=0;i<8;i++)

{

P2=ledbit;  //先输出位码

P0=ledtab[buffer[i]];//后输出段码

ledbit=_crol_(ledbit,1);

delay();

}

}

void main()

{

while(1)

{

display();

}

}

温馨提示:答案为网友推荐,仅供参考
相似回答