weineixiong 发表于 2011-7-30 18:39:52

89c51的呼吸流水灯(10个流水灯)

发一个关于10个流水灯的呼吸灯程序
晶振11.0592Mhz,用Keil编译的
#include<reg51.h>
/*-------------------------IO口定义----------------------------*/
sbit LED0=P0^0;
sbit LED1=P0^1;
sbit LED2=P0^2;
sbit LED3=P0^3;
sbit LED4=P0^4;
sbit LED5=P0^5;
sbit LED6=P0^6;
sbit LED7=P0^7;
sbit LED8=P2^0;
sbit LED9=P2^1;

//延时
void delay(unsigned int t)
{
while(--t);
}


//主函数
void main (void)
{
        unsigned int CYCLE=250,PWM_LOW=0;
        while (1)
        {
// LED0
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED0=0;
                   delay(PWM_LOW);
                  LED0=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED0=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED0=0;
                  delay(PWM_LOW);
                  LED0=1;
                   delay(CYCLE-PWM_LOW);
                }


//LED1
                LED1=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED1=0;
                   delay(PWM_LOW);
                  LED1=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED1=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED1=0;
                  delay(PWM_LOW);
                  LED1=1;
                   delay(CYCLE-PWM_LOW);
                }


// LED2
                LED2=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED2=0;
                   delay(PWM_LOW);
                  LED2=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED2=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED2=0;
                  delay(PWM_LOW);
                  LED2=1;
                   delay(CYCLE-PWM_LOW);
                }

// LED3
                LED3=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED3=0;
                   delay(PWM_LOW);
                  LED3=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED3=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED3=0;
                  delay(PWM_LOW);
                  LED3=1;
                   delay(CYCLE-PWM_LOW);
                }

// LED4
                LED4=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED4=0;
                   delay(PWM_LOW);
                  LED4=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED4=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED4=0;
                  delay(PWM_LOW);
                  LED4=1;
                   delay(CYCLE-PWM_LOW);
                }

// LED5
                LED5=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED5=0;
                   delay(PWM_LOW);
                  LED5=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED5=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED5=0;
                  delay(PWM_LOW);
                  LED5=1;
                   delay(CYCLE-PWM_LOW);
                }

// LED6
                LED6=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED6=0;
                   delay(PWM_LOW);
                  LED6=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED6=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED6=0;
                  delay(PWM_LOW);
                  LED6=1;
                   delay(CYCLE-PWM_LOW);
                }

// LED7
                LED7=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED7=0;
                   delay(PWM_LOW);
                  LED7=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED7=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED7=0;
                  delay(PWM_LOW);
                  LED7=1;
                   delay(CYCLE-PWM_LOW);
                }

//LED8
                LED8=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED8=0;
                   delay(PWM_LOW);
                  LED8=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED8=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED8=0;
                  delay(PWM_LOW);
                  LED8=1;
                   delay(CYCLE-PWM_LOW);
                }

// LED9
                LED9=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED9=0;
                   delay(PWM_LOW);
                  LED9=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED9=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED9=0;
                  delay(PWM_LOW);
                  LED9=1;
                   delay(CYCLE-PWM_LOW);
                }

//LED8
                LED8=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED8=0;
                   delay(PWM_LOW);
                  LED8=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED8=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED8=0;
                  delay(PWM_LOW);
                  LED8=1;
                   delay(CYCLE-PWM_LOW);
                }

// LED7
                LED7=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED7=0;
                   delay(PWM_LOW);
                  LED7=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED7=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED7=0;
                  delay(PWM_LOW);
                  LED7=1;
                   delay(CYCLE-PWM_LOW);
                }

// LED6
                LED6=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED6=0;
                   delay(PWM_LOW);
                  LED6=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED6=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED6=0;
                  delay(PWM_LOW);
                  LED6=1;
                   delay(CYCLE-PWM_LOW);
                }
// LED5
                LED5=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED5=0;
                   delay(PWM_LOW);
                  LED5=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED5=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED5=0;
                  delay(PWM_LOW);
                  LED5=1;
                   delay(CYCLE-PWM_LOW);
                }


// LED4
                LED4=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED4=0;
                   delay(PWM_LOW);
                  LED4=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED4=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED4=0;
                  delay(PWM_LOW);
                  LED4=1;
                   delay(CYCLE-PWM_LOW);
                }

// LED3
                LED3=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED3=0;
                   delay(PWM_LOW);
                  LED3=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED3=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED3=0;
                  delay(PWM_LOW);
                  LED3=1;
                   delay(CYCLE-PWM_LOW);
                }

// LED2
                LED2=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED2=0;
                   delay(PWM_LOW);
                  LED2=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED2=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED2=0;
                  delay(PWM_LOW);
                  LED2=1;
                   delay(CYCLE-PWM_LOW);
                }

//LED1
                LED1=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED1=0;
                   delay(PWM_LOW);
                  LED1=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED1=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED1=0;
                  delay(PWM_LOW);
                  LED1=1;
                   delay(CYCLE-PWM_LOW);
                }
               
//LED0               
                LED0=1;
                delay(1000); //可以看到熄灭的过程
                for(PWM_LOW=1;PWM_LOW<CYCLE;PWM_LOW++)
                {
                  LED0=0;
                   delay(PWM_LOW);
                  LED0=1;
                   delay(CYCLE-PWM_LOW);
       
                }
                //与逐渐变亮相反的过程
                LED0=0;
                for(PWM_LOW=CYCLE-1;PWM_LOW>0;PWM_LOW--)
                {//与逐渐变亮相反的过程
                  LED0=0;
                  delay(PWM_LOW);
                  LED0=1;
                   delay(CYCLE-PWM_LOW);
                }
        }       
}

weineixiong 发表于 2011-7-30 18:40:26

长了点,凑合用吧

power3kv 发表于 2011-8-2 09:37:00

呵呵,一步一个脚印!

hzc171 发表于 2011-8-2 20:40:52

mark一下慢慢学习

liuxiu 发表于 2011-8-3 11:39:22

长了点,期望有所改进!

RScs 发表于 2011-8-3 16:52:54

1

langbaiyue 发表于 2011-8-3 17:51:32

好的

17535291 发表于 2011-8-3 22:04:44

回复【楼主位】weineixiong
-----------------------------------------------------------------------

lz v5

tonyone 发表于 2011-8-3 23:16:15

mark

jy877863 发表于 2011-8-4 23:12:20

好的

Ye_gan 发表于 2011-8-5 18:42:24

学习

Green_Sheep 发表于 2011-8-5 18:45:42

学习

smfox10 发表于 2011-8-6 07:37:17

适合新手学习,感谢分享

SYDZ 发表于 2011-9-19 18:13:38

正在学习,顶一个

LINER 发表于 2011-10-18 17:06:06

什么原理

sdf159372008 发表于 2011-10-18 20:34:51

mark
建议加好注释以便新人~

Zlb15 发表于 2011-10-18 22:31:38

不错,谢谢,学习一下。

ioioi 发表于 2011-10-19 14:16:09

这个够详细了,现在看来很长很长。。可以考虑精简

yxf861284 发表于 2011-10-20 09:20:00

我的复制进去怎么都有两个警告啊

daffee 发表于 2011-10-22 17:20:24

新人学习了

zhanlong88 发表于 2011-11-12 22:01:05

学习,mark。

LEEP10 发表于 2011-11-17 11:10:30

学习。。。。

hlfqzy 发表于 2012-8-3 11:55:36

正在学习,顶一个

luckysamsang 发表于 2012-8-5 22:35:16

{:lol:}长有长的好处,一看就明白,呵呵
请论坛高手,帮我们改改,精简下,呵呵

dapang1221 发表于 2012-8-5 22:51:05

是用的模拟输出吗?通过程序调节引脚电压?谢谢

dapang1221 发表于 2012-8-5 23:06:22

led=1;while(led<>10000000){breath(led<<1);delay()}
不知道行不行。。

kjyhaohbv 发表于 2012-9-2 15:55:30

正在学习,顶一个
页: [1]
查看完整版本: 89c51的呼吸流水灯(10个流水灯)