亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? bl7442_card.h

?? 4442邏輯加密IC卡讀寫(xiě)底層C51程序
?? H
字號(hào):
/*...................................................................................*/
/*有關(guān)BL7442ic卡的函數(shù),包括:
 Delay(uchar j)延時(shí)函數(shù)、ic_start()開(kāi)始條件函數(shù)、ic_stop()停止條件函數(shù)、clock()時(shí)針函數(shù)
 out_byte(uchar byte) sends 8 bit 'byte' to the BL7442 
 read_data()          reads 8 bits from the sle4442 & stores value in 'rd_data' 
 ic_break()           復(fù)位停止函數(shù)
 ISO_no_read()        reads 32 bit ISO stasndard response to reset 
 rd_main_ram(uchar read_start_addr)讀主存儲(chǔ)區(qū)函數(shù)
 proc_mode_chek()     ic_card 在處理模式時(shí)進(jìn)行監(jiān)測(cè)是否處理完畢,最大延時(shí)255個(gè)時(shí)鐘
*/
/*...................................................................................*/

#define uchar unsigned char
#define uint unsigned int

#define rst  P3_2  /*sle4442復(fù)位*/
#define sdio P3_1  /*sle4442輸出*/
#define sclk P3_0  /*sle4442時(shí)鐘*/

//定義對(duì)各存儲(chǔ)器的操作命令
#define RD_MAIN_RAM  0X30        //讀主存儲(chǔ)器 ic卡模式:outgoing data
#define WR_MAIN_RAM  0X38        //寫(xiě)主存儲(chǔ)器 ic卡模式:processing
#define RD_P_RAM     0X34        //讀保護(hù)存儲(chǔ)器 ic卡模式:outgoing data
#define WR_P_RAM     0X3C        //寫(xiě)保護(hù)存儲(chǔ)器 ic卡模式:processing
#define RD_PSC_RAM   0X31        //讀安全存儲(chǔ)器 ic卡模式:outgoing data
#define WR_PSC_RAM   0X39        //寫(xiě)安全存儲(chǔ)器 ic卡模式:processing
#define COMP_PSC_RAM 0X33        //比較安全存儲(chǔ)器 ic卡模式:processing

unsigned char psc,protect[4],sm[4];
unsigned char ISO[4];            //存放復(fù)位響應(yīng)數(shù)據(jù)


//短延時(shí)
void Delay(uchar j)
{
 uchar data i;
 i=j;
 for(i;i>0;i--);
}

void ic_start()                                   
{
  sclk=0;
  sdio=1;
  Delay(3);
  sclk=1;
  Delay(3);
  sdio=0;
  Delay(3);
  sclk=0;
}

void ic_stop()                                  
{
  sdio=0;
  sclk=1;
  Delay(5);
  sdio=1;
  sclk=0;
}

void  clock()
{
  sclk=1;
  Delay(5);
  sclk=0;
  Delay(5);
}

/*****************************************************************************/
/*6. sends 8 bit 'byte' to the BL7442       */
/*****************************************************************************/
void out_byte(uchar byte)
{
  uchar count,byte_temp;
  for (count=0;count<8;count++)
  {
    byte_temp=byte;
    sdio=(bit)(0x01&(byte_temp>>count));
    clock();
  }
}

/*****************************************************************************/
/*7. reads 8 bits from the sle4442 & stores value in 'rd_data'  */
/*****************************************************************************/
static char read_data()
{   
    uchar rd_data=0;
    uchar count;
    sdio=1;
    for(count=0;count<8;count++)
    {
      rd_data>>=1;
      sclk=1;
      Delay(1);
      if(sdio)rd_data|=0x80;;
      sclk=0;
      Delay(1);
    }
      return(rd_data);
}

/*******************************************************/
/*9. reads 32 bit ISO stasndard response to reset      */ 
/*******************************************************/
void ISO_no_read()
{
  uchar count1; 
 
    sdio=1;   
    rst=1; 
    Delay(1); 
    clock();
    Delay(1);
    rst=0; 
    for(count1=0;count1<4;count1++)
      {ISO[count1]=read_data();}
    rst=1;
	_nop_();
    _nop_();
    _nop_();
    rst=0; 
}

void ic_break()
{
      sclk=0;
      Delay(1);
      rst=1;
      _nop_();
      _nop_();
      _nop_();
      rst=0;
}

//讀命令
//uchar comm_type; 30h,34h,31h;
//uchar read_start_addr; comm_type=30h:00-0xff;comm_type=34h:00-0xff;
uchar rd_main_ram(uchar read_start_addr)
{
    uint i;
    ic_start();
    out_byte(RD_MAIN_RAM);
    out_byte(read_start_addr);
    out_byte(read_start_addr);
    ic_stop();
    i=read_data();
    ic_break();
    return (i);
}

/*.................................................................................*/
//ic_card 在處理模式時(shí)進(jìn)行監(jiān)測(cè)是否處理完畢,最大延時(shí)255個(gè)時(shí)鐘
/*.................................................................................*/
void proc_mode_chek()
{
    uint i;
    for(i=0;i<512;i++)
     {
	  if (sdio!=0) i=511;
      else clock();    
     }
}

/*................................................................................*/
//寫(xiě)命令子程序
//uchar comm_type; 38h,3ch,39h,33h;
//uchar read_start_addr; comm_type=30h:00-0xff;comm_type=34h:00-0xff;
/*.................................................................................*/
void  write_eepram(uchar comm_type,uchar write_start_addr,uchar write_data)
{
    ic_start();
    out_byte(comm_type);
    out_byte(write_start_addr);
    out_byte(write_data);
    ic_stop();
    if(comm_type==0x38||comm_type==0x39||comm_type==0x3c||comm_type==0x33)
      {
	   proc_mode_chek();
	  }
}

/*..................................................................................*/
//寫(xiě)主存儲(chǔ)器的數(shù)據(jù),
//start_addr:從主存儲(chǔ)器寫(xiě)數(shù)據(jù)的首地址
//*data_addr:要寫(xiě)的數(shù)據(jù)的首地址
//uint wr_bytes:要寫(xiě)的字節(jié)數(shù)
/*...................................................................................*/
void wr_main_ram(uchar start_addr,uchar dat)
{
 write_eepram(WR_MAIN_RAM,start_addr,dat);
}

/*...................................................................................*/
//讀取保護(hù)\安全存儲(chǔ)器4個(gè)字節(jié)的數(shù)據(jù),數(shù)據(jù)一地址指針rd_data_ptr中
//uchar ram_type:保護(hù)寄存器=RD_P_RAM;安全寄存器=RD_PSC_RAM
/*...................................................................................*/
void rd_p_psc_ram(uchar ram_type)
{   
    uchar i;                                        
    ic_start();                                         
    out_byte(ram_type);                                
    out_byte(ram_type);                          
    out_byte(ram_type);                          
    ic_stop(); 
    if(ram_type==RD_PSC_RAM)
      {                              
       for(i=0;i<4;i++){sm[i]=read_data();}  
      } 
    if(ram_type==RD_P_RAM)
      {                              
       for(i=0;i<4;i++){protect[i]=read_data();}  
      }   
}

///*..........................................................................................*/
//寫(xiě)保護(hù)、安全存儲(chǔ)器的數(shù)據(jù),                                                         
//start_addr:從保護(hù)存儲(chǔ)器寫(xiě)數(shù)據(jù)的首地址 00-03h                                       
//*data_addr:要寫(xiě)的數(shù)據(jù)的首地址 
//uint wr_bytes:要寫(xiě)的字節(jié)數(shù)          03h-start_addr=0~3 
//uchar ram_type:保護(hù)寄存器=WR_P_RAM;安全寄存器=WR_PSC_RAM                                      
///*..........................................................................................*/
/*void wr_p_psc_ram(uchar ram_type,uchar start_addr,uchar * data_addr,uchar wr_bytes)           
{
  uchar i;                                                                
  for(i=0;i<wr_bytes;i++)                                              
    {
     write_eepram(ram_type,(start_addr+i),*(data_addr+i));
    }   
} */   

