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

📄 mt.lst

📁 PTR8000无线通信模块的单片机控制程序
💻 LST
📖 第 1 页 / 共 4 页
字号:
(0246) 
(0247) /*	函数名:	PTR8_Standby
(0248) 	功能说明:将PTR8置为待机状态。SET TRX_CE = 0
(0249) 	参数说明:无
(0250) 	返回值:	无
(0251) 	函数作者:Haibo YU
(0252) 	版本号:	1.0
(0253) 	创建时间:2005-12-23
(0254) 	修改时间:
(0255) 	修改内容:				*/
(0256) 
(0257) void PTR8_Standby(void)
(0258) {
(0259) 	PORTD &= ~BIT(PD1);	//TRX_CE = 0
_PTR8_Standby:
    022C 9891      CBI	0x12,1
(0260) }
    022D 9508      RET
(0261) //**************************************************************************
(0262) 
(0263) /*	函数名:	PTR8_TREN
(0264) 	功能说明:将PTR8置为工作状态。SET TRX_CE = 1
(0265) 	参数说明:无
(0266) 	返回值:	无
(0267) 	函数作者:Haibo YU
(0268) 	版本号:	1.0
(0269) 	创建时间:2005-12-23
(0270) 	修改时间:
(0271) 	修改内容:				*/
(0272) 
(0273) void PTR8_TREN(void)
(0274) {
(0275) 	PORTD |= BIT(PD1);	//TRX_CE = 1
_PTR8_TREN:
    022E 9A91      SBI	0x12,1
(0276) }
    022F 9508      RET
(0277) //***************************************************************************
(0278) 
(0279) /*	函数名:	PTR8_TX
(0280) 	功能说明:将PTR8置为发送状态。
(0281) 	参数说明:无
(0282) 	返回值:	无
(0283) 	函数作者:Haibo YU
(0284) 	版本号:	1.0
(0285) 	创建时间:2005-12-23
(0286) 	修改时间:
(0287) 	修改内容:				*/
(0288) 
(0289) void PTR8_TX(void)
(0290) {
(0291) 	PORTD |= BIT(PD0);	//TX_EN = 1
_PTR8_TX:
    0230 9A90      SBI	0x12,0
(0292) }
    0231 9508      RET
(0293) //***************************************************************************
(0294) 
(0295) /*	函数名:	PTR8_RX
(0296) 	功能说明:将PTR8置为接收状态。
(0297) 	参数说明:无
(0298) 	返回值:	无
(0299) 	函数作者:Haibo YU
(0300) 	版本号:	1.0
(0301) 	创建时间:2005-12-23
(0302) 	修改时间:
(0303) 	修改内容:				*/
(0304) 
(0305) void PTR8_RX(void)
(0306) {
(0307) 	PORTD &= ~BIT(PD0);	//TX_EN = 0
_PTR8_RX:
    0232 9890      CBI	0x12,0
(0308) }
    0233 9508      RET
(0309) //*****************************************************************************
(0310) 
(0311) void Init_PTR8_CR(void)
(0312) {
(0313) 	PORTB &= ~BIT(PB2);	//SS SET LOW, Write Configuration register Start
_Init_PTR8_CR:
    0234 98C2      CBI	0x18,2
(0314) 	SPI_M_Send(WC);	//Wirte Configuration Register,Start From 0000
    0235 2700      CLR	R16
    0236 DFEC      RCALL	_SPI_M_Send
(0315) 	SPI_M_Send(RC0);	//Write CH_NO [7 : 0]
    0237 91000069  LDS	R16,0x69
    0239 DFE9      RCALL	_SPI_M_Send
(0316) 	SPI_M_Send(RC1);		//Write Byte 2
    023A 9100006A  LDS	R16,0x6A
    023C DFE6      RCALL	_SPI_M_Send
(0317) 	SPI_M_Send(0x44);
    023D E404      LDI	R16,0x44
    023E DFE4      RCALL	_SPI_M_Send
(0318) 	SPI_M_Send(0x01);	//RX payload = 1 byte 
    023F E001      LDI	R16,1
    0240 DFE2      RCALL	_SPI_M_Send
(0319) 	SPI_M_Send(0x01);	//TX payload = 1 byte
    0241 E001      LDI	R16,1
    0242 DFE0      RCALL	_SPI_M_Send
(0320) 	SPI_M_Send(Add);
    0243 9100006B  LDS	R16,0x6B
    0245 DFDD      RCALL	_SPI_M_Send
(0321) 	SPI_M_Send(Add);
    0246 9100006B  LDS	R16,0x6B
    0248 DFDA      RCALL	_SPI_M_Send
(0322) 	SPI_M_Send(Add);
    0249 9100006B  LDS	R16,0x6B
    024B DFD7      RCALL	_SPI_M_Send
(0323) 	SPI_M_Send(Add);
    024C 9100006B  LDS	R16,0x6B
    024E DFD4      RCALL	_SPI_M_Send
(0324) 	SPI_M_Send(0x58);
    024F E508      LDI	R16,0x58
    0250 DFD2      RCALL	_SPI_M_Send
(0325) 	PORTB |= BIT(PB2);	//SS set HIGH,Write Configuration Register Finish
    0251 9AC2      SBI	0x18,2
(0326) 	
(0327) }
    0252 9508      RET
(0328) //************************************************************************************
(0329) /*	函数名:	Init_Device
(0330) 	功能说明:初始化设备。LED亮一下,蜂鸣器叫一声,初始化串口
(0331) 	参数说明:无
(0332) 	返回值:	无
(0333) 	函数作者:Haibo YU
(0334) 	版本号:	1.0
(0335) 	创建时间:2005-12-23
(0336) 	修改时间:
(0337) 	修改内容:				*/
(0338) 
(0339) void Init_Device(void)
(0340) {
(0341) 	//stop errant interrupts until set up
(0342)  	CLI(); //disable all interrupts
_Init_Device:
    0253 94F8      BCLR	7
(0343)  	
(0344) 	port_init();		//初始化各控制端口
    0254 DF8C      RCALL	_port_init
(0345) 	Uart_Init();		//串口初始化
    0255 DFB3      RCALL	_Uart_Init
(0346) 	SPI_MasterInit();//SPI Master Init
    0256 DFC9      RCALL	_SPI_MasterInit
(0347) 	MCUCR = 0x00;
    0257 2422      CLR	R2
    0258 BE25      OUT	0x35,R2
(0348)  	GICR  = 0x00;
    0259 BE2B      OUT	0x3B,R2
(0349)  	TIMSK = 0x00; //timer interrupt sources
    025A BE29      OUT	0x39,R2
(0350)  	
(0351) 	SEI(); //re-enable interrupts
    025B 9478      BSET	7
(0352) 	//all peripherals are now initialised
(0353) }
    025C 9508      RET
(0354) 
(0355) 
(0356) 
(0357) 
(0358) //****************************** 主函数  ***************************************
(0359) //******************************************************************************
(0360) void main(void)
(0361) {
(0362)  	
(0363) 	unsigned char dr;
(0364) 	Init_Device();	//Init All Device
_main:
  dr                   --> R20
    025D DFF5      RCALL	_Init_Device
(0365) 
(0366) 	Init_PTR8_CR();	//Set Configuration register
    025E DFD5      RCALL	_Init_PTR8_CR
(0367) 	Delay_1ms();
    025F DF8C      RCALL	_Delay_1ms
(0368) 
(0369) 	PTR8_RX();	//Set RX mode
    0260 DFD1      RCALL	_PTR8_RX
(0370) 	PTR8_TREN();	// TRX_CE = 1  Enable RX
    0261 DFCC      RCALL	_PTR8_TREN
(0371) 	Delay_1ms();
    0262 DF89      RCALL	_Delay_1ms
    0263 C014      RJMP	0x0278
(0372) 	while(1)
(0373) 	{
(0374) 	 		
(0375) 		 	dr = (PINC & 0x04);
    0264 B343      IN	R20,0x13
    0265 7044      ANDI	R20,4
(0376) 			if(dr != 0)			//DR置位,无线数据接收成功
    0266 F089      BEQ	0x0278
(0377) 			{
(0378) 			 	  PTR8_Standby();	//TRX_CE = 0,disable RX
    0267 DFC4      RCALL	_PTR8_Standby
(0379) 			 	  Delay_1ms();
    0268 DF83      RCALL	_Delay_1ms
(0380) 			 	  PORTB &= ~BIT(PB2);	//SS = 0
    0269 98C2      CBI	0x18,2
(0381) 			 	  SPI_M_Send(RRP);	//Read RX payload
    026A E204      LDI	R16,0x24
    026B DFB7      RCALL	_SPI_M_Send
(0382) 			 	  
(0383) 			 	 
(0384) 			  	  Recv = SPI_M_Recv(0xff);
    026C EF0F      LDI	R16,0xFF
    026D DFB9      RCALL	_SPI_M_Recv
    026E 9300006C  STS	_Recv,R16
(0385) 			 	  
(0386) 			 	  PORTB |= BIT(PB2);	//SS = 1
    0270 9AC2      SBI	0x18,2
(0387) 
(0388) 			 	/*  if(Recv == 0)
(0389) 				  {
(0390) 				   	LED(0); //接收到0 LED亮
(0391) 				   	Delay_Nms(1000);
(0392) 				  }
(0393) 				  else
(0394) 				  {
(0395) 				   	LED(1);//接收到1 LED灭
(0396) 					Delay_Nms(1000);  
(0397) 				  }*/
(0398) 				  
(0399) 				  PTR8_RX();	//Set RX mode
    0271 DFC0      RCALL	_PTR8_RX
(0400) 				  PTR8_TREN();	// TRX_CE = 1  Enable RX
    0272 DFBB      RCALL	_PTR8_TREN
(0401) 				  Delay_1ms();
    0273 DF78      RCALL	_Delay_1ms
(0402) 				  
(0403) 				  twiWriteByte(0xc0,Recv);
    0274 9120006C  LDS	R18,_Recv
    0276 EC00      LDI	R16,0xC0
    0277 DE29      RCALL	_twiWriteByte
    0278 CFEB      RJMP	0x0264
(0404) 			}	
(0405) 	}   
(0406) }
FILE: <library>
    0279 9508      RET
pop_gset2:
    027A E0E2      LDI	R30,2
    027B C008      RJMP	pop
pop_gset3:
    027C E0E4      LDI	R30,4
    027D C006      RJMP	pop
pop_gset4:
    027E E0E8      LDI	R30,0x8
    027F C004      RJMP	pop
push_gset1:
    0280 935A      ST	R21,-Y
    0281 934A      ST	R20,-Y
    0282 9508      RET
pop_gset1:
    0283 E0E1      LDI	R30,1
pop:
    0284 9149      LD	R20,Y+
    0285 9159      LD	R21,Y+
    0286 FDE0      SBRC	R30,0
    0287 9508      RET
    0288 9169      LD	R22,Y+
    0289 9179      LD	R23,Y+
    028A FDE1      SBRC	R30,1
    028B 9508      RET
    028C 90A9      LD	R10,Y+
    028D 90B9      LD	R11,Y+
    028E FDE2      SBRC	R30,2
    028F 9508      RET
    0290 90C9      LD	R12,Y+
    0291 90D9      LD	R13,Y+
    0292 FDE3      SBRC	R30,3
    0293 9508      RET
    0294 90E9      LD	R14,Y+
    0295 90F9      LD	R15,Y+
    0296 9508      RET
push_gset2:
    0297 937A      ST	R23,-Y
    0298 936A      ST	R22,-Y
    0299 CFE6      RJMP	push_gset1
push_gset3:
    029A 92BA      ST	R11,-Y
    029B 92AA      ST	R10,-Y
    029C CFFA      RJMP	push_gset2
push_gset4:
    029D 92DA      ST	R13,-Y
    029E 92CA      ST	R12,-Y
    029F CFFA      RJMP	push_gset3
push_lset:
    02A0 93FA      ST	R31,-Y
    02A1 93EA      ST	R30,-Y
    02A2 93BA      ST	R27,-Y
    02A3 93AA      ST	R26,-Y
    02A4 939A      ST	R25,-Y
    02A5 938A      ST	R24,-Y
    02A6 933A      ST	R19,-Y
    02A7 932A      ST	R18,-Y
    02A8 931A      ST	R17,-Y
    02A9 930A      ST	R16,-Y
    02AA 929A      ST	R9,-Y
    02AB 928A      ST	R8,-Y
    02AC 927A      ST	R7,-Y
    02AD 926A      ST	R6,-Y
    02AE 925A      ST	R5,-Y
    02AF 924A      ST	R4,-Y
    02B0 923A      ST	R3,-Y
    02B1 922A      ST	R2,-Y
    02B2 921A      ST	R1,-Y
    02B3 920A      ST	R0,-Y
    02B4 B60F      IN	R0,0x3F
    02B5 920A      ST	R0,-Y
    02B6 9508      RET
pop_lset:
    02B7 9009      LD	R0,Y+
    02B8 BE0F      OUT	0x3F,R0
    02B9 9009      LD	R0,Y+
    02BA 9019      LD	R1,Y+
    02BB 9029      LD	R2,Y+
    02BC 9039      LD	R3,Y+
    02BD 9049      LD	R4,Y+
    02BE 9059      LD	R5,Y+
    02BF 9069      LD	R6,Y+
    02C0 9079      LD	R7,Y+
    02C1 9089      LD	R8,Y+
    02C2 9099      LD	R9,Y+
    02C3 9109      LD	R16,Y+
    02C4 9119      LD	R17,Y+
    02C5 9129      LD	R18,Y+
    02C6 9139      LD	R19,Y+
    02C7 9189      LD	R24,Y+
    02C8 9199      LD	R25,Y+
    02C9 91A9      LD	R26,Y+
    02CA 91B9      LD	R27,Y+
    02CB 91E9      LD	R30,Y+
    02CC 91F9      LD	R31,Y+
    02CD 9508      RET

⌨️ 快捷键说明

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