LED闪烁
循环语句
循环语句 (1)while(条件表达式){语句} 只有当 while 后面圆括号内条件表达式的值为真时,程序才会重复执行花括号内语句,当条件表达式为假时则不执行花括号内语句。
(2)for([初值设定表达式];[循环条件表达式];[更新表达式]) {语句}
例:for(i = 1; i // main 函数自身会循环
while(1){ // 一般在执行程序的时候需要 写出一个while的循环体来执行代码
// P1 = 0; // 点亮P1口8个LED
// P1 = 0xe9; // 点亮 LED2 LED3 LED5灯
P1 = 0xdf; // 点亮 LED6 灯
i = 65535;
while(i--); // 自定义的软件延时
P1 = 0xff; // 1111 1111 熄灭P1口 8个LED 不能直接使用 P1 = 1; 来熄灭8个LED灯
i= 65535;
while(i--);
}
}
// while(1){
// P1 = 0;
// P1 = 0xff; // 1111 1111 熄灭P1口 8个LED 不能直接使用 P1 = 1; 来熄灭8个LED灯
// }
// 当去掉软件延时器的时候,软件在执行的过程中会不断的循环,LED会反复的开启和关闭,所以通过人眼是无法辨别出来的
// 但是与常开启的LED相比亮度会相对较暗
2.使 LED1 灯闪烁
#include
/*====================================
函数 : delay(uint z)
参数 :z 延时毫秒设定,取值范围0-65535
返回值 :无
描述 :12T/Fosc11.0592M毫秒级延时
====================================*/
void delay(unsigned int z){ // 毫秒级延时函数定义
unsigned int x, y;
for (x = z; x > 0; x--){
for (y = 114; y > 0; y--){
}
}
}
void main(){ // main函数自身会循环
delay(100);
while(1){
P1 = 0XFE; // 点亮 LED1 灯
delay(100); // 延时 100毫秒 通过增加延时的时间或减少延时的时间,来控制灯的闪烁间隔
P1 = 0xff; // 关闭所有的LED 灯
delay(100); // 延时 100毫秒 通过增加延时的时间或减少延时的时间,来控制灯的闪烁间隔
}
}
3.使 LED1、3、5、7 灯亮,使 LED2、4、6、8 灯闪烁;
#include
void delay(unsigned int z){ // 毫秒级延时函数定义
unsigned int x, y;
for (x = z; x > 0; x--){
for (y = 114; y > 0; y--){
}
}
}
void main(){ // main函数自身会循环
delay(100);
while(1){
P1 = 0; // 0000 0000 // 使 LED1、2、3、4、5、6、7、8 灯亮
delay(500); // 延时 500毫秒 通过增加延时的时间或减少延时的时间,来控制流水灯的速度
P1 = 0XAA; // 1010 1010 // 关闭 2、4、6、8 灯
delay(500); // 延时 500毫秒 通过增加延时的时间或减少延时的时间,来控制流水灯的速度
}
}
|