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

📄 main.lst

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