[MSP430] 1.第一个工程

发布者:陈熙琼最新更新时间:2020-03-10 来源: eefocus关键字:MSP430  第一个工程  CCS  集成开发环境 手机看文章 扫描二维码
随时随地手机看文章

在这一部分中,我们将介绍CCS集成开发环境的一些基本使用方法,并试着编写一个简单的小程序,实现按键打开LED灯的功能。

TI 的 Launchpad 板本身是完整的 MSP430 开发环境,我们所需要做的仅仅是下载安装CCS 集成开发环境(也可以用IAR 等开发环境,这里我们选用CCS),用 Mini-USB 线把MSP430 连接到电脑,你就可以开始编写代码了。


现在我们就试着在 CCS 中新建一个新的工程。我们将写一个简单的小程序,实现按键打开LED 灯的功能。 


1. 新建 CCS workspace 

打开 CCS,选择 workspace 路径,通常只需要第一次设置为默认。注意,路径中不要使用中文。 

2.创建一个CCS工程 

File > New > CCS Project


Project name: ButtonLED


Device>Family: MSP430


Variant: MSP430G2553


Project templates and examples : Empty Project(with main.c)


Finish! 

3.可以编写自己的程序了! 

我们的第一行代码: 


#include "msp430g2553.h" //Contains definitions for registers and built-in functions

这个头文件包含了 MSP430G2553 的寄存器定义和内置函数,如果你使用的是其他型号的芯片,例如 MSP430G2231,你需要包含的头文件便是"msp430g2231.h" 。


接着,是主函数部分。 


void main(void)// Main program {

  WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer

  P1DIR |= BIT0; // Set P1.0 to output direction

  P1OUT &= ~BIT0; // set P1.0 to Off

  P1REN |= BIT3; // P1.3 Pull up Enabled

  P1IES |= BIT3; // P1.3 Interrupt at Falling Edge

  P1IFG &= ~BIT3; // P1.3 Interrupt Flag Clear

  P1IE |= BIT3; // P1.3 interrupt Enabled

  _EINT(); // Enable all interrupts

  while(1) //Loop forever, we'll do our job in the interrupt routine...  {}


这仅仅是一个初始化过程,我们还没有写有关开关 LED 灯的代码。


WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer

这一行中,我们关闭了看门狗计时器——它的主要功能是在单片机运行了一段时间后重置单片机,以防止程序陷入无限死循环。在大多数例程中,你会发现在初始化过程中都会关闭看门狗,以避免不必要的重置。 


P1DIR |= BIT0; // Set P1.0 to output direction

这一行中,我们将 P1.0 引脚设置为输出(P1.0 与单片机上 Led1 相连)。在 MSP430 中,P1DIR 是一个控制 Port1 引脚方 向的八位寄存器。如果你把某一位配置为 0,则它作输入用,反之 是输出。BIT0 是一个系统定义的常量,即 0x01。


P1OUT &= ~BIT0; // set P1.0 to Off

这一行中,我们将 P1.0 引脚默认输出配置为低,这样在系统 上电的时候 LED 灯一定是灭的。P1OUT 寄存器控制着 PORT1 上 所有配置为输出的引脚,如果你把对应位配置为 1(通过将 P1OUT 与上对应的常数如 BIT0,BIT1 等),那么对应位的输出 就是高电平,反之输出低电平。


P1REN |= BIT3;  // P1.3 Pull up Enabled

P1IES |= BIT3; // P1.3 Interrupt at Falling Edge

P1IFG &= ~BIT3; // P1.3 Interrupt Flag Clear

P1IE |= BIT3;  // P1.3 interrupt Enabled

这几行中,我们配置了 P1.3 的中断功能,其中 P1.3 与板上的 S2 按键相连。什么是中断?我们希望单片机知道我们什么时候按下 了按键,无论单片机当前所执行的任务是什么,这就需要使用中断 功能。中断的具体内容后面会详细介绍,这里只简述上面所执行的内容:


P1REN |= BIT3 为P1.3配置了上拉电阻

P1IES |= BIT3 配置P1.3为下降沿有效

P1IFG &= ~BIT3 清除P1.3的中断标志位

P1IE |= BIT3 P1.3中断使能


_EINT(); // Enable all interrupts

这一行是一个内置函数,它打开的所有中断功能。


while(1) //Loop forever, we'll do our job in the interrupt routine...

{}

在进行完简单的配置后,我们终于进入了循环。注意到这是一个无限空循环,接下来的开关灯的工作就全交给中断函数了。


#pragma vector=PORT1_VECTOR __interrupt void Port_1(void) {

  P1OUT ^= BIT0; //Toggle P1.0

  P1IFG &= ~BIT3; // P1.3 Interrupt Flag Clear

}


这是PORT1的中断处理函数,每当P1.3引脚从高电平变为低 电平时(Launchpad上的按键是低电平有效的,这也是为什么配置 时是下降沿有效触发中断),中断处理函数便会被调用。

P1OUT ^= BIT0; //Toggle P1.0

这一行用异或操作翻转 LED 灯的状态。

P1IFG &= ~BIT3; // P1.3 Interrupt Flag Clear

这一行用来清除中断标志位,从而下次触发中断依然有效。


如果一切顺利的话,现在我们可以把我们的程序下载到单片机 运行了。


4.将程序下载到单片机 

这个是编译按钮,如果编译顺利通过的话就可以下载到单片机了。

这个是 Debug 按钮,编译通过之后,我们按这个按钮进入 DEBUG 模式。

按红色按钮终止 DEBUG 模式。


至此,我们的开关 LED 程序已经下载到单片机中,如果你观察到红色的 LED 灯会随着按键亮灭,那么恭喜你,你已经完成了第一 个 MSP430的项目。

这是 DEBUG 模式的界面状态,我们可以单步调试程序以观察没运行一步单 片机以及每一个寄存器、每一个变量的状态,以调试程序,检查错误等。


以下是这一节的完整代码:

#include "msp430g2553.h" //Contains definitions for registers and built-in functions

void main(void)// Main program {

  WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer

  P1DIR |= BIT0;      // Set P1.0 to output direction

  P1OUT &= ~BIT0; // set P1.0 to Off

  P1REN |= BIT3; // P1.3 Pull up Enabled

  P1IES |= BIT3; // P1.3 Interrupt at Falling Edge

  P1IFG &= ~BIT3; // P1.3 Interrupt Flag Clear 

  P1IE |= BIT3; // P1.3 interrupt Enabled 

  _EINT(); // Enable all interrupts

  while(1) //Loop forever, we'll do our job in the interrupt routine...

  {}

}

 

#pragma vector=PORT1_VECTOR __interrupt void Port_1(void){

  P1OUT ^= BIT0; //Toggle P1.0

  P1IFG &= ~BIT3; // P1.3 Interrupt Flag Clear

}

关键字:MSP430  第一个工程  CCS  集成开发环境 引用地址:[MSP430] 1.第一个工程

上一篇:[MSP430] 2.中断和计时器
下一篇:MSP430F149单片机实现uart数据接收中断

推荐阅读最新更新时间:2024-11-19 20:00

