📄 main.c
字号:
#include <reg52.h>
#include <absacc.h>
#include "FM1715.h"
#include "FM1715_fun.h"
#include "FM1715_reg.h"
void init_serialcomm(void);
void send_char_com(uchar ch);
uchar idata test[16]={0x00,0x00,0x00,0x00,0,0,0,0,0,0,0,0,0,0,0,0};
void main()
{
init_serialcomm(); //
while(1)
{PCON=0x01;}
}
void init_serialcomm(void)
{
SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
PCON |= 0x00; //SMOD=1;
TH1 = 0xFD; //Baud:4800 fosc=11.0592MHz
IE |= 0x90; //Enable Serial Interrupt
TR1 = 1; // timer 1 run
// TI=1;
}
//
void send_char_com(uchar ch)
{
SBUF=ch;
while(TI==0);
TI=0;
}
/*
void send_string_com(uchar *str,uint strlen)
{
uint k=0;
do
{
send_char_com(*(str + k));
k++;
} while(k < strlen);
}
*/
void serial() interrupt 4 using 0
{
uchar i,sec,temp;
PCON=0x00;
if(RI)
{
/* uchar ch1,ch2;
RI = 0;
ch1=SBUF;
while(RI==0);
RI = 0;
ch2=SBUF;
*/
uchar ch;
RI = 0;
ch=SBUF;
if(ch==0x7F) //输入密码
{
Init_FM1715(0);
temp = HL_Active(0, 0);
send_char_com(temp);
send_char_com(tagtype[0]);
send_char_com(tagtype[1]);
for(i=0;i<5;i++)
{
send_char_com(UID[i]);
}
MFRST=1; //Reset FM1715
}
if(ch==0x80)//验证激活
{
Init_FM1715(0);
temp = HL_Active(0, 0);
send_char_com(temp);
send_char_com(tagtype[0]);
send_char_com(tagtype[1]);
for(i=0;i<5;i++)
{
send_char_com(UID[i]);
}
MFRST=1; //Reset FM1715
}
else if(ch==0x81)//读一个扇区16字节
{
while(RI==0);
RI = 0;
sec=SBUF;
Init_FM1715(0);
temp =HL_Read(test,sec,0);
send_char_com(temp);
send_char_com(tagtype[0]);
send_char_com(tagtype[1]);
for(i=0;i<5;i++){send_char_com(UID[i]);}
for(i=0;i<16;i++){send_char_com(test[i]);}
MFRST=1; //Reset FM1715
}
else if(ch==0x82)//写一个扇区16字节
{
while(RI==0);
RI = 0;
sec=SBUF;
for(i=0;i<16;i++)
{
while(RI==0);
RI = 0;
test[i]=SBUF;
}
Init_FM1715(0);
temp =HL_Write(test,sec,0);
send_char_com(temp);
send_char_com(tagtype[0]);
send_char_com(tagtype[1]);
for(i=0;i<5;i++)
{
send_char_com(UID[i]);
}
MFRST=1; //Reset FM1715
}
else if(ch==0x83)//电子钱包赋初值04字节高位在前低位在后
{
while(RI==0);
RI = 0;
sec=SBUF;
for(i=0;i<4;i++)
{
while(RI==0);
RI = 0;
test[i]=SBUF;
}
Init_FM1715(0);
temp =MIF_Initival(test,sec);
send_char_com(temp);
send_char_com(tagtype[0]);
send_char_com(tagtype[1]);
for(i=0;i<5;i++)
{
send_char_com(UID[i]);
}
MFRST=1; //Reset FM1715
}
else if(ch==0x84)//电子钱包加
{
while(RI==0);
RI = 0;
sec=SBUF;
for(i=0;i<4;i++)
{
while(RI==0);
RI = 0;
test[i]=SBUF;
}
Init_FM1715(0);
temp =HL_add(test,sec,0);
send_char_com(temp);
send_char_com(tagtype[0]);
send_char_com(tagtype[1]);
for(i=0;i<5;i++)
{
send_char_com(UID[i]);
}
MFRST=1; //Reset FM1715
}
else if(ch==0x85)//电子钱包减
{
while(RI==0);
RI = 0;
sec=SBUF;
for(i=0;i<4;i++)
{
while(RI==0);
RI = 0;
test[i]=SBUF;
}
Init_FM1715(0);
temp =HL_dec(test,sec,0);
send_char_com(temp);
send_char_com(tagtype[0]);
send_char_com(tagtype[1]);
for(i=0;i<5;i++)
{
send_char_com(UID[i]);
}
MFRST=1; //Reset FM1715
}
else if(ch==0x90)//设置验证密码06字节
{
for(i=0;i<6;i++)
{
while(RI==0);
RI = 0;
keybuffer[i]=SBUF;
}
Init_FM1715(0);
temp =HL_dec(test,sec,0);
send_char_com(temp);
send_char_com(tagtype[0]);
send_char_com(tagtype[1]);
for(i=0;i<5;i++)
{
send_char_com(UID[i]);
}
MFRST=1; //Reset FM1715
}
else
{
MFRST=1; //Reset FM1715
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -