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