📄 main.lst
字号:
C51 COMPILER V8.02 MAIN 03/16/2009 15:23:02 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #define main_GLOBALS
2 #include "config.h"
3 #include "main.h"
4 #include "delay.h"
5 #include "zlg500s.h"
6 #include "zlg500S_comm.h"
7
8 static void main_init();
9 INT8U DataBfr[16];
10 INT8U Card_Snr[4];
11 INT8U TxMode;
12 INT8U Atq[2];
13 INT8U Sak;
14
15 sbit BEEN = P2^5;
16 #define BEEN_ON {BEEN=0;delayMs(50);BEEN=1;}
17
18 void delayMs(unsigned int a)
19 {
20 1 unsigned int i, j;
21 1 for(i = a; i > 0; i--)
22 1 for(j = 100; j > 0; j--);
23 1 }
24 main()
25 {
26 1 INT8U temp;
27 1 BEEN=1;
28 1 main_init(); //定时器2设置
29 1 GetDvcInfo(DataBfr); //验证MCU与zlg500s通信
30 1 BEEN_ON;
31 1 DataBfr[0] = 0xff;
32 1 DataBfr[1] = 0xff;
33 1 DataBfr[2] = 0xff;
34 1 DataBfr[3] = 0xff;
35 1 DataBfr[4] = 0xff;
36 1 DataBfr[5] = 0xff;
37 1 PCDLoadKey(KEYA,0,DataBfr);
38 1 BEEN_ON;
39 1 while(1)
40 1 {
41 2 if(PiccRequest(REQSTD,DataBfr) != OK) continue;
42 2 if(PiccAnticoll(SELCODE1,0,Card_Snr)!=OK) continue;
43 2 if(PiccSelect(SELCODE1,Card_Snr,DataBfr)!=OK) continue;
44 2 if(PiccAuthE2(KEYA,Card_Snr,0,4)!=OK) continue;
45 2 if(PiccRead(4,DataBfr)!=OK) continue;
46 2 DataBfr[0] = 0x10; DataBfr[4] = 0xef; DataBfr[8] = 0x10;
47 2 DataBfr[1] = 0x0; DataBfr[5] = 0xff; DataBfr[9] = 0x0;
48 2 DataBfr[2] = 0x0; DataBfr[6] = 0xff; DataBfr[10] = 0x0;
49 2 DataBfr[3] = 0x0; DataBfr[7] = 0xff; DataBfr[11] = 0x0;
50 2 DataBfr[12] = 0x04; DataBfr[13] = 0xfb; DataBfr[14] = 0x04; DataBfr[15] = 0xfb;
51 2 if(PiccWrite(4,DataBfr)!=OK) continue;
52 2 DataBfr[0] = 0x0;
53 2 if(PiccRead(4,DataBfr)!=OK) continue;
54 2 DataBfr[0] = 0x01;
55 2 DataBfr[1] = 0x0;
C51 COMPILER V8.02 MAIN 03/16/2009 15:23:02 PAGE 2
56 2 DataBfr[2] = 0x0;
57 2 DataBfr[3] = 0x0;
58 2 if(PiccValue(DECREMENT,4,DataBfr,5)!=OK) continue;
59 2 if(PiccValue(INCREMENT,4,DataBfr,6)!=OK) continue;
60 2 if(PiccRead(5,DataBfr)!=OK) continue;
61 2 if(PiccRead(6,DataBfr)!=OK) continue;
62 2 PiccHalt();
63 2
64 2 BEEN_ON;
65 2
66 2 //测试卡自动检测----串口主动发送回数据,TX交替,E2密码验证,密钥A,读4块
67 2 DataBfr[0] = 0;
68 2 while(PiccAutoDetect(ADSERIALOUT | ADINTENABLE, ADTXALERT, REQSTD, 'E', KEYA, DataBfr, 4) != 0);
69 2 while(PiccADRcv(&TxMode,Atq,&Sak,Card_Snr,DataBfr) != 0);
70 2 DataBfr[0] = 0x10; DataBfr[4] = 0xef; DataBfr[8] = 0x10;
71 2 DataBfr[1] = 0x0; DataBfr[5] = 0xff; DataBfr[9] = 0x0;
72 2 DataBfr[2] = 0x0; DataBfr[6] = 0xff; DataBfr[10] = 0x0;
73 2 DataBfr[3] = 0x0; DataBfr[7] = 0xff; DataBfr[11] = 0x0;
74 2 DataBfr[12] = 0x04; DataBfr[13] = 0xfb; DataBfr[14] = 0x04; DataBfr[15] = 0xfb;
75 2 if(PiccWrite(4,DataBfr)!=OK) continue;
76 2 DataBfr[0] = 0x0;
77 2 if(PiccRead(4,DataBfr)!=OK) continue;
78 2 DataBfr[0] = 0x01;
79 2 DataBfr[1] = 0x0;
80 2 DataBfr[2] = 0x0;
81 2 DataBfr[3] = 0x0;
82 2 if(PiccValue(DECREMENT,4,DataBfr,5)!=OK) continue;
83 2 if(PiccValue(INCREMENT,4,DataBfr,6)!=OK) continue;
84 2 if(PiccRead(5,DataBfr)!=OK) continue;
85 2 if(PiccRead(6,DataBfr)!=OK) continue;
86 2 PiccHalt();
87 2
88 2 BEEN_ON;
89 2
90 2 //测试卡自动检测----串口主动发送回数据,发回后继续检测,检测后将卡挂起,TX全发送,直接密码验证,密钥A,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -