MSP430之点灯入门

发布者:悦耳旋律最新更新时间:2020-02-14 来源: eefocus关键字:MSP430  点灯入门  LED闪烁 手机看文章 扫描二维码
随时随地手机看文章

/***************************************************
程序功能:控制8个LED闪烁,控制灯的流向以及流速
---------------------------------------------------
***************************************************/
#include

  /*下面关闭所有的IO口*/
#define close_IO P1DIR = 0XFF;P1OUT = 0XFF; P2DIR = 0XFF;P2OUT = 0XFF;P3DIR = 0XFF;P3OUT = 0XFF;P4DIR = 0XFF;P4OUT = 0XFF; P5DIR = 0XFF;P5OUT = 0XFF;    P6DIR = 0XFF;P6OUT = 0XFF;

typedef unsigned int  uint;

uint i = 0,j = 0,dir = 0;
uint flag = 0,speed = 0;  //flag--灯光流动方式,speed--灯光流动速度

/****************主函数****************/
void main(void)
{
    void P_setting();
    close_IO;
    P_setting();
    _EINT();                        //使能全局中断
    LPM0;                           //CPU进入LPM0模式
}
/*将设置进行封装*/
void P_setting(void){
  
    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;
    
    }

/*******************************************
函数名称:Timer_A 
功    能:定时器A的中断服务函数,在这里通过标志
          控制流水灯的流动方向和流动速度
********************************************/

#pragma vector = TIMERA0_VECTOR
__interrupt void Timer_A (void)
{
    if(flag == 0)
    {
        P2OUT = ~(0x80>>(i++));    //灯的点亮顺序D8 -> D1
    }
    else if(flag == 1)
    {
        P2OUT = ~(0x01<<(i++));    //灯的点亮顺序D1 -> D8
    }
    else 
    {
        if(dir)                   //灯的点亮顺序  D8 -> D1,D1 -> D8,循环绕圈                        
        {
            P2OUT = ~(0x80>>(i++));
        }
        else
        {
            P2OUT = ~(0x01<<(i++));
        }
    }
  
    if(i == 8) 
    {
        i = 0;
        dir = ~dir;
    }
  
    j++;
    if(j == 40) 
    {
        i = 0;
        j = 0;
        flag++;
        if(flag == 4) flag = 0;
        switch(speed)
        {
        case 0:
            TACTL &=~ (ID0 + ID1);    //增计数模式
            TACTL |= ID_3;            //8分频
            break;
        case 1:
            TACTL &=~ (ID0 + ID1);
            TACTL |= ID_2;              //4分频
            break;
        case 2:
            TACTL &=~ (ID0 + ID1);
            TACTL |= ID_1;               //2分频
            break;
        case 3:
            TACTL &=~ (ID0 + ID1);
            TACTL |= ID_0;              //1分频
            break;
        default:
            break;
        }
        if(flag != 3)   speed++;
        if(speed == 4) speed = 0;
    } 
}

《经过测试适用于f149系列》


关键字:MSP430  点灯入门  LED闪烁 引用地址:MSP430之点灯入门

上一篇:基于MSP430F5529的智能灯设计
下一篇:msp430实现按键一次加一,这里实现的是按一次顺序灯亮

推荐阅读最新更新时间:2024-11-10 20:48

