📄 lock.lst
字号:
165 4 break;
166 4 }
167 3 temp=P0;
168 3 temp=temp&0xf0;
169 3 while(temp!=0xf0) //松手检测
170 3 {
171 4 temp=P0;
172 4 temp=temp&0xf0;
173 4 }
174 3 }
175 2 }
176 1 return(num);
177 1 }
178 void main()
C51 COMPILER V8.02 LOCK 04/28/2009 09:34:47 PAGE 4
179 {
180 1 unsigned char i;
181 1 TMOD=0x01;
182 1 TH0=(65536-500)/256;
183 1 TL0=(65536-500)%256;
184 1 EA=1;
185 1 ET0=1;
186 1 TR0=1;
187 1 IO_int();
188 1 while(1)
189 1 {
190 2 key=Scankey();
191 2 if((key>=0)&&(key<10))
192 2 {
193 3 if(keycount<6)
194 3 {
195 4 getps[keycount]=key;
196 4 }
197 3 keycount++;
198 3 if(keycount==6)
199 3 {
200 4 keycount=6;
201 4 }
202 3 if(keycount>6)
203 3 {
204 4 keycount=6;
205 4 keyoverflag=1;//keyoverflow
206 4 }
207 3 }
208 2 if(key==14)
209 2 {
210 3 if(keycount>0)
211 3 {
212 4 keycount--;
213 4 getps[keycount]=0;
214 4 }
215 3 else
216 3 {
217 4 keyoverflag=1;//delete completely
218 4 }
219 3 }
220 2 if(key==15) //enter key
221 2 {
222 3 if(keycount!=pslenth)
223 3 {
224 4 errorflag=1;
225 4 rightflag=0;
226 4 second3=0;
227 4 }
228 3 else
229 3 {
230 4 i=0;
231 4 while(i<keycount)
232 4 {
233 5 if(getps[i]!=ps[i])
234 5 {
235 6 i=keycount;
236 6 errorflag=1;
237 6 rightflag=0;
238 6 second3=0;
239 6 goto next;
240 6 }
C51 COMPILER V8.02 LOCK 04/28/2009 09:34:47 PAGE 5
241 5 i++;
242 5 }
243 4 errorflag=0;
244 4 rightflag=1;
245 4 next:break;
246 4 }
247 3 }
248 2 Display(keycount);
249 2 }
250 1 }
251 void time0() interrupt 1
252 {
253 1 TH0=(65536-500)/256;
254 1 TL0=(65536-500)%256;
255 1 if((errorflag==1)&&(rightflag==0))
256 1 {
257 2 bb++;
258 2 if(bb==800)
259 2 {
260 3 bb=0;
261 3 alarmflag=~alarmflag;
262 3 }
263 2 if(alarmflag==1) //sound alarm signal
264 2 {
265 3 SPK=~SPK;
266 3 }
267 2 aa++;
268 2 {
269 3 if(aa==800)
270 3 {
271 4 aa=0;
272 4 LIGHT=~LIGHT;
273 4 }
274 3 }
275 2 second3++;
276 2 if(second3==6400)
277 2 {
278 3 second3=0;
279 3 errorflag=0;
280 3 rightflag=0;
281 3 alarmflag=0;
282 3 bb=0;
283 3 aa=0;
284 3 }
285 2 }
286 1 if((errorflag==0)&&(rightflag==1))
287 1 {
288 2 JDQ=0;
289 2 cc++;
290 2 if(cc>200)
291 2 {
292 3 errorflag=0;
293 3 rightflag=0;
294 3 JDQ=1;
295 3 }
296 2 SPK=1;
297 2 }
298 1 if(keyoverflag==1)
299 1 {
300 2 SPK=~SPK;
301 2 }
302 1 }
C51 COMPILER V8.02 LOCK 04/28/2009 09:34:47 PAGE 6
303 void Display(uchar count)
304 {
305 1 unsigned int k;
306 1 if(count==0)
307 1 {
308 2 P1=0x00;
309 2 P2=0x00;
310 2 }
311 1 else
312 1 {
313 2 for(k=0;k<count;k++)
314 2 {
315 3 P1=0x07&k;
316 3 P2=table[getps[k]];
317 3 Delay(50);
318 3 P2=0;
319 3 }
320 2 }
321 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 739 ----
CONSTANT SIZE = 17 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 24 ----
IDATA SIZE = ---- ----
BIT SIZE = 4 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -