📄 main.lst
字号:
238 00D9 0F07 MOV A,07h
238 00DA 0080 R MOV LCD_write_string0,A
238 00DB 0F01 MOV A,01h
238 00DC 0080 R MOV LCD_write_string1,A
238 00DD 0F00 R MOV A,OFFSET L44
238 00DE 0080 R MOV LCD_write_string2,A
238 00DF 2000 R CALL _LCD_write_string
238 00E0 2800 R JMP L43
238 00E1 L42:
; 240: LCD_write_string(7,LINE2,"Ack ");
240 00E1 0F07 MOV A,07h
240 00E2 0080 R MOV LCD_write_string0,A
240 00E3 0F01 MOV A,01h
240 00E4 0080 R MOV LCD_write_string1,A
240 00E5 0F00 R MOV A,OFFSET L45
240 00E6 0080 R MOV LCD_write_string2,A
240 00E7 2000 R CALL _LCD_write_string
240 00E8 L43:
; 241: FlagShowAlarm=0;
241 00E8 3400 R CLR _FlagShowAlarm
; 242: }
242 00E9 2800 R JMP L41
242 00EA L40:
; 245: LCD_write_string(7,LINE2," ");
245 00EA 0F07 MOV A,07h
245 00EB 0080 R MOV LCD_write_string0,A
245 00EC 0F01 MOV A,01h
245 00ED 0080 R MOV LCD_write_string1,A
245 00EE 0F00 R MOV A,OFFSET L46
245 00EF 0080 R MOV LCD_write_string2,A
文件:MAIN.C 盛群编译器版本 2.86 页次8
245 00F0 2000 R CALL _LCD_write_string
; 246: FlagShowAlarm=1;
246 00F1 3000 R SET _FlagShowAlarm
246 00F2 L41:
; 248: alarmcnt=0;
248 00F2 1F00 R CLR _alarmcnt
文件:MAIN.c 盛群编译器版本 2.86 页次9
248 00F3 1F00 R CLR _alarmcnt[1]
248 00F4 L38:
248 00F4 L5:
; 158: while(1) // circulation
158 00F4 2800 R JMP L4
158 00F5 L1:
; 252: }
252 00F5 2800 R JMP $
252 0000 0002[ LOCAL b0_1 DB 2 DUP(?)
00
]
; 131: uchar j;
131 0002 00 LOCAL CR1 DB ? ; j
131 00F6 _main ENDP
; 257: {
257 0000 @InitIO .SECTION 'CODE'
257 0000 PUBLIC _InitIO
257 0000 _InitIO PROC
; 260: _pac=0x1f;//low 2 bit for key ,no LED
260 0000 0F1F MOV A,01fh
260 0001 0093 MOV __pac,A
; 264: _pbc=0X00;// change pin output for LCD data BUS
264 0002 1F15 CLR __pbc
; 271: _pcc=0x08;
271 0003 0F08 MOV A,08h
271 0004 0097 MOV __pcc,A
; 274: _pdc=0xfc;
274 0005 0FFC MOV A,0fch
274 0006 0099 MOV __pdc,A
; 294: CSN=1; // Spi disable
294 0007 3016 SET [016H].0
; 295: SCK=0; // Spi clock line init high
295 0008 3496 CLR [016H].1
; 296: DR=1; // Init DR for input
296 0009 3192 SET [012H].3
; 297: AM=1; // Init AM for input
297 000A 3112 SET [012H].2
; 298: PWR_UP=1; // nRF905 power on
298 000B 3216 SET [016H].4
; 299: TRX_CE=0; // Set nRF905 in standby mode
299 000C 3418 CLR [018H].0
; 300: TX_EN=0;
300 000D 3498 CLR [018H].1
300 000E L51:
300 000E 0003 RET
文件:MAIN.c 盛群编译器版本 2.86 页次10
300 000F _InitIO ENDP
; 309: {
309 0000 @Config905 .SECTION 'CODE'
309 0000 PUBLIC _Config905
309 0000 _Config905 PROC
文件:MAIN.C 盛群编译器版本 2.86 页次9
; 311: CSN=0; // Spi enable for write a spi command
311 0000 3416 CLR [016H].0
; 312: SpiWrite(WC); // Write config command
312 0001 0F00 MOV A,00h
312 0002 0080 R MOV SpiWrite0,A
312 0003 2000 R CALL _SpiWrite
; 314: for (i=0;i<10;i++) // Write configration words
314 0004 1F00 R CLR CR7
314 0005 2800 R JMP L56
314 0006 L53:
; 316: c=RxTxConf_buf[i];
316 0006 0F01 MOV A,1
316 0007 0300 R ADD A,CR7
316 0008 0B00 R ADD A,OFFSET l_RxTxConf_buf
316 0009 2000 R CALL l_RxTxConf_buf
316 000A 0080 R MOV CR8,A
; 317: SpiWrite(c);
317 000B 0700 R MOV A,CR8
317 000C 0080 R MOV SpiWrite0,A
317 000D 2000 R CALL _SpiWrite
317 000E L54:
; 314: for (i=0;i<10;i++) // Write configration words
314 000E 1480 R INC CR7
314 000F L56:
314 000F 0700 R MOV A,CR7
314 0010 0A0A SUB A,0ah
314 0011 380A SNZ [0ah].0
314 0012 2800 R JMP L53
; 319: CSN=1; // Disable Spi
319 0013 3016 SET [016H].0
319 0014 L52:
319 0014 0003 RET
319 0000 00 LOCAL b0_3 DB ?
; 310: uchar i,c;
310 0001 00 LOCAL CR7 DB ? ; i
310 0002 00 LOCAL CR8 DB ? ; c
310 0015 _Config905 ENDP
; 325: {
325 0000 @Delay .SECTION 'CODE'
325 0000 PUBLIC _Delay
325 0000 _Delay PROC
; 324: void Delay(uchar n)
文件:MAIN.c 盛群编译器版本 2.86 页次11
324 0000 PUBLIC Delay0
324 0000 00 LOCAL Delay0 DB ? ; n
; 325: {
325 0000 2800 R JMP L59
325 0001 L58:
; 328: for(i=0;i<80;i++);
328 0001 1F00 R CLR CR9
文件:MAIN.C 盛群编译器版本 2.86 页次10
328 0002 2800 R JMP L64
328 0003 L61:
328 0003 L62:
328 0003 1480 R INC CR9
328 0004 L64:
328 0004 0700 R MOV A,CR9
328 0005 0A50 SUB A,050h
328 0006 380A SNZ [0ah].0
328 0007 2800 R JMP L61
328 0008 L59:
; 327: while(n--)
327 0008 0700 R MOV A,Delay0
327 0009 0080 R MOV b0_4,A
327 000A 1580 R DEC Delay0
327 000B 1080 R SZ b0_4
327 000C 2800 R JMP L58
327 000D L57:
327 000D 0003 RET
327 0001 00 LOCAL b0_4 DB ?
; 326: uint i;
326 0002 00 LOCAL CR9 DB ? ; i
326 000E _Delay ENDP
; 334: {
334 0000 @SpiWrite .SECTION 'CODE'
334 0000 PUBLIC _SpiWrite
334 0000 _SpiWrite PROC
; 333: void SpiWrite(uchar byte)
333 0000 PUBLIC SpiWrite0
333 0000 00 LOCAL SpiWrite0 DB ? ; byte
; 338: DATA_BUF=byte; // Put function's parameter into a bdata variable
338 0000 0700 R MOV A,SpiWrite0
338 0001 0080 R MOV _DATA_BUF,A
; 339: for (i=0;i<8;i++) // Setup byte circulation bits
339 0002 1F00 R CLR CR11
339 0003 2800 R JMP L69
339 0004 L66:
; 342: if (DATA_BUF&0x80) // Put DATA_BUF.7 on data line
342 0004 3800 R SNZ _DATA_BUF.7
342 0005 2800 R JMP L70
; 343: MOSI=1;
343 0006 3116 SET [016H].2
文件:MAIN.c 盛群编译器版本 2.86 页次12
343 0007 2800 R JMP L71
343 0008 L70:
; 345: MOSI=0;
345 0008 3516 CLR [016H].2
345 0009 L71:
; 346: SCK=1; // Set clock line high
346 0009 3096 SET [016H].1
; 347: DATA_BUF=DATA_BUF<<1; // Shift DATA_BUF
347 000A 340A CLR [0AH].0
文件:MAIN.C 盛群编译器版本 2.86 页次11
347 000B 1A80 R RLC _DATA_BUF
; 348: SCK=0; // Set clock line low
348 000C 3496 CLR [016H].1
348 000D L67:
; 339: for (i=0;i<8;i++) // Setup byte circulation bits
339 000D 1480 R INC CR11
339 000E L69:
339 000E 0700 R MOV A,CR11
339 000F 0A08 SUB A,08h
339 0010 380A SNZ [0ah].0
339 0011 2800 R JMP L66
339 0012 L65:
339 0012 0003 RET
; 336: uchar i;
336 0001 00 LOCAL CR11 DB ? ; i
336 0013 _SpiWrite ENDP
; 356: {
356 0000 @SpiRead .SECTION 'CODE'
356 0000 PUBLIC _SpiRead
356 0000 _SpiRead PROC
; 358: for (i=0;i<8;i++) // Setup byte circulation bits
358 0000 1F00 R CLR CR12
358 0001 2800 R JMP L76
358 0002 L73:
; 360: DATA_BUF=DATA_BUF<<1; // Right shift DATA_BUF
360 0002 340A CLR [0AH].0
360 0003 1A80 R RLC _DATA_BUF
; 361: SCK=1; // Set clock line high
361 0004 3096 SET [016H].1
; 362: if (MISO)
362 0005 3996 SNZ [016H].3
362 0006 2800 R JMP L77
; 363: DATA_BUF =DATA_BUF | 0x01; // Read data
363 0007 3000 R SET _DATA_BUF.0
363 0008 2800 R JMP L78
363 0009 L77:
; 365: DATA_BUF =DATA_BUF & 0xfe;
文件:MAIN.c 盛群编译器版本 2.86 页次13
365 0009 3400 R CLR _DATA_BUF.0
365 000A L78:
; 368: SCK=0; // Set clock line low
368 000A 3496 CLR [016H].1
368 000B L74:
; 358: for (i=0;i<8;i++) // Setup byte circulation bits
358 000B 1480 R INC CR12
358 000C L76:
358 000C 0700 R MOV A,CR12
358 000D 0A08 SUB A,08h
358 000E 380A SNZ [0ah].0
358 000F 2800 R JMP L73
; 370: return DATA_BUF; // Return function parameter
370 0010 0700 R MOV A,_DATA_BUF
文件:MAIN.C 盛群编译器版本 2.86 页次12
370 0011 L72:
370 0011 0003 RET
; 357: uchar i;
357 0000 00 LOCAL CR12 DB ? ; i
357 0012 _SpiRead ENDP
; 376: {
376 0000 @TxPacket .SECTION 'CODE'
376 0000 PUBLIC _TxPacket
376 0000 _TxPacket PROC
; 379: CSN=0; // Spi enable for write a spi command
379 0000 3416 CLR [016H].0
; 380: SpiWrite(WTP); // Write payload command
380 0001 0F20 MOV A,020h
380 0002 0080 R MOV SpiWrite0,A
380 0003 2000 R CALL _SpiWrite
; 381: for (i=0;i<32;i++)
381 0004 1F00 R CLR CR13
381 0005 2800 R JMP L83
381 0006 L80:
; 383: SpiWrite(TxBuf[i]); // Write 32 bytes Tx data
383 0006 0700 R MOV A,CR13
383 0007 0B00 R ADD A,OFFSET _TxBuf
383 0008 0080 R MOV b0_7,A
383 0009 0700 R MOV A,b0_7
383 000A 0081 MOV [01H],A
383 000B 0700 MOV A,[00H]
383 000C 0080 R MOV b0_7,A
383 000D 0700 R MOV A,b0_7
383 000E 0080 R MOV SpiWrite0,A
383 000F 2000 R CALL _SpiWrite
383 0010 L81:
; 381: for (i=0;i<32;i++)
381 0010 1480 R INC CR13
381 0011 L83:
文件:MAIN.c 盛群编译器版本 2.86 页次14
381 0011 0700 R MOV A,CR13
381 0012 0A20 SUB A,020h
381 0013 380A SNZ [0ah].0
381 0014 2800 R JMP L80
; 385: CSN=1; // Spi disable
385 0015 3016 SET [016H].0
; 386: Delay(1);
386 0016 0F01 MOV A,01h
386 0017 0080 R MOV Delay0,A
386 0018 2000 R CALL _Delay
; 387: CSN=0; // Spi enable for write a spi command
387 0019 3416 CLR [016H].0
; 388: SpiWrite(WTA); // Write address command
388 001A 0F22 MOV A,022h
388 001B 0080 R MOV SpiWrite0,A
388 001C 2000 R CALL _SpiWrite
; 389: for (i=0;i<4;i++) // Write 4 bytes address
389 001D 1F00 R CLR CR13
389 001E 2800 R JMP L87
文件:MAIN.C 盛群编译器版本 2.86 页次13
389 001F L84:
; 391: SpiWrite(RxTxConf_buf[i+5]);
391 001F 0700 R MOV A,CR13
391 0020 0B05 ADD A,05h
391 0021 0080 R MOV b0_7,A
391 0022 0F01 MOV A,1
391 0023 0300 R ADD A,b0_7
391 0024 0B00 R ADD A,OFFSET l_RxTxConf_buf
391 0025 2000 R CALL l_RxTxConf_buf
391 0026 0080 R MOV b0_7,A
391 0027 0700 R MOV A,b0_7
391 0028 0080 R MOV SpiWrite0,A
391 0029 2000 R CALL _SpiWrite
391 002A L85:
; 389: for (i=0;i<4;i++) // Write 4 bytes address
389 002A 1480 R INC CR13
389 002B L87:
389 002B 0700 R MOV A,CR13
389 002C 0A04 SUB A,04h
389 002D 380A SNZ [0ah].0
389 002E 2800 R JMP L84
; 393: CSN=1; // Spi disable
393 002F 3016 SET [016H].0
; 394: TRX_CE=1; // Set TRX_CE high,start Tx data transmission
394 0030 3018 SET [018H].0
; 395: Delay(1); // while (DR!=1);
395 0031 0F01 MOV A,01h
395 0032 0080 R MOV Delay0,A
395 0033 2000 R CALL _Delay
文件:MAIN.c 盛群编译器版本 2.86 页次15
; 396: TRX_CE=0; // Set TRX_CE low
396 0034 3418 CLR [018H].0
396 0035 L79:
396 0035 0003 RET
396 0000 00 LOCAL b0_7 DB ?
396 0001 00 LOCAL b1_7 DB ?
; 377: uchar i;
377 0002 00 LOCAL CR13 DB ? ; i
377 0036 _TxPacket ENDP
; 402: {
402 0000 @RxPacket .SECTION 'CODE'
402 0000 PUBLIC _RxPacket
402 0000 _RxPacket PROC
; 404: TRX_CE=0; // Set nRF905 in standby mode
404 0000 3418 CLR [018H].0
; 405: CSN=0; // Spi enable for write a spi command
405 0001 3416 CLR [016H].0
; 406: SpiWrite(RRP); // Read payload command
406 0002 0F24 MOV A,024h
406 0003 0080 R MOV SpiWrite0,A
406 0004 2000 R CALL _SpiWrite
; 407: for (i=0;i<32;i++)
407 0005 1F00 R CLR CR14
407 0006 2800 R JMP L92
407 0007 L89:
文件:MAIN.C 盛群编译器版本 2.86 页次14
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -