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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sle4442 i2c.c

?? sle4442 I2C 邏輯加密卡驅(qū)動(dòng)程序
?? C
字號:
sle4442 I2C 邏輯加密卡,前一段時(shí)間有人問,我現(xiàn)在真好用到(dhd0)(點(diǎn)擊數(shù):938) 
/*
;程 序 最 后 修 改 時(shí) 間  2001-8-11
;軟 件 標(biāo) 題:sle4442 操作子程序
;軟 件 說 明:sle4442 I2C 邏輯加密卡
;_________________________________________
*/

#include <stdio.h>
#include <reg52.h>
#include <intrins.h>
#include <string.h>

#define uchar unsigned char
#define uint unsigned int
#include <serial.h>
#include <ic_data_proc.h>
#include <main_proc.h>

sbit rst=P1^6;/*sle4442復(fù)位*/
sbit sdio=P1^0;/*sle4442輸出*/
sbit sclk=P1^5;/*sle4442時(shí)鐘*/
//定義對各存儲(chǔ)器的操作命令
uchar code RD_MAIN_RAM=0X30;        //讀主存儲(chǔ)器 ic卡模式:outgoing data
uchar code WR_MAIN_RAM=0X38;        //寫主存儲(chǔ)器 ic卡模式:processing
uchar code RD_P_RAM=0X34;        //讀保護(hù)存儲(chǔ)器 ic卡模式:outgoing data
uchar code WR_P_RAM=0X3C;        //寫保護(hù)存儲(chǔ)器 ic卡模式:processing
uchar code RD_PSC_RAM=0X31;        //讀安全存儲(chǔ)器 ic卡模式:outgoing data
uchar code WR_PSC_RAM=0X39;        //寫安全存儲(chǔ)器 ic卡模式:processing
uchar code COMP_PSC_RAM=0X33;         //比較安全存儲(chǔ)器 ic卡模式:processing



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

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


/**********************************************/
/*          control line state settings       */
/**********************************************/

/*******************************************************/
/*               interface routines                    */
/*******************************************************/
/*1. ISSUE a xstart condition */
void ic_start()                                   
{
  sclk=0;
  sdio=1;
  Delay(3);
  sclk=1;
  Delay(3);
  sdio=0;
  Delay(3);
  sclk=0;

}

/*2.  ISSUE a xstop condition */
void ic_stop()                                  
{
  sdio=0;
  sclk=1;
  Delay(5);
  sdio=1;
  sclk=0;
}

/*3. ISSUE a clock pulse  */
void  clock()
{

  sclk=1;
  Delay(5);
  sclk=0;
  Delay(5);
}

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

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


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


/*******************************************************/
/*9. reads 32 bit ISO 
stasndard response to reset      */ 
/*******************************************************/
unsigned long ISO_no_read()
{uchar data count1; 
unsigned long *ret_data;
unsigned char xdata ISO[4];            //存放復(fù)位響應(yīng)數(shù)據(jù)
     ret_data=&ISO;
    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; 
    return (*ret_data);
}

//讀命令
//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 *data_save_addr,uchar read_start_addr,uint read_bytes)
{uint data i;
     ic_start();
    out_byte(RD_MAIN_RAM);
    out_byte(read_start_addr);
    out_byte(read_start_addr);
    ic_stop();
//    read_data_temp[0]=read_bytes;
    for(i=0;i<read_bytes;i++)
        {*data_save_addr++=read_data();}
    ic_break();
    return (1);
}
//ic_card 在處理模式時(shí)進(jìn)行監(jiān)測是否處理完畢,最大延時(shí)255個(gè)時(shí)鐘
void proc_mode_chek()
{uint  data i;
    for(i=0;i<512;i++)
        {if (sdio!=0)
            { i=511;}
         else{clock();}    
        }
}

//寫命令子程序
//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();}
}

//寫主存儲(chǔ)器的數(shù)據(jù),
//start_addr:從主存儲(chǔ)器寫數(shù)據(jù)的首地址
//*data_addr:要寫的數(shù)據(jù)的首地址
//uint wr_bytes:要寫的字節(jié)數(shù)
void wr_main_ram(uchar start_addr,uchar * data_addr,uint wr_bytes)
{uint data i;
    for(i=0;i<wr_bytes;i++)
        {write_eepram(WR_MAIN_RAM,(start_addr+i),*(data_addr+i));}
}
//讀取保護(hù)\安全存儲(chǔ)器4個(gè)字節(jié)的數(shù)據(jù),數(shù)據(jù)一地址指針rd_data_ptr中
//uchar ram_type:保護(hù)寄存器=RD_P_RAM;安全寄存器=RD_PSC_RAM
uchar rd_p_psc_ram(uchar ram_type,uchar * data_temp)
{     uchar data i;                                        
    ic_start();                                         
    out_byte(ram_type);                                
    out_byte(ram_type);                          
    out_byte(ram_type);                          
    ic_stop();                                          
    for(i=0;i<4;i++)                           
        {*(data_temp+i)=read_data();}          
//    ic_break();
    return (1); 
}
/*
//寫保護(hù)、安全存儲(chǔ)器的數(shù)
據(jù),                                                         
//start_addr:從保護(hù)存儲(chǔ)器寫數(shù)據(jù)的首地址 00-
03h                                       
//*data_addr:要寫的數(shù)據(jù)的首地址 
//uint wr_bytes:要寫的字節(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,uint 
wr_bytes)           
{uint data i;                                                                
    for(i=0;i<wr_bytes;i++)                                              
        {write_eepram(ram_type,(start_addr+i),*(data_addr+i));}   
}    
*/ 

//密碼校驗(yàn)函數(shù)                                         
//正確 返回'y' 不正確返回'n'                           
                                                       
