📄 copy of key.lst
字号:
221 ;key.c: 197: }
222 07FA l45
223 ;key.c: 199: {
224 07FA 30FE movlw -2
225 07FB L18
226 07FB 00A5 movwf ?a_Keypad_HighISR+1
227 ;key.c: 201: }
228 07FC l14
229 ;key.c: 202: return key_map_value;
230 07FC 0825 movf ?a_Keypad_HighISR+1,w
231 ;key.c: 203: }
232 07FD 0008 return
233
234 psect text4
235 ;key.c: 212: void Delay_10ms_ISR(unsigned char
+ n)
236 ;key.c: 213: {
237 073F _Delay_10ms_ISR
238 ; _n assigned to ?a_Delay_10ms_ISR+0
239 0000 _Delay_10ms_ISR$n set ?a_Delay_10ms_ISR
240 ; _i assigned to ?a_Delay_10ms_ISR+1
241 0000 _Delay_10ms_ISR$i set ?a_Delay_10ms_ISR+1
242 ;_n stored from w
243 073F 0183 clrf 3 ;select bank 0
244 0740 00A9 movwf ?a_Delay_10ms_ISR
245 ;key.c: 214: unsigned char i = 0;
246 0741 01AA clrf ?a_Delay_10ms_ISR+1
247 ;key.c: 215: for(i; i<n; i++)
248 0742 2F4C goto l51
249 0743 l48
250 ;key.c: 216: {
251 0743 300E movlw 14 ;#
252 0744 00AC movwf _delay_data2 ;#
253 0745 30F9 movlw 249 ;#
254 0746 00AB movwf _delay_data1 ;#
255 0747 0BAB decfsz _delay_data1 ;#
256 0748 2F3E goto ($+-1) ;#
257 0749 0BAC decfsz _delay_data2 ;#
258 074A 2F3B goto ($+-4) ;#
259 074B 0008 return ;#
260 ;key.c: 228: }
261 074C l51
262 074C 0829 movf ?a_Delay_10ms_ISR,w
263 074D 022A subwf ?a_Delay_10ms_ISR+1,w
264 074E 1803 btfsc 3,0
265 074F 0008 return
266 0750 2F43 goto l48
267 0751 _Key_ScanMatrix
268 ;key.c: 52: TRISB = 0xF0;
269 0751 30F0 movlw -16
270 0752 1683 bsf 3,5
271 0753 1303 bcf 3,6 ;carry unused
272 0754 0086 movwf 6 ;volatile
273 ;key.c: 53: PORTB = 0x00;
274 0755 1283 bcf 3,5
275 0756 0186 clrf 6 ;volatile
276 ;key.c: 54: asm("nop");
277 0757 0000 nop ;#
278 ;key.c: 55: asm("nop");
279 0758 0000 nop ;#
280 ;key.c: 56: value_portb = PORTB;
281 0759 0806 movf 6,w ;volatile
282 075A 00A1 movwf _value_portb
283 ;key.c: 57: value_portb &= 0xF0;
284 075B 30F0 movlw -16
285 075C 05A1 andwf _value_portb
286 ;key.c: 58: value_key = value_portb;
287 075D 0821 movf _value_portb,w
288 075E 00A0 movwf _value_key
289 ;key.c: 59: if(value_key != 0xF0)
290 075F 3AF0 xorlw -16
291 0760 1903 btfsc 3,2
292 0761 0008 return
293 ;key.c: 60: {
294 0762 300F movlw 15
295 0763 1683 bsf 3,5
296 0764 0086 movwf 6 ;volatile
297 ;key.c: 62: PORTB = 0x00;
298 0765 1283 bcf 3,5
299 0766 0186 clrf 6 ;volatile
300 ;key.c: 63: asm("nop");
301 0767 0000 nop ;#
302 ;key.c: 64: asm("nop");
303 0768 0000 nop ;#
304 ;key.c: 65: value_portb = PORTB;
305 0769 0806 movf 6,w ;volatile
306 076A 00A1 movwf _value_portb
307 ;key.c: 66: value_portb &= 0x0F;
308 076B 300F movlw 15
309 076C 05A1 andwf _value_portb
310 ;key.c: 67: value_key |= value_portb;
311 076D 0821 movf _value_portb,w
312 076E 04A0 iorwf _value_key
313 ;key.c: 68: }
314 076F 0008 return
315 ;key.c: 80: unsigned char Keypad_Scan(void)
316 ;key.c: 81: {
317 0770 _Keypad_Scan
318 ; _keypad_new assigned to ?a_Keypad_Scan+0
319 0000 _Keypad_Scan$keypad_new set ?a_Keypad_Scan
320 ; _keypad_old assigned to ?a_Keypad_Scan+1
321 0000 _Keypad_Scan$keypad_old set ?a_Keypad_Scan+1
322 ; _key_num assigned to ?a_Keypad_Scan+2
323 0000 _Keypad_Scan$key_num set ?a_Keypad_Scan+2
324 ;key.c: 82: unsigned char key_num = 0;
325 0770 0183 clrf 3 ;select bank 0
326 0771 01A8 clrf ?a_Keypad_Scan+2
327 ;key.c: 83: unsigned char keypad_old = 0;
328 0772 01A7 clrf ?a_Keypad_Scan+1
329 ;key.c: 84: unsigned char keypad_new = 0;
330 0773 01A6 clrf ?a_Keypad_Scan
331 ;key.c: 86: Key_ScanMatrix();
332 0774 2751 fcall _Key_ScanMatrix
333 ;key.c: 87: if(value_key == 0xF0)
334 0775 0820 movf _value_key,w
335 0776 3AF0 xorlw -16
336 0777 1903 btfsc 3,2
337 0778 2F8A goto l10
338 ;key.c: 88: {
339 ;key.c: 90: }
340 ;key.c: 92: {
341 0779 0820 movf _value_key,w
342 077A 00A7 movwf ?a_Keypad_Scan+1
343 ;key.c: 94: Delay_10ms_ISR(2);
344 077B 3002 movlw 2
345 077C 273F fcall _Delay_10ms_ISR
346 ;key.c: 95: Key_ScanMatrix();
347 077D 2751 fcall _Key_ScanMatrix
348 ;key.c: 96: keypad_new = value_key;
349 077E 0820 movf _value_key,w
350 077F 00A6 movwf ?a_Keypad_Scan
351 ;key.c: 97: if(value_key == 0xF0)
352 0780 0820 movf _value_key,w
353 0781 3AF0 xorlw -16
354 0782 1903 btfsc 3,2
355 0783 2F8A goto l10
356 ;key.c: 98: {
357 ;key.c: 100: }
358 ;key.c: 102: {
359 0784 0827 movf ?a_Keypad_Scan+1,w
360 0785 0626 xorwf ?a_Keypad_Scan,w
361 0786 1D03 btfss 3,2
362 0787 2F8A goto l10
363 ;key.c: 104: {
364 0788 0820 movf _value_key,w
365 0789 2F8B goto L2
366 ;key.c: 106: }
367 078A l10
368 ;key.c: 108: {
369 078A 30FF movlw -1
370 078B L2
371 078B 00A8 movwf ?a_Keypad_Scan+2
372 ;key.c: 110: }
373 ;key.c: 112: }
374 ;key.c: 113: }
375 ;key.c: 114: return key_num;
376 ;key.c: 115: }
377 078C 0008 return
378
379 psect text5
380 0000
381 0000
382 0000
383 0000
384 0000
385 0000
386 0000
387 0000
388 0000
389 0000
390 0000
391 0000
392 0000
393 0000
394 0000
395 0000
396 0000
397 0000
398 0000
399 0000
400 0000
401 0000
402 0000
403 0000
404 0000
405 0000
406 0000
407 0000
408 0000
409 0000
410 0000
411 0000
412 0000
413 0000
414 0000
415 0000
416 0000
417 0000
418 0000
419 0000
420 0000
421 0000
422 0000
423 0000
424 0000
425 0000
426 0000
427 0000
428 0000
429 0000
430 0000
431 0000
432 0000
433 0000
434 0000
435 0000
436 0000
437 0000
438 0000
439 0000
440 0000
441 0000
442 0000
443 0000
444 0000
445 0000
446 0000
447 0000
448 0000
449 0000
450 0000
451 0000
452 0000
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -