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

📄 wx_mn.lst

📁 nrf905无线收发模块利用模拟spi通信的程序 经此程序可转成串口通信
💻 LST
📖 第 1 页 / 共 5 页
字号:
    041B 9508      RET
_DispValue:
  d                    --> R22
  dat                  --> R10
  x                    --> R20
    041C 940E053F  CALL	push_gset3
    041E 0159      MOVW	R10,R18
    041F 2F40      MOV	R20,R16
    0420 9723      SBIW	R28,3
(0206) 
(0207) /*
(0208) 函数:DispValue()
(0209) 功能:显示100以内的数值
(0210) 参数:
(0211) 	x:显示位置,取值0~6
(0212) 	dat:要显示的数据,取值0~99
(0213) */
(0214) void DispValue(uchar x, uint dat)
(0215) {
(0216) 	uint d;
(0217) 	d = dat/10;
    0421 E02A      LDI	R18,0xA
    0422 E030      LDI	R19,0
    0423 0185      MOVW	R16,R10
    0424 940E04FA  CALL	div16u
    0426 01B8      MOVW	R22,R16
(0218) 	ZLG7290_Download(x,0,0,d);
    0427 836A      STD	R22,2+Y
    0428 2422      CLR	R2
    0429 8228      STD	R2,0+Y
    042A 2722      CLR	R18
    042B 2F04      MOV	R16,R20
    042C DEC9      RCALL	_ZLG7290_Download
(0219) 	delay(1);
    042D E001      LDI	R16,1
    042E E010      LDI	R17,0
    042F DDB2      RCALL	_delay
(0220) 	d = dat-d*10;
    0430 E00A      LDI	R16,0xA
    0431 E010      LDI	R17,0
    0432 019B      MOVW	R18,R22
    0433 940E0514  CALL	empy16s
    0435 01B5      MOVW	R22,R10
    0436 1B60      SUB	R22,R16
    0437 0B71      SBC	R23,R17
(0221) 	ZLG7290_Download(x-1,0,0,d);
    0438 836A      STD	R22,2+Y
    0439 2422      CLR	R2
    043A 8228      STD	R2,0+Y
    043B 2722      CLR	R18
    043C 2F04      MOV	R16,R20
    043D 5001      SUBI	R16,1
    043E DEB7      RCALL	_ZLG7290_Download
(0222) }
    043F 9623      ADIW	R28,3
    0440 940E054E  CALL	pop_gset3
    0442 9508      RET
_DispHexValue:
  d                    --> R22
  dat                  --> R10
  x                    --> R20
    0443 940E053F  CALL	push_gset3
    0445 2EA2      MOV	R10,R18
    0446 2F40      MOV	R20,R16
    0447 9723      SBIW	R28,3
(0223) 
(0224) /*
(0225) 函数:DispHexValue()
(0226) 功能:以16进制方式显示数值
(0227) 参数:
(0228) 	x:显示位置,取值0~6
(0229) 	dat:要显示的数据,取值0~255
(0230) */
(0231) void DispHexValue(uchar x, uchar dat)
(0232) {
(0233) 	uchar d;
(0234) 	d = dat / 16;
    0448 E110      LDI	R17,0x10
    0449 2D0A      MOV	R16,R10
    044A 940E04E6  CALL	div8u
    044C 2F60      MOV	R22,R16
(0235) 	ZLG7290_Download(x,0,0,d);
    044D 836A      STD	R22,2+Y
    044E 2422      CLR	R2
    044F 8228      STD	R2,0+Y
    0450 2722      CLR	R18
    0451 2F04      MOV	R16,R20
    0452 DEA3      RCALL	_ZLG7290_Download
(0236) 	d = dat - d * 16;
    0453 E180      LDI	R24,0x10
    0454 9F86      MUL	R24,R22
    0455 2D6A      MOV	R22,R10
    0456 1960      SUB	R22,R0
(0237) 	ZLG7290_Download(x+1,0,0,d);
    0457 836A      STD	R22,2+Y
    0458 2422      CLR	R2
    0459 8228      STD	R2,0+Y
    045A 2722      CLR	R18
    045B 2F04      MOV	R16,R20
    045C 5F0F      SUBI	R16,0xFF
    045D DE98      RCALL	_ZLG7290_Download
(0238) }
    045E 9623      ADIW	R28,3
    045F 940E054E  CALL	pop_gset3
    0461 9508      RET
FILE: E:\PQ-1A\我的AVR\新建文件夹\无线模拟\main.c
(0001) #include <iom128v.h>
(0002) #include <iom128.h>
(0003) #include <macros.h>
(0004) #include "NRF905.C"
(0005) #include "zlg7290_avr.c"
(0006) #define KEY1  READ_PC3
(0007) #define KEY2  READ_PC1
(0008) #define KEY3  READ_PC2
(0009) #define KEY4  READ_PC0
(0010) 
(0011) #define  uchar unsigned char
(0012) #define  uint  unsigned int
(0013) 
(0014) uchar TxBuf[28]={0};
(0015) uchar RxBuf[28]={0};
(0016) uchar tf=0;
(0017) 
(0018) void main()
(0019) {
(0020)   uint i;
(0021)   uchar KeyValue;
(0022)   uint led1_count=0,led2_count=0,led3_count=0,led4_count=0;
_main:
  KeyValue             --> Y+1
  led4_count           --> R20
  led3_count           --> R20
  led2_count           --> R20
  led1_count           --> R20
  i                    --> R20
    0462 2744      CLR	R20
    0463 2755      CLR	R21
(0023)   DDRA=0XFF;
    0464 EF8F      LDI	R24,0xFF
    0465 BB8A      OUT	P1A,R24
(0024)   PORTA=0XFF;
    0466 BB8B      OUT	P1B,R24
(0025)   DDRC&=~(BIT(0)|BIT(2)|BIT(1)|BIT(3));
    0467 B384      IN	R24,P14
    0468 7F80      ANDI	R24,0xF0
    0469 BB84      OUT	P14,R24
(0026)   PORTC=0XFF;
    046A EF8F      LDI	R24,0xFF
    046B BB85      OUT	P15,R24
(0027)  // SystemInit();
(0028)  // ClearAll();
(0029)   nRF905Init();
    046C DCBE      RCALL	_nRF905Init
(0030)   Config905();				// Config nRF905 module
    046D DCF4      RCALL	_Config905
(0031)   TxBuf[0] = 1;
    046E E081      LDI	R24,1
    046F 9380011D  STS	R24,0x11D
(0032)   TxBuf[1] = 1;
    0471 9380011E  STS	R24,0x11E
(0033)   SetTxMode();		// Set Tx Mode
    0473 DD0B      RCALL	_SetTxMode
(0034)   TxPacket(TxBuf);				// Transmit Tx buffer data
    0474 E10D      LDI	R16,0x1D
    0475 E011      LDI	R17,1
    0476 DD18      RCALL	_TxPacket
(0035)   Delay(1000);				// delay for led light	
    0477 EE08      LDI	R16,0xE8
    0478 DC9E      RCALL	_Delay
(0036)   PORTA=0X0C;
    0479 E08C      LDI	R24,0xC
    047A BB8B      OUT	P1B,R24
(0037)   TxBuf[0] = 0xff;
    047B EF8F      LDI	R24,0xFF
    047C 9380011D  STS	R24,0x11D
(0038)   TxBuf[1] = 0xff;
    047E 9380011E  STS	R24,0x11E
(0039) 
(0040)   SetRxMode();	// Set nRF905 in Rx mode
    0480 DD06      RCALL	_SetRxMode
    0481 C060      RJMP	0x04E2
(0041)   while(1)
(0042)   {
(0043)    /* if ( FlagINT )		//如果有键按下
(0044) 		{
(0045) 		//清除中断标志
(0046) 			FlagINT = 0;
(0047) 		//读取键值、连击计数器值、功能键值
(0048) 			ZLG7290_ReadReg(ZLG7290_Key,&KeyValue);
(0049) 			DispValue(0,KeyValue);
(0050) 		}*/
(0051)     if(KEY4 ==0 ) 
    0482 B383      IN	R24,P13
    0483 7081      ANDI	R24,1
    0484 F489      BNE	0x0496
(0052) 	{ 
(0053) 	 TxBuf[0] = 0x11;
    0485 E181      LDI	R24,0x11
    0486 9380011D  STS	R24,0x11D
(0054) 	 for(i = 0; i<15; i++) 
    0488 2744      CLR	R20
    0489 2755      CLR	R21
    048A C006      RJMP	0x0491
(0055)        {
(0056)          SetTxMode();			// Set Tx Mode
    048B DCF3      RCALL	_SetTxMode
(0057) 	     TxPacket(TxBuf);		// Transmit Tx buffer data
    048C E10D      LDI	R16,0x1D
    048D E011      LDI	R17,1
    048E DD00      RCALL	_TxPacket
    048F 5F4F      SUBI	R20,0xFF
    0490 4F5F      SBCI	R21,0xFF
    0491 304F      CPI	R20,0xF
    0492 E0E0      LDI	R30,0
    0493 075E      CPC	R21,R30
    0494 F3B0      BCS	0x048B
(0058)        }
(0059)        SetRxMode();		
    0495 DCF1      RCALL	_SetRxMode
(0060) 	 }		// 
(0061)     if(KEY3 ==0 )
    0496 B383      IN	R24,P13
    0497 9586      LSR	R24
    0498 9586      LSR	R24
    0499 7081      ANDI	R24,1
    049A F489      BNE	0x04AC
(0062) 	 {
(0063) 	 TxBuf[0] = 0xaa ;
    049B EA8A      LDI	R24,0xAA
    049C 9380011D  STS	R24,0x11D
(0064) 	 for(i = 0; i<15; i++) 
    049E 2744      CLR	R20
    049F 2755      CLR	R21
    04A0 C006      RJMP	0x04A7
(0065)        {
(0066)          SetTxMode();			// Set Tx Mode
    04A1 DCDD      RCALL	_SetTxMode
(0067) 	     TxPacket(TxBuf);		// Transmit Tx buffer data
    04A2 E10D      LDI	R16,0x1D
    04A3 E011      LDI	R17,1
    04A4 DCEA      RCALL	_TxPacket
    04A5 5F4F      SUBI	R20,0xFF
    04A6 4F5F      SBCI	R21,0xFF
    04A7 304F      CPI	R20,0xF
    04A8 E0E0      LDI	R30,0
    04A9 075E      CPC	R21,R30
    04AA F3B0      BCS	0x04A1
(0068)        }
(0069)        SetRxMode();		
    04AB DCDB      RCALL	_SetRxMode
(0070) 	 }	//
(0071) 	if(KEY2 ==0  ) 
    04AC B383      IN	R24,P13
    04AD 9586      LSR	R24
    04AE 7081      ANDI	R24,1
    04AF F489      BNE	0x04C1
(0072)     {  TxBuf[0] = 0x66 ;
    04B0 E686      LDI	R24,0x66
    04B1 9380011D  STS	R24,0x11D
(0073)     //   TxBuf[1] = 0x06 ;
(0074)        for(i = 0; i<15; i++) 
    04B3 2744      CLR	R20
    04B4 2755      CLR	R21
    04B5 C006      RJMP	0x04BC
(0075)        {
(0076)          SetTxMode();			// Set Tx Mode
    04B6 DCC8      RCALL	_SetTxMode
(0077) 	     TxPacket(TxBuf);		// Transmit Tx buffer data
    04B7 E10D      LDI	R16,0x1D
    04B8 E011      LDI	R17,1
    04B9 DCD5      RCALL	_TxPacket
    04BA 5F4F      SUBI	R20,0xFF
    04BB 4F5F      SBCI	R21,0xFF
    04BC 304F      CPI	R20,0xF
    04BD E0E0      LDI	R30,0
    04BE 075E      CPC	R21,R30
    04BF F3B0      BCS	0x04B6
(0078)        }
(0079)        SetRxMode();			// Set nRF905 in Rx mode
    04C0 DCC6      RCALL	_SetRxMode
(0080)     } 
(0081)     if(KEY1 ==0  ) 
    04C1 B383      IN	R24,P13
    04C2 9586      LSR	R24
    04C3 9586      LSR	R24
    04C4 9586      LSR	R24
    04C5 7081      ANDI	R24,1
    04C6 F489      BNE	0x04D8
(0082)     {
(0083)        TxBuf[0] = 0x33 ;
    04C7 E383      LDI	R24,0x33
    04C8 9380011D  STS	R24,0x11D
(0084)      //  TxBuf[1] = 0x08 ;
(0085)        for(i = 0; i<15; i++) 
    04CA 2744      CLR	R20
    04CB 2755      CLR	R21
    04CC C006      RJMP	0x04D3
(0086)        {
(0087)          SetTxMode();			// Set Tx Mode
    04CD DCB1      RCALL	_SetTxMode
(0088) 	     TxPacket(TxBuf);		// Transmit Tx buffer data
    04CE E10D      LDI	R16,0x1D
    04CF E011      LDI	R17,1
    04D0 DCBE      RCALL	_TxPacket
    04D1 5F4F      SUBI	R20,0xFF
    04D2 4F5F      SBCI	R21,0xFF
    04D3 304F      CPI	R20,0xF
    04D4 E0E0      LDI	R30,0
    04D5 075E      CPC	R21,R30
    04D6 F3B0      BCS	0x04CD
(0089)        }
(0090)        SetRxMode();			// Set nRF905 in Rx mode
    04D7 DCAF      RCALL	_SetRxMode
(0091)     }
(0092)  /*   if(tf==1)
(0093) 	{	
(0094) 	  SetTxMode();			// Set Tx Mode
(0095) 	  TxPacket(TxBuf);		// Transmit Tx buffer data
(0096) 	  TxBuf[0] = 0xff;
(0097) 	  TxBuf[1] = 0xff;
(0098) 	  SetRxMode();			// Set nRF905 in Rx mode
(0099) 	  tf=0;
(0100)     }     
(0101) 	if(led1_count>0)	
(0102)     {	
(0103) 	  led1_count--;
(0104) 	  PORTA=BIT(0);
(0105)       Delay(160);
(0106) 	}
(0107)     else PORTA&=~BIT(0);
(0108)     if(led2_count>0)
(0109)     {
(0110) 	  led2_count--;
(0111) 	  PORTA=BIT(1);
(0112)       Delay(160);
(0113)     }
(0114)     else PORTA&=~BIT(1); */
(0115)     if (RxPacket(RxBuf) == 1)	//返回1 表明有数据包接收到
    04D8 E309      LDI	R16,0x39
    04D9 E011      LDI	R17,1
    04DA DCD7      RCALL	_RxPacket
    04DB 3001      CPI	R16,1
    04DC F429      BNE	0x04E2
(0116)     {
(0117) 	  PORTA=RxBuf[0];
    04DD 90200139  LDS	R2,0x139
    04DF BA2B      OUT	P1B,R2
(0118) 	  Delay(3200);
    04E0 E800      LDI	R16,0x80
    04E1 DC35      RCALL	_Delay
    04E2 CF9F      RJMP	0x0482
(0119)     }
(0120)   }
(0121) }
FILE: <library>
    04E3 9508      RET
mod8u:
    04E4 9468      BSET	6
    04E5 C001      RJMP	xdiv8u
div8u:
    04E6 94E8      BCLR	6
xdiv8u:
    04E7 932A      ST	R18,-Y
    04E8 92FA      ST	R15,-Y
    04E9 24FF      CLR	R15
    04EA E028      LDI	R18,0x8
    04EB 0F00      LSL	R16
    04EC 1CFF      ROL	R15
    04ED 16F1      CP	R15,R17
    04EE F010      BCS	0x04F1
    04EF 1AF1      SUB	R15,R17
    04F0 9503      INC	R16
    04F1 952A      DEC	R18
    04F2 F7C1      BNE	0x04EB
    04F3 F40E      BRTC	0x04F5
    04F4 2D0F      MOV	R16,R15
    04F5 90F9      LD	R15,Y+
    04F6 9129      LD	R18,Y+
    04F7 9508      RET
mod16u:
    04F8 9468      BSET	6
    04F9 C001      RJMP	xdiv16u
div16u:
    04FA 94E8      BCLR	6
xdiv16u:
    04FB 92EA      ST	R14,-Y
    04FC 92FA      ST	R15,-Y
    04FD 938A      ST	R24,-Y
    04FE 24EE      CLR	R14
    04FF 24FF      CLR	R15
    0500 E180      LDI	R24,0x10
    0501 0F00      LSL	R16
    0502 1F11      ROL	R17
    0503 1CEE      ROL	R14
    0504 1CFF      ROL	R15
    0505 16E2      CP	R14,R18
    0506 06F3      CPC	R15,R19
    0507 F018      BCS	0x050B
    0508 1AE2      SUB	R14,R18
    0509 0AF3      SBC	R15,R19
    050A 9503      INC	R16
    050B 958A      DEC	R24
    050C F7A1      BNE	0x0501
    050D F416      BRTC	0x0510
    050E 2D0E      MOV	R16,R14
    050F 2D1F      MOV	R17,R15
    0510 9189      LD	R24,Y+
    0511 90F9      LD	R15,Y+
    0512 90E9      LD	R14,Y+
    0513 9508      RET
empy16s:
    0514 920A      ST	R0,-Y
    0515 921A      ST	R1,-Y
    0516 938A      ST	R24,-Y
    0517 939A      ST	R25,-Y
    0518 9F02      MUL	R16,R18
    0519 01C0      MOVW	R24,R0
    051A 9F12      MUL	R17,R18
    051B 0D90      ADD	R25,R0
    051C 9F03      MUL	R16,R19
    051D 0D90      ADD	R25,R0
    051E 018C      MOVW	R16,R24
    051F 9199      LD	R25,Y+
    0520 9189      LD	R24,Y+
    0521 9019      LD	R1,Y+
    0522 9009      LD	R0,Y+
    0523 9508      RET
push_gset1:
    0524 935A      ST	R21,-Y
    0525 934A      ST	R20,-Y
    0526 9508      RET
pop_gset1:
    0527 E0E1 

⌨️ 快捷键说明

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