📄 icka.h
字号:
/*******************************************************************************
* 标题: IC卡头文件 *
* 日期: 2007-3-25 *
* 版本: 1.0 *
* 作者: 无名 *
* 邮箱: djrljf@163.com *
* QQ : 403499014 *
********************************************************************************
********************************************************************************
* 【版权】 Copyright(C)无名 All Rights Reserved *
* 【声明】 此程序仅用于学习与参考,引用请注明版权和作者信息! *
*******************************************************************************/
#ifndef _ic_H // 防止ic.h被重复引用
#define _ic_H
#include "intrins.h"
#define uchar unsigned char
#define uint unsigned int
//==============================================================
//默认设置,使用时根据实际布线修改DIN CLK LOAD
#define icclk P3_3 //ic卡时钟线
#define icrst P3_4 //IC卡复位线
#define icio P3_5 //IC卡数据线
//==============================================================
//读IC卡指定地址的无符号字符型数据返回到主程序
//==============================================================
uchar readic(uchar no)
{
uint i,temp=0,temp1;
icrst=0;icclk=0;
icrst=1;icclk=1;
icclk=0;icrst=0;
temp=(no-1)*8;
for(i=0;i<temp;i++)
{icclk=1;_nop_();icclk=0;temp1=icio;}
temp=0;
for(i=0;i<8;i++)
{
temp1=0;
icclk=0;
icclk=1;
_nop_();
icclk=0;
_nop_();
temp1=icio;
temp=temp+(temp1<<i);
}
return temp;
}
//==============================================================
//读IC卡所有地址(共16)的无符号字符型数据返回到指定数组内
//==============================================================
void readTotal(uchar *word)
{
uint i,j,temp=0,temp1;
icrst=0;icclk=0;
icrst=1;icclk=1;
icclk=0;icrst=0;
for(j=0;j<16;j++)
{
temp=0;
for(i=0;i<8;i++)
{
temp1=0;
icclk=0;
icclk=1;
_nop_();
icclk=0;
_nop_();
temp1=icio;
temp=temp+(temp1<<i);
}
*(word+j)=temp;
}
}
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -