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);
}
}
} 长了点,凑合用吧 呵呵,一步一个脚印! mark一下慢慢学习 长了点,期望有所改进! 1 好的 回复【楼主位】weineixiong
-----------------------------------------------------------------------
lz v5 mark 好的 学习 学习 适合新手学习,感谢分享 正在学习,顶一个 什么原理 mark
建议加好注释以便新人~ 不错,谢谢,学习一下。 这个够详细了,现在看来很长很长。。可以考虑精简 我的复制进去怎么都有两个警告啊 新人学习了 学习,mark。 学习。。。。 正在学习,顶一个 {:lol:}长有长的好处,一看就明白,呵呵
请论坛高手,帮我们改改,精简下,呵呵 是用的模拟输出吗?通过程序调节引脚电压?谢谢 led=1;while(led<>10000000){breath(led<<1);delay()}
不知道行不行。。 正在学习,顶一个
页:
[1]