}
void main() { uchar a; a=0xfe; }
//主函数
while(1) //大循环 { }
P1=a; //点亮小灯 beep=0; //开启蜂鸣器 delay(500); //延时500毫秒 P1=0xff; //熄灭小灯 beep=1; //关闭蜂鸣器
delay(500); //延时500毫秒
a=_crol_(a,1); //将a变量循环左移一位
3、8个发光管来回流动,
每个管亮100ms,流动时让蜂鸣器发出\滴滴\声。
/*********************************************************/ #include
#include
void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms. { }
uint x,y;
for(x=z;x>0;x--)
//delay(500);大约延时500ms.
for(y=110;y>0;y--);
//主函数
void main() {
uchar a,i;
while(1) //大循环 {
a=0xfe; //赋初值 for(i=0;i<8;i++) //左移 {
P1=a; //点亮小灯 beep=0; //开启蜂鸣器 delay(50); //延时50毫秒 beep=1; //关闭蜂鸣器
}
}
delay(50); //再延时50毫秒
a=_crol_(a,1); //将a变量循环左移一位 }
a=0x7f;
for(i=0;i<8;i++) //右移 { }
P1=a; //点亮小灯 beep=0; //开启蜂鸣器 delay(50); //延时50毫秒 beep=1; //关闭蜂鸣器 delay(50); //再延时50毫秒 a=_cror_(a,1); //将a变量循环右移一位
4、用8个发光管演示出8位二进制数累加过程。
/*********************************************************/ #include
#include
#define uchar unsigned char //宏定义
void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms. { //delay(500);大约延时500ms.
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--); }
void main() //主函数 { }
uchar a;
while(1) //大循环 { }
a++; P1=~a; delay(200);
5 、8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程
/*********************************************************/ #include
#include
void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms. { }
//delay(500);大约延时500ms.
uint x,y; for(x=z;x>0;x--)
for(y=110;y>0;y--);
//主函数
void main() { }
uchar a,i,j;
while(1) //大循环 { }
for(j=0;j<2;j++) { }
a=0xfe; //赋初值 for(i=0;i<8;i++) //左移 { P1=a; //点亮小灯
delay(200); //延时200毫秒
a=_crol_(a,1); //将a变量循环左移一位
}
a=0x7f;
for(i=0;i<8;i++) //右移 { }
P1=a; //点亮小灯
delay(200); //延时200毫秒
a=_cror_(a,1); //将a变量循环右移一位
P1=0xff; //全部熄灭 for(j=0;j<10;j++) { }
delay(300); //延时
P1=~P1; //全部取反10次,既闪烁5次
6 、间隔300ms第一次一个管亮流动一次, 第二次两个管亮流动,依次到8个管亮,然后重复整个过程。
/*********************************************************/ #include
#include
#define uchar unsigned char //宏定义
void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms. {
//delay(500);大约延时500ms.
uint x,y;
for(x=z;x>0;x--) for(y=110;y>0;y--);
//主函数
}
void main() { }
uchar a,i,j;
while(1) //大循环 { }
a=0xfe; //赋初值 for(j=0;j<8;j++) { for(i=0;i<8-j;i++) //左移 { }
P1=a; //点亮小灯 delay(200); //延时200毫秒
a=_crol_(a,1); //将a变量循环左移一位 }
a=_crol_(a,j); //补齐,方便下面的左移一位 P1=0xff; a=a<<1;
//全部关闭 //左移一位让多一个灯点亮
7、间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次; 关闭发光管,程序停止。
/*********************************************************/ #include
#include
#define uchar unsigned char //宏定义
void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms. {
//delay(500);大约延时500ms.
uint x,y;
for(x=z;x>0;x--) for(y=110;y>0;y--);
//主函数
}
void main() {
uchar a,i,j;
for(j=0;j<3;j++) //寄偶交替 { }
P1=0x55; //点亮小灯 delay(300); //延时300毫秒 P1=0xaa;
delay(300); //延时300毫秒
for(j=0;j<3;j++) //流水灯 {
a=0xfe;
for(i=0;i<8;i++) {
}
P1=a; //点亮小灯 delay(300); //延时300毫秒 a=_crol_(a,1);
}
P1=0xff;
for(j=0;j<3;j++) //从两边往中间流 {
P1=0x7e; //点亮小灯 delay(300); //延时300毫秒 P1=0xbd;
delay(300); //延时300毫秒 P1=0xdb; //点亮小灯 delay(300); //延时300毫秒