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;
	    }
	}
}

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值