uchar password_comp(uchar pws1,uchar pws2,uchar pws3)  
{    uchar xdata ptr[4];                              
    chip_cs(IC_CARD_CS);
    if(atr_comp()==1)
    {
        rd_p_psc_ram(RD_PSC_RAM,&ptr[0]);               
//        debug_print('1',ptr[0]);
        if(ptr[0]&0x07==0){ return('n'); }
        else{switch (ptr[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,&ptr[0]);               
//        debug_print('2',ptr
[0]);                                                       
        if(ptr[0]&0x07==7){ return('y');}
        else{return 'n';}                               
    }
}   

/*
void test()
{
    uchar data i;
            static uchar code test_data[]="1234567890abcdefghijklmn";
                    i=password_comp
(0xff,0xff,0xff);   
                    if(i=='y')
                    {wr_main_ram
(0x60,&test_data,strlen(test_data));
                        debug_print
('t','w');
                    }
}
 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产综合91精品麻豆| 午夜精品久久久久久久久| 日韩精品一区二区在线观看| 91精品免费在线| 欧美一区永久视频免费观看| 日韩视频中午一区| 日韩欧美高清在线| 日韩欧美国产三级电影视频| 日韩精品在线网站| 久久免费视频色| 国产清纯白嫩初高生在线观看91 | 国产日韩v精品一区二区| 久久久精品免费网站| 国产亚洲欧美色| 国产精品无遮挡| 亚洲欧美国产高清| 亚洲成av人片在线| 麻豆精品在线看| 国产一区二区三区蝌蚪| 国产91精品在线观看| 91麻豆精品在线观看| 在线视频国内自拍亚洲视频| 久久久噜噜噜久久中文字幕色伊伊| 国产欧美日本一区二区三区| 亚洲女女做受ⅹxx高潮| 午夜精品久久久久久久99水蜜桃| 久久机这里只有精品| 成人听书哪个软件好| 欧美在线色视频| 欧美成人国产一区二区| 久久久精品黄色| 亚洲色图欧美在线| 日本成人在线看| 成人一区二区三区视频| 色婷婷综合久色| 日韩久久免费av| 亚洲青青青在线视频| 日韩国产在线观看| 国产成人在线视频播放| 91小视频免费观看| 欧美一区二区性放荡片| 国产精品理伦片| 视频一区国产视频| 成人免费视频播放| 欧美日韩成人一区二区| 久久亚洲精精品中文字幕早川悠里| 亚洲日韩欧美一区二区在线| 秋霞电影一区二区| 97久久精品人人澡人人爽| 日韩一级黄色大片| 亚洲色图欧洲色图婷婷| 精久久久久久久久久久| 一本大道久久a久久精品综合| 日韩一区二区电影在线| 亚洲精品免费在线| 国产乱理伦片在线观看夜一区| 在线观看一区二区视频| 久久精品欧美一区二区三区不卡| 亚洲午夜免费视频| 成人毛片视频在线观看| 欧美成人乱码一区二区三区| 亚洲精品国产精华液| 国产在线一区二区| 欧美日韩一区精品| 自拍偷拍欧美精品| 国产精品性做久久久久久| 欧美日韩大陆一区二区| 18成人在线观看| 国产一区二区日韩精品| 欧美丰满高潮xxxx喷水动漫| 亚洲人xxxx| 大白屁股一区二区视频| 精品国产电影一区二区| 日韩成人午夜电影| 欧美综合天天夜夜久久| 国产精品嫩草久久久久| 精品亚洲欧美一区| 91精品视频网| 丝袜亚洲另类丝袜在线| 91丨porny丨中文| 欧美国产综合色视频| 在线看日韩精品电影| 国产欧美日韩精品在线| 久久精品国产99| 欧美性xxxxx极品少妇| 亚洲人成亚洲人成在线观看图片 | 国产成a人亚洲| 2021国产精品久久精品| 麻豆高清免费国产一区| 欧美日韩成人一区二区| 亚洲一区二区偷拍精品| 色国产精品一区在线观看| 国产精品国产a级| 成人三级在线视频| 亚洲国产精品精华液ab| 国产精品性做久久久久久| 久久午夜老司机| 国产精品白丝av| 久久久久九九视频| 国产成人午夜精品影院观看视频 | 91亚洲国产成人精品一区二区三 | 成人妖精视频yjsp地址| 久久这里只有精品首页| 国产精品一卡二卡| 久久久99久久| 国产成人一级电影| 日本一区二区免费在线| 大桥未久av一区二区三区中文| 国产日韩精品一区| 播五月开心婷婷综合| 国产精品不卡一区二区三区| 91视频.com| 精品嫩草影院久久| 亚洲一区二区av电影| 欧美日韩一区成人| 日韩av一区二区在线影视| 日韩一区二区三区av| 久久福利资源站| 久久久噜噜噜久久人人看 | 国产成人精品aa毛片| 国产精品视频看| 91视频国产观看| 偷拍一区二区三区| 日韩欧美国产一区在线观看| 国产一区二区中文字幕| 国产精品三级电影| 91老师国产黑色丝袜在线| 亚洲国产欧美在线| 日韩欧美色综合| 成熟亚洲日本毛茸茸凸凹| 一区二区在线观看视频| 欧美一区二区三区不卡| 国产精品99久久久久久久女警| 国产精品久久免费看| 精品1区2区3区| 久久av资源网| 中文字幕一区二区三区精华液| 91麻豆视频网站| 久久激五月天综合精品| 中文字幕亚洲成人| 欧美精品久久99| 成人三级在线视频| 亚洲成人福利片| 亚洲国产电影在线观看| 欧美综合在线视频| 国产制服丝袜一区| 亚洲国产欧美日韩另类综合| 久久蜜桃av一区二区天堂| 日本韩国欧美国产| 国产一区三区三区| 亚洲一区二区三区视频在线播放| 欧美xxxxxxxx| 欧洲视频一区二区| 国产精品一区二区在线播放| 亚洲成人三级小说| 国产精品视频麻豆| 欧美va在线播放| 在线看国产一区| 成人综合婷婷国产精品久久蜜臀 | 亚洲视频中文字幕| 日韩欧美黄色影院| 91美女在线观看| 美女网站一区二区| ㊣最新国产の精品bt伙计久久| 日韩一区二区在线免费观看| 成人性视频免费网站| 亚洲成a人片在线不卡一二三区| 精品国产sm最大网站免费看| 国内一区二区视频| 亚洲综合丁香婷婷六月香| 久久综合狠狠综合| 国产91对白在线观看九色| 秋霞国产午夜精品免费视频| 国产精品国产三级国产普通话蜜臀 | 亚洲欧美视频在线观看视频| 欧美日本一区二区| 不卡av电影在线播放| 麻豆91在线播放| 亚洲国产日韩a在线播放性色| 久久精品人人做人人爽人人| 欧美日韩国产高清一区二区三区| 91在线国内视频| 国内精品国产成人| 石原莉奈在线亚洲二区| 亚洲精品乱码久久久久久日本蜜臀| 久久久亚洲高清| 欧美一区午夜视频在线观看| 欧美日精品一区视频| 成人av网站大全| 狠狠色丁香婷婷综合| 午夜一区二区三区在线观看| 国产精品色哟哟| 亚洲精品一区二区精华| 91精品中文字幕一区二区三区 | 中文字幕亚洲在| 精品久久久久久亚洲综合网| 欧美日韩美少妇| 欧美日韩亚洲另类| 日韩精品一区二区三区老鸭窝 | 成人app软件下载大全免费|