/*..........................................................................................*/
/*密碼校驗(yàn)函數(shù)*/                                                                              
/*..........................................................................................*/                  
void password_comp(uchar pws1,uchar pws2,uchar pws3)  
{                              
        rd_p_psc_ram(RD_PSC_RAM);               
        if(sm[0]&0x07==0) psc=1; 
        else{switch (sm[0]&0x07)
                {case 1:    write_eepram(WR_PSC_RAM,0,0xf8);               
                        break;
                 case 2:    write_eepram(WR_PSC_RAM,0,0xf8);
                         break;
                 case 3:    write_eepram(WR_PSC_RAM,0,0xf9);               
                         break;
                 case 4:    write_eepram(WR_PSC_RAM,0,0xf8);               
                         break;
                 case 5:    write_eepram(WR_PSC_RAM,0,0xf9);               
                         break;
                 case 6:    write_eepram(WR_PSC_RAM,0,0xfa);               
                         break;
                 case 7:    write_eepram(WR_PSC_RAM,0,0xfb);               
                         break;
                }
            }
        write_eepram(COMP_PSC_RAM,1,pws1);             
        write_eepram(COMP_PSC_RAM,2,pws2);             
        write_eepram(COMP_PSC_RAM,3,pws3);             
        write_eepram(WR_PSC_RAM,0,0xff);               
        rd_p_psc_ram(RD_PSC_RAM);                                                                   
        if(sm[0]&0x07==7) psc=2;
        else psc=3;                               
}   

/*..................................................................................*/
//檢測(cè)是否有符合標(biāo)準(zhǔn)的ic卡插入的函數(shù)
/*..................................................................................*/
bit check_card()
{
    ISO_no_read();
	if(ISO[0]==162&&ISO[1]==19)return 1;
    else return 0;
}

//由16位數(shù)得到低8位數(shù)的函數(shù)
/*unsigned char get_8_L(unsigned int dat)
{
 unsigned char n;
 dat<<=8;
 dat>>=8;
 n=dat;
 return n;
}*/

//由16位數(shù)得到高8位數(shù)的函數(shù)
/*unsigned char get_8_H(unsigned int dat)
{
 unsigned char n=0;
 dat>>=8;
 n=dat;
 return n;
}*/

/*由高8位數(shù)和低8位數(shù)得到16位數(shù)的函數(shù)*/
/*unsigned int get_16(unsigned char dat_H,unsigned char dat_L)
{
 unsigned int n=0;
 n|=dat_H;
 n<<=8;
 n|=dat_L;
 return n;
}*/

