clk.lst

来自「這是一個非常好的key scan and display控制電路和程式」· LST 代码 · 共 1,145 行 · 第 1/5 页

LST
1,145
字号
00A1 0A9C           00399         GOTO    GKV1            ;LOOP
00A2                00400 GO_RESET
00A2 05A3           00401         BSF     STATUS,PA0      ;SET MSB
00A3 05C3           00402         BSF     STATUS,PA1      ;       /
00A4 0BFF           00403         GOTO    SYS_RESET       ;ELSE BIG ERROR
00A5                00404 GET_HI_KEY
00A5 00F1           00405         DECF    TEMP, F         ;REDUCE BY 1
00A6 0393           00406         SWAPF   NEW_KEY,W       ;GET HI NIBBLE
00A7 0E0F           00407         ANDLW   B'00001111'     ;       /
00A8 0034           00408         MOVWF   KEY_NIBL        ;SAVE
00A9 0211           00409         MOVF    TEMP,W          ;GET OFFSET TO TBL
00AA 01E2           00410         ADDWF   PC, F           ;LOAD IN PC
00AB 0AAF           00411         GOTO    GET147A         ;JUMP TO NEXT PART
00AC 0AB8           00412         GOTO    GET2580         ;       /
00AD 0ABA           00413         GOTO    GET369B         ;     /
00AE 0ABC           00414         GOTO    GETCDEF         ;   /
                    00415 ;
00AF                00416 GET147A
00AF 0C04           00417         MOVLW   4               ;SET COUNT TO 4
00B0                00418 GETCOM
MPASM 01.40 Released              CLK.ASM   1-16-1997  13:07:37         PAGE 11
Alarm Clock

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

00B0 0031           00419         MOVWF   TEMP            ;
00B1                00420 GETCOM1
00B1 0503           00421         BSF     STATUS,C        ;SET CARRY
00B2 0334           00422         RRF     KEY_NIBL, F     ;ROTATE RIGHT
00B3 0703           00423         BTFSS   STATUS,C        ;CHECK IF DONE
00B4 0ABE           00424         GOTO    KEY_TBL         ;JUMP TO TABLE
00B5 02F1           00425         DECFSZ  TEMP, F         ;DEC COUNT
00B6 0AB1           00426         GOTO    GETCOM1         ;LOOP
00B7 0AA2           00427         GOTO    GO_RESET        ;ELSE ERROR
                    00428 ;
00B8                00429 GET2580
00B8 0C08           00430         MOVLW   8               ;SET COUNT TO 8
00B9 0AB0           00431         GOTO    GETCOM
                    00432 ;
00BA                00433 GET369B
00BA 0C0C           00434         MOVLW   D'12'           ;SET COUNT TO 12
00BB 0AB0           00435         GOTO    GETCOM
                    00436 ;
00BC                00437 GETCDEF
00BC 0C10           00438         MOVLW   D'16'           ;SET COUNT TO 16
00BD 0AB0           00439         GOTO    GETCOM
MPASM 01.40 Released              CLK.ASM   1-16-1997  13:07:37         PAGE 12
Alarm Clock

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00440     PAGE
                    00441 ;
00BE                00442 KEY_TBL 
00BE 00F1           00443         DECF    TEMP, F         ;REDUCE BY 1
00BF 0211           00444         MOVF    TEMP,W          ;GET IN W
00C0 01E2           00445         ADDWF   PC, F           ;JUMP TO TABLE
00C1 0801           00446         RETLW   1               ;KEY 1
00C2 0804           00447         RETLW   4               ;KEY 4
00C3 0807           00448         RETLW   7               ;KEY 7
00C4 080A           00449         RETLW   0A              ;KEY A
00C5 0802           00450         RETLW   2               ;KEY 2
00C6 0805           00451         RETLW   5               ;KEY 5
00C7 0808           00452         RETLW   8               ;KEY 8
00C8 0800           00453         RETLW   0               ;KEY 0
00C9 0803           00454         RETLW   3               ;KEY 3
00CA 0806           00455         RETLW   6               ;KEY 6
00CB 0809           00456         RETLW   9               ;KEY 9
00CC 080B           00457         RETLW   0B              ;KEY B
00CD 080C           00458         RETLW   0C              ;KEY C
00CE 080D           00459         RETLW   0D              ;KEY D
00CF 080E           00460         RETLW   0E              ;KEY E
00D0 080F           00461         RETLW   0F              ;KEY F
                    00462 ;
MPASM 01.40 Released              CLK.ASM   1-16-1997  13:07:37         PAGE 13
Alarm Clock

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00463     PAGE
                    00464 ;
00D1                00465 MASK_ANNC
00D1 0CFC           00466         MOVLW   B'11111100'     ;CHK IF DIGIT 1
00D2 0186           00467         XORWF   PORT_B,0        ;       /
00D3 0643           00468         BTFSC   STATUS,Z        ;NO THEN SKIP
00D4 0AE5           00469         GOTO    MASK_ALARM      ;ELSE MASK ALARM
00D5 0CF3           00470         MOVLW   B'11110011'     ;CHK IF DIGIT 2
00D6 0186           00471         XORWF   PORT_B,0        ;       /
00D7 0643           00472         BTFSC   STATUS,Z        ;NO THEN SKIP
00D8 0AE8           00473         GOTO    MASK_COLON      ;ELSE MASK COLON
00D9 0CCF           00474         MOVLW   B'11001111'     ;CHK IF DIGIT 3
00DA 0186           00475         XORWF   PORT_B,0        ;       /
00DB 0643           00476         BTFSC   STATUS,Z        ;NO THEN SKIP
00DC 0AE1           00477         GOTO    MASK_PM         ;ELSE MASK PM
00DD                00478 MASK_AM
00DD 02A4           00479         INCF    FSR, F          ;INC FSR
00DE 07E0           00480         BTFSS   F0,AM_PM        ;IF 0 THEN AM
00DF 05F2           00481         BSF     DIGIT,7         ;SET MSB
00E0 0AEB           00482         GOTO    BLNK_LEAD_0     ;NEXT
00E1                00483 MASK_PM
00E1 02A4           00484         INCF    FSR, F          ;INC FSR
00E2 06E0           00485         BTFSC   F0,AM_PM        ;IF 1 THEN PM
00E3 05F2           00486         BSF     DIGIT,7         ;SET MSB
00E4 0AEB           00487         GOTO    BLNK_LEAD_0     ;NEXT
00E5                00488 MASK_ALARM
00E5 0650           00489         BTFSC   FLAG,ALRMLED    ;1 THEN LIGHT LED
00E6 05F2           00490         BSF     DIGIT,7         ;      /
00E7 0AEB           00491         GOTO    BLNK_LEAD_0     ;NEXT
00E8                00492 MASK_COLON
00E8 0670           00493         BTFSC   FLAG,COLON      ;1 THEN LIGHT LED
00E9 05F2           00494         BSF     DIGIT,7         ;       /
00EA 0AEB           00495         GOTO    BLNK_LEAD_0     ;NEXT
                    00496 ;
00EB                00497 BLNK_LEAD_0
00EB 0210           00498         MOVF    FLAG,W          ;GET IN W
00EC 0E03           00499         ANDLW   B'00000011'     ;SEE IF IN DEM
00ED 0F02           00500         XORLW   B'00000010'     ;CHECK
00EE 0643           00501         BTFSC   STATUS,Z        ;NO THEN DO
00EF 0800           00502         RETLW   0               ;ELSE RETURN
00F0 0CFC           00503         MOVLW   B'11111100'     ;SEE IF DIGIT 1
00F1 0186           00504         XORWF   PORT_B,0        ;       /
00F2 0743           00505         BTFSS   STATUS,Z        ;YES THEN SKIP
00F3 0800           00506         RETLW   0               ;RETURN
00F4 0C3F           00507         MOVLW   B'00111111'     ;ELSE MASK G AND ANUNC
00F5 0152           00508         ANDWF   DIGIT,0         ;GET IN W
00F6 0F3F           00509         XORLW   B'00111111'     ;SEE IF 0
00F7 0743           00510         BTFSS   STATUS,Z        ;YES THEN SKIP
00F8 0800           00511         RETLW   0               ;RETURN
00F9 0C80           00512         MOVLW   B'10000000'     ;ELSE BLANK D1
00FA 0172           00513         ANDWF   DIGIT, F        ;       /
00FB 0800           00514         RETLW   0               ;RETURN
                    00515 ;
MPASM 01.40 Released              CLK.ASM   1-16-1997  13:07:37         PAGE 14
Alarm Clock

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00516 ;
                    00517 ;
MPASM 01.40 Released              CLK.ASM   1-16-1997  13:07:37         PAGE 15
Alarm Clock

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00518     PAGE
                    00519 ;
                    00520 ;THIS ROUTINE SETS UP PORTS A,B,C AND THE INTERNAL
                    00521 ;REAL TIME CLOCK COUNTER.
00FC                00522 INIT_CLK
00FC 0C0F           00523         MOVLW   B'00001111'     ;MAKE ACTIVE HIGH
00FD 0025           00524         MOVWF   PORT_A          ;       /
00FE 0C00           00525         MOVLW   B'00000000'     ;SET PORT A AS OUTPUTS
00FF 0005           00526         TRIS    PORT_A
                    00527 ;
0100 0CFF           00528         MOVLW   B'11111111'     ;SET LEVELS HIGH
0101 0026           00529         MOVWF   PORT_B          ;       /
0102 0C00           00530         MOVLW   B'00000000'     ;SET PORT B AS OUTPUTS
0103 0006           00531         TRIS    PORT_B
                    00532 ;
0104 0C00           00533         MOVLW   B'00000000'     ;SET LEVELS LOW
0105 0027           00534         MOVWF   PORT_C          ;       /
0106 0C00           00535         MOVLW   B'00000000'     ;SET PORT C AS OUTPUTS
0107 0007           00536         TRIS    PORT_C          ;       /
                    00537 ;
0108 0C04           00538         MOVLW   B'00000100'     ;SET UP PRESCALER
0109 0002           00539         OPTION                  ;       /
                    00540 ;
010A 0C60           00541         MOVLW   MSEC5           ;RTCC = 5 mSEC
010B 0021           00542         MOVWF   RTCC            ;       /
010C 0068           00543         CLRF    MSTMR           ;CLEAR MSTMR
010D 0069           00544         CLRF    STMR            ; & SEC TMR
010E 006A           00545         CLRF    MTMR            ;& MINUTES
010F 0C12           00546         MOVLW   12H             ;MAKE HRS = 12
0110 002B           00547         MOVWF   HTMR            ;     /
0111 002D           00548         MOVWF   HALARM          ;MAKE HRS = 12
0112 006C           00549         CLRF    MALARM          ;       /
0113 0C03           00550         MOVLW   B'00000011'     ;SET TO TEST MODE        
0114 0030           00551         MOVWF   FLAG            ;       /
0115 0078           00552         CLRF    ALFLAG          ;CLEAR ALL FLAG
0116 0079           00553         CLRF    AAFLAG          ;       /
0117 0077           00554         CLRF    ENTFLG          ;      /
0118 0A01           00555         GOTO    TEST_HARDWARE
                    00556 ;
                    00557 ;All routines related to timer updates are located at
                    00558 ;address 200 and above.
MPASM 01.40 Released              CLK.ASM   1-16-1997  13:07:37         PAGE 16
Alarm Clock

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00559     PAGE
0200                00560         ORG     0200
                    00561 ;
0200                00562 UPDATE_TIMERS
0200 0201           00563         MOVF    RTCC,W          ;SEE IF RTCC = 0
0201 0743           00564         BTFSS   STATUS,Z        ;IF 0 THEN SKIP
0202 0A00           00565         GOTO    UPDATE_TIMERS   ;ELSE LOOP
0203 0C60           00566         MOVLW   MSEC5           ;RTCC = 5 mSEC
0204 0021           00567         MOVWF   RTCC            ;       /
0205 02A8           00568         INCF    MSTMR, F        ;INC 5 MILLI SEC
0206 06D0           00569         BTFSC   FLAG,KEY_HIT    ;NO KEY HIT THEN SKIP
0207 0A70           00570         GOTO    CHK_DE_BOUNCE   ;ELSE DEBOUNCE
0208                00571 UP_TMR_1
0208 0210           00572         MOVF    FLAG,W          ;ALARM MODE?
0209 0E03           00573         ANDLW   B'00000011'     ;       /
020A 0F01           00574         XORLW   B'00000001'     ;       /
020B 0743           00575         BTFSS   STATUS,Z        ;SKIP IF YES
020C 0A14           00576         GOTO    UP_TMR_2        ;DO NEXT
020D 0550           00577         BSF     FLAG,ALRMLED    ;LIGHT LED
020E 0570           00578         BSF     FLAG,COLON      ;       /
020F 0C64           00579         MOVLW   D'100'          ;IF 1/2 SEC
0210 0088           00580         SUBWF   MSTMR,0         ; BLINK
0211 0703           00581         BTFSS   STATUS,C        ;  /
0212 0450           00582         BCF     FLAG,ALRMLED    ;ALARM LED
0213 0A19           00583         GOTO    UP_TMR_3        ;SKIP
0214                00584 UP_TMR_2
0214 0570           00585         BSF     FLAG,COLON      ;TURN ON
0215 0C64           00586         MOVLW   D'100'          ;<100 BLINK COLON
0216 0088           00587         SUBWF   MSTMR,0         ;       /
0217 0703           00588         BTFSS   STATUS,C        ;YES THEN SKIP
0218 0470           00589         BCF     FLAG,COLON      ;ELSE TURN OFF
0219                00590 UP_TMR_3
0219 0208           00591         MOVF    MSTMR,0         ;GET MSTMR IN W

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?