单片机数码管问题,下面程序中,我没有指定循环,为什么数码管一直循环显示呀。
#include<reg52.h>#defineucharunsignedchar#defineuintunsignedintucharcodetable[]={0xc0...
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99};
void Delay(uint num);
void main(void)
{
uchar i;
for(i = 0; i < 5; i++)
{
P1 = table[i];
Delay(200);
}
}
void Delay(uint num)
{
uint i,j;
for(i = 0; i <= num; i++)
for(j = 0; j <= 1000; j++);
}
问题点写错了,是我没指定死循环,为什么数码管一直循环显示 展开
#define uchar unsigned char
#define uint unsigned int
uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99};
void Delay(uint num);
void main(void)
{
uchar i;
for(i = 0; i < 5; i++)
{
P1 = table[i];
Delay(200);
}
}
void Delay(uint num)
{
uint i,j;
for(i = 0; i <= num; i++)
for(j = 0; j <= 1000; j++);
}
问题点写错了,是我没指定死循环,为什么数码管一直循环显示 展开
3个回答
展开全部
这个本来就是一个循环,显示 0 1 2 3 4 ,最又 重复
for(i = 0; i < 5; i++)
{
P1 = table[i]; // 这里 i = 0 ~ 4 、显示 0 ~ 4 , 5 结束循环,又重新开始。
Delay(200);
}
for(i = 0; i < 5; i++)
{
P1 = table[i]; // 这里 i = 0 ~ 4 、显示 0 ~ 4 , 5 结束循环,又重新开始。
Delay(200);
}
追问
嗯,对呀,但显示5次后,应该结束呀....
追答
你这个程序执行完后,又会重新开始的。
Delay(200);
} // 你在这后面 加上 进入 空循环就结束了
while(1)
{ }
展开全部
C程序的主函数都应该有一个while(1);不知道你的为何特殊呢???
追问
是个意外,下到板子的时候,发现数码管循环显示,挺纳闷的,想知道为什么....
追答
看看汇编才知道的,是不是C编译器已经自动弄成死循环了???
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询