void ICControl()
{
 unsigned char n;
 unsigned char sn1,sn2,sn3;
 bit jwbz;
 if(IC_SW)
  {
   if(IC_Status!=IC_OK)
    {
     if(IC_Status==0)
      {
       sound_time_count=200;
       while(sound_time_count>0){;}
       if(check_card())
        {
		 //rd_p_psc_ram(RD_P_RAM);
         //if(protect[0]==0xff)
		  {
           n=rd_main_ram(IC_TIMES_ADDR);
           if(n!=0&&n!=0xff)
            {
             sn1=rd_main_ram(IC_PSC_PARAMETER);
             if(((sn1>>1)+6)!=rd_main_ram(IC_PSC_COMP)){psc=1;goto loop2;};
             if(sn1&0x80==0x80)jwbz=1;else jwbz=0;
             sn1=sn1<<1;if(jwbz)sn1+=1;

             sn2=rd_main_ram(IC_PSC_PARAMETER+1);
             if(((sn2>>1)+2)!=rd_main_ram(IC_PSC_COMP+1)){psc=1;goto loop2;};
             if(sn2&0x80==0x80)jwbz=1;else jwbz=0;
	         sn2=sn2<<1;if(jwbz)sn2+=1;  
           
             sn3=rd_main_ram(IC_PSC_PARAMETER+2);
             if(((sn3>>1)+9)!=rd_main_ram(IC_PSC_COMP+2)){psc=1;goto loop2;};
             if(sn3&0x80==0x80)jwbz=1;else jwbz=0;
	         sn3=sn3<<1;if(jwbz)sn3+=1;
             password_comp(sn1,sn2,sn3);
             loop2 :
		     if(psc==1){IC_Status=IC_LOCKED;sound_num=2;}
		     if(psc==3){IC_Status=IC_PSC_ERROR;sound_num=2;}
		     if(psc==2)
		      {
			   IC_Status=IC_OK;
			   wr_main_ram(IC_PSC_PARAMETER,sn1);
			   wr_main_ram(IC_PSC_PARAMETER+1,sn2);
			   wr_main_ram(IC_PSC_PARAMETER+2,sn3);
               wr_main_ram(IC_PSC_COMP,  (sn1>>1)+6);
               wr_main_ram(IC_PSC_COMP+1,(sn2>>1)+2);
               wr_main_ram(IC_PSC_COMP+2,(sn3>>1)+9);
			   if(sn1&0x80==0x80)jwbz=1;else jwbz=0;
	           sn1=sn1<<1;if(jwbz)sn1+=1;write_eepram(WR_PSC_RAM,1,sn1);
	           if(sn2&0x80==0x80)jwbz=1;else jwbz=0;
	           sn2=sn2<<1;if(jwbz)sn2+=1;write_eepram(WR_PSC_RAM,2,sn2); 
	           if(sn3&0x80==0x80)jwbz=1;else jwbz=0;
	           sn3=sn3<<1;if(jwbz)sn3+=1;write_eepram(WR_PSC_RAM,3,sn3);
               max_time=rd_main_ram(IC_TIME_PER_TIMES);
			   may_use_times=rd_main_ram(IC_TIMES_ADDR);
			   IC_kind=rd_main_ram(IC_KIND_ADDR);
			   if(IC_kind==1)
			    {
				 wr_main_ram(IC_TIMES_ADDR,may_use_times-1);
                 spare_time=max_time;
				}
               if(IC_kind==2)
			    {
				 spare_time=rd_main_ram(IC_TIME_CURRENT);
				}
               set_time=30;
               if(set_time>spare_time)set_time=spare_time;
               set_temp=rd_main_ram(IC_SET_TEMP);
			   set_energy=rd_main_ram(IC_ENERGY_ADDR);
               work_mode=rd_main_ram(IC_MT_WORK_MODE);
               sound_num=4;
			  } 
            }
           else if(n==0xff) {IC_Status=IC_ERROR;sound_num=2;
                             password_comp(0,0,0);password_comp(0,0,0);password_comp(0,0,0);}
           else {IC_Status=IC_NOTIME;sound_num=3;
                             password_comp(0,0,0);password_comp(0,0,0);password_comp(0,0,0);}
          }
         //else {IC_Status=IC_ERROR;sound_num=2;}
		}
       else {IC_Status=IC_ERROR;sound_num=2;}
      }
    }
  }
 else 
  {
   IC_Status=IC_NO;
   max_time=0;
   may_use_times=0;
   spare_time=0;
   IC_kind=0;
   set_time=0;
   set_temp=0;
   set_energy=0;
   work_mode=0;  
   for(n=0;n<12;n++){NumberShow(n+1,0);}    //全部數(shù)字為0
  }
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本一区二区视频在线观看| 国产麻豆精品在线观看| 亚洲精选一二三| 国产精品传媒在线| 国产精品美女久久久久久久网站| 国产色产综合产在线视频| 久久精品一级爱片| 国产精品亲子伦对白| 国产精品久久久久9999吃药| 国产精品色哟哟网站| 中文字幕一区免费在线观看| 天堂在线一区二区| 免费成人深夜小野草| 久久精品免费看| 国产另类ts人妖一区二区| 国产xxx精品视频大全| 91美女在线观看| 欧美怡红院视频| 欧美一区二区三区四区五区| 欧美一区二区不卡视频| 亚洲精品一区二区三区香蕉| 国产精品网站一区| 一区二区三区四区激情| 视频一区中文字幕| 久久99国产精品免费| 成人小视频在线| 在线一区二区视频| 欧美大片在线观看一区二区| 国产免费观看久久| 亚洲综合一区二区精品导航| 免费观看一级特黄欧美大片| 国产99久久久国产精品免费看| 99精品久久只有精品| 欧美精品在线观看一区二区| 欧美r级电影在线观看| 亚洲欧洲精品成人久久奇米网 | 天天综合天天做天天综合| 麻豆精品一二三| 不卡视频在线观看| 91精品欧美一区二区三区综合在 | 中文在线一区二区| 一区二区三区在线视频观看58| 亚洲成av人片在线观看无码| 久久99国产精品免费| 91在线免费视频观看| 欧美精品免费视频| 国产精品久久毛片av大全日韩| 性欧美疯狂xxxxbbbb| 成熟亚洲日本毛茸茸凸凹| 欧美日韩亚洲综合一区二区三区| 久久午夜羞羞影院免费观看| 亚洲精品ww久久久久久p站| 欧美日韩国产乱码电影| 久久久精品免费观看| 午夜激情久久久| 成人av一区二区三区| 91精品国产91久久综合桃花| 国产精品二区一区二区aⅴ污介绍| 亚洲在线免费播放| 成人高清免费在线播放| 欧美一区二区三区视频在线| 亚洲人成小说网站色在线| 久久成人免费电影| 欧美女孩性生活视频| 国产精品久久久久久久久图文区| 婷婷久久综合九色综合绿巨人| 国产91精品免费| 日韩女优电影在线观看| 一区二区三区欧美久久| www.欧美亚洲| 久久综合av免费| 日本不卡123| 欧美艳星brazzers| 亚洲免费观看高清| 成人亚洲精品久久久久软件| 欧美r级电影在线观看| 午夜精品视频一区| 欧美又粗又大又爽| 日韩一区中文字幕| 丁香亚洲综合激情啪啪综合| 日韩精品一区二区三区老鸭窝| 亚洲一区免费在线观看| 91麻豆高清视频| 国产精品色噜噜| 国产成人一区在线| 久久久久久影视| 国产一区二区三区不卡在线观看| 欧美精品乱码久久久久久 | 久久精品国产一区二区| 欧美日韩免费电影| 亚洲国产精品欧美一二99| 色综合久久99| 一区二区三区在线观看国产| 972aa.com艺术欧美| 国产精品久久久久一区二区三区共| 国产在线视频精品一区| 久久夜色精品一区| 国内精品久久久久影院色| 精品电影一区二区| 国产一区二区三区在线观看免费 | 日本午夜一本久久久综合| 欧美色视频一区| 午夜精品久久久久久久99樱桃 | 亚洲一区二区三区影院| 色综合天天综合色综合av| 亚洲女人****多毛耸耸8| 91浏览器入口在线观看| 亚洲免费高清视频在线| 欧美日韩中文精品| 五月婷婷色综合| 欧美一区二区三级| 国内欧美视频一区二区 | 久久99精品久久久久久动态图| 日韩欧美视频一区| 国产美女av一区二区三区| 国产亚洲精品超碰| 不卡电影一区二区三区| 亚洲精品乱码久久久久| 欧美日韩一区二区三区高清| 日韩影院在线观看| 日韩精品一区二| 久久免费视频一区| 国产91精品一区二区麻豆网站| 中文字幕一区不卡| 欧美优质美女网站| 免费精品视频最新在线| 久久影院午夜片一区| 波多野结衣亚洲| 亚洲国产精品一区二区久久恐怖片| 欧美日韩国产三级| 国产一区欧美日韩| 亚洲日本va午夜在线影院| 欧美亚洲国产bt| 精品一区二区在线播放| 国产精品乱码一区二区三区软件| 97久久人人超碰| 日本伊人午夜精品| 国产亚洲欧美日韩在线一区| 色诱视频网站一区| 琪琪久久久久日韩精品| 国产亚洲精品7777| 欧美专区在线观看一区| 日本欧美一区二区| 国产精品乱子久久久久| 欧美理论片在线| 国产69精品久久久久毛片| 亚洲一区二区三区免费视频| 精品国产a毛片| 91视频国产观看| 精品一区二区在线免费观看| 国产精品不卡一区| 欧美大度的电影原声| 一本一道久久a久久精品 | 一本色道久久综合亚洲91| 蜜桃在线一区二区三区| 日韩毛片一二三区| 337p粉嫩大胆噜噜噜噜噜91av| www.一区二区| 久久福利资源站| 一区二区三区美女视频| 久久亚洲一区二区三区四区| 欧美日韩五月天| 成人永久aaa| 老司机免费视频一区二区三区| 国产精品蜜臀av| 精品国产一区二区在线观看| 色噜噜狠狠成人网p站| 国产精品综合一区二区三区| 午夜精品一区二区三区免费视频| 中文av一区二区| 欧美成人精品二区三区99精品| 91蜜桃传媒精品久久久一区二区| 狠狠色狠狠色综合| 午夜精品123| 亚洲精品少妇30p| 国产精品久久久久四虎| 久久久久久久综合| 日韩一区二区三区免费看| 欧美在线|欧美| 91在线免费播放| 国产.欧美.日韩| 国产一区欧美一区| 久久精品噜噜噜成人av农村| 亚洲图片有声小说| 一区二区三区在线免费观看| 中文字幕在线观看一区| 国产午夜一区二区三区| 2014亚洲片线观看视频免费| 欧美一区二区三区视频在线观看| 欧美在线不卡视频| 日本久久精品电影| 97久久久精品综合88久久| av资源站一区| 成人午夜av在线| 成人黄色a**站在线观看| 国产高清久久久久| 国产精品99久久久久久宅男| 国模无码大尺度一区二区三区| 免费视频最近日韩| 美女性感视频久久|