• 大小: 4KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-06-18
  • 语言: C/C++
  • 标签: SLE4442  

资源简介

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

评论

共有 条评论

相关资源