📄 newfanremote.lst
字号:
0141 A7 C0 277 cmpe #c_com_return
0143 06 01 80 278 brz Change_Addr_Fan ;返回对码值的命令发送到,将发送、接受地址改回与风扇通信的地址
0146 A7 20 279 cmpe #c_com_ask
0148 07 01 86 280 brnz Quit_Ex_Int
014B 20 02 F2 281 call Power_UP_Rx ;请求对码的命令发送到,将RF模块配置成接收模式
014E 282 setbit(plata,CE)
+ 283
+ 284
0154 02 01 86 285 br Quit_Ex_Int
+ 286
+ 287 ;-------------------------------------------
0157 288 IRQ_MAX_RT:
+ 289
+ 290
+ 291 ;lda #WRITE_REG+#STATUS
+ 292 ;sta reg_name
+ 293 ;lda #MAX_RT
+ 294 ;sta reg_value
+ 295 ;call SPI_RW_Reg
+ 296
0157 F1 0B 297 lda command
0159 CB E0 298 anda #c_fetch_command
+ 299 ;cmpe #c_com_normal_key
015B 07 01 80 300 brnz Change_Addr_Fan ;与writer通信失败,改回与Fan通信的地址码
+ 301
015E 20 01 CC 302 call Set_Channel ;与FAN通信失败,跳到下一频段
0161 F1 0A 303 lda try_ctrl
0163 A7 0E 304 cmpe #c_try_tx_max ;是否已经在所有频段上扫描一遍?
0165 04 01 83 305 brc RF_Power_Down
0168 F1 0A 306 lda try_ctrl
016A 1F 307 inca
016B FD 0A 308 sta try_ctrl
+ 309 ;call Set_Channel
016D 20 04 EE 310 call CE_Pulse
0170 02 01 86 311 br Quit_Ex_Int
+ 312
+ 313 ;=================================================
0173 314 IRQ_RX_DR:
+ 315
+ 316 ;lda #WRITE_REG+#STATUS
+ 317 ;sta reg_name
+ 318 ;lda #RX_DR
+ 319 ;sta reg_value
+ 320 ;call SPI_RW_Reg
+ 321 ;call Delay_5us
+ 322
+ 323 ;clearbit(plata,CE)
0173 20 05 15 324 call Read_Rx_Pload ;收到字节,将字节读出
0176 F1 0B 325 lda command
0178 A7 40 326 cmpe #c_com_answer
017A 07 01 80 327 brnz Change_Addr_Fan
017D 20 05 55 328 call eep_save_data ;save access code to eeprom
0180 329 Change_Addr_Fan:
0180 20 03 DF 330 call Write_tx_addr_Fan
0183 331 RF_Power_Down:
+ 332
0183 20 03 04 333 call Power_Down
+ 334
0186 335 Quit_Ex_Int:
0186 F1 03 336 lda tmp_cpusts
0188 FC 12 337 sta cpusts
018A F1 02 338 lda tmp_a
018C 25 339 reti
+ 340
+ 341 ;------------------------------------------------
018D 342 Clear_RAM:
018D F3 00 343 lda #0x00
018F FC 21 344 sta dp
0191 345 Clear_Loop:
0191 F3 00 346 lda #0x00
0193 FE 347 sta i
0194 F0 21 348 lda dp
0196 A7 22 349 cmpe #c_ram
0198 06 01 9F 350 brz Clear_End
019B 18 351 incdp
019C 02 01 91 352 br Clear_Loop
019F 353 Clear_End:
019F 24 354 ret
+ 355
+ 356
+ 357 ;-----------------------------
01A0 358 Initialization:
+ 359 ;Enable External Pin Interrupt
01A0 F3 00 360 lda #c_ext_int_fall_edge ;外部中断下降沿有效
01A2 FC 91 361 sta prtiedg
01A4 F3 1E 362 lda #c_ext_int_enable ;允许PC0,PB[3:1]中断
01A6 FC 84 363 sta prtie
01A8 F3 FF 364 lda #c_port_input_ctrl ;设置相应管脚为input
01AA FC 62 365 sta pdirc
01AC F3 FF 366 lda #c_port_input_ctrl
01AE FC 61 367 sta pdirb
01B0 F3 90 368 lda #c_globle_int_enable
01B2 FC 81 369 sta mier ;允许总中断控制
+ 370
01B4 F3 81 371 lda #c_porta_dir_ctrl
01B6 FC 58 372 sta pdira
01B8 F3 68 373 lda #c_nRF24L01_not_use ;在不需要读写时,对EEPROM的SDA,SCL输出高电平
01BA FC 42 374 sta plata ;对nRF24L01的CE,SCK,MOSI输出低电平,对CSN输出高电平
01BC 24 375 ret
+ 376 ;------------------------------------------------
01BD 377 Scankey::
01BD 20 02 48 378 call Delay_10ms
01C0 20 02 48 379 call Delay_10ms
01C3 F0 31 380 lda portb
01C5 EB FF 381 xora #0xff
01C7 CB 0E 382 anda #c_all_key_high
01C9 FD 08 383 sta key_code
01CB 24 384 ret
+ 385 ;-----------------------------------------------
01CC 386 Set_Channel:
01CC F1 09 387 lda channel_count
01CE 1F 388 inca
01CF FD 09 389 sta channel_count
01D1 A7 0F 390 cmpe #c_max_channel
01D3 05 01 DA 391 brnc Look_Forward
01D6 F3 00 392 lda #0
01D8 FD 09 393 sta channel_count
01DA 394 Look_Forward:
01DA 20 01 E3 395 call Look_up_Freq_table
01DD FD 13 396 sta reg_value
01DF 20 04 60 397 call Select_RF_Channel
01E2 24 398 ret
+ 399 ;**********************************
+ 400 ;In/out parameters:
+ 401 ; In:channel_count
+ 402 ; Out:RF_channel value in 'ACC'register
+ 403 ;*********************************
01E3 404 Look_up_Freq_table::
01E3 F1 09 405 lda channel_count
01E5 A7 0F 406 cmpe #15
01E7 05 01 EE 407 brnc Look_up_continue
01EA F3 00 408 lda #0
01EC FD 09 409 sta channel_count
01EE 410 Look_up_continue:
01EE 8B 00 411 adda #0
01F0 F3 02 412 lda #<(Freq_Table)
01F2 89 09 413 adda channel_count
01F4 FD 04 414 sta tmp_tpl
01F6 F3 02 415 lda #>(Freq_Table)
01F8 9B 00 416 addc #0
01FA FC 02 417 sta tph
01FC F1 04 418 lda tmp_tpl
01FE FC 01 419 sta tpl
0200 F8 420 ldv
+ 421 ; sta RF_channel
0201 24 422 ret
+ 423 ;*****************************************
0202 424 Freq_Table:
0202 02 1B 34 07 425 db 0x02,0x1b,0x34,0x07,0x20,0x39,0x0c,0x25
0206
+ 426 ;2 ;27 ;52 ;7 ;32 ;57; ;12 ;37
020A 3E 11 2A 43 427 db 0x3e,0x11,0x2a,0x43,0x16,0x2f,0x48
020E
+ 428 ;62 ;17 ;42 ;67 ;22 ;47 ;72
+ 429 ;--------------------------------------
+ 430
0211 02 00 20 431 br Reset
+ 432
+ 433 .area Run_away(code,abs)
+ 434
+ 435 .org 0x0a00
+ 436
+B 00 04
0A00 02 00 20 437 br Reset
+ 438
+ 439 .org 0x0b00
+ 440
0B00 02 00 20 441 br Reset
+ 442
+ 443 .org 0x0c00
+ 444
0C00 02 00 20 445 br Reset
+ 446
+ 447 .org 0x0d00
+ 448
0D00 02 00 20 449 br Reset
+ 450
+ 451 .org 0x0e00
+ 452
0E00 02 00 20 453 br Reset
+ 454
+ 455 .org 0x0f00
+ 456
0F00 02 00 20 457 br Reset
+ 458
+ 459
+
+Symbol Table
+
+ CD = 0009
+ CE = 0004
+ CE_Pulse **** GX
+ CONFIG = 0000
+ CSN = 0003
+ C_NOP = 00FF
+ 3 Change_Addr_Fan 0180 R
+ 3 Clear_End 019F R
+ 3 Clear_Loop 0191 R
+ 3 Clear_RAM 018D R
+ Delay_100ms **** GX
+ Delay_10ms **** GX
+ EN_AA = 0001
+ EN_RXADDR = 0002
+ 3 Ex_Int_Judge 00DE R
+ FIFO_STATUS = 0017
+ FLUSH_RX = 00E2
+ FLUSH_TX = 00E1
+ Flush_Tx_FIFO **** GX
+ 3 Freq_Table 0202 R
+ IDLE = 0000
+ 3 IRQ_INT_Handle 0124 R
+ 3 IRQ_ISR 00FA R
+ 3 IRQ_MAX_RT 0157 R
+ 3 IRQ_RX_DR 0173 R
+ 3 IRQ_Tx_DS 013A R
+ 1 IRQ_source 000C GR
+ 3 Initialization 01A0 R
+ 3 Key_Pressed 00EB R
+ 3 Look_Forward 01DA R
+ 3 Look_up_Freq_table 01E3 GR
+ 3 Look_up_continue 01EE R
+ MAX_RT = 0010
+ MISO = 0000
+ MOSI = 0001
+ OBSERVE_TX = 0008
+ Power_Down **** GX
+ Power_UP_Rx **** GX
+ Power_UP_Tx **** GX
+ 3 Press_Compare_Access_Code 009B R
+ 3 Press_One_Key_Handle 007D R
+ 3 Press_Return_Access_Code 00C4 R
+ 3 Quit_Ex_Int 0186 R
+ RD_RX_PLOAD = 0061
+ READ_REG = 0000
+ REUSE_TX_PL = 00E3
+ RF_CH = 0005
+ 3 RF_Power_Down 0183 R
+ RF_SETUP = 0006
+ RX_ADDR_P0 = 000A
+ RX_ADDR_P1 = 000B
+ RX_ADDR_P2 = 000C
+ RX_ADDR_P3 = 000D
+ RX_ADDR_P4 = 000E
+ RX_ADDR_P5 = 000F
+ RX_DR = 0040
+ RX_PW_P0 = 0011
+ RX_PW_P1 = 0012
+ RX_PW_P2 = 0013
+ RX_PW_P3 = 0014
+ RX_PW_P4 = 0015
+ RX_PW_P5 = 0016
+ Read_Rx_Pload **** GX
+ 3 Reset 0020 R
+ SCK = 0002
+ SCL = 0005
+ SDA = 0006
+ SETUP_AW = 0003
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -