MSP430F149学习之路——LED

发布者:andyliow1980最新更新时间:2020-06-20 来源: eefocus关键字:MSP430F149  LED  IAR 手机看文章 扫描二维码
随时随地手机看文章

 1 #include

 2 

 3 void int_clk();

 4 void delay(int i);

 5 void main()

 6 {

 7   WDTCTL = WDTPW + WDTHOLD;

 8   int_clk();

 9   P6DIR = 0XFF;

10   P6OUT = 0Xff;

11   while(1)

12   {

13     P6OUT = 0XFF;

14     delay(20000);

15     P6OUT = 0x00;

16     delay(20000);

17   }

18 }

19 

20 void int_clk()

21 {

22   BCSCTL1 &= ~XT2OFF;

23   BCSCTL2 |= SELM_1 + SELS;

24   do

25   {

26     IFG1 &= ~OFIFG;

27     for(int i=0;i<100;i++)

28       _NOP();

29   }while((IFG1 & OFIFG)!=0);

30   IFG1 &= ~OFIFG;

31 }

32 

33 void delay(int i)

34 {

35   while(i--);

36 }

 提示:IAR的配置要正确


升级版本:


  1 /***********************************************

  2 程序功能:实现流水灯以三种流动方式和四种流动速度

  3           的不同组合而进行点亮"流动"

  4 ------------------------------------------------*/

  5 #include

  6  int flag=0,i=0,j=0,dir=0,speed=0;

  7 void int_clk();

  8 void delay(int i);

  9 void main()

 10 {

 11   WDTCTL = WDTPW + WDTHOLD;

 12   int_clk();

 13   P6DIR = 0XFF;

 14   P6OUT = 0XFF;

 15   

 16   TACCTL0 = CCIE;                     //使能CCR0中断

 17   TACCR0 = 50000;

 18   TACTL  = TASSEL_2 + MC_1 + ID_3;    //定时器A选择SMCLK,增计数,8分频

 19   

 20   _EINT();

 21   LPM0;

 22 }

 23 /*******************************************

 24 函数名称:Timer_A 

 25 功    能:定时器A的中断服务函数,在这里通过标志

 26           控制流水灯的流动方向和流动速度

 27 参    数:无

 28 返回值  :无

 29 ********************************************/

 30 #pragma vector=TIMERA0_VECTOR

 31 __interrupt void Timer_A(void)

 32 {

 33   if(flag == 0)

 34   {

 35     P6OUT = ~(0x80>>(i++));    //灯的点亮顺序D8 -> D1

 36   }

 37   else if(flag == 1)

 38   {

 39     P6OUT = ~(0x01<<(i++));    //灯的点亮顺序D1 -> D8

 40   }

 41   else 

 42   {

 43     if(dir)                  //灯的点亮顺序  D8 -> D1,D1 -> D8,循环绕圈                        

 44       P6OUT = ~(0x80>>(i++));

 45     else

 46       P6OUT = ~(0x01<<(i++));

 47   }

 48   

 49   if(i == 8) 

 50   {

 51     i = 0;

 52     dir = ~dir;

 53   }

 54   delay(200);

 55   j++;

 56   if(j == 40) 

 57   {

 58     i = 0;

 59     j = 0;

 60     flag++;

 61     if(flag == 4) flag = 0;

 62     switch(speed)

 63     {

 64     case 0:

 65      // TACTL &=~ (ID0 + ID1);

 66       TACTL |= ID_3;

 67       break;

 68     case 1:

 69      // TACTL &=~ (ID0 + ID1);

 70       TACTL |= ID_2;

 71       break;

 72     case 2:

 73     //  TACTL &=~ (ID0 + ID1);

 74       TACTL |= ID_1;

 75       break;

 76     case 3:

 77      // TACTL &=~ (ID0 + ID1);

 78       TACTL |= ID_0;

 79       break;

 80     default:

 81       break;

 82     }

 83     if(flag != 3)   speed++;

 84     if(speed == 4) speed = 0;

 85     } 

 86 }

 87 void int_clk()

 88 {

 89   BCSCTL1 &= ~XT2OFF;

 90   BCSCTL2 |= SELM_1 + SELS;     //DCO在800KHZ左右

 91   do

 92   {

 93     IFG1 &= ~OFIFG;

 94     for(int i=0;i<100;i++)

 95       _NOP();

 96   }while((IFG1 & OFIFG)!=0);

 97   IFG1 &= ~OFIFG;

 98 }

 99 

100 void delay(int i)

101 {

102   while(i--);

103 }


关键字:MSP430F149  LED  IAR 引用地址:MSP430F149学习之路——LED

上一篇:LCD12864(带字库) for MSP430f5529 全功能程序
下一篇:亚马逊准备买下ZooX的,能否念好自动驾驶的生意经?

推荐阅读最新更新时间:2024-10-26 10:19

MSP430F149LED灯闪烁
程序: //让LED灯闪烁 #include msp430x14x.h void main(void) { P6DIR |= BIT2;P6OUT |= BIT2; //关掉电平转换(不必纠结) WDTCTL = WDTPW + WDTHOLD; // Stop watchdog timer P3DIR |= BIT3; // Set P3.4 to output direction for (;;) //一直循环,一直执行,一直取反 { volatile unsigned int i; //volatil
[单片机]
msp430F149测电压显示在12864上外接一个led
注释接口那边不准确,自己判断吧 单片机源程序如下: /********************************************************* 程序功能:MCU的片内ADC对P6.0端口的电压进行转换 将模拟电压值显示在1602液晶上。 ---------------------------------------------------------- 测试说明:调节电位器W1的旋钮观察液晶显示数字变化。 *********************************************************/ #include msp430F149.h #include c
[单片机]
MSP430F149学习之路——按键与LED
代码 1 /*********************************** 2 程序功能:用按键控制LED状态 3 缺点:按键按下后无法改变LED灯的状态,可以利用板上的复位键^~^ 4 *************************************/ 5 #include msp430x14x.h 6 7 int k,i=0; 8 void int_clk(); 9 void led(int n); 10 void main() 11 { 12 WDTCTL = WDTPW + WDTHOLD; 13 int_clk(); 14 P1DIR = 0Xf0; 15 P1OUT =
[单片机]
MSP430F149学习之路——LED
1 #include msp430x14x.h 2 3 void int_clk(); 4 void delay(int i); 5 void main() 6 { 7 WDTCTL = WDTPW + WDTHOLD; 8 int_clk(); 9 P6DIR = 0XFF; 10 P6OUT = 0Xff; 11 while(1) 12 { 13 P6OUT = 0XFF; 14 delay(20000); 15 P6OUT = 0x00; 16 delay(20000); 17 } 18 } 19 20 void int_clk() 21 { 22 BCSCTL1 &= ~X
[单片机]
MSP430F149单片机的内部定时器A定时1秒钟实现LED闪烁
#include msp430x14x.h //********************函数声明****************** void InitClock(); //********************主函数******************** void main(void) { WDTCTL = WDTPW + WDTHOLD; // 关看门狗 InitClock(); // 初始化时钟 P1DIR |= BIT0; // 设P1.0为输出 CCTL0 = CCIE;
[单片机]
MSP430F149控制LED灯的亮灭C程序
MSP430单片机第一个程序控制P1.0口LED灯亮灭C语言程序,编程环境:IAR 6.0;MCU:MSP430F149;程序有详细注释,很适合初学者。 #include msp430x14x.h typedef unsigned int uint; typedef unsigned char uchar; /*延时函数*/ void Delay_Ms(uint x) { uint i; while(x--)for(i=0;i 250;i++); } /*主函数*/ int main( void ) { WDTCTL = WDTPW + WDTHOLD;// Stop watchdog timer to pr
[单片机]
STM8S开发入门之使用EWSTM8(IAR STM8S)新建工程点亮一个LED
1、预先安装好EWSTM8(IAR STM8)软件,全称为IAR Embedded Workbench for STMicroelectronics STM8 IDE 2、下载好STM8S标准库,此处所用标准库为STM8S_StdPeriph_Lib V2.3.1 3、新建个文件夹(名称自定),作为项目所在文件夹,并在项目文件夹里再新建两个文件夹,此处分别命名为FWLIB和USER。(注:这两个文件夹名字可以按你们自己意思取,无限制,如可以取HWLIB、SYSLIB、MYLIB、MYAPP、MYABC、XZY等) 4、将STM8S标准库(STM8S_StdPeriph_Lib V2.3.1)——Project——ST
[单片机]
STM8S开发入门之使用EWSTM8(<font color='red'>IAR</font> STM8S)新建工程点亮一个<font color='red'>LED</font>
STM8L15x for IAR点亮LED
一、电路分析 STM8L151G6U6 的LED有两个,分别是 :LED1:POWER_LED ---- PB1 ; LED2:STATUS_LED ---- PB2 二、IAR新建工程准备 1.在项目文件夹里创建3个文件夹 2.fWLIB用来存放stm8板子的各种配置头文件和.c文件 3.project用来存放工程文件和debug日志 三、新建工程 1.Create New Project . 2.选择工程模板------c,将工程命名为led,将工程文件保存在project下 3.addd flies 四、配置选项卡 1.右键选项 2.GO --- targ
[单片机]
STM8L15x for <font color='red'>IAR</font>点亮<font color='red'>LED</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
  • 学习ARM开发(16)
    ARM有很多东西要学习,那么中断,就肯定是需要学习的东西。自从CPU引入中断以来,才真正地进入多任务系统工作,并且大大提高了工作效率。采 ...
  • 学习ARM开发(17)
    因为嵌入式系统里全部要使用中断的,那么我的S3C44B0怎么样中断流程呢?那我就需要了解整个流程了。要深入了解,最好的方法,就是去写程序 ...
  • 学习ARM开发(18)
    上一次已经了解ARM的中断处理过程,并且可以设置中断函数,那么它这样就可以工作了吗?答案是否定的。因为S3C44B0还有好几个寄存器是控制中 ...
  • 嵌入式系统调试仿真工具
    嵌入式硬件系统设计出来后就要进行调试,不管是硬件调试还是软件调试或者程序固化,都需要用到调试仿真工具。 随着处理器新品种、新 ...
  • 最近困扰在心中的一个小疑问终于解惑了~~
    最近在驱动方面一直在概念上不能很好的理解 有时候结合别人写的一点usb的例子能有点感觉,但是因为arm体系里面没有像单片机那样直接讲解引脚 ...
  • 学习ARM开发(1)
  • 学习ARM开发(2)
  • 学习ARM开发(4)
  • 学习ARM开发(6)
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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