0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MSP430f149端口功能及设置

电子设计 来源:网络整理 作者:工程师1 2018-05-29 15:35 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MSP430f149常用的端口有P1、P2、P3、P4、P5、P6,它们都可以直接用于输入/输出。MSP430系统中没有专门的输入/输出指令,输入/输出操作通过传送指令来实现。端口P1~P6的每一位都可以独立用于输入/输出,即具有位寻址功能。常见的键盘接口可以直接用端口进行模拟,用查询或者中断方式控制。由于MSP430的端口只有数据口,没有状态口或控制口,在实际应用中,如在查询式输入/输出传送时,可以用端口的某一位或者几位来传送状态信息,通过查询对应位的状态来确定外设是否处于“准备好”状态。

端口的功能:

(1)P1,P2端口: I/O,中断功能,其他片内外设功能如定时器比较器;

(2)P3,P4P5P6端口:I/O,其他片内外设功能如SPI、UART模式,A/D转换等;

MSP430各端口具有丰富的控制寄存器供用户实现相应的操作。其中P1,P2具有7个寄存器,P3~P6具有4个寄存器。通过设置寄存器我们可以实现:

(1)每个I/O位独立编程;

(2)任意组合输入,输出和中断;

(3)P1,P2所有8个位全部可以用作外部中断处理;

(4)可以使用所以指令对寄存器操作;

(5)可以按字节输入、输出,也可按位进行操作。

端口P1,P2的功能可以通过它们的7个控制寄存器来实现。这里,Px代表P1或P2。

(1)PxDIR:输入/输出方向寄存器。 8位相互独立,可以分别定义8个引脚的输入/输出方向。8位再PUC后都被复位。使用输入/输出功能时,应该先定义端口的方向 。作为输入时只能读,作为输出时,可读可写。0:输入模式;1:输出模式。

如:P1DIR|=BIT4; //P1.4输出 ,P2DIR=0XF0; //高4位输出,低4位输入。

(2)PXIN:输入寄存器,为只读寄存器。用户不能对它进行写入,只能通过读取其寄存器的内容来知道I/O口的输入信号。所以其引脚的方向要选为输入。如再键盘键盘扫描程序中经常要读取行线或者列线的端口寄存器值来判断案件情况。

例如:unsigned char key;

P1DIR&=~BIT4; //P1.4输入

……

key=P1IN&0X10; //输出端口P1.4的值

……

(3)PXOUT:输出寄存器。该寄存器为I/O端口的输出缓冲寄存器,再读取时输出缓存的内容与引脚方向定义无关。改变方向寄存器的内容,输出缓存的内容不受影响。

如:PIOUT|=0X01; //P1.0输出1 , PIOUT&=~0X01; //P1.0输出0 。

(4)PXIFG:中断标志寄存器。他的8个标志位标志相应引脚是否有中断请求有待处理。0:无中断请求, 1:有中断请求。其中断标志分别为PXIFG.0~PXIFG.7。应该注意的是:PXIFG.0~PXIFG.7共用一个中断向量,为多源中断。当任一事件引起的中断进行处理时,PXIFG.0~PXIFG.7不会自动复位,必须由软件来判断是对哪一个事件,并将相应的标志复位。另外,外部中断事件的时间必须保持不低于1.5倍的MCLK时间,以保证中断请求被接受,且使相应中断标志位置位。

(5)PXIES:中断触发沿选择寄存器。如果允许PX口的某个引脚中断,还需定义该引脚的中断触发方式。0:上升沿触发使相应标志置位,1:下降沿触发相应标志置位。如:MOV.B #07H, &P1IES ;p1低3位下降沿触发中断。

(6)PXIE:中断使能寄存器。PX口的每一个引脚都有一位用以控制该引脚是否允许中断。0:禁止中断 ,1:允许中断。MOV.B #0E0H, &P2IE ;P2高3位允许中断。

(7)PXSEL:功能选择寄存器。P1,P2两端口还具有其他片内外设功能,将这些功能与芯片外的联系通过复用P1,P2引脚的方式来实现。PXSEL用来选择引脚的I/O端口功能与外围模块功能。0:选择引脚为I/O端口,1:选择引脚为外围模块功能。如:P1SEL|=0X10; //P1.4为外围模块功能。

