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