单片机可控制流水灯汇编程序 要求:按一下亮一个,再按一下第二个亮,第一个熄灭

p1口接灯,p3.2为按键
51单片机

第1个回答  2012-03-10
/************************************
编写者:XP
学习单片机一个星期,这是我自己写的*/
#include<reg52.h>
sbit Key=P3^2;
sbit LED_1=P1^0;
sbit LED_2=P1^1;
/**********************************
*********延时函数*****************/
void Delay(int del)
{ int i,j;
for(i=0;i<=42;i++)
for(j=0;j<=del;j++) ;
}
void main()
{ while(1)
{ if(Key==0)
{ Delay(10); //软件防抖,延时10ms
if(Key==0)
{ LED_1=0; //第一个灯亮
LED_2=1; //
Key=1;
Delay(250);
if(Key==0)
{ Delay(10); //软件防抖,延时10ms
LED_1=1; //第一个灭
LED_2=0;} //第二个亮
}
}
Delay(300);
Key=1;
}
}本回答被提问者采纳
第2个回答  2012-03-09
共阴情况下
SETB P3.2
MOV A,#01H
JB P3.2,$
RL A
MOV P1,A
RET
相似回答