02:按键的使用【MSP430F5529】

发布者:BlissfulMoments最新更新时间:2022-11-04 来源: csdn关键字:按键  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( (P2IN & BIT1) == 0 )//按键按下了

{

    

}

        判断按键未按下:


//方法1

if((P2IN & BIT1) == BIT1)

{

 

}

 

//方法2

if((P2IN & BIT1) != 0)

{

 

}

 

//不能写    if((P2IN & BIT1) == 1)


三:实现功能

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


#include  

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 if((P2IN & BIT1) == BIT1)

    {

        P1OUT &= ~BIT0;

    }

}

}

关键字:按键  MSP430F5529  高电平 引用地址:02:按键的使用【MSP430F5529】

上一篇:03:时钟与中断代码 【MSP430F5529】
下一篇:01:点亮LED 【MSP430F5529】

推荐阅读最新更新时间:2024-11-17 15:20

单片机 MSP430 独立按键检测
可以不用while等待。 定义函数 #define CPU_F ( (double) 8000000) #define delay_us( x ) __delay_cycles( (long) (CPU_F * (double) x / 1000000.0) ) #define delay_ms( x ) __delay_cycles( (long) (CPU_F * (double) x / 1000.0) ) #define CO 1 #define SET 2 #define UP 3 #define DOWN 4 #define key_01 (P2IN&BIT5) #define key_02 (P2IN&
[单片机]
(5)MSP430F5529 统一时钟系统UCS
之前有一点漏说明了,先补充上:还有一个模块时钟源:MODOSC,产生MODCLK时钟源信号,一般只为闪存控制模块和ADC12模块提供服务。 该模块不被使用时自动关闭,任何模块对该时钟源提出使用要求时,MODOSC无需被使能即可响应该请求。430F5529中MODCLK为5MHZ。 *************************************************************** MSP430F5529有多个时钟源,而且很多模块其时钟源都是可以自由选择的。此外,由于一般情况下,系统功耗是和工作频率成正比的,因此有些时候通过选择较低频率的时钟源,在满足正常工作条件下,是可以有效降低功耗的。虽然函数库HA
[单片机]
电子小制作单片机最小系统_按键控制数码管显示
单片机最小系统_按键控制数码管显示,这个项目,主要学习单片机的键盘工作原理与显示方面的知识,电子小制作的好课题。键盘电路作为单片机的输入部分,数码显示电路作为单片机的输出部分,由键盘电路通过单片机控制数码管显示电路的八路键控数码管电路。按下S0到S7号按键时,数码管显示立刻显示数字0到7。 电子制作 的好课题下面是单片机最小系统_按键控制数码管显示原理图,实作时,按原理图焊好电路,单片机中写入程序。 ORG 0000H ;随后的指令代码从0000H单元开始存放。 LJMP START ;转到标号START处 ORG 0030H ;随后的指令代码从0030H单元开始存放。 START:MOV P0
[单片机]
电子小制作单片机最小系统_<font color='red'>按键</font>控制数码管显示
STM32开发系列之寄存器(一)按键控制LED灯
入门学习STM32开发,首先要选择一种开发方式。STM32的开发方式主要有标准库开发、寄存器开发和HAL库开发(这个我没使用过,不太了解)。比较多的人选择的开发方式是库开发,使用这两种方式比较方便,但因经过函数封装,对底层的理解不足。由于我入门也是由标准库开发入门的,所以这里想专门写一下寄存器开发,边写边学习,欢迎一起探讨。 1、一般写法 注:采用的STM32F103ZET6芯片 ST官方提供了stm32f10x.h的头文件,里面有各个寄存器的地址定义,因此可以直接操作寄存器来对IO口进行配置,下面就以案件控制LED灯为例。 在stm32f10x.h头文件里有以下的IO口的宏定义及结构体 ①假设LED灯接在GPIOB5
[单片机]
STM32开发系列之寄存器(一)<font color='red'>按键</font>控制LED灯
PIC10F202单片机的一按键键控制RGB灯源程序
电路原理图如下: 单片机源程序如下: #include pic.h #include xc.h #pragma config WDTE = OFF // Watchdog Timer (WDT disabled) #pragma config CP = OFF // Code Protect (Code protection off) #pragma config MCLRE = OFF // Master Clear Enable (GP3/MCLR pin fuction is digital I/O, MCLR internally tied to VDD) #define led1 GP
[单片机]
PIC10F202单片机的一<font color='red'>按键</font>键控制RGB灯源程序
STM32按键控制灯
/*---------------------------------------------------------------------------------- 文件名称:控制LED2,LED3闪烁 硬件平台:STM32F103 开发板 作者 :求是 固件库 :V3.5 -----------------------------------------------------------------------------------*/ /* Includes ------------------------------------------------------------------*/ #include st
[单片机]
Linux混杂设备驱动 - 按键设备驱动
之前的一篇博客概括了混杂设备驱动模型(http://www.cnblogs.com/ape-ming/p/5101322.html),现在就根据那篇博客所列出来的模板写一个按键设备驱动程序。 根据模板首先要写一个设备加载函数: 1 /* 2 * 函数名 : button_init 3 * 函数功能: 设备加载 4 */ 5 static int __init button_init(void) 6 { 7 int ret = 0; 8 9 /* 注册混杂设备驱动 */ 10 ret = misc_register(&misc); 11 if(ret) 12 { 13 pri
[单片机]
基于FPGA的按键弹跳消除模块的研究与应用
    按键在数字电路设计中经常用到。按键的弹跳现象是数字系统设计中存在的客观问题。按键是机械触点,当接触点断开或闭合时会产生抖动。为使每一次按键只做一次响应,就必须去除抖动。本文对按键的抖动信号进行了分析,并通过计数器的方式完成了消除抖动电路模块的设计。把该模块应用到按键控制LCD显示的系统中,并在Memec代理的Virtex-4 MB系统实验板上实现了该系统。消抖电路的效果良好,按键控制LCD显示结果正常。 按键开关是电子设备人机交互的主要器件之一。按键大多是机械式开关结构,由于机械式开关的核心部件为弹性金属簧片,因而在开关切换的瞬间会在接触点出现来回弹跳的现象。对于灵敏度比较高的电路,这种弹跳现象引起的信号抖动会造成误动
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多每日新闻

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved