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

📄 newfanremote.lst

📁 一款用24L01给美的电器做的2.4G无线遥控器
💻 LST
📖 第 1 页 / 共 5 页
字号:
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 + -