📄 main.lst
字号:
; 409: RxBuf[i]=SpiRead(); // Read data and save to buffer
409 0007 2000 R CALL _SpiRead
409 0008 0080 R MOV b0_8,A
409 0009 0700 R MOV A,CR14
409 000A 0B00 R ADD A,OFFSET _RxBuf
409 000B 0080 R MOV b1_8,A
409 000C 0700 R MOV A,b1_8
409 000D 0081 MOV [01H],A
409 000E 0700 R MOV A,b0_8
409 000F 0080 MOV [00H],A
409 0010 L90:
; 407: for (i=0;i<32;i++)
407 0010 1480 R INC CR14
407 0011 L92:
407 0011 0700 R MOV A,CR14
407 0012 0A20 SUB A,020h
407 0013 380A SNZ [0ah].0
407 0014 2800 R JMP L89
; 411: CSN=1; // Disable spi
411 0015 3016 SET [016H].0
411 0016 L93:
411 0016 L94:
; 412: while(DR||AM);
文件:MAIN.c 盛群编译器版本 2.86 页次16
412 0016 3D92 SZ [012H].3
412 0017 2800 R JMP L93
412 0018 3D12 SZ [012H].2
412 0019 2800 R JMP L93
; 414: RecFirChar = RxBuf[0];
414 001A 0700 R MOV A,_RxBuf
414 001B 0080 R MOV _RecFirChar,A
; 415: if((RecFirChar==0x01) || (RecFirChar==0x02)){
415 001C 0700 R MOV A,_RecFirChar
415 001D 0080 R MOV b0_8,A
415 001E 0700 R MOV A,b0_8
415 001F 0C01 XOR A,01h
415 0020 3D0A SZ [0ah].2
415 0021 2800 R JMP L98
415 0022 0700 R MOV A,b0_8
415 0023 0C02 XOR A,02h
415 0024 390A SNZ [0ah].2
415 0025 2800 R JMP L96
415 0026 L98:
; 417: for(i=0;i<16;i++)
417 0026 1F00 R CLR CR14
417 0027 2800 R JMP L102
417 0028 L99:
; 418: LCD_write_char(i,LINE2,' ');
418 0028 0700 R MOV A,CR14
418 0029 0080 R MOV LCD_write_char0,A
418 002A 0F01 MOV A,01h
418 002B 0080 R MOV LCD_write_char1,A
418 002C 0F20 MOV A,020h
418 002D 0080 R MOV LCD_write_char2,A
418 002E 2000 R CALL _LCD_write_char
418 002F L100:
文件:MAIN.C 盛群编译器版本 2.86 页次15
; 417: for(i=0;i<16;i++)
417 002F 1480 R INC CR14
417 0030 L102:
417 0030 0700 R MOV A,CR14
417 0031 0A10 SUB A,010h
417 0032 380A SNZ [0ah].0
417 0033 2800 R JMP L99
; 420: FlagRec=1;
420 0034 3000 R SET _FlagRec
; 422: LCD_write_char(0,LINE2,RxBuf[1]);
422 0035 0F00 MOV A,00h
422 0036 0080 R MOV LCD_write_char0,A
422 0037 0F01 MOV A,01h
422 0038 0080 R MOV LCD_write_char1,A
422 0039 0700 R MOV A,_RxBuf[1]
422 003A 0080 R MOV LCD_write_char2,A
422 003B 2000 R CALL _LCD_write_char
; 423: LCD_write_char(1,LINE2,RxBuf[2]);
文件:MAIN.c 盛群编译器版本 2.86 页次17
423 003C 0F01 MOV A,01h
423 003D 0080 R MOV LCD_write_char0,A
423 003E 0F01 MOV A,01h
423 003F 0080 R MOV LCD_write_char1,A
423 0040 0700 R MOV A,_RxBuf[2]
423 0041 0080 R MOV LCD_write_char2,A
423 0042 2000 R CALL _LCD_write_char
; 424: LCD_write_char(2,LINE2,RxBuf[3]);
424 0043 0F02 MOV A,02h
424 0044 0080 R MOV LCD_write_char0,A
424 0045 0F01 MOV A,01h
424 0046 0080 R MOV LCD_write_char1,A
424 0047 0700 R MOV A,_RxBuf[3]
424 0048 0080 R MOV LCD_write_char2,A
424 0049 2000 R CALL _LCD_write_char
; 425: LCD_write_char(3,LINE2,RxBuf[4]);
425 004A 0F03 MOV A,03h
425 004B 0080 R MOV LCD_write_char0,A
425 004C 0F01 MOV A,01h
425 004D 0080 R MOV LCD_write_char1,A
425 004E 0700 R MOV A,_RxBuf[4]
425 004F 0080 R MOV LCD_write_char2,A
425 0050 2000 R CALL _LCD_write_char
; 426: LCD_write_char(4,LINE2,RxBuf[5]);
426 0051 0F04 MOV A,04h
426 0052 0080 R MOV LCD_write_char0,A
426 0053 0F01 MOV A,01h
426 0054 0080 R MOV LCD_write_char1,A
426 0055 0700 R MOV A,_RxBuf[5]
426 0056 0080 R MOV LCD_write_char2,A
426 0057 2000 R CALL _LCD_write_char
; 427: LCD_write_char(5,LINE2,RxBuf[6]);
427 0058 0F05 MOV A,05h
427 0059 0080 R MOV LCD_write_char0,A
427 005A 0F01 MOV A,01h
427 005B 0080 R MOV LCD_write_char1,A
427 005C 0700 R MOV A,_RxBuf[6]
427 005D 0080 R MOV LCD_write_char2,A
427 005E 2000 R CALL _LCD_write_char
; 428: if(RecFirChar==0x01)
428 005F 0700 R MOV A,_RecFirChar
文件:MAIN.C 盛群编译器版本 2.86 页次16
428 0060 0C01 XOR A,01h
428 0061 390A SNZ [0ah].2
428 0062 2800 R JMP L109
; 430: LCD_write_string(7,LINE2,"Alarm");
430 0063 0F07 MOV A,07h
430 0064 0080 R MOV LCD_write_string0,A
430 0065 0F01 MOV A,01h
430 0066 0080 R MOV LCD_write_string1,A
430 0067 0F00 R MOV A,OFFSET L44
430 0068 0080 R MOV LCD_write_string2,A
430 0069 2000 R CALL _LCD_write_string
文件:MAIN.c 盛群编译器版本 2.86 页次18
; 431: IsAlarm=1;
431 006A 3000 R SET _IsAlarm
; 432: }
432 006B 2800 R JMP L110
432 006C L109:
; 433: else if(RecFirChar==0x02)
433 006C 0700 R MOV A,_RecFirChar
433 006D 0C02 XOR A,02h
433 006E 390A SNZ [0ah].2
433 006F 2800 R JMP L111
; 435: LCD_write_string(7,LINE2,"Ack ");
435 0070 0F07 MOV A,07h
435 0071 0080 R MOV LCD_write_string0,A
435 0072 0F01 MOV A,01h
435 0073 0080 R MOV LCD_write_string1,A
435 0074 0F00 R MOV A,OFFSET L45
435 0075 0080 R MOV LCD_write_string2,A
435 0076 2000 R CALL _LCD_write_string
; 436: IsAlarm=0;
436 0077 3400 R CLR _IsAlarm
436 0078 L111:
436 0078 L110:
436 0078 L96:
; 442: TRX_CE=1;
442 0078 3018 SET [018H].0
442 0079 L88:
442 0079 0003 RET
442 0000 00 LOCAL b0_8 DB ?
442 0001 00 LOCAL b1_8 DB ?
; 403: uchar i;//,xx;
403 0002 00 LOCAL CR14 DB ? ; i
403 007A _RxPacket ENDP
; 453: {
453 0000 @SetTxMode .SECTION 'CODE'
453 0000 PUBLIC _SetTxMode
453 0000 _SetTxMode PROC
; 454: TX_EN=1;
454 0000 3098 SET [018H].1
; 455: TRX_CE=0;
455 0001 3418 CLR [018H].0
; 456: Delay(1); // delay for mode change(>=650us)
456 0002 0F01 MOV A,01h
456 0003 0080 R MOV Delay0,A
文件:MAIN.C 盛群编译器版本 2.86 页次17
456 0004 2000 R CALL _Delay
456 0005 L113:
456 0005 0003 RET
456 0006 _SetTxMode ENDP
文件:MAIN.c 盛群编译器版本 2.86 页次19
; 462: {
462 0000 @SetRxMode .SECTION 'CODE'
462 0000 PUBLIC _SetRxMode
462 0000 _SetRxMode PROC
; 463: TX_EN=0;
463 0000 3498 CLR [018H].1
; 464: TRX_CE=1;
464 0001 3018 SET [018H].0
; 465: Delay(1); // delay for mode change(>=650us)
465 0002 0F01 MOV A,01h
465 0003 0080 R MOV Delay0,A
465 0004 2000 R CALL _Delay
465 0005 L114:
465 0005 0003 RET
465 0006 _SetRxMode ENDP
; 471: {
471 0000 @Scankey .SECTION 'CODE'
471 0000 PUBLIC _Scankey
471 0000 _Scankey PROC
; 470: void Scankey(uchar carcmd)
470 0000 PUBLIC Scankey0
470 0000 00 LOCAL Scankey0 DB ? ; carcmd
; 482: TxBuf[0]=carcmd;
482 0000 0700 R MOV A,Scankey0
482 0001 0080 R MOV _TxBuf,A
; 485: TxBuf[1]=0x4a; // Save to Tx buffer[0]
485 0002 0F4A MOV A,04ah
485 0003 0080 R MOV _TxBuf[1],A
; 487: TxBuf[2]=0x41;
487 0004 0F41 MOV A,041h
487 0005 0080 R MOV _TxBuf[2],A
; 488: TxBuf[3]=0x32;
488 0006 0F32 MOV A,032h
488 0007 0080 R MOV _TxBuf[3],A
; 489: TxBuf[4]=0x33;
489 0008 0F33 MOV A,033h
489 0009 0080 R MOV _TxBuf[4],A
; 490: TxBuf[5]=0x37;
490 000A 0F37 MOV A,037h
490 000B 0080 R MOV _TxBuf[5],A
; 491: TxBuf[6]=0x38;
491 000C 0F38 MOV A,038h
491 000D 0080 R MOV _TxBuf[6],A
; 493: SetTxMode(); // Set Tx Mode
493 000E 2000 R CALL _SetTxMode
; 494: Delay(5);
文件:MAIN.c 盛群编译器版本 2.86 页次20
494 000F 0F05 MOV A,05h
494 0010 0080 R MOV Delay0,A
494 0011 2000 R CALL _Delay
; 496: TxPacket(); // Transmit Tx buffer data
496 0012 2000 R CALL _TxPacket
; 498: Delay(50); // Delay for LED light
文件:MAIN.C 盛群编译器版本 2.86 页次18
498 0013 0F32 MOV A,032h
498 0014 0080 R MOV Delay0,A
498 0015 2000 R CALL _Delay
; 502: SetRxMode(); // Set Rx Mode
502 0016 2000 R CALL _SetRxMode
502 0017 L115:
502 0017 0003 RET
502 0018 _Scankey ENDP
; 511: {
511 0000 @LCD_delay .SECTION 'CODE'
511 0000 PUBLIC _LCD_delay
511 0000 _LCD_delay PROC
; 513: for(i=LCD_DELAY_TIME;i>ZERO;i--)//be sure lcd reset
513 0000 0F28 MOV A,028h
513 0001 0080 R MOV CR18,A
513 0002 2800 R JMP L126
513 0003 L123:
513 0003 L124:
513 0003 1580 R DEC CR18
513 0004 L126:
513 0004 1080 R SZ CR18
513 0005 2800 R JMP L123
513 0006 L122:
513 0006 0003 RET
; 512: unsigned char i;
512 0000 00 LOCAL CR18 DB ? ; i
512 0007 _LCD_delay ENDP
; 518: {
518 0000 @LCD_en_command .SECTION 'CODE'
518 0000 PUBLIC _LCD_en_command
518 0000 _LCD_en_command PROC
; 517: void LCD_en_command(unsigned char command)
517 0000 PUBLIC LCD_en_command0
517 0000 00 LOCAL LCD_en_command0 DB ? ; command
; 519: _pb=command;
519 0000 0700 R MOV A,LCD_en_command0
519 0001 0094 MOV __pb,A
; 520: LCD1602_RS=LOW;
520 0002 3692 CLR [012H].5
; 521: LCD1602_RW=LOW;
521 0003 3712 CLR [012H].6
文件:MAIN.c 盛群编译器版本 2.86 页次21
; 522: LCD1602_EN=LOW;
522 0004 3792 CLR [012H].7
; 523: LCD_delay();
523 0005 2000 R CALL _LCD_delay
; 524: LCD1602_EN=HIGH;
524 0006 3392 SET [012H].7
524 0007 L127:
524 0007 0003 RET
524 0008 _LCD_en_command ENDP
; 528: {
528 0000 @LCD_en_dat .SECTION 'CODE'
文件:MAIN.C 盛群编译器版本 2.86 页次19
528 0000 PUBLIC _LCD_en_dat
528 0000 _LCD_en_dat PROC
; 527: void LCD_en_dat(unsigned char dat)
527 0000 PUBLIC LCD_en_dat0
527 0000 00 LOCAL LCD_en_dat0 DB ? ; dat
; 529: _pb=dat;
529 0000 0700 R MOV A,LCD_en_dat0
529 0001 0094 MOV __pb,A
; 530: LCD_delay();
530 0002 2000 R CALL _LCD_delay
; 531: LCD1602_RS=HIGH;
531 0003 3292 SET [012H].5
; 532: LCD1602_RW=LOW;
532 0004 3712 CLR [012H].6
; 533: LCD1602_EN=LOW;
533 0005 3792 CLR [012H].7
; 534: LCD_delay();
534 0006 2000 R CALL _LCD_delay
; 535: LCD1602_EN=HIGH;
535 0007 3392 SET [012H].7
535 0008 L128:
535 0008 0003 RET
535 0009 _LCD_en_dat ENDP
; 539: {
539 0000 @LCD_set_xy .SECTION 'CODE'
539 0000 PUBLIC _LCD_set_xy
539 0000 _LCD_set_xy PROC
; 538: void LCD_set_xy( unsigned char x, unsigned char y )
538 0000 PUBLIC LCD_set_xy0
538 0000 00 LOCAL LCD_set_xy0 DB ? ; x
538 0000 PUBLIC LCD_set_xy1
538 0001 00 LOCAL LCD_set_xy1 DB ? ; y
; 541: if (y == LINE1)
文件:MAIN.c 盛群编译器版本 2.86 页次22
541 0000 1080 R SZ LCD_set_xy1
541 0001 2800 R JMP L130
; 542: address = LINE1_HEAD + x;
542 0002 0700 R MOV A,LCD_set_xy0
542 0003 0B80 ADD A,080h
542 0004 0080 R MOV CR19,A
542 0005 2800 R JMP L131
542 0006 L130:
; 544: address = LINE2_HEAD + x;
544 0006 0700 R MOV A,LCD_set_xy0
544 0007 0BC0 ADD A,0c0h
544 0008 0080 R MOV CR19,A
544 0009 L131:
; 545: LCD_en_command(address);
545 0009 0700 R MOV A,CR19
545 000A 0080 R MOV LCD_en_command0,A
545 000B 2000 R CALL _LCD_en_command
545 000C L129:
文件:MAIN.C 盛群编译器版本 2.86 页次20
545 000C 0003 RET
; 540: unsigned char address;
540 0002 00 LOCAL CR19 DB ? ; address
540 000D _LCD_set_xy ENDP
; 549: {
549 0000 @LCD_write_char .SECTION 'CODE'
549 0000 PUBLIC _LCD_write_char
549 0000 _LCD_write_char PROC
; 548: void LCD_write_char( unsigned x,unsigned char y,unsigned char dat)
548 0000 PUBLIC LCD_write_char0
548 0000 00 LOCAL LCD_write_char0 DB ? ; x
548 0000 PUBLIC LCD_write_char1
548 0001 00 LOCAL LCD_write_char1 DB ? ; y
548 0000 PUBLIC LCD_write_char2
548 0002 00 LOCAL LCD_write_char2 DB ? ; dat
; 550: LCD_set_xy( x, y );
550 0000 0700 R MOV A,LCD_write_char0
550 0001 0080 R MOV LCD_set_xy0,A
550 0002 0700 R MOV A,LCD_write_char1
550 0003 0080 R MOV LCD_set_xy1,A
550 0004 2000 R CALL _LCD_set_xy
; 551: LCD_en_dat(dat);
551 0005 0700 R MOV A,LCD_write_char2
551 0006 0080 R MOV LCD_en_dat0,A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -