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

📄 temperature.lst

📁 ADC采集温度数据通过nrf905发送出去
💻 LST
📖 第 1 页 / 共 5 页
字号:
  no                   --> R10
     32A 92AA      ST	R10,-Y
     32B 2EA0      MOV	R10,R16
(0471) 
(0472) }
(0473) 
(0474) /////////////////////////////////////////////////////////////////////////////////
(0475) void DownPara(BYTE no)
(0476) {
(0477) 	tx_buf[0] = 0xeb;
     32C EE8B      LDI	R24,0xEB
     32D 9380 0084 STS	tx_buf,R24
(0478) 	tx_buf[1] = 0x90;
     32F E980      LDI	R24,0x90
     330 9380 0085 STS	tx_buf+1,R24
(0479) 	tx_buf[2] = CMD_DOWNPARA;
     332 E082      LDI	R24,2
     333 9380 0086 STS	tx_buf+2,R24
(0480) 	tx_buf[3] = ID_L;
     335 9020 006F LDS	R2,ID_L
     337 9220 0087 STS	tx_buf+3,R2
(0481) 	tx_buf[4] = ID_H;
     339 9020 006E LDS	R2,ID_H
     33B 9220 0088 STS	0x0088,R2
(0482) 	tx_buf[5] = num;
     33D 9020 0061 LDS	R2,num
     33F 9220 0089 STS	0x0089,R2
(0483) 	tx_buf[6] = no;
     341 92A0 008A STS	0x008A,R10
(0484) 	tx_buf[7] = (limit[no][0] & 0xff);
     343 E086      LDI	R24,6
     344 9D8A      MUL	R24,R10
     345 01F0      MOVW	R30,R0
     346 EE83      LDI	R24,0xE3
     347 E090      LDI	R25,0
     348 0FE8      ADD	R30,R24
     349 1FF9      ADC	R31,R25
     34A 8180      LDD	R24,Z+0
     34B 8191      LDD	R25,Z+1
     34C 7090      ANDI	R25,0
     34D 9380 008B STS	0x008B,R24
(0485) 	tx_buf[8] = (limit[no][0] & 0xff00) >> 8;
     34F E086      LDI	R24,6
     350 9D8A      MUL	R24,R10
     351 01F0      MOVW	R30,R0
     352 EE83      LDI	R24,0xE3
     353 E090      LDI	R25,0
     354 0FE8      ADD	R30,R24
     355 1FF9      ADC	R31,R25
     356 8180      LDD	R24,Z+0
     357 8191      LDD	R25,Z+1
     358 7080      ANDI	R24,0
     359 011C      MOVW	R2,R24
     35A 2C23      MOV	R2,R3
     35B 2433      CLR	R3
     35C 9220 008C STS	0x008C,R2
(0486) 	tx_buf[9] = (limit[no][1] & 0xff);
     35E E086      LDI	R24,6
     35F 9D8A      MUL	R24,R10
     360 01F0      MOVW	R30,R0
     361 EE85      LDI	R24,0xE5
     362 E090      LDI	R25,0
     363 0FE8      ADD	R30,R24
     364 1FF9      ADC	R31,R25
     365 8180      LDD	R24,Z+0
     366 8191      LDD	R25,Z+1
     367 7090      ANDI	R25,0
     368 9380 008D STS	0x008D,R24
(0487) 	tx_buf[10] = (limit[no][1] & 0xff00) >> 8;
     36A E086      LDI	R24,6
     36B 9D8A      MUL	R24,R10
     36C 01F0      MOVW	R30,R0
     36D EE85      LDI	R24,0xE5
     36E E090      LDI	R25,0
     36F 0FE8      ADD	R30,R24
     370 1FF9      ADC	R31,R25
     371 8180      LDD	R24,Z+0
     372 8191      LDD	R25,Z+1
     373 7080      ANDI	R24,0
     374 011C      MOVW	R2,R24
     375 2C23      MOV	R2,R3
     376 2433      CLR	R3
     377 9220 008E STS	0x008E,R2
(0488) 	tx_buf[11] = (limit[no][2] & 0xff);
     379 E086      LDI	R24,6
     37A 9D8A      MUL	R24,R10
     37B 01F0      MOVW	R30,R0
     37C EE87      LDI	R24,0xE7
     37D E090      LDI	R25,0
     37E 0FE8      ADD	R30,R24
     37F 1FF9      ADC	R31,R25
     380 8180      LDD	R24,Z+0
     381 8191      LDD	R25,Z+1
     382 7090      ANDI	R25,0
     383 9380 008F STS	0x008F,R24
(0489) 	tx_buf[12] = (limit[no][2] & 0xff00) >> 8;
     385 E086      LDI	R24,6
     386 9D8A      MUL	R24,R10
     387 01F0      MOVW	R30,R0
     388 EE87      LDI	R24,0xE7
     389 E090      LDI	R25,0
     38A 0FE8      ADD	R30,R24
     38B 1FF9      ADC	R31,R25
     38C 8180      LDD	R24,Z+0
     38D 8191      LDD	R25,Z+1
     38E 7080      ANDI	R24,0
     38F 011C      MOVW	R2,R24
     390 2C23      MOV	R2,R3
     391 2433      CLR	R3
     392 9220 0090 STS	0x0090,R2
(0490) 	tx_buf[13] = GetLPC(tx_buf,10);
     394 E02A      LDI	R18,0xA
     395 E030      LDI	R19,0
     396 E804      LDI	R16,0x84
     397 E010      LDI	R17,0
     398 DE9D      RCALL	_GetLPC
     399 9300 0091 STS	0x0091,R16
(0491) 	tx_len = 14;
     39B E08E      LDI	R24,0xE
     39C 9380 0083 STS	nrf905_temperature.c:tx_len,R24
     39E 90A9      LD	R10,Y+
     39F 9508      RET
_RetPara:
  i                    --> R10
     3A0 92AA      ST	R10,-Y
     3A1 2EA0      MOV	R10,R16
(0492) }
(0493) 
(0494) /////////////////////////////////////////////////////////////////////////////////
(0495) void RetPara(BYTE i)
(0496) {
(0497) 	tx_buf[0] = 0xeb;
     3A2 EE8B      LDI	R24,0xEB
     3A3 9380 0084 STS	tx_buf,R24
(0498) 	tx_buf[1] = 0x90;
     3A5 E980      LDI	R24,0x90
     3A6 9380 0085 STS	tx_buf+1,R24
(0499) 	tx_buf[2] = CMD_RETPARA;
     3A8 E083      LDI	R24,3
     3A9 9380 0086 STS	tx_buf+2,R24
(0500) 	tx_buf[3] = ID_L;
     3AB 9020 006F LDS	R2,ID_L
     3AD 9220 0087 STS	tx_buf+3,R2
(0501) 	tx_buf[4] = ID_H;
     3AF 9020 006E LDS	R2,ID_H
     3B1 9220 0088 STS	0x0088,R2
(0502) 	tx_buf[5] = num;
     3B3 9020 0061 LDS	R2,num
     3B5 9220 0089 STS	0x0089,R2
(0503) 	tx_buf[6] = i;
     3B7 92A0 008A STS	0x008A,R10
(0504) 	tx_buf[7] = (limit[i][0] & 0xff);
     3B9 E086      LDI	R24,6
     3BA 9D8A      MUL	R24,R10
     3BB 01F0      MOVW	R30,R0
     3BC EE83      LDI	R24,0xE3
     3BD E090      LDI	R25,0
     3BE 0FE8      ADD	R30,R24
     3BF 1FF9      ADC	R31,R25
     3C0 8180      LDD	R24,Z+0
     3C1 8191      LDD	R25,Z+1
     3C2 7090      ANDI	R25,0
     3C3 9380 008B STS	0x008B,R24
(0505) 	tx_buf[8] = (limit[i][0] & 0xff00) >> 8;
     3C5 E086      LDI	R24,6
     3C6 9D8A      MUL	R24,R10
     3C7 01F0      MOVW	R30,R0
     3C8 EE83      LDI	R24,0xE3
     3C9 E090      LDI	R25,0
     3CA 0FE8      ADD	R30,R24
     3CB 1FF9      ADC	R31,R25
     3CC 8180      LDD	R24,Z+0
     3CD 8191      LDD	R25,Z+1
     3CE 7080      ANDI	R24,0
     3CF 011C      MOVW	R2,R24
     3D0 2C23      MOV	R2,R3
     3D1 2433      CLR	R3
     3D2 9220 008C STS	0x008C,R2
(0506) 	tx_buf[9] = (limit[i][1] & 0xff);
     3D4 E086      LDI	R24,6
     3D5 9D8A      MUL	R24,R10
     3D6 01F0      MOVW	R30,R0
     3D7 EE85      LDI	R24,0xE5
     3D8 E090      LDI	R25,0
     3D9 0FE8      ADD	R30,R24
     3DA 1FF9      ADC	R31,R25
     3DB 8180      LDD	R24,Z+0
     3DC 8191      LDD	R25,Z+1
     3DD 7090      ANDI	R25,0
     3DE 9380 008D STS	0x008D,R24
(0507) 	tx_buf[10] = (limit[i][1] & 0xff00) >> 8;
     3E0 E086      LDI	R24,6
     3E1 9D8A      MUL	R24,R10
     3E2 01F0      MOVW	R30,R0
     3E3 EE85      LDI	R24,0xE5
     3E4 E090      LDI	R25,0
     3E5 0FE8      ADD	R30,R24
     3E6 1FF9      ADC	R31,R25
     3E7 8180      LDD	R24,Z+0
     3E8 8191      LDD	R25,Z+1
     3E9 7080      ANDI	R24,0
     3EA 011C      MOVW	R2,R24
     3EB 2C23      MOV	R2,R3
     3EC 2433      CLR	R3
     3ED 9220 008E STS	0x008E,R2
(0508) 	tx_buf[11] = (limit[i][2] & 0xff);
     3EF E086      LDI	R24,6
     3F0 9D8A      MUL	R24,R10
     3F1 01F0      MOVW	R30,R0
     3F2 EE87      LDI	R24,0xE7
     3F3 E090      LDI	R25,0
     3F4 0FE8      ADD	R30,R24
     3F5 1FF9      ADC	R31,R25
     3F6 8180      LDD	R24,Z+0
     3F7 8191      LDD	R25,Z+1
     3F8 7090      ANDI	R25,0
     3F9 9380 008F STS	0x008F,R24
(0509) 	tx_buf[12] = (limit[i][2] & 0xff00) >> 8;
     3FB E086      LDI	R24,6
     3FC 9D8A      MUL	R24,R10
     3FD 01F0      MOVW	R30,R0
     3FE EE87      LDI	R24,0xE7
     3FF E090      LDI	R25,0
     400 0FE8      ADD	R30,R24
     401 1FF9      ADC	R31,R25
     402 8180      LDD	R24,Z+0
     403 8191      LDD	R25,Z+1
     404 7080      ANDI	R24,0
     405 011C      MOVW	R2,R24
     406 2C23      MOV	R2,R3
     407 2433      CLR	R3
     408 9220 0090 STS	0x0090,R2
(0510) 	tx_buf[13] = GetLPC(tx_buf,13);
     40A E02D      LDI	R18,0xD
     40B E030      LDI	R19,0
     40C E804      LDI	R16,0x84
     40D E010      LDI	R17,0
     40E DE27      RCALL	_GetLPC
     40F 9300 0091 STS	0x0091,R16
(0511) 	tx_len = 14;
     411 E08E      LDI	R24,0xE
     412 9380 0083 STS	nrf905_temperature.c:tx_len,R24
     414 90A9      LD	R10,Y+
     415 9508      RET
(0512) }
(0513) 
(0514) /////////////////////////////////////////////////////////////////////////////////
(0515) void SetID(void)
(0516) {
(0517)        tx_buf[0] = 0xeb;
_SetID:
     416 EE8B      LDI	R24,0xEB
     417 9380 0084 STS	tx_buf,R24
(0518) 	tx_buf[1] = 0x90;
     419 E980      LDI	R24,0x90
     41A 9380 0085 STS	tx_buf+1,R24
(0519) 	tx_buf[2] = CMD_SETID;
     41C E085      LDI	R24,5
     41D 9380 0086 STS	tx_buf+2,R24
(0520) 	tx_buf[3] = ID_L;
     41F 9020 006F LDS	R2,ID_L
     421 9220 0087 STS	tx_buf+3,R2
(0521) 	tx_buf[4] = ID_H;
     423 9020 006E LDS	R2,ID_H
     425 9220 0088 STS	0x0088,R2
(0522) 	tx_buf[5] = GetLPC(tx_buf,5);
     427 E025      LDI	R18,5
     428 E030      LDI	R19,0
     429 E804      LDI	R16,0x84
     42A E010      LDI	R17,0
     42B DE0A      RCALL	_GetLPC
     42C 9300 0089 STS	0x0089,R16
(0523) 	tx_len = 6;
     42E E086      LDI	R24,6
     42F 9380 0083 STS	nrf905_temperature.c:tx_len,R24
     431 9508      RET
(0524) }
(0525) 
(0526) void SetIDOK(void)
(0527) {
(0528)        tx_buf[0] = 0xeb;
_SetIDOK:
     432 EE8B      LDI	R24,0xEB
     433 9380 0084 STS	tx_buf,R24
(0529) 	tx_buf[1] = 0x90;
     435 E980      LDI	R24,0x90
     436 9380 0085 STS	tx_buf+1,R24
(0530) 	tx_buf[2] = CMD_SETID_OK;
     438 E086      LDI	R24,6
     439 9380 0086 STS	tx_buf+2,R24
(0531) 	tx_buf[3] = ID_L;
     43B 9020 006F LDS	R2,ID_L
     43D 9220 0087 STS	tx_buf+3,R2
(0532) 	tx_buf[4] = ID_H;
     43F 9020 006E LDS	R2,ID_H
     441 9220 0088 STS	0x0088,R2
(0533) 	tx_buf[5] = GetLPC(tx_buf,5); 
     443 E025      LDI	R18,5
     444 E030      LDI	R19,0
     445 E804      LDI	R16,0x84
     446 E010      LDI	R17,0
     447 DDEE      RCALL	_GetLPC
     448 9300 0089 STS	0x0089,R16
(0534) 	tx_len = 6;
     44A E086      LDI	R24,6
     44B 9380 0083 STS	nrf905_temperature.c:tx_len,R24
     44D 9508      RET
(0535) }
(0536) 
(0537) void ReadID(void)
(0538) {
(0539)        tx_buf[0] = 0xeb;
_ReadID:
     44E EE8B      LDI	R24,0xEB
     44F 9380 0084 STS	tx_buf,R24
(0540) 	tx_buf[1] = 0x90;
     451 E980      LDI	R24,0x90
     452 9380 0085 STS	tx_buf+1,R24
(0541) 	tx_buf[2] = CMD_READID;
     454 E087      LDI	R24,7
     455 9380 0086 STS	tx_buf+2,R24
(0542) 	tx_buf[3] = GetLPC(tx_buf,3);
     457 E023      LDI	R18,3
     458 E030      LDI	R19,0
     459 E804      LDI	R16,0x84
     45A E010      LDI	R17,0
     45B DDDA      RCALL	_GetLPC
     45C 9300 0087 STS	tx_buf+3,R16
(0543) 	tx_len = 4;
     45E E084      LDI	R24,4
     45F 9380 0083 STS	nrf905_temperature.c:tx_len,R24
     461 9508      RET
(0544) }
(0545) /////////////////////////////////////////////////////////////
(0546) void SPI_MasterInit(void)
(0547) {
(0548) 	BYTE	temp;
(0549) 
(0550) 	//	   PD7(LED)PD6(TRX_CE),PD5(TX_EN) PD2(CD),PD3(DR),PD4(AM)
(0551) 	PORTD = 0x1C;
_SPI_MasterInit:
  temp                 --> R16
     462 E18C      LDI	R24,0x1C
     463 BB82      OUT	0x12,R24
(0552) 	DDRD = 0x80 |    0x40     |0x20;
     464 EE80      LDI	R24,0xE0
     465 BB81      OUT	0x11,R24
(0553) 	TX_EN_L;
     466 9895      CBI	0x12,5
(0554) 	TRX_CE_L;
     467 9896      CBI	0x12,6
(0555) 	LED_L;
     468 9897      CBI	0x12,7
(0556) 	//	Set MOSI, SCK, SS,  POWER_UP output,all others input
(0557) 	//		PB3   PB5  PB2  PB0
(0558) 	CLI();
     469 94F8      BCLR	7
(0559) 	DDRB = 0x08 |0x20| 0x04|0x01;
     46A E28D      LDI	R24,0x2D
     46B BB87      OUT	0x17,R24
(0560) 	MISO_H;
     46C 9AC4      SBI	0x18,4
(0561) 	CSN_H;
     46D 9AC2      SBI	0x18,2
(0562) 	//	Enable SPI,Master,Set clock rate fck/16,interrupt enable
(0563) //	SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPIE)|(1<<CPHA);
(0564) //	SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<SPIE);
(0565) 	SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0);
     46E E581      LDI	R24,0x51
     46F B98D      OUT	0x0D,R24
(0566) //	SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR0)|(1<<CPHA);
(0567) 	SPSR = 0x00;
     470 2422      CLR	R2
     471 B82E      OUT	0x0E,R2
(0568) 	temp = SPSR;
     472 B10E      IN	R16,0x0E
(0569) 	temp = SPCR;
     473 B10D      IN	R16,0x0D
(0570) 	SEI();
     474 9478      BSET	7
     475 9508      RET
(0571) }
(0572) 
(0573) /////////////////////////////////////////////////////////////
(0574) void SPI_Char(BYTE rxflag,char c)
(0575) {
(0576) 	SPDR = c;
_SPI_Char:
  c                    --> R18
  rxflag               --> R16
     476 B92F      OUT	0x0F,R18
(0577) 	while(!(SPSR & (1<<SPIF)));
     477 9B77      SBIS	0x0E,7
     478 CFFE      RJMP	0x0477
(0578) 
(0579)  	if ( rxflag )	{
     479 2300      TST	R16
     47A F079      BEQ	0x048A
(0580) 		spi_rxbuf[spi_rxpt] = SPDR;
     47B E782      LDI	R24,0x72
     47C E090      LDI	R25,0
     47D 91E0 0071 LDS	R30,spi_rxpt
     47F 27FF      CLR	R31
     480 0FE8      ADD	R30,R24
     481 1FF9      ADC	R31,R25
     482 B02F      IN	R2,0x0F
     483 8220      STD	Z+0,R2
(0581) 		spi_rxpt = (spi_rxpt+1)&SPI_BUF_LEN1;
     484 9180 0071 LDS	R24,spi_rxpt
     486 5F8F      SUBI	R24,0xFF
     487 708F      ANDI	R24,0xF
     488 9380 0071 STS	spi_rxpt,R24
(0582) 	}
     48A 9508      RET
(0583) }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -