?? sle4442.h
字號(hào):
/*****************************************************
本函數(shù)庫(kù)提供實(shí)現(xiàn)IC卡SLE4442全部功能的有關(guān)函數(shù)
ReadCm(): 讀主存儲(chǔ)器區(qū)
WriteCm(): 寫主存儲(chǔ)器區(qū)
ReadPm(): 讀保護(hù)存儲(chǔ)器區(qū)
WritePm(): 寫保護(hù)數(shù)據(jù)區(qū)
ReadPsw(): 讀加密存儲(chǔ)器
CheckPsw(): 校驗(yàn)密碼
SetPsw(): 修改加密存儲(chǔ)器中的密碼
各個(gè)入口參數(shù)請(qǐng)見下面的說明
*****************************************************/
//*************IC卡常數(shù)***************************
//此處為IC卡保護(hù)區(qū)00~03單元的值,用于識(shí)別卡,這四個(gè)字節(jié)是SLE4442的標(biāo)識(shí),
//如果 IC卡保護(hù)區(qū)00~03單元的值 不是這四個(gè)字節(jié),表明該卡不是SLE4442卡
//或卡已損壞
#define IDENTIFY1 0xA2
#define IDENTIFY2 0x13
#define IDENTIFY3 0x10
#define IDENTIFY4 0x91
//************************************************
/*************IC卡引腳位定義**************************/
sbit RST = P1^2; //復(fù)位
sbit CLK = P1^1; //脈沖
sbit IO = P1^0; //數(shù)據(jù)
/***************************************************************
函數(shù)名稱:ReadCm
功 能:從主存儲(chǔ)器中讀出數(shù)據(jù)塊并存入ReadBuf中
輸 入:unsigned char StarAddr --- 開始地址(0 - 255);
unsigned char ByteNum --- 要讀出的字節(jié)數(shù)(1 - 256)
unsigned char *RecBuf --- 接收數(shù)據(jù)緩沖區(qū)
輸 出: 0 --- 讀成功
1 --- 表示無效卡或者卡損壞
****************************************************************/
extern unsigned char ReadCm(unsigned char StarAddr,unsigned char ByteNum,
unsigned char *RecBuf);
/****************************************************************
函數(shù)名稱: WriteCm
功 能: 把存在WriteBuf中的ByteNum個(gè)字節(jié)的數(shù)據(jù)存入主存儲(chǔ)器中
輸 入: unsigned char StarAdr --- 開始地址(0 - 255)
unsigned char ByteNum --- 要寫入的字節(jié)數(shù)(1 - 256)
unsigned char *WriteBuf --- 寫入數(shù)據(jù)緩沖區(qū)
輸 出: 0 --- 寫成功
1 --- 表示無效卡或者卡損壞
注 意:要校驗(yàn)密鑰正確,才能對(duì)卡的主存儲(chǔ)器寫入數(shù)據(jù)
*****************************************************************/
extern unsigned char WriteCm(unsigned char StarAdr,unsigned char ByteNum,
unsigned char *WriteBuf);
/******************************************************************
函數(shù)名稱:ReadPm
功 能:讀保護(hù)存儲(chǔ)器,并把保護(hù)存儲(chǔ)器的4字節(jié)的內(nèi)容存在RecBuf中
輸 入:unsigned char *RecBuf --- 接收數(shù)據(jù)緩沖區(qū),長(zhǎng)度為4個(gè)字節(jié)
輸 出:0 --- 讀成功
1 --- 表示無效卡或者卡損壞
*******************************************************************/
extern unsigned char ReadPm(unsigned char *RecBuf);
/********************************************************************
函數(shù)名稱:WritePm
功 能:寫保護(hù)數(shù)據(jù)存儲(chǔ)器
輸 入:unsigned char StartAdr --- 起始地址(0 - 31)
unsigned char ByteNum --- 寫入的字節(jié)數(shù)(1 - 32)
unsigned char *WriteBuf --- 寫入數(shù)據(jù)緩沖區(qū)
輸 出:0 --- 寫成功
1 --- 表示無效卡或者卡損壞
注 意: 首先校驗(yàn)密鑰正確,才能對(duì)卡的護(hù)存儲(chǔ)器寫入數(shù)據(jù),
其次寫入的數(shù)據(jù)必須與卡中對(duì)應(yīng)的數(shù)據(jù)相等才能寫入
*********************************************************************/
extern unsigned char WritePm(unsigned char StartAdr,unsigned char ByteNum,
unsigned char *WriteBuf);
/**********************************************************************
函數(shù)名稱:ReadPsw
功 能:讀加密存儲(chǔ)器
輸 入:unsigned char *Psw --- 用于裝讀到的加密存儲(chǔ)器內(nèi)容,長(zhǎng)度為4個(gè)字節(jié)
Psw第一字節(jié): 錯(cuò)誤計(jì)數(shù)器值
Psw第二字節(jié)到第四字節(jié): 卡的密碼值
輸 出:0 --- 讀成功
1 --- 表示無效卡或者卡損壞
注 意: 必須校驗(yàn)密碼正確才能讀到正確的密鑰值,否則讀到的密碼值為00 00 00
***********************************************************************/
extern unsigned char ReadPsw(unsigned char *Psw);
/*********************************************************************
函數(shù)名稱:CheckPsw
功 能:校驗(yàn)密碼,把Psw中1,2,3字節(jié)的內(nèi)容分別與加密存儲(chǔ)器的1,2,3字節(jié)比較
輸 入:unsigned char *Psw --- 待校驗(yàn)的密碼值,長(zhǎng)度為3個(gè)字節(jié)
輸 出: 3: 核對(duì)密碼成功
0: 卡已報(bào)廢
1: 只剩一次校驗(yàn)機(jī)會(huì),校驗(yàn)密碼失敗
2: 只剩二次校驗(yàn)機(jī)會(huì),校驗(yàn)密碼失敗
4: 卡為無效卡或已損壞
**********************************************************************/
extern unsigned char CheckPsw(unsigned char *Psw);
/**********************************************************************
函數(shù)名稱:SetPsw
功 能:修改加密存儲(chǔ)器中的密碼
輸 入:NewPsw -- 新密碼緩沖區(qū),長(zhǎng)度為3個(gè)字節(jié)
輸 出:0 --- 讀成功
1 --- 表示無效卡或者卡損壞
注 意: 必須校驗(yàn)密碼成功后才能修改密碼, 否則密碼寫不進(jìn)卡中
***********************************************************************/
extern unsigned char SetPsw(unsigned char *NewPsw);
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -