📄 cymometer.lst
字号:
A51 MACRO ASSEMBLER CYMOMETER 07/30/2006 21:53:02 PAGE 1
MACRO ASSEMBLER A51 V8.00
OBJECT MODULE PLACED IN Cymometer.OBJ
ASSEMBLER INVOKED BY: e:\Program Files\Keil\C51\BIN\A51.EXE Cymometer.asm SET(SMALL) DEBUG EP
LOC OBJ LINE SOURCE
0020 1 VALUEH EQU 20H ;暂存TH1的值
0021 2 VALUEL EQU 21H ;暂存TL1的值
0022 3 DVALUE0 EQU 22H ;暂存计数值的BCD码
0023 4 DVALUE1 EQU 23H
0024 5 DVALUE2 EQU 24H
0025 6 DVALUE3 EQU 25H
0026 7 DVALUE4 EQU 26H
0030 8 CNT EQU 30H
00B7 9 KEY EQU P3.7
0000 10 ORG 00H
0000 800C 11 SJMP START
000B 12 ORG 0BH
000B 020051 13 LJMP INT_T0
000E 9000F4 14 START: MOV DPTR,#TABLE
15
0011 752000 16 MOV 20H,#00H ;存储空间初始化
0014 752100 17 MOV 21H,#00H
0017 752200 18 MOV 22H,#00H
001A 752300 19 MOV 23H,#00H
001D 752400 20 MOV 24H,#00H
0020 752500 21 MOV 25H,#00H
0023 752600 22 MOV 26H,#00H
0026 753000 23 MOV 30H,#00H
24
0029 758951 25 MOV TMOD,#51H ;定时器0工作在定时方式
26 ;定时器1工作在计数方式
002C 758C3C 27 MOV TH0,#(65536-50000)/256
002F 758AB0 28 MOV TL0,#(65536-50000)MOD 256
0032 758D00 29 MOV TH1,#00H
0035 758B00 30 MOV TL1,#00H
31 ; SETB PT1
0038 75A88A 32 MOV IE,#8AH
003B 20B7FD 33 WAIT: JB KEY,$
003E 1200EB 34 LCALL DELAY
0041 20B7FD 35 JB KEY,$
0044 D28C 36 SETB TR0
0046 D28E 37 SETB TR1
0048 1200AB 38 W1: LCALL DISP
004B 30B7FA 39 JNB KEY,W1
004E 02000E 40 LJMP START
0051 758C3C 41 INT_T0: MOV TH0,#(65536-50000)/256
0054 758AB0 42 MOV TL0,#(65536-50000)MOD 256
0057 0530 43 INC CNT
0059 E530 44 MOV A,CNT
005B B41410 45 CJNE A,#20,RETUNE
005E 753000 46 MOV CNT,#00H
0061 C28C 47 CLR TR0
0063 C28E 48 CLR TR1
0065 858B21 49 MOV VALUEL,TL1
0068 858D20 50 MOV VALUEH,TH1
006B 12006F 51 LCALL HTOD
006E 32 52 RETUNE: RETI
53 ;************************
54 ;这段程序将VALUEH/VALUEL中的16进制数转成10进制并且把5位数依次存入
55 ;DVALUE0至DVALUE4
006F AA20 56 HTOD: MOV R2,VALUEH
0071 AB21 57 MOV R3,VALUEL
0073 E4 58 CLR A
A51 MACRO ASSEMBLER CYMOMETER 07/30/2006 21:53:02 PAGE 2
0074 FC 59 MOV R4,A
0075 FD 60 MOV R5,A
0076 FE 61 MOV R6,A
0077 7F10 62 MOV R7,#10H
0079 C3 63 LOOP1: CLR C
007A EB 64 MOV A,R3
007B 33 65 RLC A
007C FB 66 MOV R3,A
007D EA 67 MOV A,R2
007E 33 68 RLC A
007F FA 69 MOV R2,A
0080 EE 70 MOV A,R6
0081 3E 71 ADDC A,R6
0082 D4 72 DA A
0083 FE 73 MOV R6,A
0084 ED 74 MOV A,R5
0085 3D 75 ADDC A,R5
0086 D4 76 DA A
0087 FD 77 MOV R5,A
0088 EC 78 MOV A,R4
0089 3C 79 ADDC A,R4
008A D4 80 DA A
008B FC 81 MOV R4,A
008C DFEB 82 DJNZ R7,LOOP1
008E 7826 83 CZ: MOV R0,#DVALUE4
0090 EE 84 MOV A,R6
0091 540F 85 ANL A,#0FH
0093 F6 86 MOV @R0,A
0094 18 87 DEC R0
0095 EE 88 MOV A,R6
0096 C4 89 SWAP A
0097 540F 90 ANL A,#0FH
0099 F6 91 MOV @R0,A
009A 18 92 DEC R0
009B ED 93 MOV A,R5
009C 540F 94 ANL A,#0FH
009E F6 95 MOV @R0,A
009F 18 96 DEC R0
00A0 ED 97 MOV A,R5
00A1 C4 98 SWAP A
00A2 540F 99 ANL A,#0FH
00A4 F6 100 MOV @R0,A
00A5 18 101 DEC R0
00A6 EC 102 MOV A,R4
00A7 540F 103 ANL A,#0FH
00A9 F6 104 MOV @R0,A
00AA 22 105 RET
106 ;***************************
00AB 85FFA0 107 DISP: MOV P2,0FFH
00AE C2A0 108 CLR P2.0
00B0 E526 109 MOV A,DVALUE4
00B2 93 110 MOVC A,@A+DPTR
00B3 F580 111 MOV P0,A
00B5 1200EB 112 LCALL DELAY
00B8 D2A0 113 SETB P2.0
00BA C2A1 114 CLR P2.1
00BC E525 115 MOV A,DVALUE3
00BE 93 116 MOVC A,@A+DPTR
00BF F580 117 MOV P0,A
00C1 1200EB 118 LCALL DELAY
00C4 D2A1 119 SETB P2.1
00C6 C2A2 120 CLR P2.2
00C8 E524 121 MOV A,DVALUE2
00CA 93 122 MOVC A,@A+DPTR
00CB F580 123 MOV P0,A
00CD 1200EB 124 LCALL DELAY
A51 MACRO ASSEMBLER CYMOMETER 07/30/2006 21:53:02 PAGE 3
00D0 D2A2 125 SETB P2.2
00D2 C2A3 126 CLR P2.3
00D4 E523 127 MOV A,DVALUE1
00D6 93 128 MOVC A,@A+DPTR
00D7 F580 129 MOV P0,A
00D9 1200EB 130 LCALL DELAY
00DC D2A3 131 SETB P2.3
00DE C2A4 132 CLR P2.4
00E0 E522 133 MOV A,DVALUE0
00E2 93 134 MOVC A,@A+DPTR
00E3 F580 135 MOV P0,A
00E5 1200EB 136 LCALL DELAY
00E8 D2A4 137 SETB P2.4
00EA 22 138 RET
00EB 7E0A 139 DELAY: MOV R6,#10
00ED 7FF8 140 D1: MOV R7,#248
00EF DFFE 141 DJNZ R7,$
00F1 DEFA 142 DJNZ R6,D1
00F3 22 143 RET
00F4 3F065B4F 144 TABLE: DB 3FH,06H,5BH,4FH,66H
00F8 66
00F9 6D7D077F 145 DB 6DH,7DH,07H,7FH,6FH
00FD 6F
146 END
A51 MACRO ASSEMBLER CYMOMETER 07/30/2006 21:53:02 PAGE 4
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
CNT. . . . . . . . N NUMB 0030H A
CZ . . . . . . . . C ADDR 008EH A
D1 . . . . . . . . C ADDR 00EDH A
DELAY. . . . . . . C ADDR 00EBH A
DISP . . . . . . . C ADDR 00ABH A
DVALUE0. . . . . . N NUMB 0022H A
DVALUE1. . . . . . N NUMB 0023H A
DVALUE2. . . . . . N NUMB 0024H A
DVALUE3. . . . . . N NUMB 0025H A
DVALUE4. . . . . . N NUMB 0026H A
HTOD . . . . . . . C ADDR 006FH A
IE . . . . . . . . D ADDR 00A8H A
INT_T0 . . . . . . C ADDR 0051H A
KEY. . . . . . . . B ADDR 00B0H.7 A
LOOP1. . . . . . . C ADDR 0079H A
P0 . . . . . . . . D ADDR 0080H A
P2 . . . . . . . . D ADDR 00A0H A
P3 . . . . . . . . D ADDR 00B0H A
RETUNE . . . . . . C ADDR 006EH A
START. . . . . . . C ADDR 000EH A
TABLE. . . . . . . C ADDR 00F4H A
TH0. . . . . . . . D ADDR 008CH A
TH1. . . . . . . . D ADDR 008DH A
TL0. . . . . . . . D ADDR 008AH A
TL1. . . . . . . . D ADDR 008BH A
TMOD . . . . . . . D ADDR 0089H A
TR0. . . . . . . . B ADDR 0088H.4 A
TR1. . . . . . . . B ADDR 0088H.6 A
VALUEH . . . . . . N NUMB 0020H A
VALUEL . . . . . . N NUMB 0021H A
W1 . . . . . . . . C ADDR 0048H A
WAIT . . . . . . . C ADDR 003BH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -