📄 mainfun.c
字号:
#include "prj.h"
sbit RST = P1^7;
sbit CLK = P1^6;
sbit DAT = P1^5;
#define NOP_1 _nop_()
#define NOP_2 \
NOP_1; \
NOP_1;
#define NOP_4 \
NOP_2; \
NOP_2;
#define NOP_8 \
NOP_4; \
NOP_4;
#define NOP_16 \
NOP_8; \
NOP_8;
#define NOP_32 \
NOP_16; \
NOP_16;
#define NOP_64 \
NOP_32; \
NOP_32;
#define NOP_128 \
NOP_64; \
NOP_64;
void wait(byte i){byte j;for(j=0;j<i;j++);}
bit read_a_bit()
{
bit c;
CLK=1;
NOP_16;
c=DAT;
NOP_16;
CLK=0;
// NOP_1;
return c;
}
void read()
{
byte i=0,j=0;
byte card_buf[32];
byte card_r=0;
RST=0;
CLK=0;
DAT=1;
wait(-2);
RST=1;
NOP_8;
CLK=1;
NOP_32;
NOP_16;
CLK=0;
NOP_8;
RST=0;
NOP_8;
NOP_2;
for(j=0;j<=31;j++)
{
card_r=0;
do
{
card_r<<=1;
card_r |= (byte)read_a_bit();
i++;
i&=0x07;
if(i==0)
{
card_buf[j]=card_r;
card_r=0;
}
else
{
card_buf[32]=card_r;
card_r=card_buf[32];
card_buf[32]=card_r;
card_r=card_buf[32];
}
}while(i!=0);
}
RST=0;
NOP_8;
CLK=0;
DAT=1;
card_r=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -