?? 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 + -