找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1022|回复: 3
收起左侧

单片机流水灯结束呼吸灯程序,用了3个延时,报错 应该怎么修改

[复制链接]
ID:1052714 发表于 2022-12-31 20:43 | 显示全部楼层 |阅读模式
单片机源程序如下:
#include <REGX52.H>
sbit  BEEP=P3^6;
sbit LED=P1^1;
sbit LED1=P1^3;
sbit LED2=P1^5;
sbit LED3=P1^7;
void Delay(unsigned int t)
{
    while(t--);
}
void delay(unsigned int ms)

{

unsigned int m,j;

for(m=0;m<ms;m++)

for(j=0;j<120;j++);

}

void main()
{                 

    unsigned char Time,i;

  delay(500);
  P1=0xfe;
  delay(500);
  P1=0xfc;
  delay(500);
  P1=0xf8;
  delay(500);
  P1=0xf0;
  delay(500);
  P1=0xe0;
  delay(500);
  P1=0xc0;
  delay(500);
  P1=0x80;
  delay(500);
  P1=0x00;
  P1=0x7f;
  delay(500);
  P1=0x3f;
  delay(500);
  P1=0x1f;
  delay(500);
  P1=0x0f;
  delay(500);
  P1=0x07;
  delay(500);
  P1=0x03;
  delay(500);
  P1=0x01;
  delay(500);
  P1=0x00;
  delay(500);
  P1=0xff;



  while(1)
    {

        for(Time=0;Time<50;Time++)        //改变亮灭时间,由暗到亮
        {
            for(i=0;i<10;i++)            //计次延时
            {
                LED=0;                    //LED亮
                Delay(Time);            //延时Time
                LED=1;                    //LED灭
                Delay(50-Time);        //延时100-Time
                   }
                   for(i=0;i<10;i++)
                   {
                           
                LED1=0;                    //LED亮
                Delay(Time);            //延时Time
                LED1=1;                    //LED灭
                Delay(50-Time);        //延时100-Time
                   }
                        for(i=0;i<10;i++)
                        {
                                LED2=0;                    //LED亮
                Delay(Time);            //延时Time
                LED2=1;                    //LED灭
                Delay(50-Time);        //延时100-Time
                        }        
                          for(i=0;i<10;i++)
                          {
                           LED3=0;                    //LED亮
                Delay(Time);            //延时Time
                LED3=1;                    //LED灭
                Delay(50-Time);        //延时100-Time
                          }
                                
            }
        }
        for(Time=50;Time>0;Time--)        //改变亮灭时间,由亮到暗
        {
            for(i=0;i<10;i++)            //计次延时
            {

                                LED=0;                    //LED亮
                Delay(Time);            //延时Time
                LED=1;                    //LED灭
                Delay(50-Time);        //延时100-Time
                   }
                   for(i=0;i<10;i++)
                   {
                                           LED1=0;                    //LED亮
                Delay(Time);            //延时Time
                LED1=1;                    //LED灭
                Delay(50-Time);        //延时100-Time
                   }
                        
                   for(i=0;i<10;i++)
                   {
                                            LED2=0;                    //LED亮
                Delay(Time);            //延时Time
                LED2=1;                    //LED灭
                Delay(50-Time);        //延时100-Time
                   }
                        
                         for(i=0;i<10;i++)
                         {
                                          LED3=0;                    //LED亮
                Delay(Time);            //延时Time
                LED3=1;                    //LED灭
                Delay(50-Time);        //延时100-Time
                         }
                        
            }
        }
回复

使用道具 举报

ID:1003276 发表于 2022-12-31 21:18 | 显示全部楼层
在延时子函数void前加上static
回复

使用道具 举报

ID:161164 发表于 2022-12-31 22:31 | 显示全部楼层
報了啥错?
回复

使用道具 举报

ID:68189 发表于 2022-12-31 22:55 | 显示全部楼层
void Delay(unsigned int t)
void delay(unsigned int ms)

不要用相同的,虽然首字母大小写不同!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表