📄 communication.ls1
字号:
181 ; /* 2+2+2+2+1+((1+(1+2)*8)+2)*TM114US = 90 machine time */
182
183 ; push ACC ;2
0002 C0E0 184 push ACC ;2
185 ; push 0H ;2
0004 C000 186 push 0H ;2
187 ; push 1H ;2
0006 C001 188 push 1H ;2
A51 MACRO ASSEMBLER COMMUNICATION 09/29/2004 10:59:29 PAGE 4
189 ; push 7H ;2
0008 C007 190 push 7H ;2
191 ; mov R0,#TM104US ;1
000A 7803 192 mov R0,#3 ;1
193 ; LOOP1: mov R1,#8 ;1
000C 7908 194 LOOP1: mov R1,#8 ;1
195 ; LOOP2: NOP ;1
000E 00 196 LOOP2: NOP ;1
197 ; DJNZ R1,LOOP2 ;2
000F D9FD 198 DJNZ R1,LOOP2 ;2
199 ; DJNZ R0,LOOP1 ;2
0011 D8F9 200 DJNZ R0,LOOP1 ;2
201 ;
202
203 ; //delay over
204
205 ;
206
207 ; // for(i=0;i<8;i++)
208
209 ; //---- Variable 'i?040' assigned to Register 'R7' ----
210
211 ; CLR A //1 machine CYC
0013 E4 212 CLR A
213 ; MOV R7,A //1 machine CYC
0014 FF 214 MOV R7,A
215 ; L0001:
0015 216 L0001:
217 ; // {
218
219 ; // if(tx_data &0x80)
220
221 ; MOV A,tx_data //1 machine CYC
0015 E500 F 222 MOV A,tx_data
223 ; JNB ACC.7,L0004 //2 machine CYC
0017 30E72B 224 JNB ACC.7,L0004
225 ; // {
226
227 ; // TXD_PIN = HIGH ;
228
229 ; /* last time == 96 machine time */
230
231 ; SETB TXD_PIN //1 machine CYC
001A D2B0 232 SETB TXD_PIN
233 ; // Delay_20US start
234
235 ; MOV R0,#9 //1 machine CYC
001C 7809 236 MOV R0,#9
237 ; Delay_20CYC:
001E 238 Delay_20CYC:
239 ; DJNZ R0,Delay_20CYC //2 machine CYC
001E D8FE 240 DJNZ R0,Delay_20CYC
241 ; NOP //1 machine CYC
0020 00 242 NOP
243 ; //Delay_20US OVER
244
245 ; // if(!RXD_PIN) //
246
247 ; JB RXD_PIN,L0005 //2 machine CYC
0021 20B103 248 JB RXD_PIN,L0005
249 ; // {
250
251 ; // send_F = DISABLE_SEND ;
252
253 ; CLR send_F
0024 C200 F 254 CLR send_F
A51 MACRO ASSEMBLER COMMUNICATION 09/29/2004 10:59:29 PAGE 5
255 ; RET
0026 22 256 RET
257 ; // TXD_PIN = HIGH ;
258
259 ; // return;
260
261 ; // }
262
263 ;
264
265 ; L0005:
0027 266 L0005:
267 ; //DELAY 21 machine CYC
268
269 ; MOV R0,#10 //1 machine CYC
0027 780A 270 MOV R0,#10
271 ; First_21CYC:
0029 272 First_21CYC:
273 ; DJNZ R0,First_21CYC //2 machine CYC
0029 D8FE 274 DJNZ R0,First_21CYC
275 ; //delay_21CYC over
276
277 ; // if(!RXD_PIN)
278
279 ;
280
281 ; JB RXD_PIN,L0007 //2 machine CYC
002B 20B103 282 JB RXD_PIN,L0007
283 ; // {
284
285 ; // send_F = DISABLE_SEND ;
286
287 ; CLR send_F
002E C200 F 288 CLR send_F
289 ; RET
0030 22 290 RET
291 ; // TXD_PIN = HIGH ;
292
293 ; // return;
294
295 ; // }
296
297 ;
298
299 ; L0007:
0031 300 L0007:
301 ;
302
303 ; // Second_21CYC delay start
304
305 ; MOV R0,#10 //1 machine CYC
0031 780A 306 MOV R0,#10
307 ; Second_21CYC:
0033 308 Second_21CYC:
309 ; DJNZ R0,Second_21CYC //2 machine CYC
0033 D8FE 310 DJNZ R0,Second_21CYC
311 ; //Second_21CYC delay over
312
313 ; // if(!RXD_PIN)
314
315 ; JB RXD_PIN,L0008 //2 machine CYC
0035 20B103 316 JB RXD_PIN,L0008
317 ; // {
318
319 ; // send_F = DISABLE_SEND ;
320
A51 MACRO ASSEMBLER COMMUNICATION 09/29/2004 10:59:29 PAGE 6
321 ; CLR send_F
0038 C200 F 322 CLR send_F
323 ; RET
003A 22 324 RET
325 ; // TXD_PIN = HIGH ;
326
327 ; // return;
328
329 ; // }
330
331 ; L0008:
003B 332 L0008:
333 ; // Third_21CYC delay start
334
335 ; MOV R0,#10 //1 machine CYC
003B 780A 336 MOV R0,#10
337 ; Third_21CYC:
003D 338 Third_21CYC:
339 ; DJNZ R0,Third_21CYC //2 machine CYC
003D D8FE 340 DJNZ R0,Third_21CYC
341 ; //Third_21CYC delay over
342
343 ; // if(!RXD_PIN)
344
345 ; JB RXD_PIN,L0010 //2 machine CYC
003F 20B10C 346 JB RXD_PIN,L0010
347 ; // {
348
349 ; // send_F = DISABLE_SEND ;
350
351 ;
352
353 ; CLR send_F
0042 C200 F 354 CLR send_F
355 ; RET
0044 22 356 RET
357 ; // TXD_PIN = HIGH ;
358
359 ; // return;
360
361 ; // }
362
363 ;
364
365 ; // }
366
367 ;
368
369 ; L0004:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -