新浪博客

MSP430F169单片机编程基础——(四)I/O操作

2011-08-29 19:43阅读:
四、 I/O操作
端口P1具有输入/输出、中断和外部模块功能,这些功能可通过 7个控制寄存器
各控制寄存器特点及其使用:

(一) PxDIR 输入/输出方向寄存器
相互独立的8位分别定义了Px 口的
8位的输入输出方向。在PUC 复位后 PIDIR 各位均复位。
使用输入/输出功能时,应先定义端口方向。作为输入时,只能读;作为输出时,可读可写。
MSP430F169单片机编程基础——(四)I/O操作
PxDIR.x:端口输入输出方向控制
0输入模式
1输出模式
操作:
P1DIR |=0x10; 00010000B // P1.4作输出,其余各位端口方向不变。
P1DIR &=0x7f; 01111111B // P1.7作输入,其余各位端口方向不变。

(二) PxIN 输入寄存器
该寄存器是只读寄存器。只能通过读取该寄存器内容才能知道 Px 口的输入信号的状态。
读出此寄存器的内容中,只有Px口设为输入的数据位有效。
MSP430F169单片机编程基础——(四)I/O操作
对于Px口设为输出的那些位,一般来说,PxIN.x = PxOUT.x
PxIN.x:端口输入的电平
0端口输入低电平
1端口输入高电平
操作:
unsigned char Temp;
P1DIR &=0x77 ;01110111B // P1.3P1.7输入
Temp = P1IN; // Temp为已定义的一变量,Temp 中只要第7位和第4位有效。

(三) PxOUT 输出寄存器
该寄存器可读可写,读取时,其内容与 Px 口引脚定义无关。改变方向寄存器的内容,此寄存器内容不受影响。
MSP430F169单片机编程基础——(四)I/O操作
PxOUT.x:端口输出的电平
0端口输出低电平
1端口输出高电平
注意:
如果P1OUT.0 = 1P1.0输出高) ,但是 P1DIR.0 = 0(该引脚为输入模式) ,则此时 P1.0为输入;(方向寄存器>输出寄存器)
如果P1DIR.0 = 1(该引脚为输出模式) ,则此时 P1.0为输出,并且输出为高电平。 (方向寄存器默认输出为1
操作:
P1DIR |=0x88; 10001000B // P1.3P1.7输出
P1OUT |=0x88; // P1.3P1.7输出高电平

(四) PxSEL 引脚功能选择寄存器
该寄存器可读可写,如果有该引脚具有特殊功能的话,则可以通过该寄存器使用特殊功能。
MSP430F169单片机编程基础——(四)I/O操作
PxSEL.x:引脚功能选择
0该引脚的普通O/I端口
1 该引脚的功能端口(应用第二功能口)

(五) PxIFG 中断标志寄存器
该寄存器只有P1P2口才有,该寄存器有 8个标志位,标志相应引脚是否有中断请求。
MSP430F169单片机编程基础——(四)I/O操作
PxIFG.x:中断标志
0该引脚无中断请求
1该引脚有中断请求

(六) PxIE 中断允许寄存器
该寄存器只有P1P2口才有,该寄存器有 8个标志位,标志相应引脚是否能响应中断请求。
MSP430F169单片机编程基础——(四)I/O操作
PxIFG.x:中断允许标志
0该引脚中断禁止
1该引脚中断允许

(七) PxIES 中断触发沿控制寄存器
该寄存器只有P1P2口才有,该寄存器有 8个标志位,标志相应引脚的中断触发沿。
MSP430F169单片机编程基础——(四)I/O操作
PxIFG.x:中断触发沿选择
0上升沿产生中断
1下降沿产生中断

我的更多文章

下载客户端阅读体验更佳

APP专享