资源简介
SLE4442逻辑加密卡驱动程序源码,C语言实现,希望能够帮助到大家
代码片段和文件信息
// #include
// #include
// #include
#include “Include.h“
#if(PRO_TYPE == ICCARD)
//私有函数
void BreakOperate(void);
void StartComm(void);
void StopComm(void);
uchar ReceiveByte(void);
void SendByte(uchar ch);
void SendComm(uchar auchar buchar c); //发送命令
void ReadMode(uchar *ptuchar count);
void ProcessMode(void);
////
const __code uint8 ICHead[4] = {0xA20x130x100x91};
//unsigned char ICHead[4] = {0xA20x130x100x91};
//const unsigned char __code ICSM[3] = {0xFF0xFF0xFF};
void sle4442_init(void)
{
// uint8 i = 0;
/** CLK out */
P2IE &= ~BIT1;
P2OE &= ~BIT1;
/**RST out */
P9IE &= ~BIT0;
P9OE &= ~BIT0;
/**DAT in */
P2IE |= BIT0;
P2OE |= BIT0;
// /**PWR out */
// P62DIR= 0;
// P62C0 = 1;
// P62C1 = 1;
//
/**CARD in */
P7IE |= BIT3;
P7OE |= BIT3;
// P61C1 = 1;//上拉输入
//ResetCard();
// for(;i<4; i++)
// {
// if(IC_Buff[i] == ICHead[i])
// {
// continue;
// }
// }
}
/*********************************************************************
函 数 名: ReadMainMem()
功 能: 读ic卡主存
说 明:7.45ms+17*50us*n
调 用:
全局变量:
入口参数: IC卡地址(32 - 255)指向内部RAM的指针字节数
出口参数:指向内部RAM的指针 *pt
返 回 值: 无
*********************************************************************/
void ReadMainMem(uchar addruchar *ptuchar count)
{
//ResetCard();
SendComm(RMM_COMMaddr0xff);
ReadMode(ptcount);
BreakOperate();
}
/*********************************************************************
函 数 名: WriteMainMem()
功 能: 写IC卡主存一次 1Byte
说 明:
调 用:
全局变量:
入口参数: addr: IC卡地址(32 - 255) dat: 写入的字节
出口参数:无
返 回 值: 无
*********************************************************************/
void WriteByteMainMem(uchar addruchar dat)
{
// ResetCard();
SendComm(WMM_COMM addr dat); //写主存的命令字地址数据
ProcessMode();
BreakOperate();
}
/*********************************************************************
函 数 名: WriteMainMem()
功 能: 写IC卡主存
说 明:
调 用:
全局变量:
入口参数: addr: IC卡地址(32 - 255) pt: 指向数据区的指针count:字节个数
出口参数:无
返 回 值: 无
*********************************************************************/
void WriteMainMem(uchar addruchar *pt uchar count)
{
uchar i;
for(i = 0; i < count; i++pt++)
{
WriteByteMainMem(addr + i *pt);
}
}
/*********************************************************************
函 数 名: ReadProtectMem()
功 能: 读保护存储器
说 明:
调 用:
全局变量:
入口参数: 指向直接寻址数据区的指针
出口参数:无
返 回 值: 无
*********************************************************************/
void ReadProtectMem(uchar *pt)
{
// ResetCard(); //3600us
SendComm(RPM_COMM0xff0xff); //读保护存储器的命令字后两个参数忽略
ReadMode(pt4); //
BreakOperate();
}
/*********************************************************************
函 数 名: ProtectByte()
功 能: 保护一字节注意待保护的字节是已经写入过的地
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 11248 2018-04-25 08:58 sle4442.c
文件 2130 2018-04-25 08:58 sle4442.h
- 上一篇:数据结构课设——作业管理系统
- 下一篇:c++常用库函数速查手册(中文)
评论
共有 条评论