📄 temperature.lst
字号:
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 + -