注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
LcCode的个人空间 https://home.eeworld.com.cn/space-uid-645331.html [收藏] [复制] [分享] [RSS]
日志

初学MSP430(1)

热度 1已有 1471 次阅读2015-9-17 18:46 |个人分类:MSP430

    单片机从点灯开始。学习MSP430也从点灯开始了。(文笔太烂,请勿吐槽)
    刚开始接触430。发现和以前学习的51不同,用C语言来学习51很简单,对于IO口的操作也是很简便的。然而,430却不同,430的IO口不能进行位操作。并且430的看门狗默认是打开的,以前学习51时(由于是自己单独摸索着学的)只听过有看门狗这回事,然而并不知道是干嘛用的,接触430才清楚了看门狗的功能用途。说了这么多,还是看看我今天学了什么:
    430的视屏资料里面最开始讲的都是430的结构、功能、模块等等。但是对于我这非电子专业的孩子来说,实在是一头雾水。我觉得我现在没必要了解那么多,学到,用到了再去了解相应的模块。
以下是例程中给出的代码
void main(void)
{

    /*下面六行程序关闭所有的IO口*/
    P1DIR = 0XFF;P1OUT = 0XFF;
    P2DIR = 0XFF;P2OUT = 0XFF;
    P3DIR = 0XFF;P3OUT = 0XFF;
    P4DIR = 0XFF;P4OUT = 0XFF;
    P5DIR = 0XFF;P5OUT = 0XFF;
    P6DIR = 0XFF;P6OUT = 0X00;

    WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
    P6DIR |= BIT2;P6OUT |= BIT2;    //关闭电平转换
    P5OUT &= ~BIT7;

    CCTL0 = CCIE;                   //使能CCR0中断
    CCR0 = 50000;
    TACTL = TASSEL_2 + ID_3 + MC_1; //定时器A的时钟源选择SMCLK,增计数模式
    P2DIR = 0xff;                   //设置P2口方向为输出
    P2OUT = 0xff;

    _EINT();                        //使能全局中断
    LPM0;                           //CPU进入LPM0模式
}
刚看时,我头都是大的,其中的关闭电平转换就不知道是个什么东西,百度之后才知道,这是这个IO口可能连在一个电平转换芯片上,需要关闭。然而我找遍了我的板子的原理图,都没看见P6.2这个IO口有连接什么东东。可见,商家并不用心啊!还有最开始就用中断和低功耗模式,对入门并没什么用,反而曾加了难度。
好了,以下给出我自己整理的代码
/*******************************************************************************
**  File Name        :  main
**  Author           :  LcCode
**  Description      :  闪烁
*******************************************************************************/

#include <msp430x14x.h>

void main(void)
{
   WDTCTL =  WDTPW + WDTHOLD;        //stop watchdog timer
   P2DIR = 0x01;
   P2OUT = 0x01;

   for (;;)
   {
     volatile unsigned int i;

     P2OUT ^= 0x01;

     i = 50000;                              // Delay
     do (i--);
     while (i != 0);
   }
}
通过简单的延时就可以实现LED闪烁的效果。当然,我刚开始入门,也就只能写这么简单了哈!
学习没有止境!对自己说,加油,继续努力!
全部作者的其他最新日志
发表评论 评论 (1 个评论)
回复 郑小气聋子 2015-9-17 21:38
慢慢来啊,就像学32一样

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章