这个程序,就是按接于P2的开关,从而使接于P1的LED相应亮暗。但是貌似没有去执行中断函数啊。我是新手,大家不要笑啊。哈哈!1程序如下:
/*
*采用中断的方式S2控制LED一个一个点亮
*/
#include<msp430.h>
int s=0; //s用来表示按键次数
int num =0; //num表示LED值
void main(void)
{
WDTCTL=WDTPW+WDTHOLD; //关闭看门狗
P1DIR=0xff; //P1全部接输出
P1OUT=0x00; //接LED故全拉低
P2DIR=0x00; //P2全部设为输入
P2IFG=0x00; //清除P2口的中断标志
P2IE=0xff; //P2全部开启中断
P2IES=0xff; //P2为下降沿触发
P2IN=0xff; //P2输入全部拉高,因为开关闭合会拉低产生下降沿
__enable_interrupt(); //开总中断
while(1)
{
num=s%5;
switch(num)
{
case 0:P1OUT=BIT1;break;
case 1:P1OUT=BIT2;break;
case 2:P1OUT=BIT3;break;
case 3:P1OUT=BIT4;break;
case 4:P1OUT=BIT5;break;
}
}
}
#pragma vector=PORT2_VECTOR
__interrupt void Port2_ISR(void)
{
unsigned int temp; //局部变量
int i;
for(i=0;i<2000;i++); // 延时消抖
//if((P2IN&0xff)!=0xff) //如果有键按下
//{
temp=P2IFG;
P2IFG=0x00; //标志位清零
//if(temp==0x04) //P2.2产生中断
s++;
//}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
P2REN=0xff; //配置上拉电阻
一周热门 更多>