搜索
bottom↓
回复: 30

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

[复制链接]

出0入0汤圆

发表于 2011-7-30 18:39:52 | 显示全部楼层 |阅读模式
发一个关于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);
                }
        }       
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2011-7-30 18:40:26 | 显示全部楼层
长了点,凑合用吧

出0入0汤圆

发表于 2011-8-2 09:37:00 | 显示全部楼层
呵呵,一步一个脚印!

出0入0汤圆

发表于 2011-8-2 20:40:52 | 显示全部楼层
mark一下  慢慢学习

出0入0汤圆

发表于 2011-8-3 11:39:22 | 显示全部楼层
长了点,期望有所改进!

出0入0汤圆

发表于 2011-8-3 16:52:54 | 显示全部楼层
1

出0入4汤圆

发表于 2011-8-3 17:51:32 | 显示全部楼层
好的

出0入0汤圆

发表于 2011-8-3 22:04:44 | 显示全部楼层
回复【楼主位】weineixiong
-----------------------------------------------------------------------

lz v5

出0入0汤圆

发表于 2011-8-3 23:16:15 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-4 23:12:20 | 显示全部楼层
好的

出0入0汤圆

发表于 2011-8-5 18:42:24 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-8-5 18:45:42 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-8-6 07:37:17 | 显示全部楼层
适合新手学习,感谢分享

出0入0汤圆

发表于 2011-9-19 18:13:38 | 显示全部楼层
正在学习,顶一个

出0入0汤圆

发表于 2011-10-18 17:06:06 | 显示全部楼层
什么原理

出0入0汤圆

发表于 2011-10-18 20:34:51 | 显示全部楼层
mark
建议加好注释以便新人~

出0入0汤圆

发表于 2011-10-18 22:31:38 | 显示全部楼层
不错,谢谢,学习一下。

出0入0汤圆

发表于 2011-10-19 14:16:09 | 显示全部楼层
这个够详细了,现在看来很长很长。。可以考虑精简

出0入0汤圆

发表于 2011-10-20 09:20:00 | 显示全部楼层
我的复制进去怎么都有两个警告啊

出0入0汤圆

发表于 2011-10-22 17:20:24 | 显示全部楼层
新人学习了

出0入0汤圆

发表于 2011-11-12 22:01:05 | 显示全部楼层
学习,mark。

出0入0汤圆

发表于 2011-11-17 11:10:30 | 显示全部楼层
学习。。。。

出0入0汤圆

发表于 2012-8-3 11:55:36 | 显示全部楼层
正在学习,顶一个

出0入0汤圆

发表于 2012-8-5 22:35:16 | 显示全部楼层
长有长的好处,一看就明白,呵呵
请论坛高手,帮我们改改,精简下,呵呵

出0入0汤圆

发表于 2012-8-5 22:51:05 | 显示全部楼层
是用的模拟输出吗?通过程序调节引脚电压?谢谢

出0入0汤圆

发表于 2012-8-5 23:06:22 | 显示全部楼层
led=1;while(led<>10000000){breath(led<<1);delay()}
不知道行不行。。

出0入0汤圆

发表于 2012-9-2 15:55:30 | 显示全部楼层
正在学习,顶一个
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 22:17

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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