51单片机用4个按钮分别控制四个LED的程序

51单片机用4个按钮分别控制四个LED的程序,第1张

简单编了一下程序,,,

#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种花样就行了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7775273.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-09
下一篇2023-04-09

发表评论

登录后才能评论

评论列表(0条)

    保存