日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 技術學院 > 技術前線
[導讀]MSP430 F5529的按鈕控制led燈亮滅程序代碼——中斷寫法——S1 S3控制跑馬燈

#include

int run=0;

int y,i;

int main(void)

{

WDTCTL = WDTPW | WDTHOLD; //關閉看門狗

P8DIR |= BIT1;//設置LED

P3DIR |= BIT7;

P7DIR |= BIT4;

P6DIR |= BIT3;

P6DIR |= BIT4;

P3DIR |= BIT5;//從第一個依次往下是六個LED燈

P8OUT &=~ BIT1;//設置LED燈初始值

P3OUT &=~ BIT7;

P7OUT &=~ BIT4;

P6OUT &=~ BIT3;

P6OUT &=~ BIT4;

P3OUT &=~ BIT5;//從第一個依次往下是六個LED燈

P1IE = BIT2; //P1.2的IE,IES,IFG,設置中斷函數三連

P1IES |= BIT2;

P2IE = BIT3; //P2.3的IE,IES,IFG,設置中斷函數三連

P2IES |= BIT3;

_enable_interrupts(); //開啟全局中斷

for(;;) //無限循環(huán)

{

if(run) //如果按下了S1,則程序啟動

{

for(i=1;i<6000;i++){}

P8OUT ^= BIT1; //第一盞燈

for(i=1;i<6000;i++){}

P3OUT ^= BIT7;

for(i=1;i<6000;i++){}

P7OUT ^= BIT4;

for(i=1;i<6000;i++){}

P6OUT ^= BIT3;

for(i=1;i<6000;i++){}

P6OUT ^= BIT4;

for(i=1;i<6000;i++){}

P3OUT ^= BIT5;

}

else { //如果run=0,那就是沒按S1開始或者按了S3暫停,此時跑馬燈全部置0

P8OUT &=~ BIT1;//設置LED燈初始值

P3OUT &=~ BIT7;

P7OUT &=~ BIT4;

P6OUT &=~ BIT3;

P6OUT &=~ BIT4;

P3OUT &=~ BIT5;//從第一個依次往下是六個LED

}

}

}

#pragma vector=PORT1_VECTOR//(PORT1_VECTOR指的是P1口中斷源)

__interrupt void p_one_duan(void)

{

if(!(P1IN&BIT2)) //P1正的,則亮,不然就滅 即按下了S1就繼續(xù)

{

for(i=1;i<1000;i++){} //防抖動,看看一會后是不是還是S1在下面

if(!(P1IN&BIT2))

{

while(!(P1IN&BIT2));

run = 1;

}

P1IFG &=~ BIT2; //如果P1.2是震動的話,那就清零離開

}

P1IFG=0;

}

#pragma vector=PORT2_VECTOR//(PORT1_VECTOR指的是P1口中斷源)

__interrupt void p_two_duan(void)

{

if(!(P2IN&BIT3)) //P2.3,按鈕S3,是正的,則亮,不然就滅

{

for(i=1;i<1000;i++){}

if(!(P2IN&BIT3))

{

while(!(P2IN&BIT3));

run = 0;

}

P2IFG &=~ BIT3; ///P2.3,按鈕S3,是震動的話,那就清零離開

}

P2IFG=0;

}

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關閉