MSP430单片机IO面面观

发布者:神雕最新更新时间:2021-03-19 来源: 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面面观

上一篇:采用 MSP430FR5739 实现应用至物联网的连接
下一篇:基于MSP430单片机的智能小车设计

推荐阅读最新更新时间:2024-11-13 15:05

单片机定时器T0和P1.7端口产生连续矩形脉冲的程序
已知51单片机,fosc=6MHz,试编写程序,利用T0和P1.7产生如下图所示的连续矩形脉冲。 参考程序: org 0000h ljmp main org 000bh ljmp int_t0 org 0030h main: mov tmod,#00000010b mov ie,#10000010b mov th0,#0ech mov tl0,#4ch clr p1.7 setb tr0 sjmp $ int_t0: jb p1.7,loop
[单片机]
用<font color='red'>单片机</font>定时器T0和P1.7端口产生连续矩形脉冲的程序
单片机在LED显示屏硬件设计应用
  设计使用宏晶科技的8 位单片机STC12C5A60S2 作为中央控制器, 结合NAND 闪存芯片K9F4008 存储汉字库的8×128 点阵LED 数字屏,该点阵LED 数字屏具有存储信息后离线显示的功能。可应用到多种显示环境,尤其像汽车等移动工具上的脱机显示环境。   自上世纪90 年代以来, 随着LED 显示技术设计制造水平的不断提高,LED 数字屏逐渐在生产和生活中大量使用,LED 数字屏以其特有的显示介质, 在大面积, 全天候, 高亮度和超高亮度显示屏领域凸现优势。LED 显示技术发展的十几年中, 新器件和新技术不断采用, 制造成本逐渐降低, 生产分工不断细化, 但大量应用的同时也暴露出LED 显示技术的若干缺陷,
[单片机]
<font color='red'>单片机</font>在LED显示屏硬件设计应用
Octonion全新AI工业状态监测扩展软件包可在STM32 MCU完美运行
专业开发工业设备诊断边缘人工智能(AI)的深度技术软件公司Octonion 发布了一个STM32Cube扩展软件包。该软件包是针对来自横跨多重电子应用领域的全球领先的半导体供应商意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)的工业级STM32L4 +微控制器开发板的优化过的状态监测解决方案。 Octonions的新软件包支持意法半导体在快速增长的工业状态监测和预测性维护市场上发起的使用STM32微控制器和微处理器开发人工智能应用的市场活动。Octonion的I-CUBE-OCTMI 软件包是一个运行在STM32 超低功耗MCU上的自我维护系统,系统引擎Octonion Edge BI能
[物联网]
应对单片机破解的几点建议
  任何一款单片机,从理论上讲,攻击者均可利用足够的投资和时间使用以上方法来攻破。所以,在用单片机做加密认证或设计系统时,应尽量加大攻击者的攻击成本和所耗费的时间。这是系统设计者应该始终牢记的基本原则。除此之外,还应注意以下几点:   (1)在选定加密芯片前,要充分调研,了解单片机破解技术的新进展,包括哪些单片机是已经确认可以破解的。尽量不选用已可破解或同系列、同型号的芯片。   (2)尽量不要选用MCS51系列单片机,因为该单片机在国内的普及程度最高,被研究得也最透。   (3)产品的原创者,一般具有产量大的特点,所以可选用比较生僻、偏冷门的单片机来加大仿冒者采购的难度。   (4)选择采用新工艺、新结构、上市时间较短的
[单片机]
单片机 液晶显示实验 (原理图加代码)
本实验回顾:是关于字符型LCD的显示原理的学习以及掌握字符型LCD显示字符的用法。 1.使用LCD显示两行字符,第一行显示“hello + 英文名字”,第二行显示时间(正确的年月日) !注意,这里使用1602是无法显示汉字的,只能显示大小写和阿拉伯数字。 (万年历实验之后有空再更新) -------------------------------------------------------------------------分割线 原理图附上: 这里有几个主要注意: 1.如果D0-D7要接在P0口的话,必须接上拉电阻,否则仿真时会出现灰色的电平,然而直接接P2口便不需要上拉电阻。51芯片一直要注意这个问题。 2.本实验
[单片机]
<font color='red'>单片机</font> 液晶显示实验 (原理图加代码)
基于msp430单片机定时器的使用方法解析
通过计算设置周期。 #include void main( void ) { // Stop watchdog timer to prevent TIme out reset WDTCTL = WDTPW + WDTHOLD; //WDTCTL = 0X5A80;关狗 CCTL0 = CCIE; //使能CCR0中断 CCR0 = 4095; //设置周期为0.5s TACTL = TASSEL_2 + ID_2 + MC_1; //时钟源的选择,分频,模式 P2DIR = 0XFF; // P2OUT = 0XFF; _EINT(); LPM0; } #pragma vector = TIMERA0_VECTOR __inter
[单片机]
基于<font color='red'>msp430</font><font color='red'>单片机</font>定时器的使用方法解析
单片机控制LED闪光灯
1.实验任务   做单一灯的左移右移,硬件电路如图4.4.1所示,八个发光二极管L1-L8分别接在单片机的P1.0-P1.7接口上,输出 0 时,发光二极管亮,开始时P1.0 P1.1 P1.2 P1.3 ┅ P1.7 P1.6 ┅ P1.0亮,重复循环。 2.电路原理图 3、结果说明: 4、汇编源程序 ORG 0 START: MOV R2,#8 MOV A,#0FEH SETB C LOOP: MOV P1,A LCALL DELAY RLC A DJNZ R2,LOOP MOV R2,#8 LOOP1: MOV P1,A LCALL DELAY RRC A DJNZ R2,LOOP1
[单片机]
IAR for MSP430 v5.10 & IAR全系列软件注册机
简介:IAR IAR for MSP430 v5.10 已经发布,大家可以去IAR官网下载,同时注册机我也相应的进行修改了。 而且这回USB仿真器的驱动也更新了,包含了vista和win7的驱动,而且32位和64位的都有,兼容性更好: 注册机相对于我上次发布的 20100317 版本注册机的区别: 1、将所有注册机集成成为3个注册机,使用和收藏都比较方便 2、更新Embedded Workbench For ARM 为 v5.50 最新版本 3、更新Embedded Workbench For MSP430 为 v5.10 最新版本 4、增加对IAR新发布的Embedded Workbench For STM8 v1.10
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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