实验:MSP430F249 按键控制四个灯,并消抖

实验:MSP430F249 按键控制四个灯,并消抖

Date: March 13, 2023


基础设定:

IAR基础设置:设置设备与输出文件及格式

Untitled

Untitled




实验内容:MSP430F249 按键控制四个灯,并消抖

具体要求:

  1. 四个按键控制四个灯亮灭
  2. 消抖按键

仿真图:

Untitled

代码:

  • Code:

    #include<msp430x24x.h>
    void delay()//延时函数
    {
      unsigned int i;
      i = 50000;                              
        do (i--);
        while (i != 0); 
    }
    void main(void)
    {
      //预处理&启动程序
      WDTCTL = WDTPW + WDTHOLD;   //关闭看门狗
      P3DIR |= 0XFF ;             //初始化设定p3
      P1DIR |= 0x00 ;             //初始化设定p1
      char k;
      for(;;)
      {
        //功能:消抖  确认按键是否按下,采用消抖技术
        if ((P1IN&0x0f)!=0x0f) //判断p1.0-p1.3
        {
          delay(); //延时消抖
          if((P1IN&0x0f)!=0x0f) //确认判断p1.0-p1.3
          {
            if((P1IN&BIT0)==0) k=0;
            if((P1IN&BIT1)==0) k=1;
            if((P1IN&BIT2)==0) k=2;
            if((P1IN&BIT3)==0) k=3;
          }
          while((P1IN&0x0f)!=0x0f);//等待按键松开
        }
          switch(k)
          {
          case 0:
                P3OUT=~0x01;
                break;
          case 1:
                P3OUT=~0x02;
                break;
          case 2:
                P3OUT=~0x04;
                break;
          case 3:
                P3OUT=~0x08;
                break;
          default:break;
        }
      }
    }
    

运行结果:没有任何报错与警告

Untitled

问题&解决:

  1. 仿真运行时,按键按下灯不亮,或者一直亮

    解决:重启proteus软件

  2. 仿真报Unrecognized opcode at 0x000006: 0x0000的错误

    解决:设备问题,IAR软件中选中MSP430F249

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值