📄 fm1715_fun.lst
字号:
C51 COMPILER V7.07 FM1715_FUN 02/28/2007 14:01:53 PAGE 1
C51 COMPILER V7.07, COMPILATION OF MODULE FM1715_FUN
OBJECT MODULE PLACED IN FM1715_fun.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE FM1715_fun.c OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include <reg52.h>
2 #include <absacc.h>
3 #include "FM1715_reg.h"
4 #include "FM1715.h"
5
6 /****************************************************************/
7 /*名称: HL_Active */
8 /*功能: 该函数实现高级 MIFARE 卡激活命令 */
9 /*输入: Secnr: 扇区号 */
10 /* Block_Adr: 块地址 */
11 /* */
12 /*输出: 操作状态码
13 */
14 /* 读出数据存于 buffer 中 */
15 /****************************************************************/
16 uchar HL_Active(uchar Block_Adr,uchar Mode)
17 {
18 1 uchar temp;
19 1
20 1 Secnr = Block_Adr/4; //?????????
21 1
22 1 MIF_Halt(); //Halt
23 1 temp = Request(RF_CMD_REQUEST_STD); //Request
24 1 if(temp != FM1715_OK)
25 1 {
26 2 return(FM1715_REQERR);
27 2 }
28 1
29 1 temp = AntiColl(); //AntiCol
30 1 if(temp != FM1715_OK)
31 1 {
32 2 return(FM1715_ANTICOLLERR);
33 2 }
34 1
35 1 temp = Select_Card(); //Select
36 1 if(temp != FM1715_OK)
37 1 {
38 2 return(FM1715_SELERR);
39 2 }
40 1 Load_key_CPY(); //LoadKey
41 1
42 1 temp = Authentication(UID, Secnr, Mode); //Authentication
43 1 if(temp != FM1715_OK)
44 1 {
45 2 return(FM1715_AUTHERR);
46 2 }
47 1
48 1 return FM1715_OK;
49 1 }
50
51
52
53 /****************************************************************/
54 /*名称: MIF_Initival */
55 /*功能: 该函数实现 MIFARE 卡初始化值操作 */
C51 COMPILER V7.07 FM1715_FUN 02/28/2007 14:01:53 PAGE 2
56 /*输入: buff: 四个字节初始化数值起始地址 */
57 /* Block_Adr: 块地址 */
58 /*输出: FM1715_NOTAGERR: 无卡 */
59 /* FM1715_BYTECOUNTERR: 接收字节错误 */
60 /* FM1715_NOTAUTHERR: 未经权威认证 */
61 /* FM1715_EMPTY: 数据溢出错误 */
62 /* FM1715_CRCERR: CRC 校验错 */
63 /* FM1715_PARITYERR: 奇偶校验错 */
64 /* FM1715_WRITEERR: 写卡块数据出错 */
65 /* FM1715_OK: 应答正确
66 */
67 /****************************************************************/
68 uchar MIF_Initival(uchar idata *buff,uchar Block_Adr)
69 {
70 1 uchar idata temp;
71 1 uchar i;
72 1
73 1 for (i = 0; i < 4; i++)
74 1 {
75 2 *(buff + 4 + i)=~(*(buff + i));
76 2 }
77 1 for (i = 0; i < 4; i++)
78 1 {
79 2 *(buff + 8 + i)=*(buff + i);
80 2 }
81 1 *(buff + 12) = Block_Adr;
82 1 *(buff + 13) = ~Block_Adr;
83 1 *(buff + 14) = Block_Adr;
84 1 *(buff + 15) = ~Block_Adr;
85 1 temp = MIF_Write(buff, Block_Adr);
86 1 return temp;
87 1 }
88
89
90
91 /****************************************************************/
92 /*名称: HL_Read */
93 /*功能: 该函数实现高级读命令 */
94 /*输入: Secnr: 扇区号 */
95 /* Block_Adr: 块地址 */
96
97 /*输出: 操作状态码
98 */
99 /* 读出数据存于 buffer 中 */
100 /****************************************************************/
101 uchar HL_Read(uchar idata *buff,uchar Block_Adr,uchar Mode)
102 {
103 1 uchar temp;
104 1
105 1 temp = HL_Active(Block_Adr, Mode);
106 1 if(temp != FM1715_OK)
107 1 {
108 2 return temp;
109 2 }
110 1
111 1 //Read
112 1 temp = MIF_READ(buff,Block_Adr);
113 1 if(temp != FM1715_OK)
114 1 {
115 2 return temp;
116 2 }
117 1
C51 COMPILER V7.07 FM1715_FUN 02/28/2007 14:01:53 PAGE 3
118 1
119 1 return FM1715_OK;
120 1 }
121
122
123 /****************************************************************/
124 /*名称: HL_Write */
125 /*功能: 该函数实现高级写命令 */
126 /*输入: buff: 待写入数据的首地址 */
127 /* Secnr: 扇区号 */
128 /* Block_Adr: 块地址 */
129
130 /*输出:操作状态码
131 */
132 /****************************************************************/
133 uchar HL_Write(uchar idata *buff,uchar Block_Adr,uchar Mode)
134 {
135 1 uchar temp;
136 1
137 1 temp = HL_Active(Block_Adr, Mode);
138 1 if(temp != FM1715_OK)
139 1 {
140 2 return temp;
141 2 }
142 1
143 1 //Write
144 1 temp = MIF_Write(buff, Block_Adr);
145 1 if(temp != FM1715_OK)
146 1 {
147 2 return FM1715_WRITEERR;
148 2 }
149 1 return FM1715_OK;
150 1 }
151
152
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 315 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 14 ----
IDATA SIZE = 1 ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -