📄 main.lst
字号:
FF FF FF FF
FF FF FF
505 ;second watch counter register
506 0000006D FF GB_10ms DS 1 ;10ms timer base
507 0000006E FF GB_60s DS 1 ;60s timer base
508 0000006F FF GB_60m DS 1 ;60m timer base
509 ;interrupt
510 00000070 FF GB_10msFlag DS 1 ;10ms flag
511 ;**********************************************************************************
512 000001E0 .DATA ;Define data storage section
513 ;**********************************************************************************
514 ;* *
515 ;* Program Area *
516 ;* *
517 ;**********************************************************************************
518 0000F000 .CODE
519 ;**********************************************************************************
520 ;* *
521 ;* Power on Reset Process *
522 ;* *
523 ;**********************************************************************************
524 0000F000 V_Reset:
525 0000F000 78 sei ;Disable interrupt
526 0000F001 A2 FF ldx #C_STACK_BOTTOM ;Initial stack pointer at $00FF
527 0000F003 9A txs ;Transfer to stack point
528
529 0000F004 20 A1 F0 jsr F_LCD_Init
530 0000F007 20 1B F0 jsr F_Watch_Init
531
532 0000F00A 58 cli
533 0000F00B ?L_Main_Loop: ;The example for test
534 0000F00B A5 70 lda GB_10msFlag
535 0000F00D C9 0A cmp #10
536 0000F00F 90 FA bcc ?L_Main_Loop
537 0000F011 A9 00 lda #0
538 0000F013 85 70 sta GB_10msFlag
539
540 0000F015 20 32 F0 jsr F_WatchShowing
541
542 0000F018 ?L_LoopExit:
543 0000F018 4C 0B F0 jmp ?L_Main_Loop
544
545
546 ;====================================================================================
547 ; Function: F_Watch_Init
548 ; Description: 1.024ms set, varaible init
549 ; Input: none
550 ; Output: none
551 ; Destroy: A
552 ; Stacks: 1
553 ;====================================================================================
554 0000F01B F_Watch_Init:
555 ;------------------------------------------------------
556 ;1.024ms
557 0000F01B A9 70 lda #C_TBASE_Div_8k ;1.024ms
558 0000F01D 85 2D sta P_BUZ_Ctrl
559 0000F01F A9 20 lda #C_INT_ITVALIE
560 0000F021 85 27 sta P_INT_Ctrl2
561 0000F023 A9 FF lda #$FF
562 0000F025 85 26 sta P_INT_Flag2
563
564 0000F027 A9 00 lda #0
565 0000F029 85 70 sta GB_10msFlag
566 0000F02B 85 6D sta GB_10ms
567 0000F02D 85 6E sta GB_60s
568 0000F02F 85 6F sta GB_60m
569 0000F031 60 rts
570 ;====================================================================================
571 ; Function: F_WatchShowing
572 ; Description: second watch counting per 10ms
573 ; Input: none
574 ; Output: none
575 ; Destroy: A,X,Y
576 ; Stacks: 4
577 ;====================================================================================
578 0000F032 F_WatchShowing:
579 0000F032 F8 sed
580 0000F033 A5 6D lda GB_10ms
581 0000F035 18 clc
582 0000F036 69 01 adc #1 ;10ms add 1
583 0000F038 85 6D sta GB_10ms
584 0000F03A 90 4C bcc ?L_10msshow
585
586 0000F03C 18 clc
587 0000F03D A5 6E lda GB_60s
588 0000F03F 69 01 adc #1 ;60s add 1
589 0000F041 85 6E sta GB_60s
590 0000F043 C9 60 cmp #$60
591 0000F045 90 2A bcc ?L_60sshow
592 0000F047 A9 00 lda #0
593 0000F049 85 6E sta GB_60s
594
595 0000F04B 18 clc
596 0000F04C A5 6F lda GB_60m
597 0000F04E 69 01 adc #1 ;60m add 1
598 0000F050 85 6F sta GB_60m
599 0000F052 C9 60 cmp #$60
600 0000F054 90 04 bcc ?L_CouExit
601 0000F056 A9 00 lda #0
602 0000F058 85 6F sta GB_60m
603 0000F05A ?L_CouExit:
604 0000F05A D8 cld
605 0000F05B ?L_60mshow: ;miniute showing
606 0000F05B A5 6F lda GB_60m
607 0000F05D 29 0F and #$F
608 0000F05F A0 07 ldy #7
609 0000F061 20 D3 F0 jsr F_LCDShow
610 0000F064 A5 6F lda GB_60m
611 0000F066 29 F0 and #$F0
612 0000F068 4A lsr a
613 0000F069 4A lsr a
614 0000F06A 4A lsr a
615 0000F06B 4A lsr a
616 0000F06C A0 08 ldy #8
617 0000F06E 20 D3 F0 jsr F_LCDShow
618 0000F071 ?L_60sshow: ;second showing
619 0000F071 D8 cld
620 0000F072 A5 6E lda GB_60s
621 0000F074 29 0F and #$F
622 0000F076 A0 05 ldy #5
623 0000F078 20 D3 F0 jsr F_LCDShow
624 0000F07B A5 6E lda GB_60s
625 0000F07D 29 F0 and #$F0
626 0000F07F 4A lsr a
627 0000F080 4A lsr a
628 0000F081 4A lsr a
629 0000F082 4A lsr a
630 0000F083 A0 06 ldy #6
631 0000F085 20 D3 F0 jsr F_LCDShow
632 0000F088 ?L_10msshow: ;ms showing
633 0000F088 D8 cld
634 0000F089 A5 6D lda GB_10ms
635 0000F08B 29 0F and #$F
636 0000F08D A0 03 ldy #3
637 0000F08F 20 D3 F0 jsr F_LCDShow
638 0000F092 A5 6D lda GB_10ms
639 0000F094 29 F0 and #$F0
640 0000F096 4A lsr a
641 0000F097 4A lsr a
642 0000F098 4A lsr a
643 0000F099 4A lsr a
644 0000F09A A0 04 ldy #4
645 0000F09C 20 D3 F0 jsr F_LCDShow
646 0000F09F EA nop
647 0000F0A0 60 rts
648 ;====================================================================================
649 ; Function: F_LCD_Init
650 ; Description: set IO ;black screen ;clear showing buffer
651 ; Input: none
652 ; Output: none
653 ; Destroy: A,X,Y
654 ; Stacks: 1
655 ;====================================================================================
656 0000F0A1 F_LCD_Init:
657 ;---------------------------------------------
658 ;IO set: PB0----Data PB1----ACK PB2----STB
659 0000F0A1 A5 09 lda P_IOB_Attrib
660 0000F0A3 29 F8 and #%11111000
661 0000F0A5 85 09 sta P_IOB_Attrib
662 0000F0A7 A5 05 lda P_IOB_Dir
663 0000F0A9 29 F8 and #%11111000
664 0000F0AB 09 05 ora #%00000101
665 0000F0AD 85 05 sta P_IOB_Dir
666 0000F0AF A5 5A lda P_IOB_Buf
667 0000F0B1 29 F8 and #%11111000
668 0000F0B3 85 01 sta P_IOB_Data
669 0000F0B5 85 5A sta P_IOB_Buf
670 ;---------------------------------------------
671 ;screen black
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -