keil uVision4界面:
#include<reg51.h> //包含8051单片机寄存器定义的头文件
#include<intrins.h> //包含循环移位函数的头文件
#define uchar unsigned char
#define uint unsigned int
uchar code dis_code[]={0xf9,0xa4,0xb0,
0x99,0x92,0x82,
0xf8,0x80,0x90,
0x88,0xc0}; //共阳极数码管段码表
void delay(uint t) //延时函数
{
uchar i;
while(t--)
for(i=0;i<200;i++);
}
void main()
{
uchar i,j=0x80;
while(1)
{
for(i=0;i<8;i++)
{
//循环移位函数 _crol_(j,1)将j循环左移1位
j=_crol_(j,1);
P0=dis_code[i]; //P0口输出段码
P2=j; //P2口输出位控码
/延时,控制每位显示的时间
delay(300);
}
}
}
proteus仿真界面:
![](https://img-blog.csdnimg.cn/img_convert/92ffb6e5901f1a75ee4e53c581b66030.png)