微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > msp430单片机中断控制闪烁灯

msp430单片机中断控制闪烁灯

时间:11-30 来源:互联网 点击:
/*******************************************************************************

带中断的闪烁灯
****************************************************************************/
#include msp430g2553.h>
/*************************************
msp430G2553控制与P1.0和P1.6连接的两个LED等闪烁
闪烁效果可以用数组形式设定,循环将数组的值赋给输出P1.
******************************************/
char dis[12]={0x41,0x00,0x41,0x00,0x01,0x00,0x40,0x00,0x40,0x00,0x01,0x00};
//定义有12的元素的数组dis[12],可以存储12种显示状态
int n,t,m;
void delay()
/*设置自定义函数,如果在主程序前可直接设置,在主程序后设置则要先声明主程序前
声明,然后在主程序后设置*/
{
while(t--);
}
void main(void)
{

WDTCTL = WDTPW + WDTHOLD; // 停止看门狗
_EINT();
P1DIR &=~BIT3;
P1IE |= BIT3;
P1IES |=BIT3;
P1IFG =0x00;
P1DIR |=(BIT0+BIT6);//设置P1.0和P1.6为输出,其余状态不变
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;
}

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top