您的位置 首页 培训

按键程序 PORT中止程序

MSP430里面P1口和P2口有中断功能。我们的项目里面,P1口的1-7管脚做键盘,0脚做风速传感器的输入。P2口的0-4做键盘,5-7做其他用。键

MSP 430里边 P1口和P2口有中止功用。

咱们的项目里边,P1口的1-7管脚做键盘,0脚做风速传感器的输入。P2口的0-4做键盘,5-7做其他用。

//键盘引脚装备
P1DIR=0x00; // P1 口为输入(0:风速传感器输入,1-7中止信号输入)

P2DIR&=~(BIT0+BIT1+BIT2+BIT3+BIT4); //把P2.0-P2.4设为输入
//下降沿触发是指按下的时分进入中止,上升沿触发是在铺开按键的时分进入中止
P1IES|=BIT1+BIT2+BIT3+BIT4+BIT5+BIT6+BIT7;//设置P1口中止边缘挑选寄存器,置1为下跳沿,置0为

//上跳沿
P1IE=0xFE;//设置P1中止使能寄存器,置1为答应中止,置0为制止中止

//(由于P1.0他用,为了不影响咱们的按键的判别,所以P1.0脚的中止咱们不翻开,只开P1.1-P1.7,所以

//便是P1IE的bit置位是:1111 1110 =P1IE)
P2DIR=0x00;//设置P2口方向寄存器,置0为输入,置1为输出
P2IES|=BIT0+BIT1+BIT2+BIT3+BIT4;//设置P2口中止边缘挑选寄存器,置1为下跳沿,置0为上跳沿
P2IE=0x1F; //设置P2中止使能寄存器,置1为答应中止,置0为制止中止

(由于P2.5-P2.7他用,为了不影响咱们的按键的判别,所以这些脚的中止咱们不翻开,只开P2.0-P2.4,所以便是P2IE的bit置位是:0001 1111 =P1IE)

I/O口的每一bit都能够独自设置,为了不影响其他管脚的作业,咱们设定咱们按键所需管脚的时分,都是运用位操作来设定相应的位,无关位保存原样,如:P2IES|=BIT0+BIT1+BIT2+BIT3+BIT4;只挑选了P2.0-P2.4为下降沿触发,P2.5-P2.7坚持原设置,不然简单彼此搅扰犯错。

在头文件中咱们能够找到P1口的中止向量集是:PORT1_VECTOR
P2口的中止向量集是:PORT2_VECTOR

所以中止函数能够写成:

#pragma vector=PORT1_VECTOR
__interrupt void PORT1_ISR (void)
{
unsigned temp1; //局部变量:? //temp 暂时寄存端口的中止标志寄存器中的值
//temp 暂时寄存端口的中止标志寄存器中的值
delay(250000); // 消除颤动20ms延时(一般是10ms-20ms,看后边补白1)
if ((P1IN&0xFE)!=0xFE) //如果有键按下

{
temp1=P1IFG; //temp1 记载中止标志
switch(temp1)
{
case 1:
draw_circle(400,300,cyclenum*15,0,0xec);
break;
case 2:
draw_circle(600,300,cyclenum*15,0,0xec);
break;
case 4:
break;
case 8:
break;
case 16:
break;
case 32:
break;
case 64:
break;
case 128:
break;
//default: keyvaluep1=0;break;
}
}
P1IFG=0X00; //铲除中止标志,回来主程序
}
//以下是port2的中止服务程序
#pragma vector=PORT2_VECTOR
__interrupt void PORT2_ISR (void)
{
unsigned char temp1;
__delay_cycles(250000);// 20MS消除颤动延时补白1:
if ((P2IN&0x1F)!=0x1F) //仅运用了0、1、2、3、4脚所以与0x1F

{
temp1=P2IFG;
switch(temp1)
{ case 1:
程序1;

break;
case 2:
程序2;

break;
case 4:
程序3;
break;
case 8:
break;
case 16:
break;
case 32:
break;
case 64:
break;
case 128:
break;
//default: keyvaluep2=0;break;
}
}
P2IFG=0X00;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/changshang/peixun/259040.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部