全亮、全灭交替
#include<reg51.h>
void delay(unsigned int x){
unsigned char j;
while(x--){
for(j=0;j<125;j++);
} }
void main(){
while(1)
{
P1=0x00;
delay(500);
P1=0xff;
delay(500);
}
}
指定任意灯(0-7中)闪灭
#include<reg51.h>
sbit LED3=P1^3; #指定P3灯
void delay(unsigned int x){
unsigned char j;
while(x--){
for(j=0;j<125;j++);
} }
void main(){
while(1){
LED3=0;
delay(500);
LED3=1;
delay(500);
}
}
指定P1.1、P1.3、P1.5灯亮灭
#include<reg51.h>
sbit LED1=P1^1;
sbit LED3=P1^3;
sbit LED5=P1^5;
void delay(unsigned int x){
unsigned char j;
while(x--){
for(j=0;j<125;j++);
} }
void main(){
while(1){
LED3=0;
LED1=0;
LED5=0;
delay(500);
LED3=1;
LED1=1;
LED5=1;
delay(500);
}
}
P1.1亮时,P1.7灭;P1.7亮时,P1.1灭
#include<reg51.h>
sbit LED1=P1^1;
sbit LED7=P1^7;
void delay(unsigned int x){
unsigned char j;
while(x--){
for(j=0;j<125;j++);
} }
void main(){
while(1){
LED1=0;
LED7=1;
delay(500);
LED1=1;
LED7=0;
delay(500);
}
}
流水灯(用位移函数实现)
#include<reg51.h>
#include<intrins.h>
void delay(unsigned int d){
while(d--);
}
void main()
{
unsigned char sel;
sel=0xfe;
while(1){
P1=sel;delay(10000);
sel=_crol_(sel,1);#循环左移一位
}
}
流水灯(用"<<“或”>>"实现)
#include<reg51.h>
#include<intrins.h>
void delay(unsigned int d){
while(d--);
}
void main()
{
unsigned char sel ,i,a;
while(1){
sel=0xfe;
for(i=0;i<8;i++){
P1=sel;delay(50000);
a=sel<<1;#左移一位
sel=a|0x01;#最后一位补1
}
}
}
两个左流水灯
#include<reg51.h>
#include<intrins.h>
void delay(unsigned int d){
while(d--);
}
void main()
{
unsigned char sel;
sel=0xfc;
while(1){
P1=sel;
delay(50000);
sel=_crol_(sel,2);
}
}
霹雳灯(来回的流水灯)
#include<reg51.h>
#include<intrins.h>
#define LED P1
void delayxms(unsigned int xms){
unsigned int t1,t2;
for(t1=0;t1<xms;t1++)
for(t2=0;t2<110;t2++);
}
void main()
{
unsigned char i;
LED=0xfe;
while(1){
for(i=0;i<7;i++){
delayxms(500);
LED=(LED<<1)|0x01;
}
for(i=0;i<7;i++){
delayxms(500);
LED=(LED>>1)|0x80;
}
}
}