📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 03/03/2006 13:09:36 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c COMPACT OPTIMIZE(0,SPEED) BROWSE MODP2 DEBUG OBJECTEXTEND
line level source
1 #include <reg52.h>
2 #include <absacc.h>
3 #include "FM1715.h"
4 #include "FM1715_fun.h"
5 #include "FM1715_reg.h"
6
7 void init_serialcomm(void);
8 void send_char_com(uchar ch);
9 uchar idata test[16]={0x00,0x00,0x00,0x00,0,0,0,0,0,0,0,0,0,0,0,0};
10 void main()
11 {
12 1 init_serialcomm(); //
13 1 while(1)
14 1 {PCON=0x01;}
15 1 }
16
17 void init_serialcomm(void)
18 {
19 1 SCON = 0x50; //SCON: serail mode 1, 8-bit UART, enable ucvr
20 1 TMOD |= 0x20; //TMOD: timer 1, mode 2, 8-bit reload
21 1 PCON |= 0x00; //SMOD=1;
22 1 TH1 = 0xFD; //Baud:4800 fosc=11.0592MHz
23 1 IE |= 0x90; //Enable Serial Interrupt
24 1 TR1 = 1; // timer 1 run
25 1 // TI=1;
26 1 }
27
28 //
29 void send_char_com(uchar ch)
30 {
31 1 SBUF=ch;
32 1 while(TI==0);
33 1 TI=0;
34 1 }
35
36 /*
37 void send_string_com(uchar *str,uint strlen)
38 {
39 uint k=0;
40 do
41 {
42 send_char_com(*(str + k));
43 k++;
44 } while(k < strlen);
45 }
46 */
47
48
49 void serial() interrupt 4 using 0
50 {
51 1 uchar i,sec,temp;
52 1 PCON=0x00;
53 1 if(RI)
54 1 {
55 2 /* uchar ch1,ch2;
C51 COMPILER V7.50 MAIN 03/03/2006 13:09:36 PAGE 2
56 2 RI = 0;
57 2 ch1=SBUF;
58 2 while(RI==0);
59 2 RI = 0;
60 2 ch2=SBUF;
61 2 */
62 2 uchar ch;
63 2 RI = 0;
64 2 ch=SBUF;
65 2 if(ch==0x7F) //输入密码
66 2 {
67 3 Init_FM1715(0);
68 3 temp = HL_Active(0, 0);
69 3
70 3 send_char_com(temp);
71 3 send_char_com(tagtype[0]);
72 3 send_char_com(tagtype[1]);
73 3
74 3 for(i=0;i<5;i++)
75 3 {
76 4 send_char_com(UID[i]);
77 4 }
78 3 MFRST=1; //Reset FM1715
79 3 }
80 2 if(ch==0x80)//验证激活
81 2 {
82 3 Init_FM1715(0);
83 3 temp = HL_Active(0, 0);
84 3
85 3 send_char_com(temp);
86 3 send_char_com(tagtype[0]);
87 3 send_char_com(tagtype[1]);
88 3
89 3 for(i=0;i<5;i++)
90 3 {
91 4 send_char_com(UID[i]);
92 4 }
93 3 MFRST=1; //Reset FM1715
94 3 }
95 2 else if(ch==0x81)//读一个扇区16字节
96 2 {
97 3 while(RI==0);
98 3 RI = 0;
99 3 sec=SBUF;
100 3 Init_FM1715(0);
101 3
102 3 temp =HL_Read(test,sec,0);
103 3
104 3 send_char_com(temp);
105 3 send_char_com(tagtype[0]);
106 3 send_char_com(tagtype[1]);
107 3
108 3 for(i=0;i<5;i++){send_char_com(UID[i]);}
109 3
110 3 for(i=0;i<16;i++){send_char_com(test[i]);}
111 3 MFRST=1; //Reset FM1715
112 3 }
113 2 else if(ch==0x82)//写一个扇区16字节
114 2 {
115 3 while(RI==0);
116 3 RI = 0;
117 3 sec=SBUF;
C51 COMPILER V7.50 MAIN 03/03/2006 13:09:36 PAGE 3
118 3 for(i=0;i<16;i++)
119 3 {
120 4 while(RI==0);
121 4 RI = 0;
122 4 test[i]=SBUF;
123 4 }
124 3 Init_FM1715(0);
125 3 temp =HL_Write(test,sec,0);
126 3
127 3 send_char_com(temp);
128 3 send_char_com(tagtype[0]);
129 3 send_char_com(tagtype[1]);
130 3
131 3 for(i=0;i<5;i++)
132 3 {
133 4 send_char_com(UID[i]);
134 4 }
135 3 MFRST=1; //Reset FM1715
136 3
137 3 }
138 2 else if(ch==0x83)//电子钱包赋初值04字节高位在前低位在后
139 2 {
140 3 while(RI==0);
141 3 RI = 0;
142 3 sec=SBUF;
143 3 for(i=0;i<4;i++)
144 3 {
145 4 while(RI==0);
146 4 RI = 0;
147 4 test[i]=SBUF;
148 4 }
149 3 Init_FM1715(0);
150 3 temp =MIF_Initival(test,sec);
151 3
152 3 send_char_com(temp);
153 3 send_char_com(tagtype[0]);
154 3 send_char_com(tagtype[1]);
155 3
156 3 for(i=0;i<5;i++)
157 3 {
158 4 send_char_com(UID[i]);
159 4 }
160 3 MFRST=1; //Reset FM1715
161 3 }
162 2 else if(ch==0x84)//电子钱包加
163 2 {
164 3 while(RI==0);
165 3 RI = 0;
166 3 sec=SBUF;
167 3 for(i=0;i<4;i++)
168 3 {
169 4 while(RI==0);
170 4 RI = 0;
171 4 test[i]=SBUF;
172 4 }
173 3 Init_FM1715(0);
174 3 temp =HL_add(test,sec,0);
175 3
176 3 send_char_com(temp);
177 3 send_char_com(tagtype[0]);
178 3 send_char_com(tagtype[1]);
179 3
C51 COMPILER V7.50 MAIN 03/03/2006 13:09:36 PAGE 4
180 3 for(i=0;i<5;i++)
181 3 {
182 4 send_char_com(UID[i]);
183 4 }
184 3 MFRST=1; //Reset FM1715
185 3 }
186 2 else if(ch==0x85)//电子钱包减
187 2 {
188 3 while(RI==0);
189 3 RI = 0;
190 3 sec=SBUF;
191 3 for(i=0;i<4;i++)
192 3 {
193 4 while(RI==0);
194 4 RI = 0;
195 4 test[i]=SBUF;
196 4 }
197 3 Init_FM1715(0);
198 3 temp =HL_dec(test,sec,0);
199 3
200 3 send_char_com(temp);
201 3 send_char_com(tagtype[0]);
202 3 send_char_com(tagtype[1]);
203 3
204 3 for(i=0;i<5;i++)
205 3 {
206 4 send_char_com(UID[i]);
207 4 }
208 3 MFRST=1; //Reset FM1715
209 3 }
210 2 else if(ch==0x90)//设置验证密码06字节
211 2 {
212 3 for(i=0;i<6;i++)
213 3 {
214 4 while(RI==0);
215 4 RI = 0;
216 4 keybuffer[i]=SBUF;
217 4 }
218 3 Init_FM1715(0);
219 3 temp =HL_dec(test,sec,0);
220 3
221 3 send_char_com(temp);
222 3 send_char_com(tagtype[0]);
223 3 send_char_com(tagtype[1]);
224 3
225 3 for(i=0;i<5;i++)
226 3 {
227 4 send_char_com(UID[i]);
228 4 }
229 3 MFRST=1; //Reset FM1715
230 3 }
231 2 else
232 2 {
233 3 MFRST=1; //Reset FM1715
234 3 }
235 2 }
236 1 }
237
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1069 ----
C51 COMPILER V7.50 MAIN 03/03/2006 13:09:36 PAGE 5
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = 5 ----
DATA SIZE = ---- ----
IDATA SIZE = 16 ----
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 + -