麻烦大神们看下这个程序,我用ISIS 7 Professional仿真为什么....

2019-07-16 03:40发布

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char                                                  
#define uint unsigned int
uint i,f;
sbit wela=P2^0;                                                  
void delay(uint z)                                                                 
{                                                                                               
        uint x,y;                                                                  
        for(x=z;x>0;x--)                                                                               
                for(y=110;y>0;y--);                                                                 
}                                                                               
uchar code table_l[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,0xff};
void main()
{
        while(1)
        {
        for(f=3;f>0;f--)
        {       
                for(i=0;i<10;i++)
                {
                  wela=1;
                  P0=table_l[i];   
                  delay(250);
                }
        }
           wela=1;
           P0=0x00;
           wela=0;        }
       
}


我想做的效果是自动循环走3次,然后长亮,为什么他会无限循环。锁存器用的是573,led灯共阳极的接法。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
zhanwuplg
1楼-- · 2019-07-16 04:05
while语句的问题,把for语句提出来试试
lovezjf234
2楼-- · 2019-07-16 04:31
      for(f=3;f>0;f--)

   for(i=0;i<10;i++)
                {
                  wela=1;
                  P0=table_l[i];   
                  delay(250);
                }
        
while(1)
        {
                  wela=1;
           P0=0x00;
           wela=0;        }
        
zhanwuplg
3楼-- · 2019-07-16 06:09
楼上正确
452451509
4楼-- · 2019-07-16 07:20
那请问下如果我想加入闪烁这个环节应该加在哪里?这次仿真成功了,谢谢
452451509
5楼-- · 2019-07-16 11:00
 精彩回答 2  元偷偷看……
452451509
6楼-- · 2019-07-16 13:51
lovezjf234 发表于 2012-11-19 15:42
for(f=3;f>0;f--)

   for(i=0;i

感谢,那请问下如果我想加入闪烁这个环节应该加在哪里?这次仿真成功了,谢谢。
仿真一开始全部灯都亮了一下很快,请问如何把这次亮消掉。按复位键它还是按程序走,但是一开始会短暂的闪烁下,是单片机默认一开始给一次低电平导致的吗,谢谢

一周热门 更多>