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

📄 ds1302-dsy.lst

📁 数字电压表 AD芯片: 采用8位串行A/D转换器ADC0832。 ● 8位分辨率
💻 LST
📖 第 1 页 / 共 5 页
字号:
0524 798E            686              MOV  R1,#8EH          ;写保护寄存器
0526 7880            687              MOV  R0,#80H          ;禁止写入
0528 1201C2          688              LCALL WRITE
                     689     
052B D1CB            690              CALL  DATE_DELAY
052D C20A            691              CLR  0AH
052F C28C            692              CLR  TR0
0531 D1DC            693              CALL  BEEP_BL
0533 22              694              RET
                     695     ;===================================================
                     696     ;定时时间设定子程序
                     697     ;K1为加键、K2为减键、K3为选择键
                     698     ;===================================================
0534                 699     DSSET:
0534 D28C            700              SETB  TR0
0536 1206A8          701     DS01:    LCALL DS_DELAY        ;定时分设定
0539 3097FD          702              JNB  K4,$
                     703     
053C D130            704     DS010:   CALL  DS_CHULI
053E 300A08          705              JNB  0AH,DS01_1
0541 857F58          706              MOV  58H,7FH          ;送入熄灭符
0544 857F59          707              MOV  59H,7FH
0547 8006            708              JMP  DS01_2
                     709     
0549 857058          710     DS01_1:  MOV  58H,70H         ;送实时值
054C 857159          711              MOV  59H,71H         ;送实时值
054F 7858            712     DS01_2:  MOV  R0,#58H
0551 12065B          713              LCALL  DS_SP
0554 7858            714              MOV  R0,#58H
0556 120667          715              LCALL  DS_DISPLAY
0559 309408          716              JNB  K1,DS01A        ;加键
055C 309518          717              JNB  K2,DS01B        ;减键
055F 309631          718              JNB  K3,DS02
A51 MACRO ASSEMBLER  DS1302_DSY                                                           07/21/2006 08:51:55 PAGE    12

0562 80D8            719              JMP  DS010
                     720     
0564                 721     DS01A:                        ;加
0564 E548            722               MOV  A,48H
0566 2401            723               ADD A,#01H
0568 D4              724               DA A
0569 F548            725               MOV 48H,A
056B 6460            726               XRL  A,#60H
056D 7003            727               JNZ DS011
056F 754800          728               MOV  48H,#00H
0572 1206A8          729     DS011:    LCALL DS_DELAY
0575 80C5            730               JMP  DS010
                     731     
0577 E548            732     DS01B:    MOV  A,48H          ;判48H是否为0
0579 6400            733               XRL  A,#00H
057B 600F            734               JZ  DS012
057D D3              735               SETB  C              ;减
057E E4              736              CLR  A               ;求补运算
057F 3499            737              ADDC  A,#99H         ;加99
0581 9401            738              SUBB  A,#01H         ;减去减数
0583 2548            739              ADD   A,48H          ;加被减数
0585 D4              740              DA A                 ;十进制调整
0586 F548            741              MOV 48H,A            ;
0588 6400            742              XRL  A,#00H
058A 7003            743              JNZ  DS013
058C 754859          744     DS012:   MOV  48H,#59H
058F D1A8            745     DS013:   CALL  DS_DELAY
0591 80A9            746              JMP  DS010
                     747     ;----------------------------------------------
0593 1206A8          748     DS02:     LCALL DS_DELAY      ;定时时设定
0596 3096FD          749               JNB  K3,$
0599                 750     DS020:
0599 D130            751              CALL  DS_CHULI
059B 300A08          752              JNB  0AH,DS02_1
                     753     
059E 857F5A          754              MOV  5AH,7FH          ;送入熄灭符
05A1 857F5B          755              MOV  5BH,7FH
05A4 8006            756              JMP  DS02_2
                     757     
05A6 85725A          758     DS02_1:  MOV  5AH,72H          ;送实时值
05A9 85735B          759              MOV  5BH,73H          ;送实时值
05AC 7858            760     DS02_2:  MOV  R0,#58H
05AE 12065B          761              LCALL  DS_SP
05B1 7858            762              MOV  R0,#58H
05B3 120667          763              LCALL  DS_DISPLAY
05B6 309408          764              JNB  K1,DS02A
05B9 309518          765              JNB  K2,DS02B
05BC 309631          766              JNB  K3,DS03
05BF 80D8            767              JMP  DS020
                     768     
05C1 E549            769     DS02A:    MOV  A,49H          ;加
05C3 2401            770               ADD  A,#01H
05C5 D4              771               DA A
05C6 F549            772               MOV  49H,A
05C8 6424            773               XRL  A,#24H
05CA 7003            774               JNZ  DS021
05CC 754900          775               MOV  49H,#00H
05CF 1206A8          776     DS021:    LCALL DS_DELAY
05D2 80C5            777               JMP  DS020
                     778     
05D4 E549            779     DS02B:    MOV  A,49H           ;判49H是否为0
05D6 6400            780               XRL  A,#00H
05D8 600F            781               JZ  DS022
05DA D3              782               SETB  C              ;减
05DB E4              783               CLR  A               ;求补运算
05DC 3499            784               ADDC  A,#99H         ;加99
A51 MACRO ASSEMBLER  DS1302_DSY                                                           07/21/2006 08:51:55 PAGE    13

05DE 9401            785               SUBB  A,#01H         ;减去减数
05E0 2549            786               ADD   A,49H          ;加被减数
05E2 D4              787               DA A                 ;十进制调整
05E3 F549            788               MOV 49H,A            ;
05E5 6400            789               XRL  A,#00H
05E7 7003            790               JNZ  DS023
05E9 754923          791     DS022:    MOV  49H,#23H
05EC D1A8            792     DS023:    CALL  DS_DELAY
05EE 80A9            793               JMP  DS020
                     794     ;-------------------------------------------
05F0 D1A8            795     DS03:     CALL DS_DELAY
05F2 3096FD          796               JNB  K3,$
                     797     
05F5 D130            798     DS030:    CALL  DS_CHULI
05F7 300A05          799               JNB  0AH,DS03_1
05FA 857F5C          800               MOV  5CH,7FH         ;送入熄灭符
05FD 8003            801               JMP  DS03_2
05FF 85745C          802     DS03_1:   MOV  5CH,74H         ;送实时值
0602 7858            803     DS03_2:   MOV  R0,#58H         
0604 12065B          804               LCALL  DS_SP
0607 7858            805               MOV  R0,#58H
0609 120667          806               LCALL  DS_DISPLAY
060C 309617          807               JNB K3,DS04
060F 309402          808               JNB  K1,DS03A
0612 80E1            809               JMP  DS030
                     810     
0614 B201            811     DS03A:    CPL  20H.1              ;报警标记取反
0616 300105          812               JNB  20H.1,DS031
0619 754A01          813               MOV  4AH,#01H           ;报警标记=1,允许报警
061C C121            814               AJMP  DS032
061E 754A00          815     DS031:    MOV  4AH,#00H           ;报警标记=0,禁止报警
0621 1206A8          816     DS032:    LCALL DS_DELAY
0624 80CF            817               JMP  DS030
                     818     ;--------------------------------------------
0626 C28C            819     DS04:     CLR  TR0
0628 C20A            820               CLR  0AH
062A D1DC            821               CALL  BEEP_BL
062C 1206A8          822               LCALL DS_DELAY
062F 22              823               RET
                     824     
                     825     ;=============================================
                     826     ;定时时间数据处理子程序
                     827     ;=============================================
0630                 828     DS_CHULI:
0630 E548            829               MOV A,48H               ;处理分数据
0632 540F            830               ANL A,#0FH
0634 F558            831               MOV 58H,A
0636 F570            832               MOV 70H,A
0638 E548            833               MOV A,48H
063A 54F0            834               ANL A,#0F0H
063C C4              835               SWAP A
063D F559            836               MOV 59H,A
063F F571            837               MOV 71H,A
                     838     
0641 E549            839               MOV A,49H               ;处理时数据
0643 540F            840               ANL A,#0FH
0645 F55A            841               MOV 5AH,A
0647 F572            842               MOV 72H,A
0649 E549            843               MOV A,49H
064B 54F0            844               ANL A,#0F0H
064D C4              845               SWAP A
064E F55B            846               MOV 5BH,A
0650 F573            847               MOV 73H,A
                     848     
0652 E54A            849               MOV A,4AH              ;处理定时标记
0654 5401            850               ANL A,#01H
A51 MACRO ASSEMBLER  DS1302_DSY                                                           07/21/2006 08:51:55 PAGE    14

0656 F55C            851               MOV 5CH,A
0658 F574            852               MOV  74H,A
065A 22              853               RET
                     854     ;==================================================
                     855     ;定时时间查表取数子程序
                     856     ;==================================================
065B                 857     DS_SP:    ;MOV R0,#58H
065B 7B05            858               MOV R3,#05H
065D E6              859     DS_SP1:   MOV A,@R0
065E 9006FA          860               MOV DPTR,#TAB_NU
0661 93              861               MOVC A,@A+DPTR
0662 F6              862               MOV @R0,A
0663 08              863               INC R0
0664 DBF7            864               DJNZ R3,DS_SP1
0666 22              865               RET
                     866     ;==================================================
                     867     ;定时时间显示子程序
                     868     ;==================================================
0667                 869     DS_DISPLAY:
                     870               ;MOV  R0,#58H          ;取得设定显示单元首地址
0667 797F            871               MOV  R1,#07FH          ;从第一个数码管开始
0669 7A07            872               MOV  R2,#07H           ;共7个数码管
066B 8680            873     DSPLAY:   MOV  P0,@R0            ;获得当前单元数据
066D E9              874               MOV  A,R1
066E F5A0            875               MOV  P2,A              ;数码显示
0670 20E505          876               JB  ACC.5,DSLP1        ;第三位数码管显示“-”
0673 7580BF          877               MOV  P0,#0BFH
0676 8009            878               JMP  DSLP3
0678 20E205          879     DSLP1:    JB  ACC.2,DSLP2        ;第六位数码管显示“-”
067B 7580BF          880               MOV  P0,#0BFH
067E 8001            881               JMP  DSLP3
0680 08              882     DSLP2:    INC  R0
0681 E9              883     DSLP3:    MOV  A,R1              ;为下一个数准备
0682 03              884               RR  A                  ;下一个单元
0683 F9              885               MOV  R1,A              ;保存
0684 1202D1          886               LCALL  DELAY
0687 DAE2            887               DJNZ  R2,DSPLAY        ;重复显示,直到全部数据刷新过
0689 22              888               RET                    ;返回
                     889     ;====================================================
                     890     ;实时时间与设定时间比较子程序
                     891     
                     892     ;20H.0 止闹标记,=0,允许,=1,禁止。
                     893     ;20H.1 报警标记,=1,允许,=0,禁止。
                     894     ;====================================================
068A 300116          895     COMP:     JNB  20H.1,COMP1
068D 7850            896               MOV  R0,#TIME_DATA
068F 1202AE          897               LCALL  TIME_DISPLAY
0692 E542            898               MOV  A,42H             ;实时时间与设定时间比较
0694 B5490C          899               CJNE  A,49H,COMP1      ;先比较时后比较分
0697 E541            900               MOV A,41H
0699 B54807          901               CJNE  A,48H,COMP1
069C 200006          902               JB   20H.0,COMP2       ;20H.0=1,止闹开关,关
                     903               ;LCALL  BEEP_BL
069F C293            904               CLR  RELAY             ;继电器吸合1分钟
06A1 8004            905               JMP  COMP3
06A3 C200            906     COMP1:    CLR  20H.0
06A5 D293            907     COMP2:    SETB  RELAY
06A7 22              908     COMP3:    RET
                     909     
                     910     ;====================================================
                     911     ;键延时子程序
                     912     ;多次调用显示程序做键延时
                     913     ;====================================================
06A8                 914     DS_DELAY:
06A8 7E0A            915               MOV  R6,#0AH         ;设定定时时间,键延时用
06AA                 916      DS_KK:
A51 MACRO ASSEMBLER  DS1302_DSY                                                           07/21/2006 08:51:55 PAGE    15

⌨️ 快捷键说明

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