微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 麻烦大神们看下这个程序,我用ISIS 7 Professional仿真为什么....

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

时间:10-02 整理:3721RD 点击:
#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灯共阳极的接法。

while语句的问题,把for语句提出来试试

      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;        }
        

楼上正确

那请问下如果我想加入闪烁这个环节应该加在哪里?这次仿真成功了,谢谢

仿真一开始全部灯都亮了一下很快,请问如何把这次亮消掉

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

谢谢各位大神...我改好了,感谢。新的程序
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char                                                  
#define uint unsigned int
uint i,f,d,k;
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()
{
      for(f=3;f>0;f--)
      for(i=0;i<10;i++)
         {
          wela=1;
          P0=table_l[i];   
          delay(250);
         }
      for(d=3;d>0;d--)
           {
           wela=1;
           P0=0x00;
           wela=0;
                   delay(500);
                   wela=1;
           P0=0xff;
           wela=0;
                   delay(500);
                   wela=1;
           P0=0x00;
           wela=0;
                   delay(500);      
                   }
                for(k=8;k>0;k--)
                {
                   wela=1;
           P0=0x00;
           wela=0;
                   delay(500);       
                }
       
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top