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

📄 digital clock (2).lst

📁 pretues+keil Uv3仿真模拟的LCD数字闹钟
💻 LST
📖 第 1 页 / 共 2 页
字号:
A51 MACRO ASSEMBLER  DIGITAL_CLOCK__2_                                                    10/07/2008 21:27:26 PAGE     1


MACRO ASSEMBLER A51 V7.07
OBJECT MODULE PLACED IN Digital Clock (2).OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE Digital Clock (2).asm SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

  0090                 1     S_SET   BIT             P1.0                                            ;数字钟秒控制位
  0091                 2     M_SET   BIT             P1.1                                            ;分钟控制位
  0092                 3     H_SET   BIT             P1.2                                            ;小时控制位
  0093                 4     A_DISP  BIT             P1.3
  0094                 5     A_S_SET BIT             P1.4
  0095                 6     A_M_SET BIT             P1.5
  0096                 7     A_H_SET BIT             P1.6
  0030                 8     SECOND  EQU             30H
  0031                 9     MINUTE  EQU             31H
  0032                10     HOUR    EQU             32H
  0034                11     TCNT    EQU             34H
  0036                12     A_SEC   EQU             36H
  0037                13     A_MIN   EQU             37H
  0038                14     A_HOU   EQU             38H
  0039                15     ALARM     EQU           39H
0000                  16                     ORG             00H
0000 800C             17                     SJMP    START
000B                  18                     ORG             0BH
000B 020110           19                     LJMP    INT_T0
000E                  20     START:
000E 753200           21                     MOV             HOUR,#0                                         ;初始化
0011 753100           22                     MOV             MINUTE,#0
0014 753000           23                     MOV             SECOND,#0
0017 753400           24                     MOV             TCNT,#0
001A 753600           25                     MOV             A_SEC,#0                                  ;闹铃初始化为分隔
001D 753700           26                     MOV             A_MIN,#0
0020 753800           27                     MOV             A_HOU,#0
0023 753900           28                     MOV             ALARM,#0                                    ;闹铃显示按钮
0026 758901           29                     MOV             TMOD,#01H
0029 758C3C           30                     MOV             TH0,#(65536-50000)/256          ;定时50毫秒
002C 758AB0           31                     MOV             TL0,#(65536-50000)MOD 256
002F 75A882           32                     MOV             IE,#82H
0032 D28C             33                     SETB    TR0                                                                
                                          
                      34     ;****************************************************
                      35     ;判断是否有控制键按下,是哪一个键按下
0034 120148           36     A1:             LCALL   DISPLAY         
0037 309015           37                     JNB             S_SET,S1
003A 309125           38                     JNB             M_SET,S2
003D 309235           39                     JNB             H_SET,S3
0040 30934A           40                     JNB             A_DISP,S4                                               
0043 30944F           41                     JNB             A_S_SET,S5
0046 30955E           42                     JNB             A_M_SET,S6
0049 30966D           43                     JNB             A_H_SET,S7
                      44                     
                      45             
004C 020034           46                     LJMP    A1
004F 1202AD           47             S1:     LCALL   DELAY           ;去抖动
0052 2090DF           48                     JB              S_SET,A1
                      49                     
0055 0530             50                     INC             SECOND          ;秒值加1
0057 E530             51                     MOV             A,SECOND
0059 B43C70           52                     CJNE    A,#60,J0        ;判断是否加到60秒
005C 753000           53                     MOV             SECOND,#0
005F 020068           54                     LJMP    K1
0062 1202AD           55             S2:     LCALL   DELAY
0065 2091CC           56                     JB              M_SET,A1
A51 MACRO ASSEMBLER  DIGITAL_CLOCK__2_                                                    10/07/2008 21:27:26 PAGE     2

                      57                     
0068 0531             58             K1:     INC             MINUTE          ;分钟值加1
006A E531             59                     MOV             A,MINUTE
006C B43C65           60                     CJNE    A,#60,J1        ;判断是否加到60分
006F 753100           61                     MOV             MINUTE,#0
0072 02007B           62                     LJMP    K2
0075 1202AD           63             S3:     LCALL   DELAY
0078 2092B9           64                     JB              H_SET,A1
                      65                     
