📄 key.c
字号:
#include "msp430x16x.h"
#define LED1 BIT0
#define LED2 BIT1
#define S3 BIT2
#define S2 BIT3
#define S1 BIT4
void Delay() { //按键延时
unsigned int i;
for(i=0;i<500;i++)_NOP();
}
void Init_Key() { //按键设置与LED设置
P1DIR|=LED1+LED2;
P1DIR&=~(S1+S2+S3);
P1OUT&=~(LED1+LED2);
}
void Scan() {
unsigned char i;
do {
i=P1IN&(S1+S2+S3);
}while(i==S1+S2+S3); //无按键动作
Delay(); //去抖动
i=P1IN&(S1+S2+S3);
if((i&S1)==0)P1OUT^=LED1; //S1按下 LED1翻转
if((i&S2)==0)P1OUT^=LED2; //S2按下LED2翻转
if((i&S3)==0)P1OUT^=LED1+LED2; //S3按下LED1与LED2翻转
while((P1IN&(S1+S2+S3))!=S1+S2+S3);//按键复位
Delay(); //去抖动
}
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD; //关闭看门狗
Init_Key(); //初使按键与LED
while(1)Scan(); //键盘扫描
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -