MSP430课件3.3通用输入输出端口

合集下载

单片机实验 P3.3口输入,P1口输出

单片机实验   P3.3口输入,P1口输出

实验一P3.3口输入,P1口输出一、实验目的1、掌握P3口、P1口简单使用2、学习Keil,Proteus软件使用二、实验说明本次实验用外中断1的中断方式控制P1口8位LED亮灭状态,即第一次按下S键时,8位LED点亮,再次按下S时,8位LED熄灭,如此循环。

三、实验线路图四、实验步骤1、先建立文件夹“ex1”,然后建立“ex1”工程项目,最后建立源程序文件“ex1.c”,输入如下源程序;/*******************************************实验1:P3.3输入,P1口输出******************************************///用外中断1的中断方式进行数据采集#include<reg51.h>sbit S=P3^3;/*******************************************函数功能:主函数******************************************/void main(void){EA=1;EX1=1;IT1=1;P1=0xff;while(1); //无限循环,防止程序跑飞}/**************************************************************函数功能:外中断T1的中断服务程序**************************************************************/void int1(void) interrupt 2 using 0{P1=~P1;}2、用Proteus软件仿真经过Keil软件编译通过后,可利用Proteus软件仿真。

在Proteus ISIS编辑环境中绘制仿真电路图。

打开配套实验1仿真原理图文件“ex1.DSN”,将编译好的“ex1.hex”文件载入AT89C51。

MSP430F5系列中文手册 IO 输入输出端口

MSP430F5系列中文手册 IO 输入输出端口

MSP430F5系列16位超低功耗单片机模块原理第7章IO 输入输出端口版本: 1.0日期: 2008.7.原文: TI slau208.pdf (5xxfamily User's Guide)翻译: 王浩武汉大学编辑: DC 微控技术论坛版主注:以下文章是翻译TI slau208.pdf 文件中的部分内容。

由于我们翻译水平有限,有整理过程中难免有所不足或错误;所以以下内容只供参考.一切以原文为准。

文章更新详情请密切留意微控技术论坛。

Page 1 of 12第七章IO 输入输出端口本章描述了数字IO接口的操作。

在所有的5系列MSP430单片机供了数字IO接口。

主题7.1 数字IO接口介绍7.2 数字IO接口的操作7.3 数字IO接口寄存器7.1 数字IO接口介绍5系列的MSP430最多可以提供12路数字IO接口,P1到P11和PJ。

大部分接口都有8个管脚,但是有些接口会少于8个管脚。

可以参考说明文档中关于接口的章节。

每个I/O管脚都可以独立的设置为输入或者输出方向,并且每个I/O接线都可以被独立的读取或者写入。

所有接口的寄存器都可以被独立的置位或者清零,就像设置驱动能力一样。

P1和P2接口具中断功能。

从P1和P2接口的各个I/O管脚引入的中断可以独立的被使能并且设置为上升沿或者下降沿出发中断。

所有的P1接口的I/O管脚的中断都来源于同一个中断向量P1IV,并且P2接口的中断都来源于另外一个中断向量P2IV。

在一些MSP430x5xx单片机中,附加的接口也具有中断功能。

详细说明请查阅芯片的说明文档。

每个独立的接口可以作为字节长度端口访问或者结合起来作为字长度端口进行访问。

端口配对P1/P2、P3/P4、P5/P6、P7/P8等联合起来分别叫做PA、PB、PC、PD等。

当进行字操作写入PA口时,所有的16为都被写入这个端口。

利用字节操作写入PA口的低字节时,高字节保持不变。

相似地,使用字节指令写入PA口高字节时,低字节保持不变。

3.6V 至6V 输入,3.3V 输出,微型高效率DC DC 转换器

3.6V 至6V 输入,3.3V 输出,微型高效率DC DC 转换器
摘要
本参考设计旨在帮助尝试将 MSP430 用于输入电压范围为 3.6V 至 6V 的系统,并以将解决方案尺寸降到最小以及保持高效率和长电池续航时间为主要设计目标的应用设计工程师 和其他工程师。
内容
1 特性 ........................................................................................................................... 2 2 简介 ........................................................................................................................... 2 3 要求 ........................................................................................................................... 3 4 材料清单 ...................................................................................................................... 5 5 测试结果 ...................................................................................................................... 6

2 简介
本参考设计用于 MSP430 微控制器系列,并且解决这里所述的电压和电流要求。 MSP430 器件仅需单个 3.3V 输入;无需进行时序控制。 本参考设计的工作输入电压范围为 3.6 V 至 6.0 V。本设计已针对小型解决方案尺寸、低元器件数和高效率进行优化。

MSP430中关于输入输出端口

MSP430中关于输入输出端口

输入输出端口输入寄存器:P1IN,P2IN输出寄存器:P1OUT,P2OUT方向寄存器:P1DIR,P2DIR功能选择寄存器:P1SEL,P2SEL1.PxIN、PxOUT、PxDIR、PxSELx为端口号。

IN为端口输入寄存器,OUT为端口输出寄存器,DIR为端口方向控制寄存器,SEL为端口第二功能选择寄存器。

举例:Moon=P1IN;//读端口P1的值,赋给变量MoonP3Out=5;//P3端口输出5P2DIR=0xF0;//P2端口的高4位为输出,低4位为输入P6SEL=0xF;//P6端口的高4位用作I/O端口,低4位用于第二功能P1OUT|=BIT0;//将P1口的最低位输出置1P1OUT&=~BIT7;//将P1口的最高位输出清0,P1口只有8位P1OUT=4;P1.2引脚输出高电平,P1其余引脚输出低电平;P1OUT|=4;P1.2置高电平,P1其余引脚不变;P1OUT&=~8;即P1OUT&=0xf7,P1.3置低电平,P1其余引脚不变;|是或运算符,&是与运算符,具体请参考C语言应用运算符部分!2.BITxx的取值范围为0~F。

代表寄存器的某一位。

其定义为:#define BIT0(0x0001)#define BIT1(0x0002)...#define BITE(0x4000)#define BITF(0x8000)BIT0为最低位,BITF为最高位。

MSP430是不支持位操作的,如果想对位操作,最好的方法就是通过位屏蔽来实现。

举例:P1OUT|=BIT0;//将P1口的最低位输出置1P1OUT&=~BIT7;//将P1口的最高位输出清0,P1口只有8位。

Msp430x14x系列单片机引脚说明

Msp430x14x系列单片机引脚说明
P3.2/SOMI0
30
I/O
通用数字I/O引脚 / USART0/SPI模式的从输出或主输入
P3.3/UCLK0
31
I/O
通用数字I/O引脚 / 外部时钟输入--USART0/UART或SPI模式,时钟输出--USART0/SPI模式
P3.4/UTXD0
32
I/O
通用数字I/O引脚 / 发送数据输出--USART0/UART模式
P3.5/URXD0
33
I/O
通用数字I/O引脚 / 发送数据输入--USART0/UART模式
P3.6/UTXD1
34
I/O
通用数字I/O引脚 / 发送数据输出--USART1/UART模式
P3.7/URXD1
35
I/O
通用数字I/O引脚 / 发送数据输入--USART1/UART模式
P4.0/TB0
P6.5/A5
4
I/O
通用数字I/O引脚 / 12位A/D转换器模拟输入通道5
P6.6/A6
5
I/O
通用数字I/O引脚 / 12位A/D转换器模拟输入通道6
P6.7/A7
6
I/O
通用数字I/O引脚 / 12位A/D转换器模拟输入通道7
RET/NMI
58
I
复位输入/不可屏蔽中断输入口,或自动加载程序启动
P5.5/SMCLK
49
I/O
通用数字I/O引脚 / 子系统时钟SMCLK输出
P5.6/ACLK
50
I/O
通用数字I/O引脚 / 辅助时钟ACLK输出
P5.7/TBOUTH
51
I/O
通用数字I/O引脚 / 切换所有的PWM数字输出口为高阻抗--定时器B_3 TB0__TB2

msp430 通用IO口

msp430 通用IO口

通用IO口3.2.1 IO口IO口是微处理器系统对外界沟通的最基本部件,从基本的键盘、LED到复杂的外设芯片等,都是通过IO口的输入输出操作来进行的。

在MSP430系列中,不同的单片机IO口数量不同。

体积最小的MSP430F20xx系列中只有10个IO口,适合在超小型设备中应用;功能最丰富的MSP430FG46xx系列中多达80多个IO 口,足够应付外部设备繁多的复杂应用。

在MSP430G2553单片机中,共有16个IO口,属于IO口较少的系列。

3.2.2 IO寄存器和大部分单片机类似,MSP430系列单片机也是将8个IO口编为一组。

每个IO口有四个控制寄存器,P1和P2还有额外的3个中断寄存器。

寄存器情况可参见表3.2。

PxDIR寄存器用于设置每一位的IO口方向MSP430单片机的IO口是双向IO口:0=输入 1=输出。

在使用IO口时首先要选择寄存器来设置每个IO口方向。

例如下面的语句:P1DIR |= BIT1+BIT3+BIT4;P1DIR |= ~(BIT5+BIT6+BIT7);以上语句将P1.1,P1.3和P1.4的方向置为输出,P1.5,P1.6和P1.7的方向置为输入。

PxDIR寄存器在复位的过程中会被清零,没有被设置的IO口方向均为输入状态,所以第二句可以省略。

注意,将未用的IO口置为输出可减小漏电流。

对于所有已经设成输出的IO口可通过PxOUT寄存器设置其输出电平;对于所有已经被设成输入的IO口,可通过PxIN寄存器读回其输入电平。

PxSEl寄存器用于设置每一位IO口的功能:0=普通IO口,1=第二功能。

在MSP430系列单片机中,很多内部功能模块也需要和外界进行数据交换,为了不增加芯片的管脚数量,大部分都和IO口管脚复用,这就导致MSP430系列单片机的大多数IO管脚都具有第二功能。

通过PxSEL可以指定某些IO口作为第二功能使用。

如MSP430G2553中P1.1和RXD,P1.2和TXD复用。

MSP430单片机的端口介绍

MSP430单片机的端口介绍

MSP430单片机的端口介绍MSP430的端口有P1、P2、P3、P4、P5、P6、S和COM(型号不同,包含的端口也不仅相同,如MSP430X11X系列只有P1,P2端口,而MSP430X4XX系列则包含全部上述端口),它们都可以直接用于输入/输出。

MSP430系统中没有专门的输入/输出指令,输入/输出操作通过传送指令来实现。

端口P1`P6的每一位都可以独立用于输入/输出,即具有位寻址功能。

常见的键盘接口可以直接用端口进行模拟,用查询或者中断方式控制。

由于MSP430的端口只有数据口,没有状态口或控制口,在实际应用中,如在查询式输入/输出传送时,可以用端口的某一位或者几位来传送状态信息,通过查询对应位的状态来确定外设是否处于“准备好”状态。

端口的功能。

(1)P1,P2端口:I/O,中断功能,其他片内外设功能如定时器、比较器;(2)P3,P4P5P6端口:I/O,其他片内外设功能如SPI、UART模式,A/D转换等;(3)S,COM端口:I/O,驱动液晶。

MSP430各端口具有丰富的控制寄存器供用户实现相应的操作。

其中P1,P2具有7个寄存器,P3~P6具有4个寄存器。

通过设置寄存器我们可以实现:(1)每个I/O位独立编程;(2)任意组合输入,输出和中断;(3)P1,P2所有8个位全部可以用作外部中断处理;(4)可以使用所以指令对寄存器操作;(5)可以按字节输入、输出,也可按位进行操作。

端口P1,P2的功能可以通过它们的7个控制寄存器来实现。

这里,Px代表P1或P2。

(1)PxDIR:输入/输出方向寄存器。

8位相互独立,可以分别定义8个引脚的输入/输出方向。

8位再PUC后都被复位。

使用输入/输出功能时,应该先定义端口的方向。

作为输入时只能读,作为输出时,可读可写。

0:输入模式;1:输出模式。

如:P1DIR|=BIT4; //P1.4输出,P2DIR=0XF0; //高4位输出,低4位输入。

(2)PXIN:输入寄存器,为只读寄存器。

P3.3输入、P1口输出

P3.3输入、P1口输出

目的1P3口、P1口简单使用。

2内容一、实验内容1P33口做输入口,外接一脉冲,每输入一个脉冲,P1口按十六进制加一。

2P1口做输出口,编写程序,使P1口接的8个发光二极管L1—L8按16进制加一方式点亮发光二极管。

二、实验说明1P1口是准双向口,它作为输出口时与一般的双向口使用方法相同,由准双向口结构可知:当P1口作为输入口时,必须先对它置高电平,使内部MOS管截止,因内部上拉电阻是20KΩ—40KΩ,故不会对外部输入产生影响。

若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。

2DELAY :MOV R6, #00HDELAY1:MOV R7, #80HDJNZ R7, $DJNZ R6, DELAY1查指令表可知MOV、DJNZ指令均需用两个机器周期,而一个机器周期时间长度为12/ 6.0MHZ,所以该段指令执行时间为:((80+1)×256+1)×2×(12÷6000000)=132.1ms四、实验步骤①P33用插针连至K1,P10—P17用插针连至L1—L8。

②从起始地址0540H开始连续运行程序(输入0540后按EXEC键)。

③开关K1每拨动一次,L1—L8发光二极管按16进制方式加一点亮。

〖LM〗程序ORG 0000HLJMP HA1SORG 1541HHA1S: MOV A,#00HHA1S1: JB P3.3,HA1S1MOV R2,#20HLCALL DELAYJB P3.3,HA1S1HA1S2: JNB P3.3,HA1S2MOV R2,#20HLCALL DELAYJNB P3.3,HA1S2INC APUSH ACC;CPL AMOV P1,APOP ACCAJMP HA1S1 DELAY: PUSH 02H DELAY1: PUSH 02H DELAY2: PUSH 02H DELAY3: DJNZ R2,DELAY3 POP 02HDJNZ R2,DELAY2POP 02HDJNZ R2,DELAY1POP 02HDJNZ R2,DELAYRETEND原理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

GPIO 官方库函数(2/4)

GPIO的引脚配置函数(续)
GPIO_setAsInputPinWithPullUpresistor() // 设置为输入下拉
GPIO_setDriveStrength() // 设置引脚驱动强度
GPIO_setAsPeripheralModuleFunctionOutputPin()
I/O端口还具有其他片内外设功能,为减少引脚,将这 些外设功能与I/O端口引脚复用来实现。 PxSEL来选择引脚的I/O端口功能与外围模块功能。 PxSEL的配置: Bit = 0: 选择引脚为I/O端口; Bit = 1: 选择引脚为外设功能。
GPIO 寄存器(6/9)

PxDS 输出驱动强度寄存器

引脚下拉 VCC R 引脚 Px.x R

Bit = 1: 引脚选择上拉 上拉电阻简单来说就是把电平拉高, 通常用 4.7-10K的电阻接到Vcc电源。 Bit = 0: 引脚选择下拉; 下拉电阻则是把电平拉低,电阻接到GND地线上。
2015-6-1 15
GPIO 寄存器(5/9)

PxSEL 功能选择寄存器
每个PxIE位使能的中断请求都与相应的PxIFG中断标志 相关联,可通过写PxOUT和PxDIR来设置PxIFG。

PxIE的配置: Bit = 1: 允许中断; Bit = 0: 禁止中断。
GPIO 寄存器(8/9)
PxIES 中断触发沿选择寄存器(仅中断端口P1和P2)
如果允许Px口的某个引脚中断(即PxIE和GIE已设置), 还需定义该引脚的中断触发方式。 该寄存器可读可写,寄存器的8位分别对应Px口8个引脚 PxIES的配置: Bit = 1: 下降沿使相应中断标志置位; Bit = 0: 上升沿使相应中断标志置位。

GPIO 寄存器(9/9)

PxIFG 中断标志寄存器(仅中断端口P1和P2)
该寄存器用来表示对应引脚是否产生了由PxIES设定 的电平跳变。 如果在GIE置位,引脚对应的中断使能寄存器PxIE位 置位,则会向CPU请求中断处理。 中断标志PxIFG.0~PxIFG.7共用一个中断向量, PxIFG.0~PxIFG.7不会自动复位。必须用软件来判定 是对哪一个事件服务,并将相应的标志复位。 PxIFG的配置: Bit = 0: 没有中断请求; Bit = 1: 有中断请求。
GPIO 寄存器(2/9)
PxIN 输入寄存器
该寄存器是只读寄存器,即用户不能对它写入。

这个寄存器是只读的,其中的每一位都反映了其对应 的I/O引脚的输入信号(引脚配置为通用I/O)。
PxIN 配置: Bit = 1: 输入为高电平; Bit = 0: 输入为低电平;
GPIO 寄存器(3/9)
3.3 通用输入输出端口
(General Purpose Input & Output)
本节内容

GPIO 概述
MSP430的GPIO 特点


MSP430 GPIO 寄存器
GPIO 官方库函数 GPIO 应用示例
GPIO 概述 (1/4)

GPIO
GPIO (General Purpose I/O),通用输入输出端口。
// 设置为外设输出引脚 GPIO_setAsPeriphe/ 设置为外设输入引脚
GPIO 官方库函数(3/4)

GPIO中断处理函数
GPIO_enableInterrupt() // 使能中断 GPIO_disbleInterrupt() // 禁止中断
GPIO_clearInterruptFlag() // 清除中断标志位
GPIO_getInterruptStatus() // 获取中断状态 GPIO_interruptEdgeSelect() // 选择中断沿
GPIO 官方库函数(4/4)

GPIO引脚状态的函数
GPIO_setOutputHighOnPin() // 引脚输出为高
P1.0 LED
GPIO 官方库函数(3/4)

示例2--利用按键改变LED的亮灭,按键对应的 引脚配置为中断方式。
#include <msp430f6638.h> void main (void) { // 关闭看门狗 WDTCTL = WDTPW | WDTHOLD; P4DIR |= 0x08; // 选择P4.3为输出 P2DIR &= ~0x40; // 选择P2.6为输入 P2IE |= 0x40; // 使能P2.6中断 P2IES |= 0x40; // 选择P2.6为上升沿中断 VCC MSP430F6638 R Key R LED
可配置I/O驱动能力(高驱动强度或低驱动强度)。
GPIO 寄存器(1/9)

PxDIR 输入/输出方向寄存器
相互独立的8位分别定义了8个引脚的输入/输出方向。
使用输入和输出功能时,应该先定义端口的方向。 PxDIR 配置: Bit = 1: 将端口引脚设置为输出模式; Bit = 0: 将端口引脚设置为输入模式。 例,设置P1端口的P1.0引脚为输出方向,其余引脚 (P1.1~P1.7)设置为输入方向。 P1DIR = 0x01; // 设置P1端口P1.0引脚为输出方向
2015-6-1
14
GPIO 寄存器(4/9)

PxREN 上拉或下拉电阻使能寄存器
PxREN寄存器中的每一位可使能或禁用相应I/O引脚的 上拉/下拉电阻。 PxREN 配置: Bit = 1: 使能上拉/下拉电阻; Bit = 0: 禁用上拉/下拉电阻。 当使能引脚上拉或下拉功能时,通过 设置PxOUT相应位来选择。
//让 P1.0输出高电平 GPIO_setOutputHighOnPin( MSP430_BASEADDRESS_PORT1_R__, GPIO_PORT_P1,GPIO_PIN0 ); //让 P1.0输出低电平 GPIO_setOutputLowOnPin ( MSP430_BASEADDRESS_PORT1_R , GPIO_PORT_P1,GPIO_PIN0 );
GPIO_setOutputLowOnPin() // 引脚输出为低 GPIO_toggleOutputOnPin() // 翻转引脚 GPIO_getInputPinValue() // 获取引脚输入值
GPIO 应用示例(1/4)

示例1--软件编程示例(伪代码)
用P1.0口控制发光二极管
PxDS寄存器的每个位,设置引脚的输出强度为高驱动 强度或低驱动强度。
默认值为低驱动强度。 PxDS的配置: Bit = 0: 低驱动强度; Bit = 1: 高驱动强度。
GPIO 寄存器(7/9)
PxIE 中断使能寄存器(仅中断端口P1和P2)
该寄存器的8位与端口的8个引脚一一对应,其中某一位 置位表示允许对应的引脚在电平变化(上升沿或下降沿) 时产生中断,否则,表示禁止该位的中断。
MSP430的GPIO 特点(2/4)

具有中断能力的端口:P1和P2。
端口P1和P2具有输入输出、中断和外部模块功能。这些 功能可以通过它们各自9个控制寄存器的设置来实现。

不具有中断能力的端口:P3和其他端口
P3和其他端口没有中断能力,其余功能同P1和P2, 可以实现输入/输出功能和外围模块功能。

应用
GPIO基本都是用于芯片与片外器件或设备的交互。 检测数字输入,如键盘或开关信号; 驱动LED,蜂鸣器或LCD等其他指示器; 控制片外器件,较高级的使用可以用它们(通过 程序)模拟很多器件的时序达到控制相应器件的 目的,比如模拟SPI和模拟总线等。
GPIO 概述 (2/4)

特性
可以独立控制每个GPIO口的方向(输入/输出模式);
GPIO 官方库函数(1/4)

GPIO API被分成三组函数:GPIO的引 脚配置函数,处理中断的函数,以及引 脚状态的函数。
GPIO的引脚配置函数
GPIO_setAsOutputPin() // 设置为输出引脚
GPIO_setAsInputPin() // 设置为输入引脚

GPIO_setAsInputPinWithPullDownresistor() // 设置为输入上拉
P2.6
// 进入低功耗,打开全局中断 _BIS_SR (LPM3_bits + GIE);
} 2015-6-1
P4.3
R
27
GPIO 官方库函数(4/4)
#pragma vector=PORT2_VECTOR __interrupt void Port_2 (void) { volatile unsigned int i; P4OUT ^= 0x08; // 翻转P4.3外接的LED亮灭状态 i = 1500; // 延时 do (i--); while (i != 0); while (! (P2IN & 0x01)); // 等待按键释放 I = 1500; // 延时,按键去抖 do (i--); while (i !=0); P2IFG &= ~0x40; // 清除P2.6中断标志 }
PxOUT 输出寄存器
输出寄存器是可读可写的。这个寄存器的每个位都反映 了写入相应输出引脚的值。 将需要的值写入该寄存器,控制输出引脚的电平状态。 PxOUT 配置: Bit = 1: 输出为高电平; Bit = 0: 输出为低电平;

GPIO 寄存器(4/9)

PxREN 上拉或下拉电阻使能寄存器
模拟信号比较器;
模拟—数字转换器; 其他功能 (请参见具体芯片的数据手册)。
MSP430的GPIO 特点(4/4)

寄存器丰富
相关文档
最新文档