msp430單片機(jī)中斷控制閃爍燈
帶中斷的閃爍燈
****************************************************************************/
#include <msp430g2553.h>
/*************************************
msp430G2553控制與P1.0和P1.6連接的兩個(gè)LED等閃爍
閃爍效果可以用數(shù)組形式設(shè)定,循環(huán)將數(shù)組的值賦給輸出P1.
******************************************/
char dis[12]={0x41,0x00,0x41,0x00,0x01,0x00,0x40,0x00,0x40,0x00,0x01,0x00};
//定義有12的元素的數(shù)組dis[12],可以存儲(chǔ)12種顯示狀態(tài)
int n,t,m;
void delay()
/*設(shè)置自定義函數(shù),如果在主程序前可直接設(shè)置,在主程序后設(shè)置則要先聲明主程序前
聲明,然后在主程序后設(shè)置*/
{
while(t--);
}
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 停止看門(mén)狗
_EINT();
P1DIR &=~BIT3;
P1IE |= BIT3;
P1IES |=BIT3;
P1IFG =0x00;
P1DIR |=(BIT0+BIT6);//設(shè)置P1.0和P1.6為輸出,其余狀態(tài)不變
while(1)
{
for (n=0;n<12;n++)
{
P1OUT=dis[n];
delay(100);
}
}
}
#pragmavector=PORT1_VECTOR
__interrupt void MM(void)
{
if ((P1IFG & BIT3)==BIT3)
{
P1OUT |=BIT0;
for (m=1;m<15;m++)
{
P1OUT^=(BIT0);
delay(5);
}
}
P1IFG &=0x00;
}
評(píng)論