2-MSP430按键输入检测

简介: 为了写一篇文章做铺垫--提醒着自己,,,,,,P1.0的电平,随着P1.1引脚输入的电平变化而变化#include "io430.h"void delay(void) { unsigned char a,b,c; for(c=167;c>0;c--) for(b=...

为了写一篇文章做铺垫--提醒着自己,,,,,,

P1.0的电平,随着P1.1引脚输入的电平变化而变化

#include "io430.h"
void delay(void) 
{  unsigned char a,b,c;
    for(c=167;c>0;c--)
        for(b=171;b>0;b--)
            for(a=1;a>0;a--);
}
void main( void )
{
  WDTCTL = WDTPW + WDTHOLD;//看门狗默认是打开的,不使用就关了它
  P1DIR = 0x01;//P1.0为输出模式
  while(1)
  {
    P1OUT = 0x01;//P1.0输出高电平
    delay(); 
    P1OUT = 0x00;//P1.0输出低电平
    delay(); 
  }
}

在msp430的头文件中有这样的定义

/*-------------------------------------------------------------------------
 *   Standard Bits
 *-------------------------------------------------------------------------*/

#define BIT0                (0x0001)
#define BIT1                (0x0002)
#define BIT2                (0x0004)
#define BIT3                (0x0008)
#define BIT4                (0x0010)
#define BIT5                (0x0020)
#define BIT6                (0x0040)
#define BIT7                (0x0080)
#define BIT8                (0x0100)
#define BIT9                (0x0200)
#define BITA                (0x0400)
#define BITB                (0x0800)
#define BITC                (0x1000)
#define BITD                (0x2000)
#define BITE                (0x4000)
#define BITF                (0x8000)

所以在设置P1.0为输出模式的时候可以

P1DIR = BIT0;

假如说  我们再配置P1.1为输入模式

如果直接 P1DIR = 0x0001;

如果以后再配置P1.2为输出模式

P1DIR = 0x0005;

这样做会非常的麻烦,因为要考虑以前的引脚配置

 

所以在配置某个引脚为输出引脚的时候

P1DIR  = P1DIR | 0x0001;    P1.0为输出

P1DIR  = P1DIR | 0x0004;    P1.2为输出

即 

P1DIR  = P1DIR | BIT0;      P1.0为输出

P1DIR  = P1DIR | BIT2;     P1.2为输出

P1DIR  |= BIT0;            P1.0为输出

P1DIR  |= BIT2;             P1.2为输出

当配置为输入的时候P1.1

P1DIR &= 0xFFFD;    P1.1为输入

P1DIR &= ~BIT1;    P1.1为输入       P1DIR = P1DIR & (~BIT1);

看一下是不是互不影响

P1DIR  |= BIT0;            P1.0为输出       P1DIR = 0000 0000 0000 0000 0000 0000 0000 0001

P1DIR  |= BIT2;             P1.2为输出      P1DIR = 0000 0000 0000 0000 0000 0000 0000 0101

P1DIR &= ~BIT1;    P1.1为输入             P1DIR = 0000 0000 0000 0000 0000 0000 0000 0101

现在看来  不配置方向好像初始化为输入模式  

#include "io430.h"

void main( void )
{
  // Stop watchdog timer to prevent time out reset
  WDTCTL = WDTPW + WDTHOLD;

  P1DIR |= BIT0;//P1.0为输出
  
//  P1DIR &= BIT1;//P1.1为输入------屏蔽
  
//  P1DIR |= BIT6;//-----屏蔽
//  P1OUT &= ~BIT6;//------屏蔽
  
  P1DIR |= BIT7;//P1.7为输出-------测试不受影响
  P1OUT |= BIT7;//P1.7输出高电平-------测试不受影响

  
  while(1)
  {
    if(P1IN&BIT1)//#define BIT1  (0x0002)如果P1输入寄存器P1IN的第1位为1时
    {
      P1OUT |= BIT0;//P1.0输出高电平,,不影响其他引脚
    }
    if(!(P1IN&BIT1))//#define BIT1  (0x0002)如果P1输入寄存器P1IN的第1位为0时
    {
      P1OUT &= ~BIT0;//P1.0输出低电平,,不影响其他引脚
    }
  }
}

 

 

 

目录
相关文章
|
8月前
|
Windows
无法识别的标志“-Ot”(在“p2”中)
无法识别的标志“-Ot”(在“p2”中)
252 0
|
6月前
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
|
8月前
|
安全 网络安全 数据库
LabVIEW NI网络设备在MAX中不显示或未识别
LabVIEW NI网络设备在MAX中不显示或未识别
311 4
|
程序员 芯片
键盘检测原理及应用实现介绍2
独立式键盘的检测原理和应用实现还可以进一步介绍如下: 4. 检测原理:独立式键盘通常使用机械开关作为按键的接触点。机械开关是一种通过机械力将两个金属触点闭合的开关。当按键被按下时,触点闭合,电路连通,通过检测电路状态可以确定按键是否被按下。 5. 应用实现:独立式键盘的检测与行列扫描不同,每个按键有独立的电路接触点,因此不需要扫描整个键盘矩阵。常见的应用实现是使用键盘控制器芯片,它具有多个输入引脚来连接各个按键的接触点,通过检测引脚的状态来确定按键是否被按下。 6. 应用场景:独立式键盘在一些对触感、耐用性和反馈要求较高的场景中得到广泛应用。以下是一些典型的独立式键盘应用场景: - 机械
146 3
|
数据安全/隐私保护 芯片 智能硬件
键盘检测原理及应用实现介绍1
键盘是计算机、手机、平板电脑等设备上最常用的输入设备之一。它是用来输入文本、命令和控制操作的重要工具。键盘检测原理是指如何检测用户按下或释放键盘上的按键,并将按键的信息传递给计算机或其他设备进行相应的处理。 键盘检测原理可以分为两种类型:矩阵式键盘和独立式键盘。下面将分别介绍这两种键盘检测原理及其应用实现。 一、矩阵式键盘检测原理及应用实现: 矩阵式键盘是最常见的键盘类型之一,它由多个按键组成,并且按键排列成矩阵的形式。常见的矩阵式键盘为4x4或3x4排列,即有4行或3行各有4列的按键。以下是矩阵式键盘的检测原理及应用实现: 1. 检测原理:矩阵式键盘使用行列扫描的方式进行按键检测。键
254 0
实验:MSP430F249 按键控制四个灯,并消抖
实验:MSP430F249 按键控制四个灯,并消抖
142 0
实验:MSP430F249 数码管计数到60自动清零(详细注释)
实验:MSP430F249 数码管计数到60自动清零(详细注释)
141 0
win10反复提示显示输入信号超出有效范围1680*1050@60Hz
win10反复提示显示输入信号超出有效范围1680*1050@60Hz
1124 0
独立按键控制LED显示二进制及控制LED移位
独立按键控制LED显示二进制及控制LED移位
287 0

热门文章

最新文章