实验:MSP430F249 按键控制四个灯,并消抖
Date: March 13, 2023
基础设定:
IAR基础设置:设置设备与输出文件及格式
实验内容:MSP430F249 按键控制四个灯,并消抖
具体要求:
1.四个按键控制四个灯亮灭
2.消抖按键
仿真图:
代码:
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; } } }
运行结果:没有任何报错与警告
问题&解决:
1.仿真运行时,按键按下灯不亮,或者一直亮
解决:重启proteus软件
2.仿真报Unrecognized opcode at 0x000006: 0x0000的错误
解决:设备问题,IAR软件中选中MSP430F249