⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ft_ca413.c

📁 msp430f413读4442卡的热量表源程序
💻 C
📖 第 1 页 / 共 2 页
字号:
            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 + -