007B 0532             66             K2:     INC             HOUR            ;小时值加1
007D E532             67                     MOV             A,HOUR
007F B4185C           68                     CJNE    A,#24,J2        ;判断是否加到24小时
0082 753200           69                     MOV             HOUR,#0
0085 753100           70                     MOV             MINUTE,#0
0088 753000           71                     MOV             SECOND,#0
008B 01DE             72                     AJMP   J2   
                      73     
008D 1202AD           74             S4:     LCALL  DELAY
0090 2093A1           75                     JB             A_DISP,A1
0093 01E8             76                     AJMP   J3
                      77     
0095 1202AD           78             S5:     LCALL   DELAY           ;去抖动
0098 209499           79                     JB              A_S_SET,A1
                      80     
009B 0536             81                     INC             A_SEC           ;秒值加1
009D E536             82                     MOV             A,A_SEC
009F B43C50           83                     CJNE    A,#60,J4        ;判断是否加到60秒
00A2 753600           84                     MOV             A_SEC,#0
00A5 01F2             85                     AJMP    J4
                      86     
00A7 1202AD           87             S6:     LCALL   DELAY
00AA 209587           88                     JB              A_M_SET,A1
                      89                     
00AD 0537             90                     INC             A_MIN           ;分钟值加1
00AF E537             91                     MOV             A,A_MIN
00B1 B43C48           92                     CJNE    A,#60,J5        ;判断是否加到60分
00B4 753700           93                     MOV             A_MIN,#0
00B7 01FC             94                     AJMP   J5
                      95     
00B9 1202AD           96             S7:     LCALL   DELAY
00BC 20960A           97                     JB              A_H_SET,OVER
                      98                     
00BF 0538             99                     INC             A_HOU           ;小时值加1
00C1 E538            100                     MOV             A,A_HOU
00C3 B41840          101                     CJNE    A,#24,J6        ;判断是否加到24小时
00C6 753800          102                     MOV             A_HOU,#0                
                     103     
00C9 020034          104             OVER:   LJMP    A1      
                     105     ;****************************************************
                     106     ;等待按键抬起
00CC 209003          107     J0:             JB              S_SET,N0
00CF 120148          108                     LCALL   DISPLAY
                     109                     ;SJMP   J0
00D2 0134            110     N0:             AJMP    A1
00D4 209105          111     J1:             JB              M_SET,N1
00D7 120148          112                     LCALL   DISPLAY
00DA 80F8            113                     SJMP    J1
00DC 0134            114     N1:             AJMP    A1
00DE 209205          115     J2:             JB              H_SET,N2
00E1 120148          116                     LCALL   DISPLAY
00E4 80F8            117                     SJMP    J2
00E6 0134            118     N2:             AJMP    A1
00E8 209305          119     J3:             JB             A_DISP,N3                                
00EB 12024F          120                     LCALL   INT_ALARM                
00EE 80F8            121                     SJMP    J3
00F0 0134            122     N3:             AJMP    A1             
A51 MACRO ASSEMBLER  DIGITAL_CLOCK__2_                                                    10/07/2008 21:27:26 PAGE     3

00F2 209405          123     J4:             JB            A_S_SET,N4
00F5 1201E0          124                     LCALL   DISPLAY_ALARM                
00F8 80F8            125                     SJMP    J4
00FA 0134            126     N4:             AJMP    A1
00FC 209505          127     J5:             JB              A_M_SET,N5
00FF 1201E0          128                     LCALL   DISPLAY_ALARM
0102 80F8            129                     SJMP    J5
0104 0134            130     N5:             AJMP    A1
0106 209605          131     J6:             JB              A_H_SET,N6
0109 1201E0          132                     LCALL   DISPLAY_ALARM
010C 80F8            133                     SJMP    J6
010E 0134            134     N6:             AJMP    A1
                     135     ;***********************************************
                     136     ;定时器中断服务程序,对秒,分钟和小时的计数
0110 758C3C          137     INT_T0: MOV             TH0,#(65536-50000)/256
0113 758AB0          138                     MOV             TL0,#(65536-50000)MOD 256               
0116 0534            139                     INC             TCNT
0118 E534            140                     MOV             A,TCNT
011A B4142A          141                     CJNE    A,#20,RETUNE    ;计时1秒
011D 0530            142                     INC             SECOND
011F 753400          143                     MOV             TCNT,#0
0122 E530            144                     MOV             A,SECOND
0124 B43C20          145                     CJNE    A,#60,RETUNE
0127 0531            146                     INC             MINUTE
0129 753000          147                     MOV             SECOND,#0
012C E531            148                     MOV             A,MINUTE
012E B43C16          149                     CJNE    A,#60,RETUNE
0131 0532            150                     INC             HOUR
0133 753100          151                     MOV             MINUTE,#0
0136 E532            152                     MOV             A,HOUR
0138 B4180C          153                     CJNE    A,#24,RETUNE
013B 753200          154                     MOV             HOUR,#0
013E 753100          155                     MOV             MINUTE,#0
0141 753000          156                     MOV             SECOND,#0
0144 753400          157                     MOV             TCNT,#0
0147 32              158     RETUNE: RETI
                     159     ;******************************************
                     160     ;显示控制子程序
0148 9001D6          161     DISPLAY:        MOV             DPTR,#TABLE
014B E530            162                     MOV             A,SECOND        ;显示秒
014D 75F00A          163                     MOV             B,#10
0150 84              164                     DIV             AB
0151 C2B6            165                     CLR             P3.6
0153 93              166                     MOVC    A,@A+DPTR
0154 F580            167                     MOV             P0,A
0156 1202AD          168                     LCALL   DELAY
0159 D2B6            169                     SETB    P3.6
015B E5F0            170                     MOV             A,B
015D C2B7            171                     CLR             P3.7
015F 93              172                     MOVC    A,@A+DPTR
0160 F580            173                     MOV             P0,A
0162 1202AD          174                     LCALL   DELAY
0165 D2B7            175                     SETB    P3.7
                     176     
0167 C2B5            177                     CLR             P3.5
0169 758040          178                     MOV             P0,#40H         ;显示分隔符
016C 1202AD          179                     LCALL   DELAY
016F D2B5            180                     SETB    P3.5
                     181     
0171 E532            182                     MOV             A,HOUR  ;显示分钟
0173 A939            183                     MOV    R1,ALARM
0175 B9010A          184                     CJNE   R1,#01H,B20
0178 B53807          185                     CJNE     A,A_HOU,B20
017B E531            186                     MOV     A,MINUTE
017D B53702          187                     CJNE     A,A_MIN,B20
0180 B297            188                     CPL      P1.7
A51 MACRO ASSEMBLER  DIGITAL_CLOCK__2_                                                    10/07/2008 21:27:26 PAGE     4

0182 E531            189             B20:    MOV    A,MINUTE
0184 75F00A          190                     MOV             B,#10
0187 84              191                     DIV             AB
0188 C2B3            192                     CLR             P3.3
018A 93              193                     MOVC    A,@A+DPTR
018B F580            194                     MOV             P0,A
018D 1202AD          195                     LCALL   DELAY
0190 D2B3            196                     SETB    P3.3
0192 E5F0            197                     MOV             A,B
0194 C2B4            198                     CLR             P3.4
0196 93              199                     MOVC    A,@A+DPTR
0197 F580            200                     MOV             P0,A
0199 1202AD          201                     LCALL   DELAY
019C D2B4            202                     SETB    P3.4
                     203     
019E C2B2            204                     CLR             P3.2
01A0 758040          205                     MOV             P0,#40H         ;显示分隔符
01A3 1202AD          206                     LCALL   DELAY
01A6 D2B2            207                     SETB    P3.2
                     208     

⌨️ 快捷键说明

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