msp430硬件II2C
说明:24lc128为美信公司EEPROM存储器,存取空间为128kbit。具体的通信规则可以看其器件手册。 /******************************************************************************* 包含头文件 *******************************************************************************/ #include msp430x54x.h /*************************************************************
[单片机]
MSP430F5438A单片机低功耗设置
MSP430F5438A单片机低功耗设置,以进入LPM3为例: 1、MSP430F5438A外部时钟分别为8M和32.768,程序正常运行时选择8M主时钟,当程序需要进入低功耗时,需要将主时钟切换为32.768,代码如下(自己试着改的。。) void InitClock() { WDTCTL = WDTPW + WDTHOLD; // Stop WDT //P11DIR |= 0x07; // ACLK, MCLK, SMCLK set out to pins //P11SEL |= 0x07; // P11.0,1,2 for debugging purposes. __bis_SR_regist
[单片机]
TI - MCU - MSP430使用指南3 -> SYS系统控制
MSP430 MCU的内部系统控制主要包括以下几块: 上电及复位控制 中断管理 MCU运行模式 TLV数据 对于MSP430的系统控制吧,如果仅仅是站在应用层的角度来说,可以不用太怎么了解,毕竟使用起来的话,SYS模块的的寄存器直接默认就好啦,不会有什么问题,基本都是存在比较深的解决不了的问题时才会牵扯到这一块的内容,因此我的讲解也比较有限,主要说一些关键的内容吧(主要是 我了解的也不是特别深。。。。)。下面开始进入我们今天的分享: 上电及复位管理 BOR:Brownout Reset,也就是掉电复位。 POR:Power on Reset,上电复位。 PUC:Power up Clear,通电清除 这三个有什
[单片机]
TI - MCU - <font color='red'>MSP430</font>使用指南3 -> SYS系统控制
MSP430系列单片机的加密熔断器是怎样炼成的?
MSP430 系列单片机是德州仪器(TI)公司推出的一款16位超低功耗单片机。它能够在1.8~3.6 V电压、1 MHz频率的条件下运行,耗电电流在0.1~400μA。在运算速度上,MSP430系列单片机能在8 MHz晶振的驱动下,实现125 ns的指令周期。16位的数据宽度、125 ns的指令周期以及多功能的硬件乘法器相配合,能实现数字信号处理的某些算法(如FFT等)。 在整合方面,MSP430系列单片机将大量的CPU外围模块集成在片内,有如下一些模块:看门狗(WDT)、模拟比较器、串口、硬件乘法器、液晶驱动器、 10位/12位/14位ADC、端口0~6、基本定时器。其中定时器A、B均带有多个捕获/比较寄存器,同时可实现多路
[单片机]
<font color='red'>MSP430</font>系列单片机的加密熔断器是怎样炼成的?
MPLAB X IDE v4.05 断点清理手段
我的开发中遇到过自己设置断定,确忘了设在哪里的情况,这时你只要Alt +shift +5或者点开窗口---》调试(B)---》断点,就可以得到一个关于所有断点的窗口了。
[单片机]
基于MSP430F4250的高精度电子天平设计
引言   随着现代电子技术和微电脑技术的迅速发展,应用到天平领域,出现了电子天平。从上世纪七十年代末期出现世界上第一台电子天平起,短短三十几年中,发展出了各种规格,门类齐全的系列电子天平,广泛应用于各行各业的质量计量。   我国电子天平的发展,紧随国际发达国家之后,于上世纪八十年代初期开始,现已形成规模化生产并广泛应用到国内各领域,同时也部分出口世界上许多国家。   电子天平具有数字显示,直接读数、快速称量、重量轻、操作简便,抗干扰能力强等特点,并采用了微机技术使得智能化、多功能,可与打印机、计算机相联机进行在线测量,数据统计分析等,使电子天平具有机械天平无法比拟的优点,因此应用范围越来越广泛。   本设计的电子天平采用高性能单
[测试测量]
疯壳MSP430实验教程1.GPIO实验
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。在
[单片机]
疯壳<font color='red'>MSP430</font>实验教程1.GPIO实验
TMS320F240的IDE接口仿真器设计
  随着航空电子系统数字化的发展,机载嵌入式计算机逐步摆脱了“纯粹嵌入”时代,开始以主要控制角色而显露头脚。其存储系统也和地面计算机系统一样,提出了“海量存储”的要求。借鉴和使用IDE接品时一条重要途径。但在调试时一般缺乏IDE接口主方(Host)控制器。PC机虽然带有两个标准的集成在主板上的IDE接口,但在目前的Widows系统下却是透明的,无法在硬件调试级进行控制驱动。“工欲善其事,必先利其器”。为解决调试工具,笔者在此前自己动手,设计了一个IDE接口仿真器。硬件极其简练实用,软件精巧灵活。介绍出来,与大家切磋。   1 仿真器硬件设计   众所周知,IDE/ATA接口是16位总线,映像在主机的I/O空间,由主机对接口内的
[嵌入式]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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