历史上的今天
返回首页

历史上的今天

今天是:2025年01月07日(星期二)

正在发生

2020年01月07日 | MSP430单片机的端口介绍

2020-01-07 来源:eefocus

MSP430的端口有P1、P2、P3、P4、P5、P6、S和COM(型号不同,包含的端口也不仅相同,如MSP430X11X系列只有P1,P2端口,而MSP430X4XX系列则包含全部上述端口),它们都可以直接用于输入/输出。MSP430系统中没有专门的输入/输出指令,输入/输出操作通过传送指令来实现。端口P1`P6的每一位都可以独立用于输入/输出,即具有位寻址功能。常见的键盘接口可以直接用端口进行模拟,用查询或者中断方式控制。由于MSP430的端口只有数据口,没有状态口或控制口,在实际应用中,如在查询式输入/输出传送时,可以用端口的某一位或者几位来传送状态信息,通过查询对应位的状态来确定外设是否处于“准备好”状态。


端口的功能。

(1)P1,P2端口: I/O,中断功能,其他片内外设功能如定时器、比较器;(2)P3,P4P5P6端口:I/O,其他片内外设功能如SPI、UART模式,A/D转换等;(3)S,COM端口:I/O,驱动液晶。


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为液晶片的段码端。液晶片输出端也可经软件配置为数字输出端口。

推荐阅读

史海拾趣

Excelics [Excelics Semiconductor, Inc.]公司的发展小趣事

在半导体行业,产品质量是企业生存和发展的关键。Excelics Semiconductor始终将品质管理放在首位,建立了严格的质量控制体系。他们通过引进先进的生产设备和技术,确保每一片芯片都符合高标准的质量要求。这种对品质的执着追求赢得了客户的信任和市场的认可。

Adam Tech公司的发展小趣事

为了进一步拓展市场,Adam Tech开始实施全球化战略。公司在北美、欧洲和亚洲等地设立了多个代表处,以便更好地服务全球客户。这些代表处不仅为公司带来了更多的业务机会,也提升了公司在国际市场上的知名度。同时,公司还积极与各地合作伙伴建立紧密的合作关系,共同推动电子连接器行业的发展。

Cyrustek公司的发展小趣事

在Cyrustek公司的发展过程中,人才一直是其最重要的资产。Cyrustek注重人才的培养和引进,建立了一支高素质、专业化的技术团队。这些人才不仅具备丰富的行业经验和专业知识,还具备创新精神和团队协作能力。在Cyrustek公司的发展过程中,这些人才发挥了至关重要的作用,推动了公司的不断发展和壮大。

ARMKEIL Microcontroller Tools公司的发展小趣事

随着技术的不断进步和市场的不断扩大,ARMKEIL Microcontroller Tools公司开始实施全球化战略。公司不仅在欧洲和美国设立了研发中心和销售网络,还积极开拓亚洲市场,与多个国家和地区的合作伙伴建立了紧密的合作关系。通过全球化布局和市场拓展,ARMKEIL Microcontroller Tools公司的业务范围不断扩大,品牌影响力也逐渐提升。

这五个故事只是ARMKEIL Microcontroller Tools公司发展过程中的一部分。实际上,该公司的成长历程充满了无数的挑战和机遇。正是凭借着对技术的不断追求和对市场的敏锐洞察,ARMKEIL Microcontroller Tools公司才能在激烈的竞争中脱颖而出,成为嵌入式系统开发工具领域的佼佼者。

BSI公司的发展小趣事

近年来,随着环保意识的提高,电子行业对绿色发展的需求也日益迫切。BSI积极响应这一需求,推动了电子行业绿色标准的制定和实施。通过制定严格的环保标准,BSI引导电子产品制造企业采用更加环保的生产工艺和材料,减少了对环境的污染。同时,BSI还为企业提供了碳排放核查等服务,帮助企业了解自身的碳排放情况,制定了减排措施,推动了电子行业的绿色发展。

蓝箭(BLUE ROCKET)公司的发展小趣事

蓝箭电子的前身是佛山市无线电四厂,创建于七十年代初。随着时代的变迁和市场的需求,该厂在1998年成功转制为有限责任公司,迈出了向现代化企业转型的重要一步。这次转型不仅为公司注入了新的活力,也为后续的发展奠定了坚实的基础。

问答坊 | AI 解惑

为什么GPIO中有的Pin要设为Pull_Up/Pull_Down?

如题,其中有的pin为输入pin,有的pin为输出pin,但是为什么要设置一些pin的属性为pull up或者为pull down,pull up/pull down到底是干吗用的?根据什么来设的呢,聆听各位大虾的教诲!!…

查看全部问答>

两相四线的步进电机,启动后方向为何不确定?

电机是12v两相四线,驱动芯片是L6219,脉冲指令是八拍的。完全空载启动,各种启动频率都试过了。就算是相同的指令,启动后方向都不确定。实在想不明白是哪里出了问题。(不是电机本身的问题,两个相同的电机现象一样)。 还有一个疑问是,两相的电压 ...…

查看全部问答>

djyos缘起

    一直不敢公开这篇东西,怕别人笑我,笑一个毫无软件经验的硬件工程师居然不自量力地向uclinux(是uclinux而不是linux)、vworks、wince等巨头们挑战。然而,计算机界是需要奇迹的,也是孕育奇迹的天堂,辍学的盖茨能盖起微软王国, ...…

查看全部问答>

3MAB5000/AB5000S/AB5000R吸波材料

3MAB5000/AB5000S/AB5000R吸波材料 上海常祥实业有限公司作为3M顶级合作伙伴,全面代理3M电磁屏蔽电磁吸波兼容胶带EMC/EMI/RFI胶带,上海常祥公司可以提供性价比最高的3M电磁屏蔽电磁兼容胶带EMC/EMI/RFI胶带产品,并且是唯一一家可以提供3M电磁屏 ...…

查看全部问答>

WinCE5 C# serialport控件的 接收数据 问题!

问题说明:     我在WinCE5环境里,使用vs2005(C#)编写串口Demo ,使用serialport控件,现在数据接收不行,查看资料后说需要适用委托,我按照例子更改后仍然不能接收,将接收这一段的代码贴出来,请大家指点!     using Sys ...…

查看全部问答>

一个关于i2c总线锁死的问题

最近用了一块i2c总线的ad芯片,现在遇到这个情况:芯片一开始正常工作,写进去的值和转化后的值都准确,工作一端时间后(时间不定)就出现了锁死现象,表现为sda被拉低,会有乱码出来(不是正常波形),scl比较正常,但少了一段.以接上拉电阻,10k ...…

查看全部问答>

wince5.0 系统休眠唤醒后出现异常

我的系统,用的2416。在休眠唤醒后出现异常: 1 运行地图中的游戏。此时休眠唤醒后,游戏没声音。但在其他地方就正常。 2 运行地图时,在某一个界面,休眠唤醒后,文字显示不出来,但在其他界面就是好的, 3 我在休眠前显示了一个窗口。本想在唤 ...…

查看全部问答>

彻底杜绝病毒木马的加密U盘

彻底杜绝病毒木马的加密U盘 (secWall 安全U盘)     secWall 安全U盘(防病毒木马保密U盘)   超强的数据防泄密安全性 加密闪存设备(安全U盘)可以设定主人的安全认证密码(PIN),防止设备丢失后被其它人利用。另外,增强 ...…

查看全部问答>

STM32如何控制PWM脉冲输出数量

                                 STM32如何控制PWM脉冲输出数量,,我用PWM脉冲来做我外设的同步时钟所以需要确切的数值!…

查看全部问答>