端口P3、P4、P5、P6没有中断能力,其余功能同PI,P2。除掉端口P1,P2与中断相关的3个寄存器,端口P3,P4,P5,P6的4个寄存器(用法同P1,P2)分别为PXDIR,PXIN,PXOUT,PXSEL可供用户使用。
端口COM和S,他们实现与液晶片的直接接口。COM为液晶片的公共端,S为液晶片的段码端。液晶片输出端也可经软件配置为数字输出端口。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45347

    浏览量

    663824
  • msp430
    +关注

    关注

    182

    文章

    2406

    浏览量

    232949
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    MSP-FET430闪存仿真工具(FET)手册

    本手册记录了德州仪器MSP-FET430闪存仿真工具(FET)。FET是MSP430超低功耗微控制器的开发工具。这里描述了并行端口接口和USB接口这两种可用接口。本手册描述了FET的设置
    发表于 05-30 14:53 0次下载

    MSP430F449和MSP430F5438的ADC12模块中,采样频率大于200KHZ,这个是单通道的采样频率,还是整体的采样频率?

    各位专家,您们好!MSP430F449和MSP430F5438的ADC12模块中,采样频率大于200KHZ,这个200KHZ是单通道的采样频率,还是整体的采样频率?我需要使用AD精确采集模拟信号,急需每个通道的采样频率是多少,能不能给些这方面的参考资料?
    发表于 02-14 06:40

    如何用MSP430F149来控制ADS1298?

    我买了你们的ADS1298,现打算用MSP430F149来控制它,请问有无相关的SPI控制代码以及心电信号数据传输的代码,以便在此基础上进行开发
    发表于 02-11 07:29

    MSP430F149的SPI0与ADS1291进行通信,发送读寄存器后收到返回值都是00,DRDY一直是高电平,为什么?

    我用MSP430F149的SPI0与ADS1291进行通信,硬件是自己做的,经仔细检查无误。我怀疑是软件问题,软件是通过官方例程移植的,然后根据技术文档对1291初始化。问题是发送读寄存器后收到返回值都是00,DRDY一直是高电平,请教技术人员或者过来人给予一些帮助,谢谢。
    发表于 02-07 08:34

    ADS1278无法读出数据是什么原因?

    我用msp430f149读ads1278,msp430用的是8M晶振,SPI设置正确,ads1278设置的是高分辨率模式,27M晶振,PWDN1-8引脚也为高; 运行过程中,1278
    发表于 02-07 07:30

    msp430F2471控制ads1298,如何提高采样频率?

    msp430F2471控制ads1298,SPI通讯,我能做到的最高采样频率是4K。 msp430F2471 时钟设置: DCOCTL = 0;// Select lowest DCOx
    发表于 01-22 08:10

    请问ADS1245的参考电压VREFP与VREFN如何输入?

    请问是不是按照手册上所写:Vref=1.25V是必须的呀?一般情况下,VREFP与VREFN是连接到什么输入的,例如ADS1245与MSP430F149共同使用时?
    发表于 01-22 07:48

    ADS1259与MSP430F149连接时,430上的STE端口怎么接呢?

    ADS1259与MSP430F149连接时,430上的STE端口怎么接呢?
    发表于 01-17 08:22

    使用MSP430F149的I/O口模拟SPI接口与LDC1000进行通信,后面两个寄存器的输出都是0x00,为什么?

    最近在使用MSP430F149的I/O口模拟SPI接口与LDC1000进行通信,通信基本上实现了,但是有一个问题,就是在读取Proximity data寄存器(0x21、0x22
    发表于 01-16 07:07

    MSP430F149控制AFE4400,AFE4400的SOMI脚一直没有信号输出是怎么回事?

    我自己做了个板子用MSP430F149控制AFE4400。CLKOUT有4M的时钟输出,但是不管我怎么通过MSP430F149的SPI写和读AFE4400的寄存器始终没有看到它的SOMI脚有信号
    发表于 01-13 08:15

    是否可以用msp430f5529的开发板直接进行程序调试?

    1.ldc1000的Vio是否可以接5v的电压,如果接了,会影响芯片的使用或者损坏芯片吗? 2.是否可以用msp430f5529的开发板直接进行程序调试? 3.附件中的文档讲得是LDC1000
    发表于 01-13 06:07

    可以用ADS1292采集到数据,但是信号处理怎么做?

    现在可以用ADS1292采集到数据,但是信号处理怎么做?我用的是MSP430F149单片机,但是用软件滤波感觉难度很大,可不可以用上位机滤波?
    发表于 01-10 07:33

    MSP430F149如何配置spi和DS1302使用?

    我是一个小白,刚刚学习msp430系列芯片,我看到MSP430F149可以配置USART使其成为SPI的方式,但是,和DS1302就不知道怎么配置了。 MSP430F149与SPI相关的有MISO
    发表于 01-06 07:21

    ADS8353无法用msp430f149驱动吗?

    ADS8353是不是无法用msp430f149驱动
    发表于 12-31 07:02

    MSP430x5xx和MSP430x6xx系列系列用户指南

    电子发烧友网站提供《MSP430x5xx和MSP430x6xx系列系列用户指南.pdf》资料免费下载
    发表于 12-19 15:32 4次下载
    <b class='flag-5'>MSP430</b>x5xx和<b class='flag-5'>MSP430</b>x6xx系列系列用户指南