找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3694|回复: 1
打印 上一主题 下一主题
收起左侧

求帮忙 在G2板上利用p1.6(PWM输出口)驱动LED来实现呼吸灯

[复制链接]
跳转到指定楼层
楼主
ID:126190 发表于 2016-6-11 09:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有人知道这个程序怎么写吗,老师布置的任务,可是我才学习单片机,上课没有仔细听,如果有哥哥姐姐知道,能帮帮忙吗?
作业一:
在G2板上利用p1.6(PWM输出口)驱动LED来实现呼吸灯。呼吸灯就是亮度渐变的LED灯,普通LED可以用TA输出PWM来控制亮度,通过WDT定时中断来改变亮度,从而实现呼吸灯效果。
要求:
1、通过按键来控制呼吸灯的呼吸频率,即亮度渐变的快慢。
控制方式:按扩展板上KEY1键,呼吸加快一档,连续按2下,呼吸加快一档,连续按3下,呼吸又加快一档......;按KEY3键,呼吸减慢一档,连续按2下,呼吸减慢一档,连续按3下,呼吸又减慢一档......。
2、在液晶屏上显示呼吸灯呼吸频率的相关信息。
作业二:
在扩展板上利用 LED1至LED8 八个LED灯实现流水灯和呼吸灯功能。
要求:
1、八个LED灯能以不同方式实现流水灯:LED1至LED8每隔N个依次亮灭,并循环,N=0,1,2,3;
2、八个LED灯在实现流水灯的同时,实现呼吸灯功能:LED1至LED8每隔N个依次亮灭,并循环,N=0,1,2,3;同时每个灯的亮度是渐变的(先渐亮再渐灭)。
3、在实现2中功能的时候,用电容触摸按键来控制呼吸频率,做到左快右慢。
4、在液晶屏上显示LED流水呼吸灯的相关信息。
谢谢啦
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:276172 发表于 2018-1-20 23:32 | 只看该作者
#include <msp430.h>

void init_clk(void);
void init_io(void);
void init_timer_A(void);

void main(void)
{
    WDTCTL = WDTPW | WDTHOLD;                       // stop watchdog timer

    init_clk();
    init_io();
    init_timer_A();

    _EINT();                                        //等同于 __enable_interrupts();  最后设置 使能总中断

    while(1)                                        // 不能去掉while(1), 不然程序就跑飞了。
      {
              LPM3;            //LPM3:CPU is disabled;MCLK and SMCLK are disabled; ACLK remains active  
       }
}

void init_clk(void)
{
   BCSCTL1 &= ~XTS;                                  // LFXT1振荡器工作在低频模式下
   BCSCTL3 |= LFXT1S_2;                              // LFXT1被配置为无,此处LFXT1 = VLO;12KHz。
   IFG1 &= ~OFIFG;                                   //Clear oscillator fault flag
   __bis_SR_register(SCG1 + SCG0);                   // 关闭 DCO;
   BCSCTL2 |= SELM_3 + DIVM_0;                       // MCLK = VLO/不分频 (12KHz)
   BCSCTL2 |= SELS;                               // SMCLK 时钟源选择1: 0:DCOCLK / 1:XT2CLK/LFXTCLK
}

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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