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

📄 ds1302-dsy.lst

📁 单片机8051下 对1302实时时钟的读写程序 对课程设计很有帮助
💻 LST
📖 第 1 页 / 共 5 页
字号:
04E7 7003            674              JNZ  K052A
04E9 754500          675              MOV  45H,#00H
04EC 798C            676     K052A:   MOV  R1,#8CH         ;写年寄存器
04EE A845            677              MOV  R0,45H
04F0 1201C2          678              LCALL WRITE
04F3 D1CB            679              CALL  DATE_DELAY
04F5 80C1            680              JMP   K050
                     681     
04F7                 682     K051B:
04F7 E545            683              MOV  A,45H
04F9 6400            684              XRL  A,#00H
04FB 600F            685              JZ  K052B
04FD D3              686              SETB  C              ;求补运算
04FE E4              687              CLR  A
04FF 3499            688              ADDC  A,#99H         ;加99
0501 9401            689              SUBB  A,#01H         ;减去减数
0503 2545            690              ADD   A,45H          ;加被减数
0505 D4              691              DA A                 ;十进制调整
0506 F545            692              MOV  45H,A            ;
0508 6400            693              XRL  A,#00H
050A 7003            694              JNZ  K052C
050C 754599          695     K052B:   MOV  45H,#99H
050F 798C            696     K052C:   MOV  R1,#8CH         ;写年寄存器
0511 A845            697              MOV  R0,45H
0513 1201C2          698              LCALL WRITE
0516 D1CB            699              CALL  DATE_DELAY
0518 809E            700              JMP   K050
                     701     ;-------------------------------------------------
051A 3096FD          702     K008:    JNB K3,K008
051D 7980            703              MOV  R1,#80H          ;写秒寄存器
051F 7800            704              MOV  R0,#00H          ;启动振荡器工作
0521 1201C2          705              LCALL WRITE
                     706     
0524 798E            707              MOV  R1,#8EH          ;写保护寄存器
0526 7880            708              MOV  R0,#80H          ;禁止写入
0528 1201C2          709              LCALL WRITE
                     710     
052B D1CB            711              CALL  DATE_DELAY
052D C20A            712              CLR  0AH
052F C28C            713              CLR  TR0
0531 D1DC            714              CALL  BEEP_BL
0533 22              715              RET
                     716     ;===================================================
                     717     ;定时时间设定子程序
                     718     ;K1为加键、K2为减键、K3为选择键
A51 MACRO ASSEMBLER  DS1302_DSY                                                           03/29/2005 16:20:14 PAGE    12

                     719     ;===================================================
0534                 720     DSSET:
0534 D28C            721              SETB  TR0
0536 1206A8          722     DS01:    LCALL DS_DELAY        ;定时分设定
0539 3097FD          723              JNB  K4,$
                     724     
053C D130            725     DS010:   CALL  DS_CHULI
053E 300A08          726              JNB  0AH,DS01_1
0541 857F58          727              MOV  58H,7FH          ;送入熄灭符
0544 857F59          728              MOV  59H,7FH
0547 8006            729              JMP  DS01_2
                     730     
0549 857058          731     DS01_1:  MOV  58H,70H         ;送实时值
054C 857159          732              MOV  59H,71H         ;送实时值
054F 7858            733     DS01_2:  MOV  R0,#58H
0551 12065B          734              LCALL  DS_SP
0554 7858            735              MOV  R0,#58H
0556 120667          736              LCALL  DS_DISPLAY
0559 309408          737              JNB  K1,DS01A        ;加键
055C 309518          738              JNB  K2,DS01B        ;减键
055F 309631          739              JNB  K3,DS02
0562 80D8            740              JMP  DS010
                     741     
0564                 742     DS01A:                        ;加
0564 E548            743               MOV  A,48H
0566 2401            744               ADD A,#01H
0568 D4              745               DA A
0569 F548            746               MOV 48H,A
056B 6460            747               XRL  A,#60H
056D 7003            748               JNZ DS011
056F 754800          749               MOV  48H,#00H
0572 1206A8          750     DS011:    LCALL DS_DELAY
0575 80C5            751               JMP  DS010
                     752     
0577 E548            753     DS01B:    MOV  A,48H          ;判48H是否为0
0579 6400            754               XRL  A,#00H
057B 600F            755               JZ  DS012
057D D3              756               SETB  C              ;减
057E E4              757              CLR  A               ;求补运算
057F 3499            758              ADDC  A,#99H         ;加99
0581 9401            759              SUBB  A,#01H         ;减去减数
0583 2548            760              ADD   A,48H          ;加被减数
0585 D4              761              DA A                 ;十进制调整
0586 F548            762              MOV 48H,A            ;
0588 6400            763              XRL  A,#00H
058A 7003            764              JNZ  DS013
058C 754859          765     DS012:   MOV  48H,#59H
058F D1A8            766     DS013:   CALL  DS_DELAY
0591 80A9            767              JMP  DS010
                     768     ;----------------------------------------------
0593 1206A8          769     DS02:     LCALL DS_DELAY      ;定时时设定
0596 3096FD          770               JNB  K3,$
0599                 771     DS020:
0599 D130            772              CALL  DS_CHULI
059B 300A08          773              JNB  0AH,DS02_1
                     774     
059E 857F5A          775              MOV  5AH,7FH          ;送入熄灭符
05A1 857F5B          776              MOV  5BH,7FH
05A4 8006            777              JMP  DS02_2
                     778     
05A6 85725A          779     DS02_1:  MOV  5AH,72H          ;送实时值
05A9 85735B          780              MOV  5BH,73H          ;送实时值
05AC 7858            781     DS02_2:  MOV  R0,#58H
05AE 12065B          782              LCALL  DS_SP
05B1 7858            783              MOV  R0,#58H
05B3 120667          784              LCALL  DS_DISPLAY
A51 MACRO ASSEMBLER  DS1302_DSY                                                           03/29/2005 16:20:14 PAGE    13

05B6 309408          785              JNB  K1,DS02A
05B9 309518          786              JNB  K2,DS02B
05BC 309631          787              JNB  K3,DS03
05BF 80D8            788              JMP  DS020
                     789     
05C1 E549            790     DS02A:    MOV  A,49H          ;加
05C3 2401            791               ADD  A,#01H
05C5 D4              792               DA A
05C6 F549            793               MOV  49H,A
05C8 6424            794               XRL  A,#24H
05CA 7003            795               JNZ  DS021
05CC 754900          796               MOV  49H,#00H
05CF 1206A8          797     DS021:    LCALL DS_DELAY
05D2 80C5            798               JMP  DS020
                     799     
05D4 E549            800     DS02B:    MOV  A,49H           ;判49H是否为0
05D6 6400            801               XRL  A,#00H
05D8 600F            802               JZ  DS022
05DA D3              803               SETB  C              ;减
05DB E4              804               CLR  A               ;求补运算
05DC 3499            805               ADDC  A,#99H         ;加99
05DE 9401            806               SUBB  A,#01H         ;减去减数
05E0 2549            807               ADD   A,49H          ;加被减数
05E2 D4              808               DA A                 ;十进制调整
05E3 F549            809               MOV 49H,A            ;
05E5 6400            810               XRL  A,#00H
05E7 7003            811               JNZ  DS023
05E9 754923          812     DS022:    MOV  49H,#23H
05EC D1A8            813     DS023:    CALL  DS_DELAY
05EE 80A9            814               JMP  DS020
                     815     ;-------------------------------------------
05F0 D1A8            816     DS03:     CALL DS_DELAY
05F2 3096FD          817               JNB  K3,$
                     818     
05F5 D130            819     DS030:    CALL  DS_CHULI
05F7 300A05          820               JNB  0AH,DS03_1
05FA 857F5C          821               MOV  5CH,7FH         ;送入熄灭符
05FD 8003            822               JMP  DS03_2
05FF 85745C          823     DS03_1:   MOV  5CH,74H         ;送实时值
0602 7858            824     DS03_2:   MOV  R0,#58H         
0604 12065B          825               LCALL  DS_SP
0607 7858            826               MOV  R0,#58H
0609 120667          827               LCALL  DS_DISPLAY
060C 309617          828               JNB K3,DS04
060F 309402          829               JNB  K1,DS03A
0612 80E1            830               JMP  DS030
                     831     
0614 B201            832     DS03A:    CPL  20H.1              ;报警标记取反
0616 300105          833               JNB  20H.1,DS031
0619 754A01          834               MOV  4AH,#01H           ;报警标记=1,允许报警
061C C121            835               AJMP  DS032
061E 754A00          836     DS031:    MOV  4AH,#00H           ;报警标记=0,禁止报警
0621 1206A8          837     DS032:    LCALL DS_DELAY
0624 80CF            838               JMP  DS030
                     839     ;--------------------------------------------
0626 C28C            840     DS04:     CLR  TR0
0628 C20A            841               CLR  0AH
062A D1DC            842               CALL  BEEP_BL
062C 1206A8          843               LCALL DS_DELAY
062F 22              844               RET
                     845     
                     846     ;=============================================
                     847     ;定时时间数据处理子程序
                     848     ;=============================================
0630                 849     DS_CHULI:
0630 E548            850               MOV A,48H               ;处理分数据
A51 MACRO ASSEMBLER  DS1302_DSY                                                           03/29/2005 16:20:14 PAGE    14

0632 540F            851               ANL A,#0FH
0634 F558            852               MOV 58H,A
0636 F570            853               MOV 70H,A
0638 E548            854               MOV A,48H
063A 54F0            855               ANL A,#0F0H
063C C4              856               SWAP A
063D F559            857               MOV 59H,A
063F F571            858               MOV 71H,A
                     859     
0641 E549            860               MOV A,49H               ;处理时数据
0643 540F            861               ANL A,#0FH
0645 F55A            862               MOV 5AH,A
0647 F572            863               MOV 72H,A
0649 E549            864               MOV A,49H
064B 54F0            865               ANL A,#0F0H
064D C4              866               SWAP A
064E F55B            867               MOV 5BH,A
0650 F573            868               MOV 73H,A
                     869     
0652 E54A            870               MOV A,4AH              ;处理定时标记
0654 5401            871               ANL A,#01H
0656 F55C            872               MOV 5CH,A
0658 F574            873               MOV  74H,A
065A 22              874               RET
                     875     ;==================================================
                     876     ;定时时间查表取数子程序
                     877     ;==================================================
065B                 878     DS_SP:    ;MOV R0,#58H
065B 7B05            879               MOV R3,#05H
065D E6              880     DS_SP1:   MOV A,@R0
065E 9006FA          881               MOV DPTR,#TAB_NU
0661 93              882               MOVC A,@A+DPTR
0662 F6              883               MOV @R0,A
0663 08              884               INC R0
0664 DBF7            885               DJNZ R3,DS_SP1
0666 22              886               RET
                     887     ;==================================================
                     888     ;定时时间显示子程序
                     889     ;==================================================
0667                 890     DS_DISPLAY:
                     891               ;MOV  R0,#58H          ;取得设定显示单元首地址
0667 797F            892               MOV  R1,#07FH          ;从第一个数码管开始
0669 7A07            893               MOV  R2,#07H           ;共7个数码管
066B 8680            894     DSPLAY:   MOV  P0,@R0            ;获得当前单元数据
066D E9              895               MOV  A,R1
066E F5A0            896               MOV  P2,A              ;数码显示
0670 20E505          897               JB  ACC.5,DSLP1        ;第三位数码管显示“-”
0673 7580BF          898               MOV  P0,#0BFH
0676 8009            899               JMP  DSLP3
0678 20E205          900     DSLP1:    JB  ACC.2,DSLP2        ;第六位数码管显示“-”
067B 7580BF          901               MOV  P0,#0BFH

⌨️ 快捷键说明

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