MSP430单片机IO面面观

发布者:sky0001最新更新时间:2016-08-02 来源: eefocus关键字:MSP430  单片机 手机看文章 扫描二维码
随时随地手机看文章
一、MSP430单片机的端口概述

        P1~P6每组有8个I/O 口,P3、P4、P5、P6具有I/O及其它片内外设功能,每组具有4个寄存器。P1、P2除具有上述功能外还具有中断能力,每组具有7个寄存器。

二、Px端口

1. P1、P2端口

(1)PxDIR 输入/输出方向寄存器(x代表1,2)

        相互独立的八位分别定义了Px7~Px0,8个引脚的输入输出方向。

        0  输入模式,只能读。

        1  输出模式,可读可写。

        8位在PUC后都被复位及置为0。

        Eg:P1DIR = 0x0F;

        这里,0x0F为16进制表示,对应的二进制为0000 1111,即将P1DIR的高4位置0,低4位置1,也就是将P1.7、P1.6、P1.5、P1.4(P1的高4位)设置为输入模式;将P1.3、P1.2、P1.1、P1.0(P1的低4位)设置为输出模式。

(2)PxIN 输入寄存器

        每一位对应一个输入端口,如:第2位对应Px.2,记录着对应位输入的数据,0还是1。输入寄存器是只读寄存器,用户不能对它写入,只能从中读数据。

        eg:

        char a;

        a = P1IN;

        将P1输入的数据赋给a,也可以读取其中的一位或若干位。

        eg: if((P1IN&0x01) == 1) a = b;

        这句话的意思是如果P1IN得最低位为1,即P1.0输入的是1,就将b赋给a;其中’&’意思是按位求与运算,即将P1IN中的8位数据和0x01按位求与运算。

(3)PxOUT输出寄存器

        该寄存器为I/O端口的输出缓冲寄存器,每一位对应一个输出端口,如:第2位对应Px.2。用户向对应位写入数据,则对应的端口就会输出对应的数据。

        eg:

        P1OUT = 0x01;

        将P1OUT的最低位置1,其它位置0,即P1.7、P1.6、P1.5、P1.4、P1.3、P1.2、P1.1输出0, P1.0输出1;

        P1OUT = BIT0;

        通过查阅MSP430单片机的头文件我们可以知道BIT0就是0x01,说以这句话和上一句是等价的,之所以这样写,是为了使程序更易懂,更简洁。

(4)PxIFG中断标志寄存器

        0  表示没有中断请求

        1  表示有中断请求

        中断标志PxIFG.0~ PxIFG.7共用一个中断向量,属于多源中断。当对应的I/O口有上升沿或下降沿出现时,对应的标志位会置位,如果中断允许而且系统总中断允许,则产生中断,并执行中断处理程序。

        注意:1. PxIFG.0~ PxIFG.7被置位后,不会自动复位。必须用软件判定哪一个I/O有中断事件产生,并将相应的标志位复位。

        2.外部中断事件的事件必须保持不低于1.5倍的MCLK 时间,以保证中断请求被接受,且使相应的中断标志置位。

(5)PxIE中断使能寄存器

        0  禁止中断

        1  允许中断

        只有跳变才能引起中断请求,而静电平不能。

(6)PxIES中断触发沿选择寄存器

        0  上升沿使相应标志位置位

        1  下降沿使相应标志位置位

(7)PxSEL功能选择寄存器

        0  选择引脚为I/O功能

        1  选择引脚为外围模块功能

        单片机内还有丰富的外围模块,这些模块通常也需要和外界进行通信,但是单片机的引脚有限,故采用P1和P2引脚复用的方法来实现。

        eg:

        P5SEL |= 0x10;    // P5.4 用作MCLK输出

2. 端口P3、P4、P5、P6

(1)端口P3、P4、P5、P6除没有中断能力外,其余功能和P1、P2相同,包括输入输出功能和外围模块功能。

(2)由于端口P3、P4、P5、P6没有中断能力,所以它们没有和中断相关的寄存器,每组端口有4个寄存器分别为:PxDIR 输入/输出方向寄存器,PxIN 输入寄存器,PxOUT输入寄存器,PxSEL功能选择寄存器。

三、端口COM和S

        用来实现与液晶的直接接口,只有MSP430F4XX系列的单片机才有。

—————————————————————————————————————————

#include "msp430x26x.h"

void main( void )

{

    // Stop watchdog timer to prevent time out reset

    WDTCTL = WDTPW + WDTHOLD;   //停止看门狗,WDTPW是看门狗写口令,WDTHOLD是看门狗停止位。

    P1DIR = 0x0f;              //PxDIR方向寄存器,0为输入模式,1为输出模式。

    //在PUC全部复位后。作为输入时,只能读;作为输出时,可读可写。

    P1OUT = 0xff;

    P1IE |= 0xf0;           // P1.4、5、6、7中断使能(0禁止中断,1允许中断)

    P1IES |= 0xf0;         // P1.4、5、6 IO口边沿中断触发模式,下边沿有效(0上升沿有效,1下降沿有效)

    P1IFG &= 0x00;        // P1.4、5、6 清IO中断标志位

    P2DIR |= BIT3+BIT4;

    P2OUT = 0xff;

    P2IE |= BIT0+BIT1;

    P2IES |= 0x00;

    P2IFG &= 0x00;

    _EINT();             //开总中断允许

    LPM4;              //(LOW  POWER  MODE)进入低功耗模式4,此时单片机功耗最低

}

//***************************************************************

//P1口中断服务程序

#pragma vector=PORT1_VECTOR

__interrupt void p1int(void)

{

    if((P1IFG&0xf0)==0x10) P1OUT=0xf1;

    else if((P1IFG&0xf0)==0x20) P1OUT=0xf2;

    else if((P1IFG&0xf0)==0x40) P1OUT=0xf4;

    else if((P1IFG&0xf0)==0x80) P1OUT=0xf8;

    P1IFG &= 0x00;

}

#pragma vector=PORT2_VECTOR

__interrupt void p2_port(void)

{

    if((P2IFG&0x0f)==0x01) P2OUT=0x04;

    else if((P2IFG&0x0f)==0x02) P2OUT=0x08;

    P2IFG &= 0x00;

}

关键字:MSP430  单片机 引用地址:MSP430单片机IO面面观

上一篇:MSP430单片机定时器面面观
下一篇:Keil Memory Model的选择问题

推荐阅读最新更新时间:2024-03-16 15:02

51单片机仿真实例 ,直流电机的正反转演示实例
简介:基于proteus的51单片机仿真实例之直流电机的正反转演示实例。本例运行时,按下相应的按键,电机即可产生正转、反转、停止的效果。同时相应的LED指示灯也会点亮。 1、本例运行时,按下相应的按键,电机即可产生正转、反转、停止的效果。同时相应的LED指示灯也会点亮。 当P1.0输出低电平时:Q3,Q2截止,Q7,Q1导通,电机左端输出高电平;P1.1输出高电平时:Q8,Q4截止,Q6,Q5导通,电机右端输出低电平,此时,电机正转。 反之, 当P1.0输出高电平时:Q3,Q2导通,Q7,Q1截止,电机左端输出低电平;P1.1输出低电平时:Q8,Q4导通,Q6,Q5截止,电机右端输出高电平,此时,电机反转。 当P
[单片机]
51<font color='red'>单片机</font>仿真实例 ,直流电机的正反转演示实例
基于8051单片机的电阻成型机设计
在电子产品生产过程中,通常需要在电阻或二极管焊接前对其进行成型处理,即对电阻或二极管的引脚进行剪切和折弯。传统的人工电阻成型方法效率低、形状不规则、成本高。虽然目前市场上手摇式电阻成型机,能有效地实现电阻成型,但不能对已加工电阻数量进行实时显示,并按数量需求生产电阻。设计通过光电传感器采集产品数量信息,然后把采集到的信号传送给单片机,信号经过单片机的运算处理后,将已经加工的电阻数量将通过液晶屏显示,当计数值与设定值相等时单片机输出控制信号结束生产,文中提出的设计方案计数准确、检测速度快、实用性强。 1 电阻成型机的组成和工作过程 1.1 电阻成型机的组成 文中电阻成型机主要由控制器和机械传动装置两部分组成,控制器包括单片机控
[单片机]
基于8051<font color='red'>单片机</font>的电阻成型机设计
STC单片机I/O口控制程序(两个不同的跑马灯效果)
STC公司的单片机主要是基于8051内核,是新一代增强型单片机,指令代码完全兼容传统8051,速度快8~12倍,带ADC,4路PWM,双串口,有全球唯一ID号,加密性好,抗干扰强.控制灵活!且价格便宜!也就几块钱吧!但你让她发挥出了性能,就不止几块钱了哦!单片机叫什么?o( _ )o...微型计算机 ORG 000H ;起始地址 START: ;开始 MOV R2,#
[单片机]
如何在Proteus中实现单片机的串口调试功能?
这个做起来就比较简单了,我编写了一个工作在9600bps的8051的串口程序,程序的功能就是将串口接收到的数据发送出来,Proteus中的连线为: 数据传输的图示为: 这样就模拟实现了单片机与串口之间的通信,可以实现两者之间的仿真设计。同样实现该通信的数据流为:
[单片机]
如何在Proteus中实现<font color='red'>单片机</font>的串口调试功能?
AD0804单片机控制程序
/*采用AD0804芯片,硬件 电路 :cs片选端接P2.3,WR写数据端写P3.6,RD读数据端接P3.7,锁存端接P2.6脚, 数码管 位选端分别接P3.2 ,P3.3,P3.4,段选端接P1口*/  #include reg52.h //头文件  #define uint unsigned int//宏文件  #define uchar unsigned char//宏文件  uchar num;//变量  void delay3(uint z);//延时定义  void dissy();//延时函数定义  sbit ge=P3^2;//个位定义  sbit shi=P3^3;//十位定义  sbit bai=P3^4;
[单片机]
单片机最小系统与PC机的通信分析
  PC机和多个单片机也可以组成多级控制系统,一般以PC机为后级,多个单片机最小系统为前级。其通信一般由两个独立的模块组成,即单片机通信模块和PC机通信模块。      1.单片机通信模块的设计      51单片机内串行口部分有两个物理上相互独立的数据缓冲器SBUF,但两个缓冲器的地址是一个(99H)。该缓冲器用来发送和接收数据。专用寄存器SCON和PCON控制串行口的工作方式和通信的波特率设定。定时器作为波特率发生器。CPU和SBUF写数据即是发送数据,CPU从SBUF读数据就是接收数据。      单片机51串行口是全双工串行通信口。0串行口控制寄存器是SCON。      SMO和SMl:工作方式选择位,如表所列。
[单片机]
<font color='red'>单片机</font>最小系统与PC机的通信分析
使用ARM7 LPC2148微控制器构建一个简单的机械臂
  机械臂是令人着迷的工程创造之一,看着这些东西倾斜和平移以像人类手臂一样完成复杂的事情总是令人着迷。这些机械臂常见于装配线上进行焊接、钻孔、喷漆等高强度机械工作的行业中,最近还开发了高精度的先进机械臂来执行复杂的外科手术。因此,在本教程中,让我们使用 ARM7-LPC2148 微控制器构建一个简单的机械臂,通过手动控制几个电位器来拾取和放置物体。   所需组件   3D 打印机机械臂   ARM7-LPC2148   SG-90 伺服电机 (4)   10k 电位器 (4)   按钮 (4)   发光二极管 (4)   5V (1A) 直流电源适配器   电阻器(10k (4)、2.2k(4))   面包板   连接电线
[单片机]
使用ARM7 LPC2148<font color='red'>微控制器</font>构建一个简单的机械臂
80C51单片机的定时器/计数器介绍
定时器/计数器介绍 定时/计数器T0和T1分别是由两个8位的专用寄存器组成,即定时/计数器T0由TH0和TL0组成,T1由TH1和TL1组成。此外,其内部还有2个8位的特殊功能寄存器TMOD和TCON,TMOD负责控制和确定T0和T1的功能和工作模式,TCON用来控制T0和T1启动或停止计数,同时包含定时/计数器的状态。 TF1:定时器1溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除。或用软件清除。 TF0:定时器0溢出标志。定时/计数器溢出时由硬件置位。中断处理时由硬件清除,或用软件清除。 在现在很多新MCU中,不只有两个 定时/计数器,例如STC15系列就有四个定时/计数器,但是在使用上操作上是大同小异的。
[单片机]
80C51<font color='red'>单片机</font>的定时器/计数器介绍
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved