历史上的今天
今天是:2025年01月15日(星期三)
2021年01月15日 | 疯壳MSP430实验教程1.GPIO实验
2021-01-15 来源:eefocus
GPIO硬件介绍
MSP430F5438A单片机属于5系列单片机,该系列的单片机最多可以提供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 口高字节时,低字节保持不变。其它端口也是一样的,当写入的数据长度小于端口最大长度时,那些没有用到的位保持不变。所有的端口寄存器都利用这个规则来命名,除了中断向量寄存器 P1IV 和 P2IV。它们只能进行字节操作,并且 PAIV 这个寄存器根本不存在。
利用字操作读取端口PA可以使所有16位数据传递到目的地。利用字节操作读取端口PA(P1或者P2)的高字节或者低字节并且将它们存储到存储器时可以只把高字节或者低字节分别传递到目的地。利用字节操作读取PA口数据并写入通用寄存器时整个字节都被写入寄存器中最不重要的字节。寄存器中其它重要的字节会自动清零。端口 PB、PC、PD 和 PE 都可以进行相同的操作。当读入的数据长短小于端口最大长度时,那些没有用到的位被视零,PJ 口也是一样的。
数字I/O的主要特征有:
可以独立编程的独立I/O口;
可以任意的混合输入输出;
独立配置P1、P2口的中断;
独立的输入和输出数据寄存器;
独立配置上拉或下拉电阻。
第二节 GPIO寄存器介绍
输入寄存器PxIN

PxIN:位7~0 数据输入,只读寄存器。
输出寄存器PxOUT

PxOUT:位7~0 Px 口输出
当 IO 口配置为输出模式时:
0,输出低电平;
1,输出高电平;
当 IO 口配置为输入模式并且上拉/下拉使能时:
0,下拉;
1,上拉。
3.方向寄存器PxDIR
PxDIR:位7~0 Px口的方向
0,配置为输入;
1,配置为输出。
4.上拉/下拉电阻使能寄存器PxREN

连接J5的短路帽给LED供电。
开发接口连接可以参考《开发接口连接教程》,路径为:..MSP430 .从这里开始2.快速上手。
开发板供电可以参考《如何上电》教程,路径为:..MSP430 .从这里开始 .开机测试。
下面打开GPIO实验工程文件GPIO.eww,路径为:..MSP430 3 教程 1 GPIO。如下图所示:

打开之后,点击编译按钮,下方出现编译完成并且没有错误之后,点击DEBUG按钮进行仿真调试,同时程序也下载进单片机中,如下图所示:


进入仿真之后就可以看到仿真界面,如下图所示:

点击全速云心按钮,运行程序,可以进行暂停或者停止操作,如下图所示:

第四节 实验现象
完成第三节的操作之后,就会看到板子上的流水灯现象。
上一篇:msp430g2553流水灯
史海拾趣
|
我想实现P1.1端口跟随P1.4端口同步输出,都是驱动LED,P1.4端口使用定时器定时翻转,主循环程序随时判断P1.4状态,同步驱动P1.1。 开始我是这样写的: 看来没问题,在KEIL仿真运行也没问题,可是下载到89S52中,只见OUT闪烁,LED根本不动, ...… 查看全部问答> |
|
【藏书阁】 集成电路(荒井英甫)——21世纪大学新型参考教材系列 目录: 集成电路a 1 集成电路的学习方法 1·1 集成电路的发明 1·2 集成电路发展的动力 1·3 集成电路的未来 1·4 本书的构成 练习题 引用文献 2 集成电路中的半导体器件 2·1 pn结 2·2 双极型晶体管 2·3 mos晶体管 2·4 集成电路 ...… 查看全部问答> |
|
1、REMAP: 提到REMAP。首先应想到什么是MAP,英语不好,开始就断章取义,MAP就是地图嘛,Memory Map就是存储器地图,不过这个地图的参考坐标不是经纬度,而是地址,进而叫做存储器映射。由于要适应不同存储器容量要求的 ...… 查看全部问答> |
|
各位大虾,小弟新手,现在要实现呼叫等待的功能,用lineSetCallWaitingState函数设置状态后是可以成功的,现在的问题是当我去用lineGetCallWaitingState(m_hline ,&dwClass)这个函数去获取当前的呼叫等待状态时得到dwClass的值恒为0 请各位帮帮忙 ...… 查看全部问答> |
|
绑定文件,要先绑定设备对象在绑定卷才能实现读写的。 但是DDK自带的sfilter里面,在绑定设备后,然后判断是否WINVER >= 0x0501,只有系统高与这个版本才回去枚举出已经加载的卷。 难道2000系统不用枚举卷,也不用去加载卷吗? … 查看全部问答> |




