02:按键的配置(寄存器操作)【MSP430F5529】

目录

一:原理图

二:初始化

三:实现功能

方法一

方法二


一:原理图

        按键S1        对应IO口:P2.1

        按键S2        对应IO口:P1.1

        使用时,应该使能P2.1/P1.1的电阻接高电平。未按下按键时,端口电压为高电平。按下按键时,端口为低电平。

二:初始化

        S1初始化,对应IO口:P2.1

/*S1~P2.1,按下按键端口变为低电平*/
P2DIR &= ~BIT1; //初始化按键S1的IO口P2.1,设置为输入
P2REN |= BIT1;  //使能P2.1的电阻
P2OUT |= BIT1;  //选择上拉电阻

        S2初始化,对应IO口:P1.1

/*S2~P1.1*/
P1DIR &= ~BIT1; //初始化按键S2的IO口P1.1,设置为输入
P1REN |= BIT1;  //使能P1.1的电阻
P1OUT |= BIT1;  //选择上拉电阻

三:使用

        判断P2.1/P1.1端口的电平,按下为低电平,未按下未高电平

        P2端口值未按下时为xxxx xx1x。若按键按下,P2.1处的“1”变为“0”,端口电压则变为xxxx xx0x。

        BIT1 = 0000 0010,若按键按下,P2IN & BIT1 = 0000 0000 = 0,若按键未按下,P2IN & BIT1 = 0000 0010 = 2。

        判断按键按下,若按下,则执行if内部代码:

if( (P2IN & BIT1) == 0 )//按键按下了
{
    
}

三:实现功能

        按下按键S1,LED1亮。松开S1,LED1熄灭

#include <msp430.h> 
int main(void)
{
	WDTCTL = WDTPW | WDTHOLD;	// stop watchdog timer
	
	P1DIR |= BIT0;  //初始化LED1的IO口P1.0,设置为输出
	P1OUT &= ~BIT0; //设置P1.0初始为低电平

	P2DIR &= ~BIT1; //初始化按键S1的IO口P2.1,设置为输入
	P2REN |= BIT1;  //使能P2.1的电阻
	P2OUT |= BIT1;  //选择上拉电阻

	while(1)
	{
	    if((P2IN & BIT1) == 0)
	    {
	        P1OUT |= BIT0;  //点亮LED1
	    }
	    else
	    {
	        P1OUT &= ~BIT0;
	    }
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

千城千景

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

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

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

打赏作者

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

抵扣说明:

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

余额充值