⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 clk.lst

📁 這是一個非常好的key scan and display控制電路和程式
💻 LST
📖 第 1 页 / 共 5 页
字号:
040D                00791 SK1
040D 02F1           00792         DECFSZ  TEMP, F         ;REDUCE TEMP
040E 0800           00793         RETLW   0               ;11 THEN RETURN
040F 0A2A           00794         GOTO    DEMKS           ;10, DATA ENTRY MODE
                    00795 ;
                    00796 ;REAL TIME MODE KEY SERVICE
0410                00797 RTMKS
0410 09BA           00798         CALL    CHK_AL_KEYS     ;CHK ALARM KEYS
0411 0D00           00799         IORLW   0               ;SEE IF NZ RET
0412 0643           00800         BTFSC   STATUS,Z        ;NZ THEN SKIP
0413 0800           00801         RETLW   0               ;ELSE RETURN
0414 0C0F           00802         MOVLW   SET_KEY         ;SEE IF SET KEY
0415 0193           00803         XORWF   NEW_KEY,W       ;       /
0416 0643           00804         BTFSC   STATUS,Z        ;NO THEN SKIP
0417 0A91           00805         GOTO    SERV_SET_RTM    ;SERVICE SET KEY
0418 0C0A           00806         MOVLW   ALARM_KEY       ;ALARM KEY?
0419 0193           00807         XORWF   NEW_KEY,W       ;    /
041A 0643           00808         BTFSC   STATUS,Z        ;NO THEN SKIP
041B 0AAB           00809         GOTO    SERV_ALARM_RTM  ;ELSE SERVICE ALARM
041C                00810 IGNORE_KEY
041C 0800           00811         RETLW   0               ;ELSE RETURN
                    00812 ;
                    00813 ;ALARM TIME MODE KEY SERVICE
041D                00814 ATMKS
041D 09BA           00815         CALL    CHK_AL_KEYS     ;CHECK ALRM KEYS
041E 0D00           00816         IORLW   0               ;CHECK IF 0
041F 0643           00817         BTFSC   STATUS,Z        ;NZ THEN SKIP
0420 0800           00818         RETLW   0               ;ELSE RETURN
MPASM 01.40 Released              CLK.ASM   1-16-1997  13:07:37         PAGE 22
Alarm Clock

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

0421 0C0F           00819         MOVLW   SET_KEY         ;SEE IF SET KEY
0422 0193           00820         XORWF   NEW_KEY,W       ;       /
0423 0643           00821         BTFSC   STATUS,Z        ;NO THEN SKIP
0424 0A9C           00822         GOTO    SERV_SET_ATM
0425 0C0A           00823         MOVLW   ALARM_KEY       ;GET ALARM KEY
0426 0193           00824         XORWF   NEW_KEY,W       ;SEE IF HIT
0427 0643           00825         BTFSC   STATUS,Z        ;NO THEN SKIP
0428 0AA2           00826         GOTO    SERV_ALARM_ATM  ;ELSE SERVICE
0429 0A1C           00827         GOTO    IGNORE_KEY
                    00828 ;
                    00829 ;DATA ENTRY MODE KEY SERVICE
042A                00830 DEMKS
042A 09BA           00831         CALL    CHK_AL_KEYS     ;CHECK ALARM KEYS
042B 0D00           00832         IORLW   0               ;CHK IF 0
042C 0643           00833         BTFSC   STATUS,Z        ;NZ THEN SKIP
042D 0800           00834         RETLW   0               ;ELSE RETURN
042E 0C0F           00835         MOVLW   SET_KEY         ;IF SET KEY THEN END
042F 0193           00836         XORWF   NEW_KEY,W       ;       /
0430 0643           00837         BTFSC   STATUS,Z        ;NO THEN SKIP
0431 0A3F           00838         GOTO    DEMKS_END       ;GOTO END
0432 0C0B           00839         MOVLW   CE_KEY          ;IF CLEAR ENTRY
0433 0193           00840         XORWF   NEW_KEY,W       ;       /
0434 0643           00841         BTFSC   STATUS,Z        ;SKIP IF NO
0435 0A48           00842         GOTO    DEMKS_END_1     ;ABANDON ENTRY
0436 0737           00843         BTFSS   ENTFLG,HR10     ;10'S HRS DONE?
0437 0A54           00844         GOTO    ENT_HR_10       ;NO THEN GET
0438 0757           00845         BTFSS   ENTFLG,HR       ;HRS DONE?
0439 0A5F           00846         GOTO    ENT_HRS         ;NO THEN GET
043A 0777           00847         BTFSS   ENTFLG,MIN10    ;10'S MIN. DONE?
043B 0A72           00848         GOTO    ENT_MIN_10      ;NO THEN GET
043C 0797           00849         BTFSS   ENTFLG,MIN      ;MIN DONE?
043D 0A7F           00850         GOTO    ENT_MIN         ;NO THEN GET
043E 0A87           00851         GOTO    ENT_AM_PM       ;NO THEN GET
043F                00852 DEMKS_END
043F 0717           00853         BTFSS   ENTFLG,RTATS    ;GET OLD STATUS
0440 0A4D           00854         GOTO    LD_RTM          ;LOAD IN TIME
0441 020E           00855         MOVF    MENTRY,W        ;LD IN ALARM
0442 002C           00856         MOVWF   MALARM          ;       /
0443 020F           00857         MOVF    HENTRY,W        ;     /
0444 002D           00858         MOVWF   HALARM          ;   /
0445 0450           00859         BCF     FLAG,ALRMLED    ;CLEAR FLAG
0446 0618           00860         BTFSC   ALFLAG,ALONOF   ;SEE IF ON-OFF
0447 0550           00861         BSF     FLAG,ALRMLED    ;ELSE SET
0448                00862 DEMKS_END_1
0448 0410           00863         BCF     FLAG,0          ;RTM MODE
0449 0430           00864         BCF     FLAG,1          ;    /
044A 0490           00865         BCF     FLAG,FLASH      ;STOP FLASH
044B                00866 SERV_COM_RET
044B 05B0           00867         BSF     FLAG,KEY_BEEP
044C 0800           00868         RETLW   0               ;RETURN
                    00869 ;
044D                00870 LD_RTM
044D 020E           00871         MOVF    MENTRY,W        ;LD IN RTM
MPASM 01.40 Released              CLK.ASM   1-16-1997  13:07:37         PAGE 23
Alarm Clock

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

044E 002A           00872         MOVWF   MTMR            ;       /
044F 020F           00873         MOVF    HENTRY,W        ;     /
0450 002B           00874         MOVWF   HTMR            ;   /
0451 0068           00875         CLRF    MSTMR           ;CLR TIME
0452 0069           00876         CLRF    STMR            ;  /
0453 0A48           00877         GOTO    DEMKS_END_1     ;GO BACK
                    00878 ;
0454                00879 ENT_HR_10
0454 0213           00880         MOVF    NEW_KEY,W       ;SEE IF 0
0455 0643           00881         BTFSC   STATUS,Z        ;NZ THEN SKIP
0456 0A5C           00882         GOTO    LD_HENTRY_0     ;LOAD 0
0457 02D3           00883         DECFSZ  NEW_KEY,0       ;1 THE SKIP
0458 0A1C           00884         GOTO    IGNORE_KEY      ;ELSE IGNORE KEY
0459 058F           00885         BSF     HENTRY,4        ;SET TO 1
045A 0537           00886         BSF     ENTFLG,HR10     ;SET FLAG
045B 0A4B           00887         GOTO    SERV_COM_RET    ;GO GET NEXT
045C                00888 LD_HENTRY_0
045C 048F           00889         BCF     HENTRY,4        ;SET TO 0
045D 0537           00890         BSF     ENTFLG,HR10
045E 0A4B           00891         GOTO    SERV_COM_RET    ;
045F                00892 ENT_HRS
045F 0C0F           00893         MOVLW   HENTRY          ;USE INDIRECT ADDR.
0460 0024           00894         MOVWF   FSR             ;       /
0461 068F           00895         BTFSC   HENTRY,4        ;SEE IF 0
0462 0A6D           00896         GOTO    ALLOW0_2        ;YES THEN 0,1&2
0463 0C0A           00897         MOVLW   D'10'           ;SEE IF 0 - 9
0464 0093           00898         SUBWF   NEW_KEY,W       ;       /
0465 0603           00899         BTFSC   STATUS,C        ;IF C THEN SKIP
0466 0A1C           00900         GOTO    IGNORE_KEY      ;ELSE IGNORE
0467                00901 ENT_LO_COM1
0467 0557           00902         BSF     ENTFLG,HR       ;SET FLAG
0468                00903 ENT_LO_COM
0468 0200           00904         MOVF    F0,W            ;LD HRS
0469 0EF0           00905         ANDLW   B'11110000'     ;MASK LO NIBL
046A 0113           00906         IORWF   NEW_KEY,W       ;OR NEW KEY
046B 0020           00907         MOVWF   F0              ;SAVE BACK
046C 0A4B           00908         GOTO    SERV_COM_RET    ;GET NEXT
046D                00909 ALLOW0_2
046D 0C03           00910         MOVLW   D'3'            ;SEE IF 0 - 2
046E 0093           00911         SUBWF   NEW_KEY,W       ;       /
046F 0603           00912         BTFSC   STATUS,C        ;<3 THEN SKIP
0470 0A1C           00913         GOTO    IGNORE_KEY
0471 0A67           00914         GOTO    ENT_LO_COM1     ;       /
                    00915 ;
0472                00916 ENT_MIN_10
0472 0C0E           00917         MOVLW   MENTRY          ;DO INDIRECT ADDR.
0473 0024           00918         MOVWF   FSR             ;       /
0474 0C06           00919         MOVLW   D'6'            ;ALLOW 0 - 5
0475 0093           00920         SUBWF   NEW_KEY,W       ;       /
0476 0603           00921         BTFSC   STATUS,C        ;IF C THEN SKIP
0477 0A1C           00922         GOTO    IGNORE_KEY      ;ELSE IGNORE
0478 0380           00923         SWAPF   F0,W            ;SWAP AND GET
0479 0EF0           00924         ANDLW   B'11110000'     ;MASK LO NIBL
MPASM 01.40 Released              CLK.ASM   1-16-1997  13:07:37         PAGE 24
Alarm Clock

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

047A 0113           00925         IORWF   NEW_KEY,W       ;OR NEW KEY
047B 0020           00926         MOVWF   F0              ;SAVE BACK
047C 03A0           00927         SWAPF   F0, F           ;SWAP BACK
047D 0577           00928         BSF     ENTFLG,MIN10
047E 0A4B           00929         GOTO    SERV_COM_RET    ;GET NEXT
                    00930 ;
047F                00931 ENT_MIN
047F 0C0E           00932         MOVLW   MENTRY          ;DO INDIRECT
0480 0024           00933         MOVWF   FSR             ;       /
0481 0C0A           00934         MOVLW   D'10'           ;ALLOW 0 - 9
0482 0093           00935         SUBWF   NEW_KEY,W       ;SEE IF >
0483 0603           00936         BTFSC   STATUS,C        ;NO THEN SKIP
0484 0A1C           00937         GOTO    IGNORE_KEY      ;ELSE IGNORE
0485 0597           00938         BSF     ENTFLG,MIN      ;SET FLAG
0486 0A68           00939         GOTO    ENT_LO_COM      ;       /
                    00940 ;
0487                00941 ENT_AM_PM
0487 0C0D           00942         MOVLW   AM_PM_KEY       ;AM/PM KEY?
0488 0193           00943         XORWF   NEW_KEY,W       ;    /
0489 0743           00944         BTFSS   STATUS,Z        ;YES THEN SKIP
048A 0A1C           00945         GOTO    IGNORE_KEY
048B 07EF           00946         BTFSS   HENTRY,AM_PM    ;TEST BIT
048C 0A8F           00947         GOTO    SETAMPM         ;ELSE SET
048D 04EF           00948         BCF     HENTRY,AM_PM    ;CLEAR FLAG
048E 0A4B           00949         GOTO    SERV_COM_RET    ;GOTO END
048F                00950 SETAMPM
048F 05EF           00951         BSF     HENTRY,AM_PM    ;SET FLAG
0490 0A4B           00952         GOTO    SERV_COM_RET
                    00953 ;
MPASM 01.40 Released              CLK.ASM   1-16-1997  13:07:37         PAGE 25
Alarm Clock

LOC  OBJECT CODE     LINE SOURCE TEXT
  VALUE

                    00954     PAGE
                    00955 ;
0491                00956 SERV_SET_RTM
0491 020A           00957         MOVF    MTMR,W          ;TRANSFER TIME
0492 002E           00958         MOVWF   MENTRY          ;TO DATA ENTRY
0493 020B           00959         MOVF    HTMR,W          ;       /
0494 002F           00960         MOVWF   HENTRY          ;     /
0495                00961 SERV_COM
0495 0210           00962         MOVF    FLAG,W          ;SAVE IN W
0496 0E01           00963         ANDLW   B'00000001'     ;ATM OR RTM MODE?
0497 0037           00964         MOVWF   ENTFLG          ;SAVE IN ENTFLG
0498 0CF2           00965         MOVLW   B'11110010'     ;FORCE 1S
0499 0130           00966         IORWF   FLAG, F         ;    /
049A 0410           00967         BCF     FLAG,0          ;   /
049B 0800           00968         RETLW   0
                    00969 ;
049C                00970 SERV_SET_ATM
049C 020C           00971         MOVF    MALARM,W        ;TRANSFER ALARM
049D 002E           00972         MOVWF   MENTRY          ;TO DATA ENTRY
049E 020D           00973         MOVF    HALARM,W        ;       /
049F 002F           00974         MOVWF   HENTRY          ;     /
04A0 0518           00975         BSF     ALFLAG,ALONOF   ;SET FLAG
04A1 0A95           00976         GOTO    SERV_COM        ;GOTO COMMON
                    00977 ;
04A2                00978 SERV_ALARM_ATM
04A2 0718           00979         BTFSS   ALFLAG,ALONOF   ;TEST ON/OFF
04A3 0AA6           00980         GOTO    SET_ALONOF      ;SET ON/OF FLG
04A4 0418           00981         BCF     ALFLAG,ALONOF   ;CLEAR FLAG
04A5 0AA7           00982         GOTO    SERV_ATM_COM    ;RET THRO COM
04A6                00983 SET_ALONOF        
04A6 0518           00984         BSF     ALFLAG,ALONOF   ;SET FLAG
04A7                00985 SERV_ATM_COM
04A7 05B0           00986         BSF     FLAG,KEY_BEEP   ;BEEP
04A8 0CF0           00987         MOVLW   B'11110000'     ;CLEAR SEC COUNT
04A9 0176           00988         ANDWF   MIN_SEC, F      ;       /
04AA 0800           00989         RETLW   0               ;RETURN
                    00990 ;
04AB                00991 SERV_ALARM_RTM
04AB 05B0           00992         BSF     FLAG,KEY_BEEP   ;SET BEEP FLAG
04AC 0510           00993         BSF     FLAG,0          ;SET TO ALARM TIME
04AD 0430           00994         BCF     FLAG,1          ;       /
04AE 0C05           00995         MOVLW   D'0

⌨️ 快捷键说明

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