该程序的原理是动态扫描,即每一时刻,只让一个数码管亮。让数码管从第一个到地第八个依次快速地显示,给人的视觉效果就是八个数码管同时显示。
/*程序让八个数码管显示数字0-7。*/
#include<reg52.h>
#include<intrins.h>包含对_crol_()函数的声明的头文件。
#define uchar unsigned char宏定义用以简写unsigned char
#define uint unsigned int
uchar temp,i;定义无字符型全局变量temp,i。
void delay(unsigned int z)//延时程序,大概延时1ms。
{
unsigned int x ,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07};//数码管真值数组,分别为0到7.
void main()
{
while(1)//大循环,让显示的状态保持
{
temp=0xfe;
for(i=0;i<8;i++)
{
P3=temp;让第一个数码管显示
P1=table[i];调用数组
temp=_crol_(temp,1); 每执行一条这个语句,temp的值左移一位
delay(4); 延时(4这个参数不知道管不管用,你实际操作的时候自己改一下)
}
i=0;
}
}
温馨提示:答案为网友推荐,仅供参考