clock.lst
来自「能显示时间」· LST 代码 · 共 159 行
LST
159 行
A51 MACRO ASSEMBLER CLOCK 02/18/2008 20:40:23 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN clock.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE clock.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0000 1 ORG 0000H
0000 0130 2 AJMP MAIN
001B 3 ORG 001BH
001B 0184 4 AJMP TIME
000B 5 ORG 000BH
000B 0200C0 6 LJMP TIMER2
0030 7 ORG 0030H
0030 758170 8 MAIN: MOV SP,#70H
9 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;
0033 7840 10 MOV R0,#40H ;建立译码器对应查找表
0035 763F 11 MOV @R0,#3FH ;0
0037 08 12 INC R0
0038 7606 13 MOV @R0,#06H ;1
003A 08 14 INC R0
003B 765B 15 MOV @R0,#5BH ;2
003D 08 16 INC R0
003E 764F 17 MOV @R0,#4FH ;3
0040 08 18 INC R0
0041 7666 19 MOV @R0,#66H ;4
0043 08 20 INC R0
0044 766D 21 MOV @R0,#6DH ;5
0046 08 22 INC R0
0047 767D 23 MOV @R0,#7DH ;6
0049 08 24 INC R0
004A 7607 25 MOV @R0,#07H ;7
004C 08 26 INC R0
004D 767F 27 MOV @R0,#7FH ;8
004F 08 28 INC R0
0050 766F 29 MOV @R0,#6FH ;9
0052 753003 30 MOV 30H,#03H
0055 753100 31 MOV 31H,#00H
0058 753230 32 MOV 32H,#30H
33
34 ;
005B 758911 35 MOV TMOD,#11H
005E 752028 36 MOV 20H,#28H
0061 D2AB 37 SETB ET1
0063 D2AF 38 SETB EA
0065 75B808 39 MOV IP,#08H ;中断优先级控制,计时器1为高优先级
0068 758DA6 40 MOV TH1,#0A6H
006B 758B00 41 MOV TL1,#00H
006E D28E 42 SETB TR1
0070 D2A9 43 SETB ET0
0072 758CF4 44 MOV TH0,#0F4H
0075 758A00 45 MOV TL0,#00H
0078 D28C 46 SETB TR0
47 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
48 ; SJMP $
007A 49 JMAIN:
007A 7A7F 50 MOV R2,#07FH
007C 79FF 51 WTEMP: MOV R1,#0FFH
007E D9FE 52 TEMP: DJNZ R1,TEMP
0080 DAFA 53 DJNZ R2,WTEMP
54
0082 017A 55 AJMP JMAIN
56
A51 MACRO ASSEMBLER CLOCK 02/18/2008 20:40:23 PAGE 2
57 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
58
0084 C0D0 59 TIME: PUSH PSW ;计时器1中断服务程序,提供基准时间
0086 C0E0 60 PUSH ACC
0088 758DA6 61 MOV TH1,#0A6H
008B 758B00 62 MOV TL1,#00H
008E D5202A 63 DJNZ 20H,RETUNT
0091 752028 64 MOV 20H,#28H
0094 7401 65 MOV A,#01H
0096 2532 66 ADD A,32H
0098 D4 67 DA A
0099 F532 68 MOV 32H,A
009B B4601D 69 CJNE A,#60H,RETUNT
009E 753200 70 MOV 32H,#00H
00A1 7401 71 MOV A,#01H
00A3 2531 72 ADD A,31H
00A5 D4 73 DA A
00A6 F531 74 MOV 31H,A
00A8 B46010 75 CJNE A,#60H,RETUNT
00AB 753100 76 MOV 31H,#00H
00AE 7401 77 MOV A,#01H
00B0 2530 78 ADD A,30H
00B2 D4 79 DA A
00B3 F530 80 MOV 30H,A
00B5 B42403 81 CJNE A,#24H,RETUNT
00B8 753000 82 MOV 30H,#00H
00BB D0E0 83 RETUNT: POP ACC
00BD D0D0 84 POP PSW
00BF 32 85 RETI
86
87
88
00C0 C0D0 89 TIMER2: PUSH PSW
00C2 C0E0 90 PUSH ACC
00C4 758CF4 91 MOV TH0,#0F4H ;计时器2,扫描显示控制
00C7 758A00 92 MOV TL0,#00H
93
00CA 11D1 94 ACALL TDSP
95
00CC D0E0 96 POP ACC
00CE D0D0 97 POP PSW
00D0 32 98 RETI
99
100
00D1 E538 101 TDSP: MOV A,38H
00D3 04 102 INC A
00D4 B40702 103 CJNE A,#07H,CREL
00D7 7401 104 MOV A,#01H
00D9 F538 105 CREL: MOV 38H,A
00DB 14 106 DEC A
00DC 600F 107 JZ A01
00DE 14 108 DEC A
00DF 6012 109 JZ A02
00E1 14 110 DEC A
00E2 6016 111 JZ A03
00E4 14 112 DEC A
00E5 6019 113 JZ A04
00E7 14 114 DEC A
00E8 601D 115 JZ A05
00EA 14 116 DEC A
00EB 6020 117 JZ A06
00ED 740F 118 A01: MOV A,#0FH
00EF 5532 119 ANL A,32H
00F1 2114 120 AJMP RTT2
00F3 74F0 121 A02: MOV A,#0F0H
A51 MACRO ASSEMBLER CLOCK 02/18/2008 20:40:23 PAGE 3
00F5 5532 122 ANL A,32H
00F7 C4 123 SWAP A
00F8 2114 124 AJMP RTT2
00FA 740F 125 A03: MOV A,#0FH
00FC 5531 126 ANL A,31H
00FE 2114 127 AJMP RTT2
0100 74F0 128 A04: MOV A,#0F0H
0102 5531 129 ANL A,31H
0104 C4 130 SWAP A
0105 2114 131 AJMP RTT2
0107 740F 132 A05: MOV A,#0FH
0109 5530 133 ANL A,30H
010B 2114 134 AJMP RTT2
010D 74F0 135 A06: MOV A,#0F0H
010F 5530 136 ANL A,30H
0111 C4 137 SWAP A
0112 2114 138 AJMP RTT2
0114 F539 139 RTT2: MOV 39H,A
0116 3119 140 ACALL DPLAY
0118 22 141 RET
142
0119 A838 143 DPLAY: MOV R0,38H ;显示函剩
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?