程序:
ORG
00H
START:
MOV
A,P1
ANL
A,#0F0H
RR
A
RR
A
RR
A
RR
A
ORl
A,#0F0H
MOV
P1,A
SJMP
START
可以检测单个按键,也可以同时检测多个按键
过程:开始——读P1口数据到A——A中的数据右移4次——A中的内容和F0H相或——A中的数据送到P1口——回到开始
#include <reg52.h>sbit led = P1^0
sbit key1 = P2^0
sbit key2 = P2^1
void delay(unsigned int cnt) //简单的延时
{
while(--cnt)
}
/*------------------------------------------------
MAIN C Function
------------------------------------------------*/
void main (void)
{
while (1)
{
if(key1 == 0) /*按键1按下*/
{
led = 0 /*灯亮*/
delay(1000)
while(!key1)/*消抖*/
}
else if(key2 == 0) /*按键2按下*/
{
led = 1 /*灯灭*/
delay(1000)
while(!key2)
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)