標(biāo)題:
求幫忙 在G2板上利用p1.6(PWM輸出口)驅(qū)動LED來實(shí)現(xiàn)呼吸燈
[打印本頁]
作者:
20153177
時(shí)間:
2016-6-11 09:24
標(biāo)題:
求幫忙 在G2板上利用p1.6(PWM輸出口)驅(qū)動LED來實(shí)現(xiàn)呼吸燈
有人知道這個(gè)程序怎么寫嗎,老師布置的任務(wù),可是我才學(xué)習(xí)單片機(jī),上課沒有仔細(xì)聽,如果有哥哥姐姐知道,能幫幫忙嗎?
作業(yè)一:
在G2板上利用p1.6(PWM輸出口)驅(qū)動LED來實(shí)現(xiàn)呼吸燈。呼吸燈就是亮度漸變的LED燈,普通LED可以用TA輸出PWM來控制亮度,通過WDT定時(shí)中斷來改變亮度,從而實(shí)現(xiàn)呼吸燈效果。
要求:
1、通過按鍵來控制呼吸燈的呼吸頻率,即亮度漸變的快慢。
控制方式:按擴(kuò)展板上KEY1鍵,呼吸加快一檔,連續(xù)按2下,呼吸加快一檔,連續(xù)按3下,呼吸又加快一檔......;按KEY3鍵,呼吸減慢一檔,連續(xù)按2下,呼吸減慢一檔,連續(xù)按3下,呼吸又減慢一檔......。
2、在液晶屏上顯示呼吸燈呼吸頻率的相關(guān)信息。
作業(yè)二:
在擴(kuò)展板上利用 LED1至LED8 八個(gè)LED燈實(shí)現(xiàn)流水燈和呼吸燈功能。
要求:
1、八個(gè)LED燈能以不同方式實(shí)現(xiàn)流水燈:LED1至LED8每隔N個(gè)依次亮滅,并循環(huán),N=0,1,2,3;
2、八個(gè)LED燈在實(shí)現(xiàn)流水燈的同時(shí),實(shí)現(xiàn)呼吸燈功能:LED1至LED8每隔N個(gè)依次亮滅,并循環(huán),N=0,1,2,3;同時(shí)每個(gè)燈的亮度是漸變的(先漸亮再漸滅)。
3、在實(shí)現(xiàn)2中功能的時(shí)候,用電容觸摸按鍵來控制呼吸頻率,做到左快右慢。
4、在液晶屏上顯示LED流水呼吸燈的相關(guān)信息。
謝謝啦
作者:
fairsky008
時(shí)間:
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(); 最后設(shè)置 使能總中斷
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); // 關(guān)閉 DCO;
BCSCTL2 |= SELM_3 + DIVM_0; // MCLK = VLO/不分頻 (12KHz)
BCSCTL2 |= SELS; // SMCLK 時(shí)鐘源選擇1: 0:DCOCLK / 1:XT2CLK/LFXTCLK
}
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1