
#include<reg52.h>
sbit led1=P1^1//led灯,按实际再改
sbit led2=P1^2//led灯,按实际再改
sbit led3=P1^3//led灯,按实际再改
sbit led4=P1^4//led灯,按实际再改
sbit key1=P2^1//按键,按实际再改
sbit key2=P2^2//按键,按实际再改
sbit key3=P2^3//按键,按实际再改
sbit key4=P2^4//按键,按实际再改
void delay(unsigned int t) //延时函数
{
while(--t)
}
void main()
{
while(1)
{
if(key1 == 0) //如果高电平按下按键就==1
{
delay(200) //按键防抖
if(key1 == 0)
{
led1=1 //如果低电平亮就=0
led2=0
led3=0
led4=0
}
}
if(key2 == 0)
{
delay(200) //按键防抖
if(key2 == 0)
{
led1=0 //如果低电平亮就=0
led2=1
led3=0
led4=0
}
}
if(key3 == 0)
{
delay(200) //按键防抖
if(key3 == 0)
{
led1=0 //如果低电平亮就=0
led2=0
led3=1
led4=0
}
}
if(key4 == 0)
{
delay(200) //按键防抖
if(key4 == 0)
{
led1=0 //如果低电平亮就=0
led2=0
led3=0
led4=1
}
}
}
}
单片机的P1.0-P1.3接四个发光二极管L1-L4的阴极,P1.4-P1.7接四个开关K1-K4程序:
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口——回到开始
先定义4个按键,sbit k1=P1^0
sbit k2=P1^1
sbit k3=P1^2
sbit k4=P1^3
再定义一个变量计数,分别计1,2,3,4,对应4个按键。
在主循环程序中判断4个按键是否按下,每一个开关按下,变量赋值对应的数。
再根据变量值,执行对应的第1,2,3,4种花样就行了。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)