📄 12final.lst
字号:
A51 MACRO ASSEMBLER 12FINAL 10/27/2008 21:28:28 PAGE 1
MACRO ASSEMBLER A51 V1.09
OBJECT MODULE PLACED IN 12FINAL.OBJ
ASSEMBLER INVOKED BY: E:\MEDWIN\A51.EXE 12FINAL.ASM DB
LOC OBJ LINE SOURCE
1
2
0000 3 ORG 0000H
0000 02003F 4 JMP MAIN
5
003F 6 ORG 003FH
7
8
003F 9 MAIN:
10
003F C280 11 CLR P0.0 ;DQ
0041 C291 12 CLR P1.1 ;初始化失败
0043 C292 13 CLR P1.2 ;LED
0045 C294 14 CLR P1.4 ;波形
0047 C295 15 CLR P1.5 ;初始化成功
0049 C296 16 CLR P1.6 ;检测"1"
004B C297 17 CLR P1.7 ;检测"0"
18
19
20 ;----------------------RESET BEGIN-------------------------
21
004D D280 22 L0:SETB P0.0
004F 7A0F 23 MOV R2,#0FH
0051 00 24 NOP
0052 C280 25 CLR P0.0 ;1us
0054 78FA 26 MOV R0,#0FAH ;1us
0056 796E 27 MOV R1,#6EH
0058 D8FE 28 DJNZ R0,$
005A D9FE 29 DJNZ R1,$ ;delay 720us
005C D280 30 SETB P0.0 ;1us
005E 308009 31 L2:JNB P0.0,L1 ;1us
0061 DAFB 32 DJNZ R2,L2 ;一个循环4us,检测60us
0063 D291 33 SETB P1.1 ;标识初始化失败
0065 02004D 34 LJMP L0
0068 7878 35 MOV R0,#78H ;1us
006A D8FE 36 L1:DJNZ R0,$ ;delay 240us
006C D295 37 SETB P1.5 ;初始化标志位,初始化成功
006E D280 38 SETB P0.0
39 ;-----------------------RESET END----------------------
40
41 ;-----------------------WRITE CCH BEGIN----------------
0070 74CC 42 MOV A,#0CCH
0072 7908 43 MOV R1,#8H ;一共8bit数据
0074 C3 44 CLR C
0075 C280 45 WR1:CLR P0.0 ;产生写时隙
0077 7B05 46 MOV R3,#5H ;1us
0079 DBFE 47 DJNZ R3,$ ;等待10us
007B 13 48 RRC A ;把写的位送到C
007C 9280 49 MOV P0.0,C ;开始写,第14us
007E 7B17 50 MOV R3,#17H ;1us
0080 DBFE 51 DJNZ R3,$ ;等待46us
0082 D280 52 SETB P0.0
0084 00 53 NOP
0085 D9EE 54 DJNZ R1,WR1 ;写下一位
0087 D280 55 SETB P0.0
56 ;-----------------------WRITE CCH END----------------
57 ;-----------------------WRITE 44H BEGIN----------------
0089 7444 58 MOV A,#44H
A51 MACRO ASSEMBLER 12FINAL 10/27/2008 21:28:28 PAGE 2
008B 7908 59 MOV R1,#8H ;一共8bit数据
008D C3 60 CLR C
008E C280 61 WR2:CLR P0.0 ;产生写时隙
0090 7B05 62 MOV R3,#5H ;1us
0092 DBFE 63 DJNZ R3,$ ;等待10us
0094 13 64 RRC A ;把写的位送到C
0095 9280 65 MOV P0.0,C ;开始写,第14us
0097 7B17 66 MOV R3,#17H ;1us
0099 DBFE 67 DJNZ R3,$ ;等待46us
009B D280 68 SETB P0.0
009D 00 69 NOP
009E D9EE 70 DJNZ R1,WR2 ;写下一位
00A0 D280 71 SETB P0.0
72 ;-----------------------WRITE 44H END----------------
73 ;-----------------------DELAY BEGIN----------------
00A2 1201B9 74 LCALL DELAY ;
00A5 1201B9 75 LCALL DELAY
00A8 1201B9 76 LCALL DELAY
00AB 1201B9 77 LCALL DELAY
00AE 1201B9 78 LCALL DELAY
00B1 1201B9 79 LCALL DELAY
00B4 1201B9 80 LCALL DELAY
00B7 1201B9 81 LCALL DELAY ;延时0.8s
82
83 ;-----------------------DELAY END----------------
84 ;----------------------RESET BEGIN-------------------------
85
00BA D280 86 L0_0:SETB P0.0
00BC 00 87 NOP
00BD 00 88 NOP
00BE 00 89 NOP
00BF C280 90 CLR P0.0 ;1us
00C1 78FA 91 MOV R0,#0FAH ;1us
00C3 796E 92 MOV R1,#6EH ;1us
00C5 D8FE 93 DJNZ R0,$ ;delay720us
00C7 D9FE 94 DJNZ R1,$
00C9 D280 95 SETB P0.0 ;1us
00CB 308009 96 L2_0:JNB P0.0,L1_0 ;1us
00CE DAFB 97 DJNZ R2,L2_0 ;一个循环4us,检测60us
00D0 D291 98 SETB P1.1 ;标识初始化失败
00D2 0200BA 99 LJMP L0_0
00D5 7878 100 MOV R0,#78H ;1us
00D7 D8FE 101 L1_0:DJNZ R0,$ ;delay 240us
00D9 D295 102 SETB P1.5 ;初始化标志位,初始化成功
00DB D280 103 SETB P0.0
104 ;-----------------------RESET END----------------------
105 ;-----------------------WRITE CCH BEGIN----------------
00DD 74CC 106 MOV A,#0CCH
00DF 7908 107 MOV R1,#8H ;一共8bit数据
00E1 C3 108 CLR C
00E2 C280 109 WR3:CLR P0.0 ;产生写时隙
00E4 7B05 110 MOV R3,#5H ;1us
00E6 DBFE 111 DJNZ R3,$ ;等待10us
00E8 13 112 RRC A ;把写的位送到C
00E9 9280 113 MOV P0.0,C ;开始写,第14us
00EB 7B17 114 MOV R3,#17H ;1us
00ED DBFE 115 DJNZ R3,$ ;等待46us
00EF D280 116 SETB P0.0
00F1 00 117 NOP
00F2 D9EE 118 DJNZ R1,WR3 ;写下一位
00F4 D280 119 SETB P0.0
120 ;-----------------------WRITE CCH END----------------
121
122 ;-----------------------WRITE BEH BEGIN----------------
00F6 74BE 123 MOV A,#0BEH
00F8 7908 124 MOV R1,#8H ;一共8bit数据
A51 MACRO ASSEMBLER 12FINAL 10/27/2008 21:28:28 PAGE 3
00FA C3 125 CLR C
00FB C280 126 WR4:CLR P0.0 ;产生写时隙
00FD 7B05 127 MOV R3,#5H ;1us
00FF DBFE 128 DJNZ R3,$ ;等待12us
0101 13 129 RRC A ;把写的位送到C
0102 9280 130 MOV P0.0,C ;开始写,第14us
0104 7B17 131 MOV R3,#17H ;1us
0106 DBFE 132 DJNZ R3,$ ;等待46us
0108 D280 133 SETB P0.0
010A 00 134 NOP
010B D9EE 135 DJNZ R1,WR4 ;写下一位
010D D280 136 SETB P0.0
137 ;-----------------------WRITE BEH END----------------
138 ;-----------------------READ BEGIN----------------
010F 780C 139 MOV R0,#0CH
0111 C3 140 CLR C ;读12次,后8位有效
0112 D280 141 RE1:SETB P0.0
0114 7A05 142 MOV R2,#5H
0116 7B17 143 MOV R3,#17H
0118 C280 144 CLR P0.0 ;1us
011A 00 145 NOP ;1us
011B D280 146 SETB P0.0 ;1us
147
011D DAFE 148 DJNZ R2,$ ;10us
011F 30800C 149 JNB P0.0,RE3 ;2us
0122 A280 150 MOV C,P0.0 ;14us读
151
152
0124 DBFE 153 DJNZ R3,$ ;等待46us
0126 D296 154 SETB P1.6 ;标示检测到1 1us
0128 13 155 RRC A ;1us
0129 D8E7 156 DJNZ R0,RE1 ;读下一位
012B 020137 157 LJMP RE4
158
012E A280 159 RE3:MOV C,P0.0 ;14us读
160
0130 DBFE 161 DJNZ R3,$ ;等待46us
0132 D297 162 SETB P1.7 ;标识检测到0 1us
0134 13 163 RRC A ;1us
0135 D8DB 164 DJNZ R0,RE1 ;2us
0137 FF 165 RE4:MOV R7,A ;中间8位有效
166 ;-----------------------READ END-----------------------
167 ;-----------------------TEST READ BEGIN----------------
0138 7D08 168 MOV R5,#8H
013A EF 169 MOV A,R7
013B 13 170 TE1:RRC A
013C 9294 171 MOV P1.4,C
013E 1201B9 172 LCALL DELAY ;延时2s
0141 1201B9 173 LCALL DELAY
0144 1201B9 174 LCALL DELAY
0147 1201B9 175 LCALL DELAY
014A 1201B9 176 LCALL DELAY
014D 1201B9 177 LCALL DELAY
0150 1201B9 178 LCALL DELAY
0153 1201B9 179 LCALL DELAY
0156 1201B9 180 LCALL DELAY
0159 1201B9 181 LCALL DELAY
015C 1201B9 182 LCALL DELAY ;
015F 1201B9 183 LCALL DELAY
0162 1201B9 184 LCALL DELAY
0165 1201B9 185 LCALL DELAY
0168 1201B9 186 LCALL DELAY
016B 1201B9 187 LCALL DELAY
016E 1201B9 188 LCALL DELAY
0171 1201B9 189 LCALL DELAY
0174 1201B9 190 LCALL DELAY
A51 MACRO ASSEMBLER 12FINAL 10/27/2008 21:28:28 PAGE 4
0177 1201B9 191 LCALL DELAY
017A DDBF 192 DJNZ R5,TE1
193 ;-----------------------TEST READ END---------------
194 ;-----------------------CMP TEMPER BEGIN------------
195 ;60度=03C0H=0000 0011 1100 0000B
196 ;25度=0190H=0000 0001 1001 0000B
197 ;2度=0020H=0000 0000 0010 0000B
017C EF 198 CMP:MOV A,R7
017D C3 199 CLR C
017E 9419 200 SUBB A,#19H ;设定比较温度25度
0180 5005 201 JNC CL1
0182 C292 202 CL2:CLR P1.2
0184 02004D 203 LJMP L0
204
205
206
0187 D292 207 CL1:SETB P1.2 ;灯亮
0189 1201B9 208 LCALL DELAY
018C 1201B9 209 LCALL DELAY
018F 1201B9 210 LCALL DELAY
0192 1201B9 211 LCALL DELAY
0195 1201B9 212 LCALL DELAY ;延时1s
0198 1201B9 213 LCALL DELAY
019B 1201B9 214 LCALL DELAY
019E 1201B9 215 LCALL DELAY
01A1 1201B9 216 LCALL DELAY
01A4 1201B9 217 LCALL DELAY
01A7 1201B9 218 LCALL DELAY
01AA 1201B9 219 LCALL DELAY
01AD 1201B9 220 LCALL DELAY
01B0 1201B9 221 LCALL DELAY
01B3 1201B9 222 LCALL DELAY
01B6 02004D 223 LJMP L0
224
225
226 ;---------------------CMP TEMPER END-------------
227
01B9 228 DELAY:
01B9 78C3 229 MOV R0,#0C3H
01BB 79FF 230 DE0:MOV R1,#0FFH
01BD D9FE 231 DJNZ R1,$
01BF D8FA 232 DJNZ R0,DE0
01C1 22 233 RET ;延时0.1s
234
235 END
A51 MACRO ASSEMBLER 12FINAL 10/27/2008 21:28:28 PAGE 5
SYMBOL TABLE LISTING
------ ----- -------
N A M E T Y P E V A L U E ATTRIBUTES
CL1. . . . . . . . C ADDR 0187H A
CL2. . . . . . . . C ADDR 0182H A
CMP. . . . . . . . C ADDR 017CH A
DE0. . . . . . . . C ADDR 01BBH A
DELAY. . . . . . . C ADDR 01B9H A
L0 . . . . . . . . C ADDR 004DH A
L0_0 . . . . . . . C ADDR 00BAH A
L1 . . . . . . . . C ADDR 006AH A
L1_0 . . . . . . . C ADDR 00D7H A
L2 . . . . . . . . C ADDR 005EH A
L2_0 . . . . . . . C ADDR 00CBH A
MAIN . . . . . . . C ADDR 003FH A
P0 . . . . . . . . D ADDR 0080H A
P1 . . . . . . . . D ADDR 0090H A
RE1. . . . . . . . C ADDR 0112H A
RE3. . . . . . . . C ADDR 012EH A
RE4. . . . . . . . C ADDR 0137H A
TE1. . . . . . . . C ADDR 013BH A
WR1. . . . . . . . C ADDR 0075H A
WR2. . . . . . . . C ADDR 008EH A
WR3. . . . . . . . C ADDR 00E2H A
WR4. . . . . . . . C ADDR 00FBH A
REGISTER BANK(S) USED: 0
ASSEMBLY COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -