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

📄 sz616.lst

📁 一个本人编写的时钟程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
A51 MACRO ASSEMBLER  SZ616                                                                06/16/2008 12:46:24 PAGE     1


MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN SZ616.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE SZ616.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     
  0093                 2       LED1        BIT  p1.3  ;4位数码管选通引脚
  0094                 3       LED2        BIT  p1.4
  0096                 4       LED3        BIT  p1.6
  0097                 5       LED4        BIT  p1.7
  0095                 6       LED2DZ      BIT  P1.5  ;小数点
                       7     
  00B0                 8       LS164_AB    BIT  p3.0 ;74LS164数据线
  00B1                 9       LS164_CLK   BIT  p3.1 ;74LS164时钟线
                      10     
  00B5                11       KEY1      BIT  p3.5 ;按键1
  00B7                12       KEY2      BIT  p3.7 ;按键2
  0040                13       DISPFLAG   EQU  40H  ;显示标识
                      14     
  0020                15       DISPBUF   EQU  20H
  0050                16       DISPBUF1  EQU  50H ;定时缓冲
                      17     
  0090                18       BEEP   BIT  p1.0
                      19     
  0030                20       MSCNT  EQU  30H   ;中断次数
                      21     
  0031                22       SECONDBUF  EQU 31H
  0032                23       MINUTEBUF  EQU 32H
  0033                24       HOURBUF    EQU 33H
  0034                25       MONTHBUF   EQU 34H
  0035                26       DAYBUF     EQU 35H
  0036                27       MINUTEBUF1 EQU 36H
  0037                28       HOURBUF1   EQU 37H
                      29     
0000                  30                             ORG  0000h
0000 2100             31                             JMP  START
000B                  32                         ORG  000Bh
000B 212C             33                     JMP  TIMER0
0100                  34                     ORG  0100H
                      35     
                      36     
0100                  37     START:
0100 758150           38                     MOV  SP,#50H
0103 C295             39                     CLR  LED2DZ
0105                  40     CLRDISPBUF: ; 清显示缓冲区
0105 7A0F             41                     MOV  R2,#0FH
0107 7821             42                     MOV  R0,#DISPBUF+1
0109                  43     CLRDISPBUFLOOP:
0109 7600             44                     MOV  @R0,#0H
010B 08               45                     INC  R0
010C DAFB             46                     DJNZ R2,CLRDISPBUFLOOP
                      47     
010E 754000           48                     MOV  DISPFLAG,#0;初始时显示"时,分"
                      49     
0111 C2B0             50                     CLR  LS164_AB
0113 C2B1             51                         CLR  LS164_CLK
                      52     
0115 758901           53                     MOV  TMOD,#01H ; 方式1
                      54     
0118 758C1F           55                             MOV  TH0,#1FH  ;初值
011B 758A00           56                         MOV  TL0,#00H
                      57     
011E 753010           58                         MOV  MSCNT,#16
A51 MACRO ASSEMBLER  SZ616                                                                06/16/2008 12:46:24 PAGE     2

0121 D2AF             59                             SETB EA
0123 D2A9             60                             SETB ET0
0125 D28C             61                     SETB TR0
                      62     
0127                  63     LOOP:           ; LCALL    KEYINPUT
0127 120221           64                      LCALL    DISP
012A 2127             65                      AJMP     LOOP
012C                  66     TIMER0:
012C C0D0             67                      PUSH  PSW
012E C0E0             68                      PUSH  ACC
0130 D2D3             69                      SETB  PSW.3
0132 758C1F           70                      MOV   TH0,#1FH
0135 758A00           71                      MOV   TL0,#00H
0138 E530             72                      MOV   A,MSCNT
013A 14               73                      DEC   A
013B F530             74                      MOV   MSCNT,A
013D 7031             75                      JNZ   RET1
                      76              ; 微调
013F C2AF             77               CLR   EA
0141 758C1F           78               MOV   TH0,#1FH
0144 758A00           79                   MOV   TL0,#00H
0147 D2AF             80               SETB  EA
0149 75300F           81               MOV   MSCNT,#15
                      82     
                      83              ; 秒走
014C E531             84              MOV     A,      SECONDBUF
014E B43B15           85              CJNE    A,      #59,SADD1
0151 753100           86              MOV     SECONDBUF, #0
                      87              ; 分走
0154 E532             88              MOV     A,      MINUTEBUF
0156 B43B11           89              CJNE    A,      #59,MADD1
0159 753200           90              MOV     MINUTEBUF, #0
                      91              ; 小时走
015C E533             92              MOV     A,      HOURBUF
015E B4170D           93              CJNE    A,      #23,HADD1
0161 753300           94              MOV     HOURBUF, #0
                      95     
                      96              ;  MOV     A,      DAYBUF
                      97              ;  CJNE    A,      #31,HADD1
                      98              ;  MOV     DAYBUF, #0
                      99     
0164 2170            100                     AJMP   RET1
0166                 101     SADD1:    ; 秒加1
0166 0531            102                     INC   SECONDBUF
0168 2170            103                     AJMP   RET1
016A                 104     MADD1:    ; 分加1
016A 0532            105                     INC   MINUTEBUF
016C 2170            106                     AJMP  RET1
016E                 107     HADD1:    ; 小时加1
016E 0533            108                     INC   HOURBUF
                     109     
0170 120184          110     RET1:            LCALL    KEYINPUT
0173 D0E0            111                      POP    ACC
0175 D0D0            112                      POP    PSW
0177 32              113                          RETI
                     114     
                     115     ; 74LS164芯片工作原理程序
0178                 116     Send74LS164:
0178 7908            117                     MOV     R1,#8
017A                 118     Send2LS164_Loop:
017A 33              119                     RLC  A
017B 92B0            120                     MOV  LS164_AB,C
017D D2B1            121                     SETB LS164_CLK
017F C2B1            122                     CLR  LS164_CLK
0181 D9F7            123                     DJNZ r1,Send2LS164_Loop
0183 22              124                 RET
A51 MACRO ASSEMBLER  SZ616                                                                06/16/2008 12:46:24 PAGE     3

                     125     
0184                 126     KEYINPUT:
                     127     
0184 20D52A          128               JB F0,K1RET
                     129     
0187 20B529          130     K1:   JB KEY1,K2
018A 120400          131           LCALL DELAY10MS
018D 20B523          132           JB KEY1,K2
0190 120400          133           LCALL DELAY10MS
0193 E540            134           MOV A,DISPFLAG
                     135     
0195 B40105          136            CJNE  A,#1,CLRSECONDBUF
0198 4120            137                AJMP  KEYRET
                     138     
019A B40203          139                CJNE  A,#2,DISPFLAGADD
019D                 140     CLRSECONDBUF:
019D 753100          141            MOV SECONDBUF,#0
                     142     
01A0                 143     DISPFLAGADD:
01A0 2403            144           ADD A,#3
01A2 F540            145           MOV DISPFLAG,A
01A4 D2D5            146           SETB F0
01A6 30B5FD          147     WAIT: JNB KEY1,WAIT
01A9 B41574          148           CJNE A,#15H,KEYRET
01AC 754000          149           MOV DISPFLAG,#0
01AF C2D5            150           CLR F0
01B1                 151     K1RET:
01B1 806D            152           JMP KEYRET
                     153     
                     154     
                     155     
                     156     
01B3                 157     K2:
01B3 20B76A          158          JB KEY2,KEYRET
01B6 12040E          159          LCALL DELAY10US
01B9 20B764          160          JB KEY2,KEYRET
01BC 12040E          161          LCALL DELAY10US
01BF E540            162          MOV A,DISPFLAG
                     163     
01C1 B40006          164     K2X: CJNE A,#0,DISP1
01C4 2401            165          ADD A,#1
01C6 F540            166              MOV DISPFLAG,A
01C8 8056            167              JMP KEYRET
                     168     
01CA B40106          169     DISP1: CJNE A,#1,DISP2
01CD 2401            170                ADD A,#1
01CF F540            171                MOV DISPFLAG,A
01D1 804D            172                JMP KEYRET
                     173     
01D3 B40206          174     DISP2: CJNE A,#2,MONADD1
01D6 7400            175            MOV A,#0
01D8 F540            176                MOV DISPFLAG,A
01DA 8044            177                JMP KEYRET
                     178     
                     179     
01DC                 180     MONADD1: ; 月加1
01DC B4030E          181               CJNE A,#3,DAYADD1
01DF AD34            182               MOV R5, MONTHBUF
01E1 BD0C05          183               CJNE R5,#12,MONADD
01E4 753401          184               MOV MONTHBUF,#1
01E7 4120            185                       AJMP KEYRET
01E9                 186     MONADD:
01E9 0534            187              INC  MONTHBUF
01EB 4120            188                      AJMP KEYRET
                     189     
01ED                 190     DAYADD1: ; 日加1
A51 MACRO ASSEMBLER  SZ616                                                                06/16/2008 12:46:24 PAGE     4

01ED B4060E          191              CJNE A,#6,HOURADD1
01F0 AD35            192                      MOV  R5,DAYBUF
01F2 BD1F05          193                      CJNE R5,#31,DAYADD
01F5 753501          194                      MOV  DAYBUF,#1
01F8 4120            195                      AJMP KEYRET
01FA                 196     DAYADD:
01FA 0535            197              INC  DAYBUF
01FC 4120            198              AJMP KEYRET
                     199     

⌨️ 快捷键说明

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