📄 main.c
字号:
{
if((setcarFlag==1)&&(P2IN&BIT1))
{
Delay(600);
if((setcarFlag==1)&&(P2IN&BIT1))
{
ClearLCD();
LCD[8]|=0X01;
LCD[0]|=0XFA; //0拆表破坏
chaiBiaoFlag=1;
eepsecW[0]=1;
ISendStr(0X44,eepsecW,1);
Delay(500);
Di();
Delay(4000);
Di();
}
}
}
if(!(P2IN&BIT2))
{
Delay(800);
if(!(P2IN&BIT2))
{
SetBattery();
Di();
Delay(4000);
Di();
P2IES&=~BIT2; // 电池低电中断上升沿触发
P2IE|=BIT2; //P2.2中断允许
diDianFlag=1;
P2IFG&=~BIT2;
}
}
if((P2IN&BIT2))
{
Delay(800);
if((P2IN&BIT2))
{
LCD[9]&=~0x04;
P2IES|=BIT2; // 电池高电中断下降沿触发
P2IE|=BIT2; //P2.2中断允许
diDianFlag=0;
P2IFG&=~BIT2;
}
}
if((spareWater>0)&&(spareWater<3)&&(usercardFlag==1))
{
SetPleaseBuy();
Di();
Delay(60000);
LCD[8]&=~0x10;
}
LPM3; //进入休眠LPM3状态
if(interruptFlag==1)
{
ClearLCD();
sec = &cardID;
PowerOn(); //ic卡上电
Delay(300);
Reset(); //ic卡复位
Delay(300);
DataRead(MainMemRead,0x08,1,sec); //读卡型标识存储区
switch(cardID)
{
case 0x01:
{
if(setcarFlag==1)
{
if(chaiBiaoFlag==0)
{
ClearLCD();
SetCardWrong();
LCD[0]=0xd6; //显示错误2 插卡错误设置卡
Di();
Delay(5000);
Di();
Delay(50000);
ClearLCD();
}
else
{
if(!(P2IN&BIT1))
{
chaiBiaoFlag=0;
eepsecW[0]=0;
ISendStr(0X30,eepsecW,1);
Di();
ClearLCD();
}
else
{
ClearLCD();
LCD[8]|=0X01;
LCD[0]|=0XFA; //0拆表破坏
chaiBiaoFlag=1;
eepsecW[0]=1;
ISendStr(0X30,eepsecW,1);
Delay(500);
Di();
Delay(4000);
Di();
}
}
}
if(setcarFlag==0)
{
if(setcarFlag==0)
{
SetCard();
}
}
} break;
case 0x11:
{
if(feilvcardFlag==0)
{
ClearLCD();
SetCardWrong();
LCD[0]=0xd6; //显示错误2 插卡错误设置卡
Di();
Delay(5000);
Di();
Delay(50000);
ClearLCD();
}
else
{
UserCard();
}
} break;
case 0x20:
{
if(setcarFlag==0)
{
ClearLCD();
SetCardWrong();
LCD[0]=0xd6; //显示错误2 插卡错误设置卡
Di();
Delay(5000);
Di();
Delay(50000);
ClearLCD();
}
if(setcarFlag==1)
{
FeilvCard();
}
} break;
case 0x06:
{
if(usercardFlag==0)
{
ClearLCD();
SetCardWrong();
LCD[0]=0xd6; //显示错误2 插卡错误设置卡
Di();
Delay(5000);
Di();
Delay(50000);
ClearLCD();
}
else if(usercardFlag==1)
{
ChangeCard();
}
} break;
case 0x08:
{
DataRead(MainMemRead,0x08,1,sec); //读卡型标识存储区
if(cardID==8)
{
DataRead(MainMemRead,0x09,1,icPassWord);
icPassWordFlag=1;
ISendStr(0X48,icPassWord,3);
icFlag[0]=1;
ISendStr(0X43,icFlag,1);
}
} break;
default:
{
ClearLCD();
SetCardWrong();
LCD[0]=0x60; //显示错误1插卡错误未知卡型
Di();
Delay(5000);
Di();
Delay(50000);
ClearLCD();
if(usercardFlag==1)
{
cKeyFlag=1; //相当于按键功能
CCTL0 = CCIE;
}
} break;
}
cardID=0;
sec[0]=0;
P6OUT&=~0X0F; //口子置低实现低功耗
interruptFlag=0;
}
}
}
//*****************************************端口P1中断向量**************************************************
#pragma vector=PORT1_VECTOR
__interrupt void PORT1 (void)
{
LPM3_EXIT; //退出休眠LMP3状态
if(P1IFG&BIT2) //插卡中断
{
Delay(50);
if(!(P1IN&BIT2))
{
if(diDianFlag==0)
{
interruptFlag=1;
}
}
P1IFG&=~BIT2;
}
if(P1IFG&BIT3) //关阀到位中断
{
Delay(60);
if(P1IN&BIT3)
{
closeFlag=1;
P6OUT&=~0Xf0; //口子置低实现低功耗
openFlag=0;
SetFaGuan();
Delay(80000);
LCD[8]&=~0X08;
}
P1IFG&=~BIT3;
}
if(P1IFG&BIT4) //开阀到位中断
{
Delay(60);
if(P1IN&BIT4)
{
openFlag=1;
P6OUT&=~0Xf0; //口子置低实现低功耗
closeFlag=0;
SetFaKai();
Delay(80000);
LCD[8]&=~0X04;
}
P1IFG&=~BIT4;
}
}
//*****************************************端口P2中断向量*******************************************
#pragma vector=PORT2_VECTOR
__interrupt void PORT2 (void)
{
LPM3_EXIT;
if(P2IFG&BIT0) //流量中断
{
if((!(P2IN&BIT0))&&(P1IN&BIT7)&&(usercardFlag==1))
{
Delay(100);
if((!(P2IN&BIT0))&&(P1IN&BIT7))
{
if((spareWater>=1)&&(feilv>5))
{
LiuLiang();
}
}
if((spareWater>0)&&(spareWater<3)&&(usercardFlag==1))
{
SetPleaseBuy();
Di();
Delay(80000);
LCD[8]&=~0x10;
}
}
if((!(P2IN&BIT0))&&(!(P1IN&BIT7))&&(usercardFlag==1))
{
Delay(150);
if((!(P2IN&BIT0))&&(!(P1IN&BIT7)))
{
daoShuiFlag=1;
}
}
if(((P2IN&BIT0)||(P1IN&BIT7)))
{
Delay(150);
if(((P2IN&BIT0)||(P1IN&BIT7)))
{
daoShuiFlag=0;
}
}
P2IFG &= ~BIT0 ;
}
if(P2IFG&BIT1) //拆表中断
{
Delay(500);
if(P2IN&BIT1)
{
Delay(500);
if((setcarFlag==1)&&(P2IN&BIT1))
{
ClearLCD();
LCD[8]|=0X01;
LCD[0]|=0XFA; //0拆表破坏
Di();
chaiBiaoFlag=1;
eepsecW[0]=1;
ISendStr(0X44,eepsecW,1);
}
}
P2IFG&=~BIT1;
}
if(P2IFG&BIT2) //低电中断
{
Delay(200);
if(!(P2IN&BIT2))
{
SetBattery();
Di();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -