⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lst

📁 第二届盛群比赛之前做的一个项目
💻 LST
📖 第 1 页 / 共 4 页
字号:
; 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 + -