关于msp430G2553单片机的按键中断的编程。我自己编的老不对。帮看看。
我在P1.3接了一个按键。P1.6P1.0接了两个led希望利用中断每次按键两一个灯,两个灯交替的亮。下面是我的程序,但是按了按键灯没有反应,而是P1.0常亮。不知道哪里...
我在P1.3接了一个按键。P1.6 P1.0 接了两个led 希望利用中断每次按键两一个灯,两个灯交替的亮。下面是我的程序,但是按了按键灯没有反应,而是P1.0常亮。不知道哪里不对,希望解答、谢谢。刚学了1天。。。。。纯粹的菜鸟。有51的基础。
#include <msp430g2553.h>
unsigned char a=0;
void interrupt_inital()
{
P1DIR&=~BIT3;
P1IE|=0x08;
P1IES|=0x00;
P1IFG=0;
_EINT();
}
#pragma vector = PORT1_VECTOR
__interrupt void port1(void)
{
if((P1IFG&BIT3)==BIT3)
{
P1IFG&=~BIT3;
a++;
}
}
void main(void)
{
interrupt inital();
WDTCTL=WDTPW+WDTHOLD;
while(1)
{
if(a%2==0)
{
P1DIR|=BIT0;
P1OUT|=BIT0;
}
if(a%2==1)
{
P1DIR|=BIT6;
P1OUT|=BIT6;
}
}
}
PCB加工找华强电路 http://www.hqpcb.com 样板2天出货 展开
#include <msp430g2553.h>
unsigned char a=0;
void interrupt_inital()
{
P1DIR&=~BIT3;
P1IE|=0x08;
P1IES|=0x00;
P1IFG=0;
_EINT();
}
#pragma vector = PORT1_VECTOR
__interrupt void port1(void)
{
if((P1IFG&BIT3)==BIT3)
{
P1IFG&=~BIT3;
a++;
}
}
void main(void)
{
interrupt inital();
WDTCTL=WDTPW+WDTHOLD;
while(1)
{
if(a%2==0)
{
P1DIR|=BIT0;
P1OUT|=BIT0;
}
if(a%2==1)
{
P1DIR|=BIT6;
P1OUT|=BIT6;
}
}
}
PCB加工找华强电路 http://www.hqpcb.com 样板2天出货 展开
展开全部
#include<msp430g2553.h>
void Init_Port()
{
P1DIR|=BIT0+BIT6;
P1DIR&=~BIT3;
P1REN|=BIT3;
P1IES|=BIT3;//选择下降沿触发
P1IE|=BIT3;
P1OUT&=~BIT0;
P1OUT|=BIT6;
}
void main()
{
WDTCTL = WDTPW + WDTHOLD;
Init_Port();
_EINT();
while(1);
}
#pragma vector=PORT1_VECTOR //按键响应处理函数
__interrupt void Port1(void)
{
unsigned char PushKey;
unsigned int i;
PushKey=P1IFG&BIT3;
for(i=0;i<50000;i++);
if(!(P1IN&PushKey)==PushKey)//没有按下,则为抖动,标志清零
{
P1IFG=0;
return;
}
if(PushKey&BIT3)
{
P1OUT^=BIT0;
P1OUT^=BIT6;
}
P1IFG=0;
return;
}
不知道你现在调试通了没,这是我改的网上的试了通过。希望帮到你!
void Init_Port()
{
P1DIR|=BIT0+BIT6;
P1DIR&=~BIT3;
P1REN|=BIT3;
P1IES|=BIT3;//选择下降沿触发
P1IE|=BIT3;
P1OUT&=~BIT0;
P1OUT|=BIT6;
}
void main()
{
WDTCTL = WDTPW + WDTHOLD;
Init_Port();
_EINT();
while(1);
}
#pragma vector=PORT1_VECTOR //按键响应处理函数
__interrupt void Port1(void)
{
unsigned char PushKey;
unsigned int i;
PushKey=P1IFG&BIT3;
for(i=0;i<50000;i++);
if(!(P1IN&PushKey)==PushKey)//没有按下,则为抖动,标志清零
{
P1IFG=0;
return;
}
if(PushKey&BIT3)
{
P1OUT^=BIT0;
P1OUT^=BIT6;
}
P1IFG=0;
return;
}
不知道你现在调试通了没,这是我改的网上的试了通过。希望帮到你!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
意法半导体(中国)投资有限公司
2021-01-14 广告
2021-01-14 广告
1、不是的,STC单片机全面兼容MCS-51单片机,可以用一般的编程器编程,但ISP功能更方便实用。 2、实验板的串口就是ISP下载用的吧。 4、汇编语言不一定要在keil里学,一般的教程都可以学。keil只是一个编译程序。因为keil编译...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询