1. Proteus依旧采用P0.0~P0.7接8个LED的电路,程序上面做相应的调整。
2. 编程思路是从P0.0端口到P0.7端口点亮的LED灯赋值0,其余为1,LED灯点亮间隙用延时函数做延时,所以对应P0.0~P0.7端口依次赋值:
P0.0点亮 = 1111 1110B=0xFE;
P0.1点亮 = 1111 1101B=0xFD;
P0.2点亮 = 1111 1011B=0xFB;
P0.3点亮 = 1111 0111B=0xF7;
P0.4点亮 = 1110 1111B=0xEF;
P0.5点亮 = 1101 1111B=0xDF;
P0.6点亮 = 1011 1111B=0xBF;
P0.7点亮 = 0111 1111B=0x7F;
则按照此程序思路的程序:
#include <reg51.h>
void delay()
{
unsigned int i,j;
for (i=0;i<100;i++)
for (j=0;j<1000;j++);
}
void main()
{
while(1)
{
P0=0xFE;
delay();
P0=0xFD;
delay();
P0=0xFB;
delay();
P0=0xF7;
delay();
P0=0xEF;
delay();
P0=0xDF;
delay();
P0=0xBF;
delay();
P0=0x7F;
delay();
}
}
3. 将程序文件导入Proteus测试没有问题