📄 07_08.lst
字号:
300 000C3 14E8 JMP S3_KEY_ON
301 000C4 0E86 JBS PORT6,2
302 000C5 150C JMP S8_KEY_ON
303
304
305 000C6 NO_KEY:
306
307 000C6 0478 MOV KEY_FLAG,KEY_FLAG ;no key test the key_flag and then delay 10ms
308 000C7 0C83 JBC STATUS,Z
309 000C8 14CB JMP NO_KEY1
310 000C9 00F8 CLR KEY_FLAG
311 000CA 1578 JMP KEY_SCAN_EXIT
312
313 000CB NO_KEY1:
314 000CB 0479 MOV KEY_STATE,KEY_STATE ;no key test the key_state and then delay 10ms
315 000CC 0C83 JBC STATUS,Z
316 000CD 1578 JMP KEY_SCAN_EXIT
317 000CE 00F9 CLR KEY_STATE
318 000CF 0817 BC FLAG0,KEY_LONG
319 000D0 08D8 BC FLAG1,MID_DOWN_FLAG
320 000D1 0898 BC FLAG1,MID_MID_FLAG
321 000D2 1801 MOV A,@0X01
322 000D3 0060 MOV KEYTIME_L,A
323 000D4 0061 MOV KEYTIME_R,A
324 000D5 1578 JMP KEY_SCAN_EXIT
325
326 000D6 S1_KEY_ON:
327 000D6 0C38 JBC KEY_FLAG,S1_FLAG ;test key on key_flag and delay 10ms
328 000D7 14DA JMP S1_KEY_ON1
329 000D8 0A38 BS KEY_FLAG,S1_FLAG
330 000D9 1578 JMP KEY_SCAN_EXIT
331
332 000DA S1_KEY_ON1:
333
334 000DA 0C39 JBC KEY_STATE,S1_STATE ;test key on key_state and delay 10ms
335 000DB 1515 JMP LEFT_DOWN_S1
336 000DC 0A39 BS KEY_STATE,S1_STATE
337 000DD 0A17 BS FLAG0,KEY_LONG ;set long key flag
338 000DE 1578 JMP KEY_SCAN_EXIT
339
340 000DF S2_KEY_ON:
341 000DF 0C78 JBC KEY_FLAG,S2_FLAG ;test key on key_flag and delay 10ms
342 000E0 14E3 JMP S2_KEY_ON1
343 000E1 0A78 BS KEY_FLAG,S2_FLAG
344 000E2 1578 JMP KEY_SCAN_EXIT
345
346 000E3 S2_KEY_ON1:
347
348 000E3 0C79 JBC KEY_STATE,S2_STATE ;test key on key_state and delay 10ms
349 000E4 1523 JMP LEFT_UP_S2
350 000E5 0A79 BS KEY_STATE,S2_STATE
351 000E6 0A17 BS FLAG0,KEY_LONG ;set long key flag
352 000E7 1578 JMP KEY_SCAN_EXIT
353
354 000E8 S3_KEY_ON:
355 000E8 0CB8 JBC KEY_FLAG,S3_FLAG ;test key on key_flag and delay 10ms
356 000E9 14EC JMP S3_KEY_ON1
357 000EA 0AB8 BS KEY_FLAG,S3_FLAG
358 000EB 1578 JMP KEY_SCAN_EXIT
359
360 000EC S3_KEY_ON1:
361
362 000EC 0CB9 JBC KEY_STATE,S3_STATE ;test key on key_state and delay 10ms
363 000ED 1534 JMP MID_DOWN_S3
364 000EE 0AB9 BS KEY_STATE,S3_STATE
365 000EF 0A17 BS FLAG0,KEY_LONG ;set long key flag
366 000F0 1578 JMP KEY_SCAN_EXIT
367
368
369
370 000F1 S4_KEY_ON:
371 000F1 0CF8 JBC KEY_FLAG,S4_FLAG ;test key on key_flag and delay 10ms
372 000F2 14F5 JMP S4_KEY_ON1
373 000F3 0AF8 BS KEY_FLAG,S4_FLAG
374 000F4 1578 JMP KEY_SCAN_EXIT
375
376 000F5 S4_KEY_ON1:
377
378 000F5 0CF9 JBC KEY_STATE,S4_STATE ;test key on key_state and delay 10ms
379 000F6 1544 JMP MID_UP_S4
380 000F7 0AF9 BS KEY_STATE,S4_STATE
381 000F8 0A17 BS FLAG0,KEY_LONG ;set long key flag
382 000F9 1578 JMP KEY_SCAN_EXIT
383
384
385 000FA S5_KEY_ON:
386 000FA 0D38 JBC KEY_FLAG,S5_FLAG ;test key on key_flag and delay 10ms
387 000FB 14FE JMP S5_KEY_ON1
388 000FC 0B38 BS KEY_FLAG,S5_FLAG
389 000FD 1578 JMP KEY_SCAN_EXIT
390
391 000FE S5_KEY_ON1:
392
393 000FE 0D39 JBC KEY_STATE,S5_STATE ;test key on key_state and delay 10ms
394 000FF 1549 JMP MID_MID_S5
395 00100 0B39 BS KEY_STATE,S5_STATE
396 00101 0A17 BS FLAG0,KEY_LONG ;set long key flag
397 00102 1578 JMP KEY_SCAN_EXIT
398
399 00103 S6_KEY_ON:
400 00103 0D78 JBC KEY_FLAG,S6_FLAG ;test key on key_flag and delay 10ms
401 00104 1507 JMP S6_KEY_ON1
402 00105 0B78 BS KEY_FLAG,S6_FLAG
403 00106 1578 JMP KEY_SCAN_EXIT
404
405 00107 S6_KEY_ON1:
406
407 00107 0D79 JBC KEY_STATE,S6_STATE ;test key on key_state and delay 10ms
408 00108 1559 JMP RIGHT_UP_S6
409 00109 0B79 BS KEY_STATE,S6_STATE
410 0010A 0A17 BS FLAG0,KEY_LONG ;set long key flag
411 0010B 1578 JMP KEY_SCAN_EXIT
412
413 0010C S8_KEY_ON:
414 0010C 0DB8 JBC KEY_FLAG,S8_FLAG ;test key on key_flag and delay 10ms
415 0010D 1510 JMP S8_KEY_ON1
416 0010E 0BB8 BS KEY_FLAG,S8_FLAG
417 0010F 1578 JMP KEY_SCAN_EXIT
418
419 00110 S8_KEY_ON1:
420
421 00110 0DB9 JBC KEY_STATE,S8_STATE ;test key on key_state and delay 10ms
422 00111 156A JMP RIGHT_DOWN_S8
423 00112 0BB9 BS KEY_STATE,S8_STATE
424 00113 0A17 BS FLAG0,KEY_LONG ;set long key flag
425 00114 1578 JMP KEY_SCAN_EXIT
426
427
428 ;*************************************key do
429 00115 LEFT_DOWN_S1:
430
431 00115 0C17 JBC FLAG0,KEY_LONG ;test longkey
432 00116 151A JMP KEY1
433 00117 0A17 BS FLAG0,KEY_LONG ;longkey 100*10ms then add 1
434 00118 1832 MOV A,@0X32
435 00119 0060 MOV KEYTIME_L,A
436 0011A KEY1:
437 0011A 05E0 DJZ KEYTIME_L ;when longkey then delay 1s
438 0011B 1578 JMP KEY_SCAN_EXIT
439
440 0011C 0817 BC FLAG0,KEY_LONG ;clean longkey flag
441 0011D 0560 INC KEYTIME_L
442
443 0011E 0462 MOV SPEED_L,SPEED_L ;decrease speedl when speedl is not equal 0
444 0011F 0C83 JBC STATUS,Z
445 00120 1578 JMP KEY_SCAN_EXIT
446 00121 01E2 DEC SPEED_L
447 00122 1578 JMP KEY_SCAN_EXIT
448
449
450 00123 LEFT_UP_S2:
451 00123 0C17 JBC FLAG0,KEY_LONG
452 00124 1528 JMP KEY2
453 00125 0A17 BS FLAG0,KEY_LONG ;when long key then delay 100*10ms
454 00126 1832 MOV A,@0X32
455 00127 0060 MOV KEYTIME_L,A
456 00128 KEY2:
457 00128 05E0 DJZ KEYTIME_L
458 00129 1578 JMP KEY_SCAN_EXIT
459
460 0012A 0560 INC KEYTIME_L
461 0012B 0817 BC FLAG0,KEY_LONG
462
463 0012C 0562 INC SPEED_L ;increase speedl when it is not equal 9
464 0012D 1809 MOV A,@0X09
465 0012E 0322 XOR A,SPEED_L
466 0012F 0E83 JBS STATUS,Z
467 00130 1578 JMP KEY_SCAN_EXIT
468
469 00131 1808 MOV A,@0X08
470 00132 0062 MOV SPEED_L,A
471 00133 1578 JMP KEY_SCAN_EXIT
472
473 00134 MID_DOWN_S3:
474 00134 1802 MOV A,@0X02
475 00135 0065 MOV MODE,A
476 00136 0CD8 JBC FLAG1,MID_DOWN_FLAG
477 00137 1578 JMP KEY_SCAN_EXIT
478
479 00138 0AD8 BS FLAG1,MID_DOWN_FLAG
480 00139 1800 MOV A,@0X00 ;give the start speed_duty and the channel that is different from the mode3
481 0013A 0068 MOV SPEEDR_DUTY,A
482 0013B 0069 MOV SPEEDR_FLAG,A
483 0013C 1801 MOV A,@0X01
484 0013D 0067 MOV SPEEDL_FLAG,A
485 0013E 1809 MOV A,@0X09
486 0013F 0066 MOV SPEEDL_DUTY,A
487
488
489 00140 00DF CLR FLAG_30MS
490 00141 00DA CLR REGL_18MS
491 00142 00DB CLR REGR_18MS
492 00143 1578 JMP KEY_SCAN_EXIT
493
494 00144 MID_UP_S4:
495 00144 1800 MOV A,@0X00
496 00145 0065 MOV MODE,A
497 00146 0A18 BS FLAG1,MOTORL_ON
498 00147 0A58 BS FLAG1,MOTORR_ON
499 00148 1578 JMP KEY_SCAN_EXIT
500
501 00149 MID_MID_S5:
502 00149 1801 MOV A,@0X01
503 0014A 0065 MOV MODE,A
504 0014B 0C98 JBC FLAG1,MID_MID_FLAG
505 0014C 1578 JMP KEY_SCAN_EXIT
506
507 0014D 0A98 BS FLAG1,MID_MID_FLAG
508 0014E 1800 MOV A,@0X00 ;give the start speed_duty and the channel
509 0014F 0066 MOV SPEEDL_DUTY,A
510 00150 0067 MOV SPEEDL_FLAG,A
511 00151 1809 MOV A,@0X09
512 00152 0068 MOV SPEEDR_DUTY,A
513 00153 1801 MOV A,@0X01
514 00154 0069 MOV SPEEDR_FLAG,A
515
516 00155 00DE CLR REG_30MS
517 00156 00DA CLR REGL_18MS
518 00157 00DB CLR REGR_18MS
519 00158 1578 JMP KEY_SCAN_EXIT
520
521 00159 RIGHT_UP_S6:
522
523 00159 0C17 JBC FLAG0,KEY_LONG
524 0015A 155E JMP KEY6
525 0015B 0A17 BS FLAG0,KEY_LONG
526 0015C 1832 MOV A,@0X32 ;delay 1s for long key
527 0015D 0061 MOV KEYTIME_R,A
528 0015E KEY6: ;short key
529 0015E 05E1 DJZ KEYTIME_R
530 0015F 1578 JMP KEY_SCAN_EXIT
531
532 00160 0561 INC KEYTIME_R
533 00161 0817 BC FLAG0,KEY_LONG
534 00162 0563 INC SPEED_R
535 00163 1809 MOV A,@0X09
536 00164 0323 XOR A,SPEED_R
537 00165 0E83 JBS STATUS,Z
538 00166 1578 JMP KEY_SCAN_EXIT
539 00167 1808 MOV A,@0X08
540 00168 0063 MOV SPEED_R,A
541 00169 1578 JMP KEY_SCAN_EXIT
542
543 0016A RIGHT_DOWN_S8:
544 0016A 0C17 JBC FLAG0,KEY_LONG
545 0016B 156F JMP KEY8
546 0016C 0A17 BS FLAG0,KEY_LONG
547 0016D 1832 MOV A,@0X32 ;long key delay time 100*10ms=1s
548 0016E 0061 MOV KEYTIME_R,A
549 0016F KEY8: ;short key
550 0016F 05E1 DJZ KEYTIME_R
551 00170 1578 JMP KEY_SCAN_EXIT
552
553 00171 0561 INC KEYTIME_R
554 00172 0817 BC FLAG0,KEY_LONG
555 00173 0463 MOV SPEED_R,SPEED_R
556 00174 0C83 JBC STATUS,Z
557 00175 1578 JMP KEY_SCAN_EXIT
558 00176 01E3 DEC SPEED_R
559 00177 1578 JMP KEY_SCAN_EXIT
560
561
562
563 00178 KEY_SCAN_EXIT:
564 00178 1800 MOV A,@0X00 ;while the bit is 0 set the bit as output
565 00179 0006 IOW P6CR
566
567 0017A 1860 MOV A,@0X60
568 0017B 0005 IOW P5CR
569 0017C 180F MOV A,@0X0F ;pull high register enable p64_p67 disable p60-p63
570 0017D 000D IOW PHCR
571
572 0017E 0414 MOV A,R6_BUF
573 0017F 0046 MOV PORT6,A
574 00180 0415 MOV A,R5_BUF
575 00181 0045 MOV PORT5,A
576
577 00182 DISPLAY:
578
579
580
581 00182 0425 MOV A,MODE
582 00183 03C2 ADD PC,A
583 00184 1588 JMP DIS_MODE1
584 00185 15A8 JMP DIS_MODE2
585 00186 15A2 JMP DIS_MODE3
586 00187 15F3 JMP MOTORPLAY
587
588
589 ;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
590
591 00188 DIS_MODE1:
592 00188 0424 MOV A,LED_DUTY
593 00189 03C2 ADD PC,A ;
594 0018A 158E JMP LEDDUTY0
595 0018B 1593 JMP LEDDUTY1
596 0018C 1598 JMP LEDDUTY2
597 0018D 159D JMP LEDDUTY3
598
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -