📄 module.lst
字号:
C51 COMPILER V7.06 MODULE 12/04/2008 15:12:02 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MODULE
OBJECT MODULE PLACED IN Module.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Module.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #include "Include.h"
2 extern unsigned char FingerRecord[26]; //指纹记录数组,每位代表对应编号指纹有无
3 extern unsigned char xdata CommBuf[MAX_BUF_NUMBER]; //串口缓冲
4 extern unsigned char xdata SCC; //串口接收和校验
5 //extern unsigned char BellTimer;
6 extern unsigned int Tc; //超时计时器
7 extern unsigned char NowKey; //当前按键
8 extern bit ReceiveOK; //数据包接收完成标志位
9 /**********************************/
10 bit Add_Deal = 0; //线程标志位1
11 bit Add_Deal2 = 0; //线程标志位2
12 bit Add_Deal3 = 0; //线程标志位3
13 /**********************************/
14 //显示操作成功
15 void DisplayOK(void)
16 {
17 1 unsigned char i = 0;
18 1
19 1 for(i=0;i<4;i++)
20 1 {
21 2 // BellOn();
22 2 LedBlueOn();
23 2 LedRedOff();
24 2 DelayNmS(200);
25 2 // BellOff();
26 2 LedBlueOff();
27 2 LedRedOn();
28 2 DelayNmS(200);
29 2 }
30 1 LedRedOff();
31 1 }
32 //显示操作失败
33 void DisplayFail(void)
34 {
35 1 unsigned char i = 0;
36 1
37 1 for(i=0;i<2;i++)
38 1 {
39 2 // BellOn();
40 2 LedRedOff();
41 2 DelayNmS(200);
42 2 // BellOff();
43 2 LedRedOn();
44 2 DelayNmS(200);
45 2 }
46 1 LedRedOff();
47 1 }
48 //显示通讯错误
49 void DisplayErr(void)
50 {
51 1 unsigned char i = 0;
52 1
53 1 for(i=0;i<2;i++)
54 1 {
55 2 // BellOn();
C51 COMPILER V7.06 MODULE 12/04/2008 15:12:02 PAGE 2
56 2 LedRedOn();
57 2 DelayNmS(200);
58 2 // BellOff();
59 2 LedRedOff();
60 2 DelayNmS(200);
61 2 }
62 1 }
63 //显示超时
64 void DisplayOutTime(void)
65 {
66 1 unsigned char i = 0;
67 1
68 1 for(i=0;i<2;i++)
69 1 {
70 2 // BellOn();
71 2 LedBlueOn();
72 2 LedRedOn();
73 2 DelayNmS(200);
74 2 // BellOff();
75 2 LedBlueOff();
76 2 LedRedOff();
77 2 DelayNmS(200);
78 2 }
79 1 }
80 //清空指纹库
81 void EmptyFingerModule(void)
82 {
83 1 //1 指纹标识全部清零
84 1 memset(FingerRecord,0,sizeof(FingerRecord));
85 1
86 1 FingerOn();
87 1 // BellOn();DelayNmS(200);BellOff();
88 1
89 1 //2 写入模块Flash中
90 1 if(OK == WriteFingerFlash(FingerRecord,sizeof(FingerRecord),0,0))
91 1 {
92 2 }
93 1 else
94 1 {
95 2 DisplayErr();
96 2 FingerOff();
97 2 return;
98 2 }
99 1
100 1 //3 清空指纹库
101 1 if(OK == EmptyFinger())
102 1 {
103 2 DisplayOK();
104 2 }
105 1 else
106 1 {
107 2 DisplayErr();
108 2 }
109 1
110 1 FingerOff();
111 1 }
112 void SearchFingerModule(void)
113 {
114 1 unsigned char SearchResult = 0;
115 1 unsigned char SearchReturn = 0;
116 1
117 1 if(!Add_Deal)
C51 COMPILER V7.06 MODULE 12/04/2008 15:12:02 PAGE 3
118 1 {
119 2 FingerOn();
120 2 // BellOn();DelayNmS(200);BellOff();
121 2
122 2 CommBuf[0] = C_SEARCH_FINGER;
123 2 CommBuf[1] = 0;
124 2 CommBuf[2] = 0;
125 2 CommBuf[3] = 0;
126 2 CommBuf[4] = MAX_FINGER;//最大指纹数
127 2
128 2 Clear_Uart_Variable();
129 2 SendCommand(C_COMMAND,5,CommBuf);//发送搜索命令
130 2
131 2
132 2 //等待接收返回
133 2 Tc = 2;
134 2 while(!ReceiveOK&&Tc);
135 2 Clear_Uart_Variable();
136 2
137 2 if((SCC==CommBuf[CommBuf[3]+4])&&Tc) //数据包和校验判断 和 接收超时判断
138 2 {
139 3 if((C_ANSWER==CommBuf[2])&&(0x01==CommBuf[4]))
140 3 {
141 4 Add_Deal = 1;
142 4 Add_Deal2 = 1;
143 4 }
144 3 else
145 3 {
146 4 Add_Deal = 0;
147 4 Add_Deal2 = 0;
148 4 DisplayErr();
149 4 FingerOff();
150 4 NowKey = NO_KEY;
151 4 return;
152 4 }
153 3 }
154 2 else
155 2 {
156 3 Add_Deal = 0;
157 3 Add_Deal2 = 0;
158 3 DisplayErr();
159 3 FingerOff();
160 3 NowKey = NO_KEY;
161 3 return;
162 3 }
163 2 }
164 1
165 1 //探测手指
166 1 if(Add_Deal2&&ReceiveOK)
167 1 {
168 2 Clear_Uart_Variable();
169 2 if(SCC==CommBuf[CommBuf[3]+4]) //数据包和校验判断
170 2 {
171 3 if((C_ANSWER == CommBuf[2])&&(0x02 == CommBuf[3])&&(C_SEARCH_FINGER == CommBuf[4]))
172 3 {
173 4 //接收正确
174 4 switch(CommBuf[5])
175 4 {
176 5 //指纹处理成功
177 5 case ANSWER_OK:
178 5 // BellOn();
179 5 // BellTimer = 6;//中断中关闭Bell
C51 COMPILER V7.06 MODULE 12/04/2008 15:12:02 PAGE 4
180 5 Add_Deal2 = 0;
181 5 Add_Deal3 = 1;
182 5
183 5 break;
184 5
185 5 case ANSWER_OUT_TIME:
186 5 DisplayOutTime();
187 5 break;
188 5
189 5 case ANSWER_FAIL:
190 5 case ANSWER_NUMBER_E:
191 5 DisplayFail();//增加失败
192 5 break;
193 5 }
194 4 if(Add_Deal2)
195 4 {
196 5 Add_Deal = 0;
197 5 Add_Deal2 = 0;
198 5 FingerOff();
199 5 NowKey = NO_KEY;
200 5 return;
201 5 }
202 4 }
203 3 else
204 3 {
205 4 Add_Deal = 0;
206 4 Add_Deal2 = 0;
207 4 DisplayErr();
208 4 FingerOff();
209 4 NowKey = NO_KEY;
210 4 return;
211 4 }
212 3 }
213 2 else
214 2 {
215 3 Add_Deal = 0;
216 3 Add_Deal2 = 0;
217 3 DisplayErr();
218 3 FingerOff();
219 3 NowKey = NO_KEY;
220 3 return;
221 3 }
222 2 }
223 1
224 1 //等待搜索结果
225 1 if(Add_Deal3&&ReceiveOK)
226 1 {
227 2 Add_Deal3 = 0;
228 2 Add_Deal = 0;
229 2 if(SCC==CommBuf[CommBuf[3]+4]) //数据包和校验判断
230 2 {
231 3 if((C_ANSWER == CommBuf[2])&&(C_SEARCH_FINGER == CommBuf[4]))
232 3 {
233 4 //接收正确
234 4 switch(CommBuf[5])
235 4 {
236 5 //指纹处理成功
237 5 case ANSWER_SEARCH_OK:
238 5
239 5 DisplayOK();
240 5 break;
241 5
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -