I/O操作
對4個寄存器的描述分別如下:
PxSEL寄存器中的每一個位用於選擇該引腳是使用外設功能還是GPIO功能.
Bit = 0:選擇IO功能;Bit = 1:選擇外設功能
例如:
P4SEL |= 0x0080; //P4.7選擇外設功能,0000 00001000 0000(b) P4.0~P4.7對應1~8bit
PxIN寄存器反應了該端口選擇IO功能(PxSELx = 0)時每一個位的輸入狀態:
Bit = 0:輸入的是低電平; Bit = 1:輸入的是高電平
PxIN是隻讀存儲器,通過讀取這些寄存器可以獲得對應引腳的狀態。
PxOUT寄存器中的值是配置爲IO功能時引腳的輸出狀態。
Bit = 0:輸出低電平; Bit= 1:輸出高電平
例如:
P4OUT |= 0x0080; //P4.7引腳輸出高電平
在使用PxIN和PxOUT時,我們要注意一下,IO口的方向配置,只有當IO配置爲輸入時PxIN纔有效,當IO口配置爲輸出時PxOUT纔有效。這裏使用PxDIR對IO口的輸入輸出方向進行配置。
Bit = 0:IO口被配置成爲輸入; Bit = 1:IO口被配置成爲輸出。
例如:
P4DIR |= 0x0080; //P4.7被配置成爲輸出引腳
LED引腳相關電路
當P4.7輸出低電平時,LED燈亮。
程序代碼
通過上面的講解,料定大家都知道了IO口的輸入輸出配置是怎樣的了,下面寫個程序來小試牛刀:
#include <msp430x16x.h>
int main( void )
{
//Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
P4SEL &= ~0x0080; //P4.7 select IO funciton
P4DIR |= 0x0080; //P4.7 set as output
P4OUT &= ~0x0080; //P4.7 output low level
while(1)
{
}
}
運行結果
燈亮了