求助 51单片机编程,按一下KEY1,LED常亮,按一下KEY2,LED灭

求助 51单片机编程,按一下KEY1, LED常亮,按一下KEY2,LED灭,谢谢

第1个回答  2013-07-13
P1.0 接KEY1 到地 ,P1.1接KEY2到地,P0.0接LED到高电平。
我还附带给你加了按键防抖,程序如下:
#include<reg51.h>

sbit key1=P1^0;
sbit key2=P1^1;
sbit led=P0^0;

void delay(m)
{
int i,j;
for(i=0;i<m;i++)
{
for(j=0;j<125;j++)
{
}
}
}

void main()
{

while(1)
{
P1=0xff;
if (key1==0)
{
delay(20);
if(key1==0)
{
while(!key1);
led=0;
}
}
if (key2==0)
{
delay(20);
if(key2==0)
{
while(!key2);
led=1;
}
}
}
}本回答被提问者采纳
第2个回答  2013-07-14
;按一下KEY1, LED常亮,按一下KEY2,LED灭

ORG 0000H
K1:
JB P1.1, K2 ;KEY1接在 P1.1
CALL DELAY
JB P1.1, K2
JNB P1.1, $

CLR P0.0 ;LED 接在 P0.0

K2:
JB P1.2, K1 ;KEY2接在 P1.2
CALL DELAY
JB P1.2, K1
JNB P1.2, $

SETB P0.0

SJMP K1

DELAY:
MOV R6, #10
DJNZ R7, $
DJNZ R7, $
DJNZ R6, $ - 4
RET

END
相似回答