c51单片机学习笔记-独立按键实验

目的:通过开发板上的独立按键 K1 控制 D1 指示灯亮灭

编译软件:keil5

过程:

(1)定义独立按键控制脚

sbit KEY1=P3^1;
sbit KEY2=P3^0;
sbit KEY3=P3^2;
sbit KEY4=P3^3;

(2)定义 LED1 控制脚

sbit LED1=P2^0;

(3)使用宏定义独立按键按下的键值

#define KEY1_PRESS 1
#define KEY2_PRESS 2
#define KEY3_PRESS 3
#define KEY4_PRESS 4
#define KEY_UNPRESS 0

(4)延时函数

void delay_10us(u16 ten_us)
{
while(ten_us--);
}

(5)key_scan函数

函数功能 : 检测独立按键是否按下,按下则返回对应键值

输 入 : mode=0:单次扫描按键 mode=1:连续扫描按键

输 出 : KEY1_PRESS:K1 按下

KEY2_PRESS:K2 按下

           KEY3_PRESS:K3 按下

           KEY4_PRESS:K4 按下

KEY_UNPRESS:未有按键按下

u8 key_scan(u8 mode)
{
	static u8 key=1;
	
	if(mode)key=1;
	if(key==1&&(KEY1==0||KEY2==0||KEY3==0||KEY4==0))
	{
		delay_10us(1000);
		key=0;
		if(KEY1==0)
			return KEY1_PRESS;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GallyDowney

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值