MSP430--通用IO端口
1.端口的寄存器:
(1)P1-P2端口具有中斷能力,共7個寄存器
PxIN輸入寄存器,只讀寄存器,即只能讀取輸入端口x的數據;
PxOUT輸出寄存器,可讀可寫,即可以向輸出端口寫8位數據輸出,同時也可以讀取數據;
PxDIR方向位寄存器,當PxSEL選擇普通IO口時,PxDIR決定是輸出還是輸入,0輸入,1輸出;
PxSEL功能選擇寄存器,選擇普通功能或者復用功能;0普通IO口,1復用功能;
PxIE中斷使能寄存器,1使能相應位的中斷,0不使能;注意:在中斷當中要手動清除中斷標志位。
PxIFG中斷標志寄存器,1相應中斷標志位有效,0無效;
PxIES中斷觸發(fā)沿選擇寄存器,0上升沿,1下降沿相應中斷標志位置位
(2)P3--P6無中斷能力,共4個寄存器
PxIN輸入寄存器,只讀寄存器,即只能讀取輸入端口x的數據;
PxOUT輸出寄存器,可讀可寫,即可以向輸出端口寫8位數據輸出,同時也可以讀取數據;
PxDIR方向位寄存器,當PxSEL選擇普通IO口時,PxDIR決定是輸出還是輸入,0輸入,1輸出;
PxSEL功能選擇寄存器,選擇普通功能或者復用功能;0普通IO口,1復用功能;
2.例程:
(1)//程序描述:P1,P2口具有中斷功能,通過設置寄存器,實現P1口外部中斷
#include"msp430x14x.h"
#define uchar unsigned char
#define uint unsigned int
uchar i;
uint j;
uchar seg[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//共陽數碼管字型碼數組
void main()
{
}
#pragma vector=PORT1_VECTOR
__interrupt void p1()
{
}
(2)IO端口中斷模塊中斷程序,以P1口為例
void main()
{
}
#pragma vector=PORT1_VECTOR
__interrupt void p1()
{
}
評論