msp432(1)系统初始上电状态:LED1常亮、LED2亮起红色。 (2)S1为D1的控制按键,单击有效(按下生效)。单击后LED1状态发生翻转。 (3)S2为D2的控制按键,单击有效(松开生效)。每次单机后LED2颜色变化,LED2的颜色按照绿→红→蓝→黄→白的顺序循环(白色状态后重新回到红色)。 S1与S2同时长按3s,松开按钮后,LED1、LED2恢复初始状态。。实现上述要求的代码
时间: 2023-12-03 16:47:09 浏览: 21
以下是msp432的代码实现:
```
#include "msp.h"
#define LED1 BIT0
#define LED2_R BIT0
#define LED2_G BIT1
#define LED2_B BIT2
#define S1 BIT1
#define S2 BIT4
void delay(){
int i;
for(i = 0; i < 100000; i++);
}
void main(void) {
WDT_A->CTL = WDT_A_CTL_PW | WDT_A_CTL_HOLD; // stop watchdog timer
P1->DIR |= LED1; //LED1输出
P2->DIR |= LED2_R | LED2_G | LED2_B; //LED2 RGB输出
P1->OUT |= LED1; //LED1常亮
P2->OUT |= LED2_R; //LED2红色亮起
int color = 0; //LED2颜色状态,0为绿色,1为红色,2为蓝色,3为黄色,4为白色
while(1){
if((P1->IN & S1) == 0){ //S1按键按下
delay(); //延时去抖动
if((P1->IN & S1) == 0){ //确保按键按下
P1->OUT ^= LED1; //LED1翻转状态
}
}
if((P2->IN & S2) == 0){ //S2按键按下
delay(); //延时去抖动
if((P2->IN & S2) == 0){ //确保按键按下
color = (color + 1) % 5; //颜色状态加1
switch(color){ //根据颜色状态,设置LED2颜色
case 0:
P2->OUT &= ~(LED2_R | LED2_B);
P2->OUT |= LED2_G;
break;
case 1:
P2->OUT &= ~(LED2_G | LED2_B);
P2->OUT |= LED2_R;
break;
case 2:
P2->OUT &= ~(LED2_R | LED2_G);
P2->OUT |= LED2_B;
break;
case 3:
P2->OUT &= ~LED2_B;
P2->OUT |= LED2_R | LED2_G;
break;
case 4:
P2->OUT |= LED2_R | LED2_G | LED2_B;
break;
}
}
}
if(((P1->IN & S1) == 0) && ((P2->IN & S2) == 0)){ //S1和S2同时按下
delay(); //延时去抖动
if(((P1->IN & S1) == 0) && ((P2->IN & S2) == 0)){ //确保同时按下
P1->OUT |= LED1; //LED1常亮
P2->OUT |= LED2_R; //LED2红色亮起
color = 0; //颜色状态归零
}
}
}
}
```
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)