📄 exp1.lst
字号:
A51 MACRO ASSEMBLER EXP1 03/05/2008 17:17:18 PAGE 1
MACRO ASSEMBLER A51 V7.10
OBJECT MODULE PLACED IN exp1.OBJ
ASSEMBLER INVOKED BY: C:\Keil\C51\BIN\A51.EXE exp1.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0000 1 ORG 0000H
0000 0130 2 AJMP MAIN
001B 3 ORG 001BH
001B 0186 4 AJMP TIME
000B 5 ORG 000BH
000B 0200C2 6 LJMP TIMER2
0030 7 ORG 0030H
0030 75816A 8 MAIN: MOV SP,#6AH
9 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
0033 7840 10 MOV R0,#40H ;建立译码器对应查找表
0035 763F 11 MOV @R0,#3FH
0037 08 12 INC R0
0038 7606 13 MOV @R0,#06H
003A 08 14 INC R0
003B 765B 15 MOV @R0,#5BH
003D 08 16 INC R0
003E 764F 17 MOV @R0,#4FH
0040 08 18 INC R0
0041 7666 19 MOV @R0,#66H
0043 08 20 INC R0
0044 766D 21 MOV @R0,#6DH
0046 08 22 INC R0
0047 767D 23 MOV @R0,#7DH
0049 08 24 INC R0
004A 7607 25 MOV @R0,#07H
004C 08 26 INC R0
004D 767F 27 MOV @R0,#7FH
004F 08 28 INC R0
0050 766F 29 MOV @R0,#6FH
30 ;
0052 758911 31 MOV TMOD,#11H
0055 752028 32 MOV 20H,#28H
0058 E4 33 CLR A
0059 F530 34 MOV 30H,A ;分别存放时分秒
005B F531 35 MOV 31H,A
005D F532 36 MOV 32H,A
005F D2AB 37 SETB ET1
0061 D2AF 38 SETB EA
0063 75B808 39 MOV IP,#08H ;中断优先级控制,计时器1为高优先级
0066 758DA6 40 MOV TH1,#0A6H
0069 758B00 41 MOV TL1,#00H
006C D28E 42 SETB TR1
006E D2A9 43 SETB ET0
0070 758CF4 44 MOV TH0,#0F4H
0073 758A00 45 MOV TL0,#00H
0076 D28C 46 SETB TR0
47 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;
48 ; SJMP $
0078 49 JMAIN:
0078 7A7F 50 MOV R2,#07FH
007A 79FF 51 WTEMP: MOV R1,#0FFH
007C D9FE 52 TEMP: DJNZ R1,TEMP
007E DAFA 53 DJNZ R2,WTEMP
54
55
0080 3131 56 ACALL KEY ;调用按键检测程序
0082 3195 57 ACALL KPRO ;调用按键处理程序
A51 MACRO ASSEMBLER EXP1 03/05/2008 17:17:18 PAGE 2
58
0084 0178 59 AJMP JMAIN
60
61 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;
62
0086 C0D0 63 TIME: PUSH PSW ;计时器1中断服务程序,提供基准时间
0088 C0E0 64 PUSH ACC
008A 758DA6 65 MOV TH1,#0A6H
008D 758B00 66 MOV TL1,#00H
0090 D5202A 67 DJNZ 20H,RETUNT
0093 752028 68 MOV 20H,#28H
0096 7401 69 MOV A,#01H
0098 2532 70 ADD A,32H
009A D4 71 DA A
009B F532 72 MOV 32H,A
009D B4601D 73 CJNE A,#60H,RETUNT
00A0 753200 74 MOV 32H,#00H
00A3 7401 75 MOV A,#01H
00A5 2531 76 ADD A,31H
00A7 D4 77 DA A
00A8 F531 78 MOV 31H,A
00AA B46010 79 CJNE A,#60H,RETUNT
00AD 753100 80 MOV 31H,#00H
00B0 7401 81 MOV A,#01H
00B2 2530 82 ADD A,30H
00B4 D4 83 DA A
00B5 F530 84 MOV 30H,A
00B7 B42403 85 CJNE A,#24H,RETUNT
00BA 753000 86 MOV 30H,#00H
00BD D0E0 87 RETUNT: POP ACC
00BF D0D0 88 POP PSW
00C1 32 89 RETI
90
91
92
00C2 C0D0 93 TIMER2: PUSH PSW
00C4 C0E0 94 PUSH ACC
00C6 758CF4 95 MOV TH0,#0F4H ;计时器2,扫描显示控制
00C9 758A00 96 MOV TL0,#00H
00CC E538 97 MOV A,38H
00CE 04 98 INC A
00CF B40702 99 CJNE A,#07H,CREL
00D2 7401 100 MOV A,#01H
00D4 F538 101 CREL: MOV 38H,A
00D6 14 102 DEC A
00D7 600F 103 JZ A01
00D9 14 104 DEC A
00DA 6012 105 JZ A02
00DC 14 106 DEC A
00DD 6016 107 JZ A03
00DF 14 108 DEC A
00E0 6019 109 JZ A04
00E2 14 110 DEC A
00E3 601D 111 JZ A05
00E5 14 112 DEC A
00E6 6020 113 JZ A06
00E8 740F 114 A01: MOV A,#0FH
00EA 5532 115 ANL A,32H
00EC 210F 116 AJMP RTT2
00EE 74F0 117 A02: MOV A,#0F0H
00F0 5532 118 ANL A,32H
00F2 C4 119 SWAP A
00F3 210F 120 AJMP RTT2
00F5 740F 121 A03: MOV A,#0FH
00F7 5531 122 ANL A,31H
A51 MACRO ASSEMBLER EXP1 03/05/2008 17:17:18 PAGE 3
00F9 210F 123 AJMP RTT2
00FB 74F0 124 A04: MOV A,#0F0H
00FD 5531 125 ANL A,31H
00FF C4 126 SWAP A
0100 210F 127 AJMP RTT2
0102 740F 128 A05: MOV A,#0FH
0104 5530 129 ANL A,30H
0106 210F 130 AJMP RTT2
0108 74F0 131 A06: MOV A,#0F0H
010A 5530 132 ANL A,30H
010C C4 133 SWAP A
010D 210F 134 AJMP RTT2
010F F539 135 RTT2: MOV 39H,A
0111 3118 136 ACALL DPLAY
0113 D0E0 137 POP ACC
0115 D0D0 138 POP PSW
0117 32 139 RETI
140
141
0118 A838 142 DPLAY: MOV R0,38H ;显示函剩
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -