图:
程序:
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar code TAB[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchar code TAB1[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
void delay(uint xms)
{
uint i,j;
for(i=0;i<xms;i++)
for(j=0;j<110;j++);
}
void main()//8只数码管滚动显示多个数字
{
uint i,j;
P2=0x00;
while(1)
{
for(i=0;i<8;i++)
{
P0=0XFF;
P0=TAB;
P2=TAB1;
delay(5);
}
}
}
问题:
如果我把程序中的红色部分P0=0XFF;去掉,仿真结果如下图:
为什么?
补充:如果我延迟函数值为:delay(500)的时候,P0=0XFF去和不去,都可以使仿真中的8个数码管滚动显示0-7.
|