您的位置 首页 应用

MSP430–通用IO端口

IO端口是单片机最常用的外设模块,由于单片机的总线不对外开放,所以单片机和外部进行信息交流的桥梁就是数字IO端口。目前,MSP430系列单片

IO端口是单片机最常用的外设模块,因为单片机的总线不对外开放,所以单片机和外部进行信息沟通的桥梁便是数字IO端口。

现在,MSP430系列单片机傍边有端口P1,P2,P3,P4,P5,P6等端口,其间P1,P2的每一位都有中止功用,但不是独立的,P1口每位共用PORT1_VECTOR中止向量,P2共用PORT2_VECTOR向量。

P1–P6端口大多数是复用的,具有第二功用能够经过PxSEL挑选是一般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中止触发沿挑选寄存器,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()
{
WDTCTL=WDTPW+WDTHOLD;//
P4DIR=0xff;
//

P1DIR&=~BIT0;//p1.0口设置为输入
P1IFG=0;//开中止前清楚标志位
//P1IN=1;//!!!留意:PxIN寄存器只能读不能写
P1IES&=~BIT0;//中止源挑选.下降沿触发
P1IE|=BIT0;//中止使能
_EINT();//开总中止
}
#pragma vector=PORT1_VECTOR
__interrupt void p1()
{
i++;
if(P1IFG&BIT0)
for(j=0;j<2000;j++);
P4OUT=seg[i];//点亮灯
if(i>=9)
i=0;
P1IFG=0;
return;
}

(2)IO端口中止模块中止程序,以P1口为例

void main()

{

p1.0口设置为输入;
清标志位;

中止使能;

中止触发沿挑选;

开总中止;

}
#pragma vector=PORT1_VECTOR//中止函数
__interrupt void p1()
{

if(P1IFG & BIT0)

{

功用代码0;

}

if(P1IFG & BIT1)

{

功用代码1;

}

…….

if(P1IFG & BIT7)

{

功用代码7;

}

P1IFG = 0;//!!!!!!!!!!!!!留意:有必要铲除中止标志位

}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/258748.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部