📄 3键密码锁.c
字号:
//通过中断写键盘程序
#include <msp430x44x.h>
char key =0;
const char ma[11]={0,1,2,2,2,2,1,0,0,1,1};
char m_ok = 0; //0xff 为正确
char input_con = 0; //3 为输入结束
char input_buffer[3]={0}; //键缓存
void delay(int xx)
{
int i=3000;
char j;
for (j=0;j<xx;j++)
{
do (i--);
while (i !=0);
i=3000;
}
}
void main(void)
{
WDTCTL = WDTPW + WDTHOLD; // 关闭看门狗
P1DIR &=~(BIT3+BIT2+BIT1); // 输入设置
P1IE |=(BIT3+BIT2+BIT1); //允许P1的123可以中断 高到低设为1
P1IES |=(BIT3+BIT2+BIT1); //设置下降沿中断
_EINT(); //开中断
__bis_SR_register(LPM3_bits + GIE);
}
//中断程序
#pragma vector = PORT1_VECTOR
__interrupt void PP(void)
{
if((P1IFG&0XE)==BIT1)
key=0;
else if((P1IFG&0XE)==BIT2)
key=1;
else if((P1IFG&0XE)==BIT3)
key=2;
P1IFG=0;
if(input_con > 2)
{
input_con = 0 ;
//比照是否密码正确
if((input_buffer[0]==ma[0])&(input_buffer[1]==ma[1])&(input_buffer[2]==ma[2]))//密码正确
{
P1DIR |= BIT0;
P1OUT |= BIT0 ;
delay(300);
P1OUT &= ~BIT0;
m_ok= 0 ;
}
else
m_ok = 0 ;
}
else
{
input_buffer[input_con]= key ;//正在输入密码
input_con++;
}
//键盘程序
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -