历史上的今天
今天是:2025年02月13日(星期四)
2020年02月13日 | MSP430F1612 第一个程序,点亮一个LED灯
2020-02-13 来源:eefocus
I/O操作
MSP430有6组IO端口,其中P1和P2具有中断功能,其他端口不具备中断功能。而点亮一个LED灯只需要控制一个引脚的高低电平即可。这里不需要用到中断功能。那在这里,我们编码涉及的寄存器只有4个,分别是PxIN、PxOUT、PxDIR和PxSEL。而且MSP430F1612的IO功能并不需要配置时钟,所以整个程序只需要配置4个IO端口的寄存器和看门狗寄存器。
对4个寄存器的描述分别如下:

PxSEL寄存器中的每一个位用于选择该引脚是使用外设功能还是GPIO功能.
Bit = 0:选择IO功能;Bit = 1:选择外设功能
例如:
P4SEL |= 0x0080; //P4.7选择外设功能,0000 00001000 0000(b) P4.0~P4.7对应1~8bit

PxIN寄存器反应了该端口选择IO功能(PxSELx = 0)时每一个位的输入状态:
Bit = 0:输入的是低电平; Bit = 1:输入的是高电平
PxIN是只读存储器,通过读取这些寄存器可以获得对应引脚的状态。

PxOUT寄存器中的值是配置为IO功能时引脚的输出状态。
Bit = 0:输出低电平; Bit= 1:输出高电平
例如:
P4OUT |= 0x0080; //P4.7引脚输出高电平

在使用PxIN和PxOUT时,我们要注意一下,IO口的方向配置,只有当IO配置为输入时PxIN才有效,当IO口配置为输出时PxOUT才有效。这里使用PxDIR对IO口的输入输出方向进行配置。
Bit = 0:IO口被配置成为输入; Bit = 1:IO口被配置成为输出。
例如:
P4DIR |= 0x0080; //P4.7被配置成为输出引脚
LED引脚相关电路

当P4.7输出低电平时,LED灯亮。
程序代码
通过上面的讲解,料定大家都知道了IO口的输入输出配置是怎样的了,下面写个程序来小试牛刀:
#include int main( void ) { //Stop watchdog timer to prevent time out reset WDTCTL = WDTPW + WDTHOLD; P4SEL &= ~0x0080; //P4.7 select IO funciton P4DIR |= 0x0080; //P4.7 set as output P4OUT &= ~0x0080; //P4.7 output low level while(1) { } } 运行结果 灯亮了
史海拾趣
|
【摘要】结合学校管理的实际情况,设计了一个以校园网为基础、以指纹识别仪为载体、以指纹识别技术为身份认证手段的校园开放实验室系统。本文详细介绍了该系统的理论基础,关键技术及实施方案,并分析了该系统的优点。… 查看全部问答> |
|
第一个 我现在生成了.sys #include VOID DriverUnload(PDRIVER_OBJECT driver) { DbgPrint(\"HelloEping\\r\\n\"); } NTSTATUS DriverEntry(PDRIVER_OBJECT driver,PUNICODE_STRING reg_path) { DbgPrint(\"Hello,Eping!\"); ...… 查看全部问答> |
|
#include typedef unsigned char uchar; typedef unsigned int uint; uchar NUM_LED[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, ...… 查看全部问答> |
|
本帖最后由 paulhyde 于 2014-9-15 09:24 编辑 打电赛,这实力当然是主要因素。发本贴意在提醒大家,很多细节的东西不能忘记,细节可能影响你的成败,别到吃亏的时候再认命~~准备工作: 1、先打定自己要做的题目类型,心里上准备好打硬仗,把知 ...… 查看全部问答> |
|
为什么在树状拓扑中,一个节点的信标时间只需避开父节点的父节点的信标时间和父节点的信标时间就可以,不用避开相邻节点的信标时间?如果此节点的信标时间和相邻节点的信标时间冲突,并且此节点的一个子节点也能收到这个和其冲突的相邻节点的信标, ...… 查看全部问答> |