MSP430内部看门狗及复位电路的研究
今市面上流行的一些单片机,多嵌有内部WDT,如TI的MSP430系列,Philips的P87XXX和P89XXX系列,MICroChip的PIC列,Atmel的AT89SXX系列和HoLTEk公司的Htxxx系列。但是这些内部看门狗在工作时,多存在一定的误差。一些工程师在设计的过程中,由于忽略了这一点,导致系统出现异常。MSP430系列单片机是美国德州仪器公司(TI)近几年开发的新一代单片机,该系列是一款16位、具有精简指令集、超低功耗的全新概念混合型单片机。在众多单片机系列中,由于它具有极低的功耗、丰富的片内外设和方便灵活的开发手段,已成为一颗耀眼的新星。其内部自带看门狗及复位电路,理论上如果程序跑飞,可用看门狗将其复位。但在实
[单片机]
<font color='red'>MSP430</font>内部看门狗及复位电路的研究
MSP4301602显示Ⅱ
/******************************************************************** 1602液晶显示 ********************************************************************/ #include msp430x14x.h #define CPU_F ((double)8000000) #define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0)) #define delay_ms(x) __delay_cycles(
[单片机]
在Python下用BSL给MSP430下载Firmware
Python作为一个无所不能的工具, 当然可以给MSP430下载Firmware. 根据官方的wiki页面http://processors.wiki.ti.com/index.php/BSL_(MSP430),有一个叫做MSP430 Tools (Python scripts and library)的包. 于是我就去试用了一把, 但从主页上下载的装不上去, 从库里面checkout出来的在program时报错. -_- 为了让伟大的python可以BSL, 研究一下代码吧, 都commit 400多次了还用不了? -------------------------------------------------
[单片机]
在Python下用BSL给<font color='red'>MSP430</font>下载Firmware
基于MSP430F149电机保护算法的实现
摘要:依据电流为判据,将电机保护分解为过流、负序和零序保护3大类,由此构成的综合保护可基本覆盖电动机的所有常见故障类型。最后提出了电机数字式综合保护算法,采用超低功耗DSP单片机MSP430F149实现电动机故障的监测。 目前,我国高压电动机的保护主要有机电式和集成电路两种,但都存在着诸多弊病,不能很好地保护电动机。其中,异步电动机的机电式保护,主要以电流增大作为判据,保护原理粗略,对断相等严重不对称故障,由于一般不出现显著的电流增大,从而使保护装置难以及时动作,造成事故扩大;集成电路式保护虽在保护原理上有所改善,但其保护特性一般无法与电动机热曲线实现较好配合,常发生拒动或误动,严重的甚至烧毁电动机。因此,研究电机保护算法具有
[单片机]
采用MSP430F449设计的电子血压计
随着生活水平的不断提高以及城市老龄化比例的提高,医疗电子设备的家庭化逐渐成为了趋势。其中家用电子血压计就是典型的家庭医疗检测设备之一。目前血压计大致上可分为两种:一是水银式血压计,其优点为数值稳定,其缺点为无法一个人自行操作,必须专业医护人员操作,且肉眼观察误差极大,主观性强,体积较大不易携带。二是电子式血压计,其优点为:使用简易,可一人独自操作;测量值便于记录,体积轻巧便于携带。电子式血压计具备了诸多优点,越来越受到普通家庭的欢迎。本文介绍了以MSP430F449为控制核心,辅以BP01型压力传感器与MCU之间模拟信号处理电路以及LCD显示、语音提示,实现家用电子血压计的设计。 血压测量原理 血压的概念就是血液流经血管壁时的
[单片机]
采用<font color='red'>MSP430</font>F449设计的电子血压计
MSP430F5529基于CCS库函数开发——软件安装与库函数配置
前言 通过MSP430官方的函数库进行开发,开发工具使用CCS。主要步骤如下: 1、下载并安装CCS 2、下载函数库 3、部署函数库 1、下载并安装CCS CCS是由美国德州仪器公司(Texas Instrument,TI)出品的代码开发和调试套件,具体的可以自行去百度,直接到官网下载安装即可。 下载完成后解压即可,右击以管理员身份运行其中的可执行文件。 安装就是傻瓜式安装就不贴出来了。 安装完成后首先选择自己的一个工作空间,可以理解为放代码的仓库地址。 新建CCS项目 选择芯片型号,填写工程名称,选择main模板 这样就创建好了默认的工程文件 2、下载函数库 直接进入官网下载即可,同时可以下载一下指南 解压
[单片机]
<font color='red'>MSP430</font>F5529基于CCS库函数开发——软件安装与库函数配置
MSP430学习总结(二)——GPIO
一、MSP430 Digital I/O概述 MSP430的Digital I/O中文名称叫做数字IO,我觉得和STM32的GPIO类似。MSP430F5529共有11个IO port ,每组port共有8个IO端口(0:7)。其中P1和P2两组IO具有外部中断功能。 IO端口的输入输出功能是永恒的主题,下面就来介绍一下MSP430的IO端口配置。 二、Digital IO的配置 1. 输入功能 1.1方向寄存器 这是一个非常重要的寄存器,用于选择IO端口是输入还是输出。 1.2上拉/下拉使能寄存器 当涉及到输入。那肯定离不开上拉输入和下拉输入,上图表明,通过方向寄存器和输出寄存器以及上下拉使能寄存器可以把IO端口
[单片机]
<font color='red'>MSP430</font>学习总结(二)——GPIO
电力传输线路监测系统的设计与实现
  0 引言   为解决人工调整电力传输线路中偏相观测难、记录难、校准难这三大难题。该设计通过对软硬件的设计,实现了较长时间、无间断地对电力传输线路中电流、电压、零序电流、功率因数、有功功率、无功功率、视在功率、基波及谐波电能的监测、记录和存储。该设计采用MSP430F135 单片机为控制核心,结合电压、电流互感器、DSP 电能芯片、人机接口、声光报警电路和信号处理电路等实现对电力传输线路参数的监测,该系统能利用存放在U 盘中长时间采集的数据在上位机进行曲线分析,为电力部门调整线路负荷提供科学、可靠的依据。   1 系统设计方案   1.1 DSP 电能芯片的选择   该设计选用DSP 电能芯片,此芯片具有七路二阶16 位
[单片机]
电力传输线路监测系统的设计与实现
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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