流水灯以及采用中断改变流水方向
原理图
代码段
#include "reg52.h"
void delay(unsigned int time){
unsigned int j=15000;
for(;time>0;time--)
for(j=0;j<500;j++);
}
char li[]={0xfe,0xfd,0xfb,0xf7,0xef};
bit dir=1;
get() interrupt 0{
dir=!dir;
}
void main(){
unsigned char i;
IT0=1;
EX0=1;
EA=1;
while(1){
if(dir==1){
for(i=0;i<=4;i++){
P2=li[i];
delay(100);
}
}
else{
for(i=5;i>=1;i--){
P2=li[i-1];
delay(100);
}
}
}
}