怎么在烧录的时候在msp430g2553的information memory中烧录参数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么在烧录的时候在msp430g2553的information memory中烧录参数相关的知识,希望对你有一定的参考价值。

参考技术A 一 I/O的简介

1、各种复用和各种设置(可以作为简单IO功能也可以作各种第二功能;可控制为输入、输出、接上拉电阻、接下拉电阻、接受中断等各种情况);

2、IO口常用寄存器有:PXDIR、PXIN、PXOUT、PXREN、PXSEL、PXDS;其中,X可以是1~8,也可以是A~D,因为P1、P2可以合称为PA。例如(PAREN=0x0480)就等价于(P2REN=0x04、P1REN=0x80)。
IO口中断相关寄存器:PXIV、PXIFGX、PXIE、PXIES;由于IO中断仅存在于P1口和P2口,因此X只能为1或2,而且不可以为A。

3、msp430f5529.h中定义了BIT0~BITF,方便用户进行位操作。例如要设置P1.7和P2.2为输入,代码可如下:PADIR &= ~(BITA + BIT7)。

二 IO口常用寄存器配置

1、PxDIR,Px口方向寄存器
0 端口配置为输入(默认)
1 端口配置为输入

2、PxOUT,Px口输出寄存器(输入、输出两种模式)
当IO口配置为输出模式时:
0 输出低电平
1 输出高电平
当IO口配置为输入模式并且置高/ 置低使能时:
0置低
1置高

3、PxIN,Px 口输入寄存器
只读

4、PxREN,Px口置高/ 置低使能寄存器
0关闭置高/ 置低
1使能置高/ 置低

5、PxSEL,Px功能选择寄存器(IO中断只有在普通IO下才能使用)
0普通的I/O(默认)
1有连接外围电路的特殊用途

6、PxDS,Px 口输出驱动能力寄存器(我都是用的默认)
0减弱输出驱动能力(默认)
1全力输出驱动能力

三 普通IO使用举例

说明:本例程是流水灯加按键控制,每次S1按下,便在等待S2按下,否则,所有LED一直闪烁。若无按键按下,则八盏灯以流水灯方式显示。

#include <msp430f5529.h>
#define uint8_t unsigned char
#define uint16_t unsigned int

//********* 控制LED的IO口宏定义 *************
#define LED145678_PORT_DIR P1DIR
#define LED145678_PORT_OUT P1OUT
#define LED23_PORT_DIR P8DIR
#define LED23_PORT_OUT P8OUT

//************ LED的IO口宏定义 *************
#define LED1 0x01
#define LED2 0x02
#define LED3 0x04
#define LED4 0x08
#define LED5 0x10
#define LED6 0x20
#define LED7 0x40
#define LED8 0x80
#define LED_ALL 0xFF

//************ 按键的IO口宏定义 *************
#define BUTTON_S1 (P1IN & BIT7)
#define BUTTON_S2 (P2IN & BIT2)

//**********************************************************
//*函数: void delay(uint16_t x_ms)
//*功能: 延时程序
//*参数: x_ms(单位:ms)
//*返回: 无
//*备注: 无
//**********************************************************
void delay(uint16_t x_ms)

uint16_t i=0,j=0;
for(i=x_ms;i>0;i--)
for(j=110;j>0;j--);


//**********************************************************
//*函数: void LED_Init()
//*功能: LED的IO口方向初始化
//*参数: 无
//*返回: 无
//*备注: 无
//**********************************************************
void LED_Init()

LED145678_PORT_OUT &= ~(BIT0 + BIT1 + BIT2 + BIT3 + BIT4 + BIT5);
LED145678_PORT_DIR |= BIT0 + BIT1 + BIT2 + BIT3 + BIT4 + BIT5;
LED23_PORT_OUT &= ~(BIT1 + BIT2);
LED23_PORT_DIR |= BIT1 + BIT2;


//**********************************************************
//*函数: void Board_ledOn(uint8_t ledMask)
//*功能: 打开输入的那盏灯
//*参数: ledMask
//*返回: 无
//*备注: 无
//**********************************************************
void Board_ledOn(uint8_t ledMask)

if (ledMask & LED1) LED145678_PORT_OUT |= BIT0;
if (ledMask & LED2) LED23_PORT_OUT |= BIT1;
if (ledMask & LED3) LED23_PORT_OUT |= BIT2;
if (ledMask & LED4) LED145678_PORT_OUT |= BIT1;
if (ledMask & LED5) LED145678_PORT_OUT |= BIT2;
if (ledMask & LED6) LED145678_PORT_OUT |= BIT3;
if (ledMask & LED7) LED145678_PORT_OUT |= BIT4;
if (ledMask & LED8) LED145678_PORT_OUT |= BIT5;


//**********************************************************
//*函数: void Board_ledOff(uint8_t ledMask)
//*功能: 关闭输入的那盏灯
//*参数: ledMask
//*返回: 无
//*备注: 无
//**********************************************************
void Board_ledOff(uint8_t ledMask)

if (ledMask & LED1) LED145678_PORT_OUT &= ~BIT0;
if (ledMask & LED2) LED23_PORT_OUT &= ~BIT1;
if (ledMask & LED3) LED23_PORT_OUT &= ~BIT2;
if (ledMask & LED4) LED145678_PORT_OUT &= ~BIT1;
if (ledMask & LED5) LED145678_PORT_OUT &= ~BIT2;
if (ledMask & LED6) LED145678_PORT_OUT &= ~BIT3;
if (ledMask & LED7) LED145678_PORT_OUT &= ~BIT4;
if (ledMask & LED8) LED145678_PORT_OUT &= ~BIT5;


//**********************************************************
//*函数: void Board_ledToggle(uint8_t ledMask)
//*功能: 输入的那盏灯的状态取反
//*参数: ledMask
//*返回: 无
//*备注: 无
//**********************************************************
void Board_ledToggle(uint8_t ledMask)

if (ledMask & LED1) LED145678_PORT_OUT ^= BIT0;
if (ledMask & LED2) LED23_PORT_OUT ^= BIT1;
if (ledMask & LED3) LED23_PORT_OUT ^= BIT2;
if (ledMask & LED4) LED145678_PORT_OUT ^= BIT1;
if (ledMask & LED5) LED145678_PORT_OUT ^= BIT2;
if (ledMask & LED6) LED145678_PORT_OUT ^= BIT3;
if (ledMask & LED7) LED145678_PORT_OUT ^= BIT4;
if (ledMask & LED8) LED145678_PORT_OUT ^= BIT5;


//**********************************************************
//*函数: void main(void)
//*功能: 主函数
//*参数: 无
//*返回: 无
//*备注: 无
//**********************************************************
void main(void)

uint8_t LED = LED1; //定义变量LED
WDTCTL = WDTPW | WDTHOLD; //关闭看门狗
LED_Init(); //初始化LED的IO口方向
PADIR &= ~(BITA + BIT7); //将按键的IO口方向设为输入
PAREN |= (BITA + BIT7); //置高/ 置低使能
PAOUT |= (BITA + BIT7); //置高(类似于上拉)
while(1)

Board_ledOn(LED);
delay(1000); //延时1s左右
Board_ledOff(LED);
LED = LED << 1;
if(LED == 0x00) LED = LED1;
if(!BUTTON_S1)

delay(10); //消抖
if(!BUTTON_S1)

while(!BUTTON_S1);//等待S1释放
while(BUTTON_S2) //等待S2按下

Board_ledToggle(LED_ALL);//所有LED状态取反
delay(300);

Board_ledOff(LED_ALL);//关闭所有LED



本回答被提问者采纳

烧录

1.提取码:q3zj 烧录软件链接
复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V5的分享

2.刚开始学习的话烧录代码,一般有两个方向,一是自己焊接的,可以用下载器连接下载,连接如图:(烧录的时候,在软件上点击下载/编程后,要断开焊板上的电源,重新连接。)
在这里插入图片描述
3.第二个是单片机开发盒子,直接烧录即可。
(烧录软件的应用可上网搜索查看,都有详细讲解,这里就不多说了。)

以上是关于怎么在烧录的时候在msp430g2553的information memory中烧录参数的主要内容,如果未能解决你的问题,请参考以下文章

MSP430G2553 模拟交通灯

MSP430G2553单片机——利用蜂鸣器播放一首歌

MSP430G2553 4x4矩阵键盘

基于msp430G2553的低频方波频率占空比峰峰值测量函数

NXP的i.MX28x的uBoot怎么烧录?

有没有办法在 msp430 中进行多精度算术(整数大于 64 位)?