📄 ft_ca413.c
字号:
command_iccard(0x92,0x01,0x33);//password
clk256();
command_iccard(0x12,0x02,0x33);
clk256();
command_iccard(0x12,0x03,0x33);
clk256();
iccard_break();
command_iccard(0xff,0,0x39);
clk256();
iccard_break();
command_iccard(0,0,0x31);
iccard_ec=read_iccard();
read_iccard();
iccard_break();
if((iccard_ec&0x07)==7)
{
command_iccard(0,0x40,0x30);
data7=read_iccard();
data8=read_iccard();
iccard_break();
if((data7==0x3C)&&(data8==0xC3))
{
ljrl=0;
ljll=0;
ljgl=0;
scgl=0;
yl=0;
ljll_cnt=0;
kset_v=5;
if(P1IN&0x04)
{
close1();
}
opcl=0;
}
else if((data7==0x2D)&&(data8==0xD2))
{
ccc1();
if((tempca+js+hs+js1+hs1+js_hz+hs_hz+hs_cha+js_wendu+hs_wendu)==data12)
{
ccc2();
kset_v=5;
if(P1IN&0x08)
{
open1();
}
opcl=1;
}
}
else if((data7==0x69)&&(data8==0x96))
{
command_iccard(0,0x3e,0x30);
data1=read_iccard();
iccard_break();
if(data1==0x5a)
{
ccc1();
if((tempca+js+hs+js1+hs1+js_hz+hs_hz+hs_cha+js_wendu+hs_wendu)==data12)
{
ccc2();
kset_v=5;
if(P1IN&0x08)
{
open1();
}
opcl=1;
command_iccard(0xa5,0x3e,0x38);
clk256();
iccard_break();
// iccard_wrt();
}
}
}
}
}
}
}
void hanzhim(void)
{
js_hz=hanzhi[js_wendu/100];
js_hz+=(((js_wendu%100)*420)/100);
hs_hz=hanzhi[hs_wendu/100];
hs_hz+=(((hs_wendu%100)*420)/100);
}
#pragma vector=PORT2_VECTOR
__interrupt void PORT2(void)//P1中断
{
if((P2IN&0x10)==0)
{
delay(10000);
if((P2IN&0x10)==0)
{
if((P1IN&0x02)!=0)
{
ljll_cnt++;
ljll=ljll_cnt*10;
if(js_wendu>hs_wendu)
{
if((js_wendu-hs_wendu)>19)
{
hanzhim();
ljrl_30s=((js_hz-hs_hz)*((midu[js_wendu/100])/10))/10000;
ljrl+=ljrl_30s;
yl-=ljrl_30s;
}
}
else if(hs_wendu>js_wendu)
{
if((hs_wendu-js_wendu)>19)
{
hanzhim();
ljrl_30s=((hs_hz-js_hz)*((midu[hs_wendu/100])/10))/10000;
ljrl+=ljrl_30s;
yl-=ljrl_30s;
}
}
}
else
{
if(P1IN&0x04)
{
close1();
}
opcl=0;
}
}
}
if((P2IN&0x08)==0)
{
delay(1000);
if((P2IN&0x08)==0)
{
P2OUT|=BIT2;
delay(100);
iccard_main();
delay(100);
P2OUT&=~BIT2;
}
}
P2IFG&=~BIT3;
P2IFG&=~BIT4;
LPM3_EXIT;
}
void main(void)
{
int i;
WDTCTL = WDTPW + WDTHOLD; // Stop WDT
TACTL=TASSEL0+TACLR; //timera1 initial
TACCTL0=CCIE;
TACCR0=16384;
TACTL|=MC0;
P1DIR=0x21;
P1IE|=BIT2;
P1IES|=BIT2;
P1IFG&=~BIT2;
P1IE|=BIT3;
P1IES|=BIT3;
P1IFG&=~BIT3;
P1IE|=BIT4;
P1IES|=BIT4;
P1IFG&=~BIT4;
P2DIR=0x66;
P2SEL=0x40;
P2IE|=BIT3;
P2IES|=BIT3;
P2IFG&=~BIT3;
P2IE|=BIT4;
P2IES|=BIT4;
P2IFG&=~BIT4;
P2OUT&=~BIT2;
P6DIR=0xff;
P6OUT|=BIT3;
delay(50);
P6OUT&=~BIT2;
P6OUT|=BIT7;
delay(1000);
read_Flash((char*)0x1080,read_buf,12);
pttemp=read_buf[0];
pttemp=(pttemp<<8);
pttemp|=read_buf[1];
pt_ad0js=pttemp;
pttemp=read_buf[2];
pttemp=(pttemp<<8);
pttemp|=read_buf[3];
pt_ad50js=pttemp;
pttemp=read_buf[4];
pttemp=(pttemp<<8);
pttemp|=read_buf[5];
pt_ad100js=pttemp;
pttemp=read_buf[6];
pttemp=(pttemp<<8);
pttemp|=read_buf[7];
pt_ad0hs=pttemp;
pttemp=read_buf[8];
pttemp=(pttemp<<8);
pttemp|=read_buf[9];
pt_ad50hs=pttemp;
pttemp=read_buf[10];
pttemp=(pttemp<<8);
pttemp|=read_buf[11];
pt_ad100hs=pttemp;
pt_bjs=((pt_ad100js+pt_ad0js)-2*pt_ad50js)/(5000*pt_ad0js);
pt_ajs=((pt_ad100js-pt_ad50js)-7500*pt_bjs*pt_ad0js)/(50*pt_ad0js);
pt_bhs=((pt_ad100hs+pt_ad0hs)-2*pt_ad50hs)/(5000*pt_ad0hs);
pt_ahs=((pt_ad100hs-pt_ad50hs)-7500*pt_bhs*pt_ad0hs)/(50*pt_ad0hs);
_EINT();
// iccard_main();
while(1)
{
WDTCTL =WDT_ARST_1000;
if(sec10s>39)
{
flag_ca&=~BIT0;
sec10s=0;
}
if((flag_ca&0x01)==0)
{
P1IE&=~BIT4;
// P1DIR|=BIT4;
P2OUT|=BIT5;
bzsj();
bz=bz2;
// bbz=bz2;
hssj();
hs=bz2;
// bbz2=hs2;
jssj();
js=bz2;
// bbz1=js2;
bzsj();
bz1=bz2;
jssj();
js1=bz2;
hssj();
hs1=bz2;
P2OUT&=~BIT5;
// P1DIR&=~BIT4;
P1IE|=BIT4;
TACTL=TASSEL0+TACLR; //timera1 initial
TACCTL0=CCIE;
TACCR0=16384;
TACTL|=MC0;
if(bz>bz1)
bz_cha=bz-bz1;
else
bz_cha=bz1-bz;
if(js>js1)
js_cha=js-js1;
else
js_cha=js1-js;
if(hs>hs1)
hs_cha=hs-hs1;
else
hs_cha=hs1-hs;
if((bz_cha<19)&&(js_cha<19)&&(hs_cha<19))
{
js_ad=(js+js1)*10000/(bz+bz1);
hs_ad=(hs+hs1)*10000/(bz+bz1);
wendu_js=js_ad;
wendu_hs=hs_ad;
wendu_js=(sqrt(pt_ajs*pt_ajs+4*pt_bjs*((wendu_js-pt_ad0js)/pt_ad0js))-pt_ajs)*100/(2*pt_bjs);
js_wendu=wendu_js;
wendu_hs=(sqrt(pt_ahs*pt_ahs+4*pt_bhs*((wendu_hs-pt_ad0hs)/pt_ad0hs))-pt_ahs)*100/(2*pt_bhs);
hs_wendu=wendu_hs;
}
flag_ca|=BIT0;
}
switch(kset_v)
{
case 0:
{
disp_int(ljrl);
dis_buff[6]|=0x80;
dis_buff[8]=0x02;
}
break;
case 1:
{
disp_int(js_wendu);
dis_buff[8]=0x52;
}
break;
case 2:
{
disp_int(hs_wendu);
dis_buff[8]=0x62;
}
break;
case 3:
{
disp_int(ljll);
dis_buff[0]|=0x80;
dis_buff[1]|=0x80;
dis_buff[3]|=0x80;
dis_buff[8]=0x02;
}
break;
case 4:
{
disp_int(scgl);
dis_buff[2]|=0x80;
dis_buff[6]|=0x80;
dis_buff[8]=0x02;
// P1OUT|=BIT2;
// P1OUT|=BIT3;
}
break;
case 5:
{
disp_int(yl);
dis_buff[5]|=0x80;
dis_buff[6]|=0x80;
dis_buff[8]=0x02;
}
break;
case 6:
{
disp_int(ljgl);
dis_buff[6]|=0x80;
dis_buff[8]=0x82;
}
break;
case 7:
{
if(opcl!=0)
{
dis_buff[0]=0x00;
dis_buff[1]=0x00;
dis_buff[2]=seg[0];
dis_buff[3]=seg[10];
dis_buff[4]=seg[11];
dis_buff[5]=seg[12];
dis_buff[6]=0x00;
dis_buff[7]=0x00;
dis_buff[8]=0x00;
}
else
{
dis_buff[0]=0x00;
dis_buff[1]=0x00;
dis_buff[2]=seg[13];
dis_buff[3]=seg[14];
dis_buff[4]=seg[0];
dis_buff[5]=seg[5];
dis_buff[6]=seg[11];
dis_buff[7]=0x00;
dis_buff[8]=0x00;
}
}
break;
default:break;
}
if((yl>500)&&((P1IN&0x04)==0)&&((flag_ca&0x01)==0))
{
open1();
}
if(yl<100)
{
if(P1IN&0x04)
{
close1();
}
opcl=0;
}
FLL_CTL0|=XCAP14PF;
LCDCTL=LCDON+LCD4MUX+LCDP1;
BTCTL=BTFRFQ1;
P5SEL=0xfc;
for(i=0;i<9;i++)
LCDMEM[i]=dis_buff[i];
LPM3;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -