前言:
IO作为单片机的重要组成部分是不可或缺的,也是必须要掌握的,掌握了IO就学会了单片机的基本使用
所有对于430单片机的操作需要紧随用户开发手册和指导手册进行
MSP430有多达6组IO口P1~P6,每组有8个IO口(相对于STM32F4/F7/F1系列来说比较少),每组IO口都可以单独设置输入输出状态,设置读写。
需要注意的是对于430F169这款芯片P1和P2是具有中断的,可以选择在输入信号上升沿或者下降沿触发中断
不过本章并不进行P1P2中断的介绍
配置IO口功能需要设置PXIN,PXOUT,PXDIR,PXSEL寄存器
1 PXDIR寄存器
PXDIR寄存器用来设置IO口的输出方向
当某一位为1时选择输出
当某一位为0时选择输入
例:
P1DIR = 0X02; //设置P1.1为输出 或者 P1DIR |= BIT1;//设置P1.1为输出123
BIT0~BIT7在#include 3 PxIN寄存器用来配置输入高低电平 4 PXSEL寄存器 每个引脚复用需要对应引脚功能图 6 P1IES/P2IES 7 P1IFG P2IFG 注意:在设置P1OUT ,P2OUT,P1DIR,P2DIR寄存器时会设置相应的P1IFG,P2IFG标志位 8 接下来我们就来配置IO口吧 一般来说我们只需要2,3,4三组步骤就可以使用IO 9 接下来我们进入实战吧 代码开发 /渃畔*/ #include "msp430x14x.h" void basic_clock(void); void main( void ) { WDTCTL = WDTPW + WDTHOLD; //关闭看门狗 basic_clock(); //初始化系统时钟 P6DIR |= BIT4; //选择P6.4为输出引脚 P6OUT &=~BIT4; //关闭P6.4 while(1) { P6OUT |=BIT4; //LED开 for(inti=0;i<1000;i++) P6OUT &=~BIT4; //LED关 for(inti=0;i<1000;i++) } } void basic_clock(void) { unsigned int iq0; BCSCTL1&=~XT2OFF; //基本定时器1 默认关闭T2CLK 开启T2CLK do { IFG1&=~OFIFG; //等待开启晶振 for(iq0=0xff;iq0>0;iq0--); } while((IFG1&OFIFG)!=0); BCSCTL2=0x88; //基本时钟状态寄存器2 MCLK8MHZ 1分频 SMCLK 8MHZ 1分频 } 推荐教学视频 https://www.bilibili.com/video/BV1cE411Z79d?from=search&seid=15656799615629348503 https://www.bilibili.com/video/BV1rE41167yG?from=search&seid=6968580456886645765 MSP430 C语言例程 链接:https://pan.baidu.com/s/1z-q4JGVUzTmJrgeurAExYw 提取码:t2qa 链接:https://pan.baidu.com/s/12bALa0_v6j4bAIcULMtzJQ 提取码:0xv9 TI官网提供例程 链接:https://pan.baidu.com/s/1GBXAUFL5opM9LbreQ7zsNw 提取码:1gn6
分别对应每组IO的PX.0~PX.7(X=1/2/3/4/5/6)
2 PxOUT寄存器用来配置输出高低电平
PxOUT寄存器用来设置IO口的输出高低电平
当某一位为1时选择输出高电平
当某一位为0时选择输出低电平
例:P1OUT = 0X02; //设置P1.1为输出高电平
或者
P1OUT |= BIT1;//设置P1.1为输出低电平123
PxIN寄存器用来设置IO口的输入高低电平
当某一位为1时选择输入高电平
当某一位为0时选择输入低电平
例:P1IN = 0X02; //设置P1.1为输入高电平
或者
P1IN |= BIT1;//设置P1.1为输入低电平123
PXSEL寄存器用来用来配置是否复用为外设
当某一位为1时复用为外设模块
当某一位为0时为IO引脚
例:P1SEL = 0X02; //设置P1.1为TA0外设
或者
P1SEL|= BIT1;//设置P1.1为TA0外设123
5 PXIE中断使能寄存器
PXIE中断使能寄存器用来设置IO口是否发生中断
只有P1 P2两组IO口具有中断功能
这位置1开启中断
这位置0关闭中断
例:P1IE=0X01 //开启P1端口中断1
P1IES/P2IES中断边沿选择寄存器
为1 低到高 高电平触发
为0 高到底 低电平触发
例:P1IES = 0X01 //选择高电平触发1
中断标志位寄存器
为1发生中断
为0没有中断
我们可以来读取这一位来判断是否发生中断
每个中断发生必须保证大于1.5倍MCLK确保中断必须发生
配置IO需要以下几个步骤(个人总结)
<1>是否需要开启中断(针对P1 P2两组IO,一般情况下是不需要的)
<2>PXDIR 配置方向(IO输入输出)
<3> PxOUT或 PxIN(输入输出高低电平)
<4>PxSEL(是否选择外设 串口,定时器之类的)
<5>设置中断触发边沿(针对P1 P2)
/*
芯片: MSP430F169
功能: 使用IO点亮LED
芯片8/9引脚外接8MHZ晶振作为时钟
led接P6.4引脚
*/
上一篇:MSP430MSP430F5438\MSP430F5438A 操作大内存(Ram),程序跑飞F5438\MSP430F5
下一篇:MSP430 基本时钟配置
推荐阅读最新更新时间:2024-11-09 11:22
设计资源 培训 开发板 精华推荐
- 具有固定输出稳压器的 ADP130、1.8V、5 引脚 TSOT 的典型应用
- RTK20-Main-Board copy
- EVAL-ADF70XXMBZ2,基于 ADF7021-V 窄带收发器的主板
- AM2S-0524SZ 24V 2瓦直流转直流转换器的典型应用
- Si1140-DK、基于Si1143红外接近和环境光传感器的MCU C8051F800开发套件
- TC652DEMO,使用 TC652 PWM 风扇电机控制器的风扇控制演示板
- EVAL-ADXL327Z,用于 ADXL327 3 轴加速度计的评估板
- 使用 Analog Devices 的 RREF02 的参考设计
- NCP2811BMTTXGEVB:双音频电源评估板
- 使用 Analog Devices 的 LTC3617 的参考设计
- 有奖答题|TE《新能源应用解决方案白皮书》
- 分分钟完成电子设计的奥秘—2015WEBENCH邀你共同见证!
- 恩智浦LPC2000系列全套资料!
- 2021 Digikey KOL系列——亲手教你转起一台无刷电机
- ADI有奖下载活动之18 ADI双光束分光光度计演示系统和解决方案
- 选你所爱,TI 19款模拟芯片超低价团购!
- 免费申请 | Nordic Semiconductor nPM1300-EK PMIC 评估套件
- 电源小课堂 | 新电气架构激发电动汽车高压系统潜能,答题赢好礼!
- 直播已结束【借助 TI DLP 技术,开始您的下一代4K显示应用设计】
- 免费申请|中科亿海微神针系列FPGA开发板EQ6HL45 1V0