极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11558|回复: 0

【大赛原创经验贴】LED流水灯实验

[复制链接]
发表于 2012-7-18 09:21:08 | 显示全部楼层 |阅读模式
这是我学会的唯一一个程序,方法有些笨,不过还可以当入门的参考,一开始什么都不会,看着教程慢慢学,再尝试自己编,这个只能这样了,给大家看看吧。

流水灯



#include<msp430x14x.h>
#define uint unsigned  int
#define uchar unsigned char
//各个LED亮灭的宏定义
#define   LED1_OFF     P6DIR|= BIT7,P6OUT|=BIT7  //方向输出 高电平灭
#define   LED2_OFF     P6DIR|= BIT6,P6OUT|=BIT6
#define   LED3_OFF     P6DIR|= BIT5,P6OUT|=BIT5
#define   LED4_OFF     P6DIR|= BIT4,P6OUT|=BIT4
#define   LED5_OFF     P6DIR|= BIT3,P6OUT|=BIT3
#define   LED6_OFF     P6DIR|= BIT2,P6OUT|=BIT2
#define   LED7_OFF     P6DIR|= BIT1,P6OUT|=BIT1
#define   LED8_OFF     P6DIR|= BIT0,P6OUT|=BIT0
#define   LED1_ON      P6DIR|= BIT7,P6OUT&=~BIT7       //方向输出 低电平亮
#define   LED2_ON      P6DIR|= BIT6,P6OUT&=~BIT6
#define   LED3_ON      P6DIR|= BIT5,P6OUT&=~BIT5
#define   LED4_ON      P6DIR|= BIT4,P6OUT&=~BIT4
#define   LED5_ON      P6DIR|= BIT3,P6OUT&=~BIT3
#define   LED6_ON      P6DIR|= BIT2,P6OUT&=~BIT2
#define   LED7_ON      P6DIR|= BIT1,P6OUT&=~BIT1
#define   LED8_ON      P6DIR|= BIT0,P6OUT&=~BIT0
//  时钟设置
void int_clk()
{
    uchar i;
    BCSCTL1&=~XT2OFF;                  //打开XT振荡器
    BCSCTL2|=SELM1+SELS;//MCLK 8M and SMCLK 1M  
    do
{
        IFG1 &= ~OFIFG;                                  //清除振荡错误标志
        for(i = 0; i < 100; i++)
   _NOP();   //延时等待
        }
    while ((IFG1 & OFIFG) != 0);                             //如果标志为1继续循环等待
    IFG1&=~OFIFG;
}
//  延时子函数
void delay()
{
  uint i,j;
  for(i=0;i<=1000;i++)
    {
    for(j=0;j<=1000;j++)
         ;
    }
}
void main( void )
{
  WDTCTL = WDTPW + WDTHOLD;                         //关闭看门狗      
  int_clk();                         //初始化时钟
                    //循环亮灭
  while(1)
  {
  delay();
  LED1_ON;                    
  delay();
  LED2_ON;
  delay();
  LED3_ON;
  delay();
  LED4_ON;
  delay();
  LED5_ON;
  delay();
  LED6_ON;
  delay();
  LED7_ON;
  delay();
  LED8_ON;
  delay();
  LED1_OFF;
  delay();
  LED2_OFF;
  delay();
  LED3_OFF;
  delay();
  LED4_OFF;
  delay();
  LED5_OFF;
  delay();
  LED6_OFF;
  delay();
  LED7_OFF;
  delay();
  LED8_OFF;
  delay();
  }

}
  
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 16:29 , Processed in 0.039182 second(s), 17 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表