目录
8个LED灯由左至右间隔1s流动,其中每个灯亮500ms,灭500ms。
8个LED灯间隔200ms由左至右,再由右至左,重复3次,然后全部灭再以300ms间隔全部闪烁5次。重复以上过程。
间隔300ms第一次一个灯亮流动一次,第二次两个灯亮流动,依次到8个灯亮然后重复整个过程。
间隔300ms先奇数亮再偶数亮,循环三次;一个灯左右循环三次;两个分别从两”边往中间流动三次;再从中间往两边流动三次:8个全部闪烁3次:关闭所有LED灯,程序停止。
第一个LED灯以间隔200ms闪烁
//头文件声明区域
#include <STC15F2K60S2.H>
#include<intrins.h>
//变量声明区域
//函数定义区域
//关闭蜂鸣器
void cls_buzz(void)
{
P2 = (P2 & 0x1F | 0xA0);
P0 = 0x00;
P2 &= 0x1F;
}
//自定义延时函数
void Delay(unsigned int ms) //@11.0592MHz
{
unsigned char i, j;
while(ms--)
{
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
}
//程序主体
void main()
{
cls_buzz();
//初始化部分
P2 = 0xA0;
P0 = 0x00;
P2 = 0X80;
P0 = 0xFF;
while(1)
{
P00 = 0;
Delay(200);
P00 = 1;
Delay(200);
}
}
8个LED灯由左至右间隔1s流动,其中每个灯亮500ms,灭500ms。
//头文件声明区域
#include <STC15F2K60S2.H>
#include<intrins.h>
//变量声明区域
unsigned char LED = 0xfe;// 1111 1110
//函数定义区域
//关闭蜂鸣器
void cls_buzz(void)
{
P2 = (P2 & 0x1F | 0xA0);
P0 = 0x00;
P2 &= 0x1F;
}
//自定义延时函数
void Delay(unsigned int ms) //@11.0592MHz
{
unsigned char i, j;
while(ms--)
{
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
}
//程序主体
void main()
{
cls_buzz();
//初始化部分
P2 = 0xA0;
P0 = 0x00;
P2 = 0X80;
P0 = 0xFF;
while(1)
{
P0 = LED;
Delay(500);
P0 = 0xff;
Delay(500);
LED = _crol_(LED,1);
}
}
8个LED灯间隔200ms由左至右,再由右至左,重复3次,然后全部灭再以300ms间隔全部闪烁5次。重复以上过程。
//头文件声明区域
#include <STC15F2K60S2.H>
#include<intrins.h>
//变量声明区域
unsigned char LED = 0xfe;// 1111 1110
unsigned int i = 0;
unsigned int j = 0;
//函数定义区域
//关闭蜂鸣器
void cls_buzz(void)
{
P2 = (P2 & 0x1F | 0xA0);
P0 = 0x00;
P2 &= 0x1F;
}
//自定义延时函数
void Delay(unsigned int ms) //@11.0592MHz
{
unsigned char i, j;
while(ms--)
{
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
}
//程序主体
void main()
{
cls_buzz();
//初始化部分
P2 = 0xA0;
P0 = 0x00;
P2 = 0X80;
P0 = 0xFF;
while(1)
{
for(j = 0; j < 3; j++)
{
for(i = 0; i < 8; i++)
{
P0 = LED;
Delay(200);
LED = _crol_(LED, 1);
}
LED = 0X7F;
for(i = 0; i < 8; i++)
{
P0 = LED;
Delay(200);
LED = _cror_(LED, 1);
}
}
LED = 0XFF;
for(i = 0; i < 5; i++)
{
P0 = LED;
Delay(300);
LED = ~LED;
P0 = LED;
Delay(300);
LED = ~LED;
}
}
}
间隔300ms第一次一个灯亮流动一次,第二次两个灯亮流动,依次到8个灯亮然后重复整个过程。
//头文件声明区域
#include <STC15F2K60S2.H>
#include<intrins.h>
//变量声明区域
unsigned int i = 0;
unsigned int j = 0;
//函数定义区域
//关闭蜂鸣器
void cls_buzz(void)
{
P2 = (P2 & 0x1F | 0xA0);
P0 = 0x00;
P2 &= 0x1F;
}
//自定义延时函数
void Delay(unsigned int ms) //@11.0592MHz
{
unsigned char i, j;
while(ms--)
{
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
}
//程序主体
void main()
{
cls_buzz();
//初始化部分
P2 = 0xA0;
P0 = 0x00;
P2 = 0X80;
P0 = 0xFF;
while(1)
{
P0 = 0XFF;
Delay(300);
P00 = 0;
Delay(300);
P01 = 0;
Delay(300);
P02 = 0;
Delay(300);
P03 = 0;
Delay(300);
P04 = 0;
Delay(300);
P05 = 0;
Delay(300);
P06 = 0;
Delay(300);
P07 = 0;
Delay(300);
}
}
间隔300ms先奇数亮再偶数亮,循环三次;一个灯左右循环三次;两个分别从两”边往中间流动三次;再从中间往两边流动三次:8个全部闪烁3次:关闭所有LED灯,程序停止。
#include <STC15F2K60S2.H>
#include <intrins.h>
unsigned char LED = 0x01;
unsigned int i = 0;
unsigned int j = 0;
unsigned int k = 0;
void cls_buzz(void)
{
P2 = (P2 & 0x1F) | 0xA0;
P0 = 0x00;
P2 &= 0x1F;
}
void Delay(unsigned int ms) //@11.0592MHz
{
unsigned char i, j;
while(ms--)
{
_nop_();
_nop_();
_nop_();
i = 11;
j = 190;
do
{
while (--j);
} while (--i);
}
}
void main()
{
cls_buzz();
P2 = 0xA0;
P0 = 0x00;
P2 = 0X80;
P0 = 0xFF;
while(1)
{
// 奇数亮偶数灭,循环三次
for(k = 0; k < 3; k++)
{
for(i = 0; i < 8; i += 2)
{
P0 &= ~(1 << i); // 点亮奇数位LED
P0 |= (1 << (i + 1)); // 熄灭偶数位LED
Delay(300);
}
for(i = 0; i < 8; i += 2)
{
P0 |= (1 << i); // 熄灭奇数位LED
P0 &= ~(1 << (i + 1)); // 点亮偶数位LED
Delay(300);
}
}
// 一个灯左右循环三次
for(k = 0; k < 3; k++)
{
for(i = 0; i < 8; i++)
{
P0 = (1 << i); // 只点亮当前LED
Delay(300);
}
for(i = 7; i >= 0; i--)
{
P0 = (1 << i); // 只点亮当前LED
Delay(300);
}
}
// 两个灯从两边往中间流动三次
for(k = 0; k < 3; k++)
{
for(i = 0; i < 4; i++)
{
P0 = (1 << i) | (1 << (7 - i)); // 点亮两个对称的LED
Delay(300);
}
for(i = 3; i >= 0; i--)
{
P0 = (1 << i) | (1 << (7 - i)); // 点亮两个对称的LED
Delay(300);
}
}
// 两个灯从中间往两边流动三次
for(k = 0; k < 3; k++)
{
for(i = 3; i >= 0; i--)
{
P0 = (1 << i) | (1 << (7 - i)); // 点亮两个对称的LED
Delay(300);
}
for(i = 0; i < 4; i++)
{
P0 = (1 << i) | (1 << (7 - i)); // 点亮两个对称的LED
Delay(300);
}
}
// 全部闪烁三次
for(k = 0; k < 3; k++)
{
P0 = 0xFF; // 全部点亮
Delay(300);
P0 = 0x00; // 全部熄灭
Delay(300);
}
// 关闭所有LED灯,程序停止
P0 = 0x00;
break;
}
}