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

📄 sz616a.lst

📁 一个本人编写的时钟程序
💻 LST
📖 第 1 页 / 共 3 页
字号:
A51 MACRO ASSEMBLER  SZ616A                                                               06/16/2008 14:43:59 PAGE     1


MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN SZ616a.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE SZ616a.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 75815F           38                     MOV  SP,#5FH
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,#0H;初始时显示"时,分"
                      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
011E 753010           57                         MOV  MSCNT,#16
0121 D2AF             58                             SETB EA
A51 MACRO ASSEMBLER  SZ616A                                                               06/16/2008 14:43:59 PAGE     2

0123 D2A9             59                             SETB ET0
0125 D28C             60                     SETB TR0
                      61     
                      62     
                      63     
0127                  64     LOOP:           ; LCALL    KEYINPUT
0127 120263           65                      LCALL    DISP
012A 2127             66                      AJMP     LOOP
012C                  67     TIMER0:
012C C0D0             68                      PUSH  PSW
012E C0E0             69                      PUSH  ACC
0130 D2D3             70              SETB  PSW.3 ;  去掉后闪烁明显
0132 758C1F           71                      MOV   TH0,#1FH
0135 758A00           72                      MOV   TL0,#00H
0138 E530             73                      MOV   A,MSCNT
013A 14               74                      DEC   A
013B F530             75                      MOV   MSCNT,A
013D 7031             76                      JNZ   RET1
                      77              ; 微调
013F C2AF             78               CLR   EA
0141 758C1F           79               MOV   TH0,#1FH
0144 758A00           80                   MOV   TL0,#00H
0147 D2AF             81               SETB  EA
0149 75300F           82               MOV   MSCNT,#15
                      83     
                      84              ; 秒走
014C E531             85              MOV     A,      SECONDBUF
014E B40115           86              CJNE    A,      #1,SADD1
0151 753100           87              MOV     SECONDBUF, #0
                      88              ; 分走
0154 E532             89              MOV     A,      MINUTEBUF
0156 B40111           90              CJNE    A,      #1,MADD1
0159 753200           91              MOV     MINUTEBUF, #0
                      92              ; 小时走
015C E533             93              MOV     A,      HOURBUF
015E B4030D           94              CJNE    A,      #3,HADD1
0161 753300           95              MOV     HOURBUF, #0
                      96     
                      97              ; 定时
0164 2170             98                      AJMP   RET1
                      99     
0166                 100     SADD1:    ; 秒加1
0166 0531            101                     INC   SECONDBUF
0168 2170            102                     AJMP   RET1
016A                 103     MADD1:    ; 分加1
016A 0532            104                     INC   MINUTEBUF
016C 2170            105                     AJMP  RET1
016E                 106     HADD1:    ; 小时加1
016E 0533            107                     INC   HOURBUF
                     108     
0170 12019C          109     RET1:           LCALL    KEYINPUT
                     110     
                     111                             ;       PUSH ACC
0173 853355          112                                     MOV 55H,HOURBUF
0176 635503          113                                     XRL 55H,#3
0179 A955            114                                     MOV R1,55H
017B B9000D          115                                     CJNE R1,#0,RET2
                     116     
017E 853256          117                                     MOV 56H,MINUTEBUF
0181 635601          118                                     XRL 56H,#1
0184 AA56            119                                     MOV R2,56H
0186 BA0002          120                                     CJNE R2,#0,RET2
                     121     
                     122                         ;   MOV A,HOURBUF
                     123                             ;       XRL A,HOURBUF1
                     124                             ;       JNZ RET2
A51 MACRO ASSEMBLER  SZ616A                                                               06/16/2008 14:43:59 PAGE     3

                     125                             ;       MOV A,MINUTEBUF
                     126                             ;       XRL A,MINUTEBUF1
                     127                             ;       JNZ RET2
0189 C290            128                                     CLR  BEEP
                     129     
                     130     
018B                 131     RET2:
                     132                    ;  POP    ACC
018B D0E0            133                      POP    ACC
018D D0D0            134                      POP    PSW
                     135     
018F 32              136                          RETI
                     137     
                     138     ; 74LS164芯片工作原理程序
0190                 139     Send74LS164:
0190 7908            140                     MOV     R1,#8
0192                 141     Send2LS164_Loop:
0192 33              142                     RLC  A
0193 92B0            143                     MOV  LS164_AB,C
0195 D2B1            144                     SETB LS164_CLK
0197 C2B1            145                     CLR  LS164_CLK
0199 D9F7            146                     DJNZ r1,Send2LS164_Loop
019B 22              147                 RET
                     148     
019C                 149     KEYINPUT:
                     150     
                     151     
019C 20D541          152                JB F0,K1RET
                     153     
019F 20B52E          154     K1:   JB KEY1,K2
01A2 120442          155           LCALL DELAY10MS
01A5 20B528          156           JB KEY1,K2
01A8 120442          157           LCALL DELAY10MS
                     158     
01AB 209004          159                 JB BEEP,K1S
01AE D290            160                 SETB BEEP
01B0 802E            161                 JMP K1RET
01B2                 162     K1S:
01B2 E540            163            MOV A,DISPFLAG
                     164     
01B4 B40105          165            CJNE  A,#1,CLRSECONDBUF
01B7 4162            166                AJMP  KEYRET
                     167     
01B9 B40203          168                CJNE  A,#2,DISPFLAGADD
01BC                 169     CLRSECONDBUF:
01BC 753100          170            MOV SECONDBUF,#0
                     171     
01BF                 172     DISPFLAGADD:
01BF 2403            173           ADD A,#3
01C1 F540            174           MOV DISPFLAG,A
01C3 D2D5            175           SETB F0
01C5 30B5FD          176     WAIT: JNB KEY1,WAIT
01C8 B41515          177           CJNE A,#15H,K1RET
01CB 754000          178           MOV DISPFLAG,#0
01CE C2D5            179           CLR F0
                     180     
01D0                 181     K2:
01D0 20B70D          182          JB KEY2,K1RET
01D3 120450          183          LCALL DELAY10US
01D6 20B707          184          JB KEY2,K1RET
01D9 120450          185          LCALL DELAY10US
01DC E540            186          MOV A,DISPFLAG
01DE 21E2            187              AJMP K2X
                     188     
01E0                 189     K1RET:
01E0 4162            190           JMP KEYRET
A51 MACRO ASSEMBLER  SZ616A                                                               06/16/2008 14:43:59 PAGE     4

                     191     
                     192     
01E2 B40006          193     K2X: CJNE A,#0,DISP1
01E5 2401            194          ADD A,#1
01E7 F540            195              MOV DISPFLAG,A
01E9 8077            196              JMP KEYRET
                     197     
01EB B40106          198     DISP1: CJNE A,#1,DISP2
01EE 2401            199                ADD A,#1
01F0 F540            200                MOV DISPFLAG,A
01F2 806E            201                JMP KEYRET
                     202     
01F4 B40206          203     DISP2: CJNE A,#2,MONADD1
01F7 7400            204            MOV A,#0
01F9 F540            205                MOV DISPFLAG,A
01FB 8065            206                JMP KEYRET
                     207     
                     208     
01FD                 209     MONADD1: ; 月加1
01FD B4030E          210               CJNE A,#3,DAYADD1
0200 AD34            211               MOV R5, MONTHBUF
0202 BD0C05          212               CJNE R5,#12,MONADD
0205 753401          213               MOV MONTHBUF,#1
0208 4162            214                       AJMP KEYRET
020A                 215     MONADD:
020A 0534            216              INC  MONTHBUF
020C 4162            217                      AJMP KEYRET
                     218     

⌨️ 快捷键说明

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