📄 magcard.c
字号:
#include <reg51.h>
#define uchar unsigned char
sbit p1_4=P1^4;
sbit p1_5=P1^5;
sbit int0=P3^2;
bit flag=0;
uchar idata cardbuf[10];
uchar idata disbuf[10];
void disp(uchar idata *p);
void dlms(void);
uchar ascc(uchar cb);
void main(void)
{ uchar i=0;
uchar hdline[8]={"welcome"};
TMOD=0x01;
EX0=1;EA=1;
disp(hdline);
while(flag!=1);
while(cardbuf[i]!=0x0f)
{ disbuf[i]=ascc(cardbuf[i]);
i++;
}
disbuf[i]=0x00;
disp(disbuf);
}
void cardint(void) interrupt 0 using 1
{ uchar i,state=0;
uchar j,d,bitc;
for(j=0;j<10;j++) {cardbuf[j]=0;}
init:d=bitc=0;
do
{ while(p1_5!=0);
while(p1_5!=1);
dlms();
if(p1_4==1) {
if(state!=1) {state=1;bitc=0;d=0;}
d|=0x10;
}
bitc++;
if(bitc>=5)
{ if(state!=1) goto init;
cardbuf[i]=d&0x0f;i++;
d=0; bitc=0;
if (d==0x0f) flag=1;
}
else d=d>>1;
} while (int0==0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -