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

📄 main.lst

📁 用51单片机做的时钟
💻 LST
📖 第 1 页 / 共 4 页
字号:
0304 E53C            488             MOV     A,      KEY_VOL
0306 B40102          489             CJNE    A,      #01H,   MUNITE_KEY2     ;按功能键的处理
0309 800F            490             SJMP    CHANGE_SECOND
030B B40206          491     MUNITE_KEY2:CJNE        A,      #02H,   MUNITE_KEY3     ;按调整键的处理
030E 913B            492             CALL    INC_MUNITE
0310 7183            493             CALL    SAVE_12887
0312 80D5            494             SJMP    CHANGE_MUNITE
0314 B404D2          495     MUNITE_KEY3:CJNE        A,      #04H,   CHANGE_MUNITE   ;按返回键的处理
0317 9181            496             CALL    UPDATA_ON
0319 22              497             RET
                     498     
                     499     ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^关于秒钟的设置
031A                 500     CHANGE_SECOND:
031A 7FC0            501             MOV     R7,     #11000000B
031C 91D3            502             CALL    FLASH
                     503     
031E                 504     CHANGE_SECOND2:
                     505     
031E 9199            506             CALL    KEYBO
0320 30020D          507             JNB     OVER3S, SECOND_NEXT
0323 E53C            508             MOV     A,      KEY_VOL
0325 B48208          509             CJNE    A,      #82H,   SECOND_NEXT
                     510     
0328 915E            511             CALL    INC_SECOND
032A 91F3            512             CALL    DLY100MS
                     513     
032C 7183            514             CALL    SAVE_12887      ;更新DS12887的数据
032E 80EE            515             SJMP    CHANGE_SECOND2
                     516     
0330                 517     SECOND_NEXT:            
0330 3003E7          518             JNB     KEY_DIR,CHANGE_SECOND
A51 MACRO ASSEMBLER  MAIN                                                                 11/22/2005 10:14:03 PAGE     9

0333 C203            519             CLR     KEY_DIR
0335 E53C            520             MOV     A,      KEY_VOL
0337 B40102          521             CJNE    A,      #01H,   SECOND_KEY2     ;按功能键的处理
033A 800F            522             SJMP    CHANGE_RI_HOUR
033C B40206          523     SECOND_KEY2:CJNE        A,      #02H,   SECOND_KEY3     ;按调整键的处理
033F 915E            524             CALL    INC_SECOND
0341 7183            525             CALL    SAVE_12887
0343 80D5            526             SJMP    CHANGE_SECOND
0345 B404D2          527     SECOND_KEY3:CJNE        A,      #04H,   CHANGE_SECOND   ;按返回键的处理
0348 9181            528             CALL    UPDATA_ON
034A 22              529             RET
                     530     
                     531     ;^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^;系统返回
034B                 532     CHANGE_RI_HOUR:
034B 9181            533             CALL    UPDATA_ON
034D 22              534             RET
                     535     
                     536     
034E 22              537     CHANGE_RET:RET
                     538     ;***************************************************************
                     539     ;关于打铃设置
034F                 540     CHANGE_RING:
034F 200203          541             JB      OVER3S, CHANGE_RING1
0352 020382          542     CGE_RET:LJMP    CHANGE_RING_RET
0355                 543     CHANGE_RING1:
0355 E53C            544             MOV     A,      KEY_VOL
0357 B482F8          545             CJNE    A,      #82H,   CGE_RET
035A 753031          546             MOV     30H,    #31H                    ;以下八行程序用于显示;"ring set"
035D 753106          547             MOV     31H,    #06H
0360 753237          548             MOV     32H,    #37H
0363 75337D          549             MOV     33H,    #7DH
0366 753400          550             MOV     34H,    #00H
0369 75356D          551             MOV     35H,    #6DH
036C 753679          552             MOV     36H,    #79H
036F 753778          553             MOV     37H,    #78H
                     554     
0372 9199            555     DLY_RLY:CALL    KEYBO
0374 3003FB          556             JNB     KEY_DIR,DLY_RLY
                     557     
0377 753100          558             MOV     31H,    #00H
037A 753200          559             MOV     32H,    #00H
037D 753300          560             MOV     33H,    #00H
0380 80FE            561             SJMP    $
                     562     
                     563     
                     564     
                     565     
                     566     
                     567     
                     568     
                     569     
                     570     
                     571     
                     572     
                     573     
                     574     
                     575     
                     576     
                     577     
0382 22              578     CHANGE_RING_RET:RET
                     579     ;***************************************************************
                     580     ;更新DS12887的子程序
0383                 581     SAVE_12887:
0383 C28C            582             CLR     TR0             ;以下程序用于将新数据存入DS12887中
0385 C293            583             CLR     CS
0387 C080            584             PUSH    P0
A51 MACRO ASSEMBLER  MAIN                                                                 11/22/2005 10:14:03 PAGE    10

0389 85A083          585             MOV     DPH,    P2
038C 758209          586             MOV     DPL,    #09H
038F E543            587             MOV     A,      YEAR
0391 F0              588             MOVX    @DPTR,  A
0392 758208          589             MOV     DPL,    #08H
0395 E544            590             MOV     A,      MONTH
0397 F0              591             MOVX    @DPTR,  A
0398 758207          592             MOV     DPL,    #07H
039B E545            593             MOV     A,      DAY
039D F0              594             MOVX    @DPTR,  A
039E 758204          595             MOV     DPL,    #04H
03A1 E540            596             MOV     A,      HOUR
03A3 F0              597             MOVX    @DPTR,  A
03A4 758202          598             MOV     DPL,    #02H
03A7 E541            599             MOV     A,      MUNITE
03A9 F0              600             MOVX    @DPTR,  A
03AA 758200          601             MOV     DPL,    #00H
03AD E542            602             MOV     A,      SECOND
03AF F0              603             MOVX    @DPTR,  A
03B0 D080            604             POP     P0
03B2 D293            605             SETB    CS
03B4 D28C            606             SETB    TR0
03B6 22              607             RET
                     608     
                     609     ;****************************************************************
                     610     ;年加1
03B7                 611     INC_YEAR:
03B7 753D00          612             MOV     FLASH_BIT,#00H  ;以下程序用于连续步进年份
03BA E543            613             MOV     A,      YEAR
03BC 2401            614             ADD     A,      #01H
03BE D4              615             DA      A
03BF F543            616             MOV     YEAR,   A       ;以下产生年的高位
03C1 54F0            617             ANL     A,      #0F0H
03C3 C4              618             SWAP    A
03C4 90012C          619             MOV     DPTR,   #TIME_TAB
03C7 93              620             MOVC    A,      @A+DPTR
03C8 F530            621             MOV     30H,    A
03CA E543            622             MOV     A,      YEAR    ;以下产生年的低位
03CC 540F            623             ANL     A,      #0FH
03CE 93              624             MOVC    A,      @A+DPTR
03CF F531            625             MOV     31H,    A
03D1 22              626             RET
                     627     
                     628     ;****************************************************************
                     629     ;月加1
03D2                 630     INC_MONTH:
03D2 753D00          631             MOV     FLASH_BIT,#00H  ;以下程序用于连续步进年份
03D5 E544            632             MOV     A,      MONTH
03D7 2401            633             ADD     A,      #01H
03D9 D4              634             DA      A
03DA F544            635             MOV     MONTH,  A       ;以下产生月的高位
03DC B41303          636             CJNE    A,      #13H,   ZERO_MONTH
03DF 754401          637             MOV     MONTH,  #01H
03E2                 638     ZERO_MONTH:
03E2 E544            639             MOV     A,      MONTH
03E4 54F0            640             ANL     A,      #0F0H
03E6 C4              641             SWAP    A
03E7 90012C          642             MOV     DPTR,   #TIME_TAB
03EA 93              643             MOVC    A,      @A+DPTR
03EB F533            644             MOV     33H,    A
03ED E544            645             MOV     A,      MONTH   ;以下产生月的低位
03EF 540F            646             ANL     A,      #0FH
03F1 93              647             MOVC    A,      @A+DPTR
03F2 F534            648             MOV     34H,    A
03F4 22              649             RET
                     650     
A51 MACRO ASSEMBLER  MAIN                                                                 11/22/2005 10:14:03 PAGE    11

                     651     ;****************************************************************
                     652     ;日加1
03F5                 653     INC_DAY:
03F5 753D00          654             MOV     FLASH_BIT,#00H  ;以下程序用于连续步进日
03F8 E545            655             MOV     A,      DAY     
03FA 2401            656             ADD     A,      #01H
03FC D4              657             DA      A
03FD F545            658             MOV     DAY,    A       ;以下产生日的高位
03FF B43203          659             CJNE    A,      #32H,   ZERO_DAY
0402 754501          660             MOV     DAY,    #01H
0405                 661     ZERO_DAY:
0405 E545            662             MOV     A,      DAY
0407 54F0            663             ANL     A,      #0F0H
0409 C4              664             SWAP    A
040A 90012C          665             MOV     DPTR,   #TIME_TAB
040D 93              666             MOVC    A,      @A+DPTR
040E F536            667             MOV     36H,    A
0410 E545            668             MOV     A,      DAY     ;以下产生日的低位
0412 540F            669             ANL     A,      #0FH
0414 93              670             MOVC    A,      @A+DPTR
0415 F537            671             MOV     37H,    A
0417 22              672             RET
                     673     
                     674     ;****************************************************************
                     675     ;小时加1
0418                 676     INC_HOUR:
0418 753D00          677             MOV     FLASH_BIT,#00H  ;以下程序用于连续步进小时
041B E540            678             MOV     A,      HOUR    
041D 2401            679             ADD     A,      #01H
041F D4              680             DA      A
0420 F540            681             MOV     HOUR,   A       ;以下产生小时的高位
0422 B42403          682             CJNE    A,      #24H,   ZERO_HOUR
0425 754000          683             MOV     HOUR,   #00H
0428                 684     ZERO_HOUR:
0428 E540            685             MOV     A,      HOUR
042A 54F0            686             ANL     A,      #0F0H
042C C4              687             SWAP    A
042D 90012C          688             MOV     DPTR,   #TIME_TAB
0430 93              689             MOVC    A,      @A+DPTR
0431 F530            690             MOV     30H,    A
0433 E540            691             MOV     A,      HOUR    ;以下产生小时的低位
0435 540F            692             ANL     A,      #0FH
0437 93              693             MOVC    A,      @A+DPTR
0438 F531            694             MOV     31H,    A
043A 22              695             RET
                     696     
                     697     ;****************************************************************
                     698     ;分钟加1
043B                 699     INC_MUNITE:
043B 753D00          700             MOV     FLASH_BIT,#00H  ;以下程序用于连续步进分钟
043E E541            701             MOV     A,      MUNITE  
0440 2401            702             ADD     A,      #01H
0442 D4              703             DA      A
0443 F541            704             MOV     MUNITE, A       ;以下产生分钟的高位
0445 B46003          705             CJNE    A,      #60H,   ZERO_MUNITE
0448 754100          706             MOV     MUNITE, #00H
044B                 707     ZERO_MUNITE:
044B E541            708             MOV     A,      MUNITE
044D 54F0            709             ANL     A,      #0F0H
044F C4              710             SWAP    A
0450 90012C          711             MOV     DPTR,   #TIME_TAB
0453 93              712             MOVC    A,      @A+DPTR
0454 F533            713             MOV     33H,    A
0456 E541            714             MOV     A,      MUNITE  ;以下产生分钟的低位
0458 540F            715             ANL     A,      #0FH
045A 93              716             MOVC    A,      @A+DPTR
A51 MACRO ASSEMBLER  MAIN                                                                 11/22/2005 10:14:03 PAGE    12

045B F534            717             MOV     34H,    A
045D 22              718             RET
                     719     
                     720     ;****************************************************************
                     721     ;秒钟加1
045E                 722     INC_SECOND:
045E 753D00          723             MOV     FLASH_BIT,#00H  ;以下程序用于连续步进秒钟
0461 E542            724             MOV     A,      SECOND  
0463 2401            725             ADD     A,      #01H
0465 D4              726             DA      A
0466 F542            727             MOV     SECOND, A       ;以下产生秒钟的高位
0468 B46003          728             CJNE    A,      #60H,   ZERO_SECOND
046B 754200          729             MOV     SECOND, #00H
046E                 730     ZERO_SECOND:
046E E542            731             MOV     A,      SECOND
0470 54F0            732             ANL     A,      #0F0H
0472 C4              733             SWAP    A
0473 90012C          734             MOV     DPTR,   #TIME_TAB
0476 93              735             MOVC    A,      @A+DPTR

⌨️ 快捷键说明

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