MSP430学习记录(一)GPIO——基于MSP430G2553launch pad
前言
专升本来了新学校,单片机课程使用MSP430之前有接触过51单片机和stm32,希望通过写博客来记录MSP430相关知识,方便以后查阅。
实验平台MSP430G2553launch pad
GPIO介绍
IO口是单片机实现各种功能的最终体现,无论是最简单的点灯,还是单片机其他高级操作最终体现在对IO口的控制。
GPIO相关寄存器介绍
MSP430G2553,对IO口操作由以下几种寄存器来控制分别为:
PXIN(PXIN输入寄存器):PXIN为只读寄存器,通常用于读取IO口上的高低电平。
PXOUT(PXOUT输出寄存器):PXOUT,通常用于输出IO口上的高低电平,以及在PXREN(上下拉寄存器)启用时,用于软件方式配置上下拉电阻。
PXDIR(方向选择寄存器):PXDIR用于IO口输出输入方向选择,置1为输出模式,置0为输入模式。PXDIR上电默认为置0。
PXREN(上下拉寄存器):PXREN用于配置是否使能上下拉电阻,可以与PXDIR,PXOUT一同配置的IO口在输入模式的设置。
PxSEL ,PxSEL2(功能选择寄存器):用于与PXDIR一起完成端口复用的设置。
PXIFG(中断标志位寄存器):用于中断是否进行中,具体在中断介绍。
PXIES中断边沿选择寄存器):用于触发中断边沿选择,具体在中断介绍。
PXIE(中断使能寄存器):用于是否开启中断功能,具体在中断介绍。
/*
* 初始化P1.0、P1.6引脚为按键(输入,可用导线模拟按键);
* P1.2、P1.4为输出,控制LED灯。P1.0键按住,P1.2的LED灯亮,释放灭;P1.6键按住,P1.4的LED灯灭,释放亮。
*/
int main(void)
{
WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer
SystemClock_Config(); //1Mhz
// P1DIR &= ~BIT3; //配置P1.3为输入模式
// P1DIR &= ~BIT4; //配置P1.4为输入模式
// P1REN |= BIT4+BIT3; //使能上下拉电阻寄存器
// P1OUT |= BIT4+BIT3; //设置P1.3P1.4上拉电阻
// P1DIR |= BIT0+BIT6; //配置P1.O为输出模式配置P1.6为输出模式
P1DIR &= ~BIT0; //配置P1.0为输入模式
P1DIR &= ~BIT6; //配置P1.6为输入模式
P1REN |= BIT0+BIT6; //使能上下拉电阻寄存器
P1OUT |= BIT0+BIT6; //设置P1.0P1.6上拉电阻
P1DIR |= BIT2+BIT4; //配置P1.2为输出模式配置P1.4为输出模式
while(1)
{
/*按键按住LED亮,释放灭*/
if((P1IN&BIT0)==0){P1OUT |= BIT2;}
else P1OUT &= ~BIT2;
/*按键按住LED灭,释放亮*/
if((P1IN&BIT6)==0){P1OUT &= ~BIT4;}
else P1OUT |= BIT4;
// /*按键按住LED亮,释放灭*/
// if((P1IN&BIT3)==0){P1OUT |= BIT0;}
// else P1OUT &= ~BIT0;
// /*按键按住LED灭,释放亮*/
// if((P1IN&BIT4)==0){P1OUT &= ~BIT6;}
// else P1OUT |= BIT6;
}
return 0;
}
先写到这…(^ _ ^)