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

📄 newfanremote.lst

📁 一款用24L01给美的电器做的2.4G无线遥控器
💻 LST
📖 第 1 页 / 共 5 页
字号:
0364 F3 30          184        lda      #WRITE_REG+#TX_ADDR                 ;Writes TX_Address to nRF24L01
0366 FD 10          185        sta      byte
0368 20 04 A5       186        call     SPI_RW                     ;Select'TX_ADDR' register to write to
036B F3 40          187        lda      #c_tx_writer_addr0
036D FD 10          188        sta      byte
036F 20 04 A5       189        call     SPI_RW
0372 F3 50          190        lda	#c_tx_writer_addr1
0374 FD 10          191        sta	byte
0376 20 04 A5       192        call     SPI_RW
0379 F3 60          193        lda	#c_tx_writer_addr2
037B FD 10          194        sta	byte
037D 20 04 A5       195        call	SPI_RW
0380 F3 70          196        lda      #c_tx_writer_addr3
0382 FD 10          197        sta	byte
0384 20 04 A5       198        call	SPI_RW
0387 F3 80          199        lda	#c_tx_writer_addr4
0389 FD 10          200        sta	byte
038B 20 04 A5       201        call	SPI_RW
038E                202        setbit(plata,CSN)
+                   203 
0394 20 02 14       204        call     Delay_5us
+                   205 
0397                206        clearbit(plata,CSN)
039D F3 2A          207        lda      #WRITE_REG+#RX_ADDR_P0                       ;RX_Addr0 same as TX_Addr for Auto.Ack
039F FD 10          208        sta      byte
03A1 20 04 A5       209        call     SPI_RW
03A4 F3 40          210        lda      #c_tx_writer_addr0
03A6 FD 10          211        sta	byte
03A8 20 04 A5       212        call	SPI_RW
03AB F3 50          213        lda	#c_tx_writer_addr1
03AD FD 10          214        sta	byte
03AF 20 04 A5       215        call	SPI_RW
03B2 F3 60          216        lda	#c_tx_writer_addr2
03B4 FD 10          217        sta	byte
03B6 20 04 A5       218        call	SPI_RW
03B9 F3 70          219        lda	#c_tx_writer_addr3
03BB FD 10          220        sta	byte
03BD 20 04 A5       221        call	SPI_RW
03C0 F3 80          222        lda	#c_tx_writer_addr4
03C2 FD 10          223        sta	byte
03C4 20 04 A5       224        call     SPI_RW
03C7                225        setbit(plata,CSN)
03CD 20 02 14       226        call     Delay_5us
+                   227 
03D0 F3 26          228        lda      #WRITE_REG+#RF_SETUP                     ;TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
03D2 FD 12          229        sta      reg_name
03D4 F3 09          230        lda      #c_RF_18db
03D6 FD 13          231        sta      reg_value
03D8 20 04 6B       232        call     SPI_RW_Reg
03DB 20 02 14       233        call     Delay_5us
03DE 24             234        ret
+                   235 ;-------------------------------------
03DF                236 Write_tx_addr_Fan::
03DF                237        clearbit(plata,CSN)               ; Set CSN low, init SPI tranaction
03E5 F3 30          238        lda      #WRITE_REG+#TX_ADDR      ;Writes TX_Address to nRF24L01
03E7 FD 10          239        sta      byte
03E9 20 04 A5       240        call     SPI_RW                   ;Select'TX_ADDR' register to write to
03EC F1 05          241        lda      access_code
03EE FD 10          242        sta      byte
03F0 20 04 A5       243        call     SPI_RW
03F3 F1 06          244        lda	access_code+1
03F5 FD 10          245        sta	byte
03F7 20 04 A5       246        call     SPI_RW
03FA F1 07          247        lda	access_code+2
03FC FD 10          248        sta	byte
03FE 20 04 A5       249        call	SPI_RW
0401 F3 07          250        lda      #c_tx_fan_addr3
0403 FD 10          251        sta	byte
0405 20 04 A5       252        call	SPI_RW
0408 F3 08          253        lda	#c_tx_fan_addr4
040A FD 10          254        sta	byte
040C 20 04 A5       255        call	SPI_RW
040F                256        setbit(plata,CSN)
+                   257 
0415 20 02 14       258        call     Delay_5us
+                   259 
0418                260        clearbit(plata,CSN)
041E F3 2A          261        lda      #WRITE_REG+#RX_ADDR_P0	;RX_Addr0 same as TX_Addr for Auto.Ack
0420 FD 10          262        sta      byte
0422 20 04 A5       263        call     SPI_RW
0425 F1 05          264        lda      access_code
0427 FD 10          265        sta	byte
0429 20 04 A5       266        call	SPI_RW
042C F1 06          267        lda	access_code+1
042E FD 10          268        sta	byte
0430 20 04 A5       269        call	SPI_RW
0433 F1 07          270        lda	access_code+2
0435 FD 10          271        sta	byte
0437 20 04 A5       272        call	SPI_RW
043A F3 07          273        lda	#c_tx_fan_addr3
043C FD 10          274        sta	byte
043E 20 04 A5       275        call	SPI_RW
0441 F3 08          276        lda	#c_tx_fan_addr4
0443 FD 10          277        sta	byte
0445 20 04 A5       278        call     SPI_RW
0448                279        setbit(plata,CSN)
044E 20 02 14       280        call     Delay_5us
+                   281 
0451 F3 26          282        lda      #WRITE_REG+#RF_SETUP                     ;TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
0453 FD 12          283        sta      reg_name
0455 F3 0F          284        lda      #c_RF_0db
0457 FD 13          285        sta      reg_value
0459 20 04 6B       286        call     SPI_RW_Reg
045C 20 02 14       287        call     Delay_5us
045F 24             288        ret
+                   289 ;**************************************
+                   290 ;Function:  Select_RF_channel
+                   291 ;
+                   292 ; In/out parameters:
+                   293 ;     In:RF_channel value in 'reg_value'
+                   294 ;     Out:non
+                   295 ;*************************************
0460                296 Select_RF_Channel::
0460 F3 25          297         lda      #WRITE_REG+#RF_CH
0462 FD 12          298         sta      reg_name
+                   299         ;lda      RF_Channel
+                   300         ;sta      reg_value
0464 20 04 6B       301         call     SPI_RW_Reg
0467 20 02 14       302         call     delay_5us
046A 24             303         ret
+                   304         
+                   305 
+                   306 ;***************************************  
+                   307 ;Function: SPI_RW_Reg
+                   308 ;
+                   309 ;  Description:
+                   310 ;  Writes value 'reg_value' to register 'reg_name'
+                   311 ;
+                   312 ;  In/Out parameters:
+                   313 ;  In: 'reg_name' register to write value 'reg_value' to.
+                   314 ;  Out: non
+                   315 ;****************************************       
046B                316 SPI_RW_Reg::
046B                317        clearbit(plata,CSN)
0471 F1 12          318        lda       reg_name
0473 FD 10          319        sta       byte
0475 20 04 A5       320        call      SPI_RW
0478 F1 13          321        lda       reg_value
047A FD 10          322        sta       byte
047C 20 04 A5       323        call      SPI_RW
047F                324        setbit(plata,CSN)
0485 24             325        ret
+                   326  ;*************************************
+                   327  ;Function: SPI_Read_Reg
+                   328  ;
+                   329  ;  Description:
+                   330  ;  Read value in'reg_name' and store the value in'reg_value'
+                   331  ;
+                   332  ;  In/Out parameters:
+                   333  ;  In:'reg_name'register to read value from
+                   334  ;  Out:'reg_value'
+                   335  ;**************************************
0486                336  SPI_Read_Reg::
0486                337        clearbit(plata,CSN)
048C F1 12          338        lda       reg_name
048E FD 10          339        sta       byte
0490 20 04 A5       340        call      SPI_RW
0493 F3 00          341        lda       #0
0495 FD 10          342        sta       byte
0497 20 04 A5       343        call      SPI_RW
049A F1 10          344        lda       byte
049C FD 13          345        sta       reg_value
049E                346        setbit(plata,CSN)
04A4 24             347        ret        
+                   348 
+                   349 ;****************************************
+                   350 ;Function:SPI_RW subroutine
+                   351 ;Description:
+                   352 ;    Writes one byte to nRF24L01, and return the byte read
+                   353 ;    from nRF24L01 during write, according to SPI protocol
+                   354 ;
+                   355 ;  In/Out parameters:
+                   356 ;  In: 'byte', current byte to be written
+                   357 ;  Out:  'byte' SW SPI mode
+                   358 ;*****************************************
04A5                359 SPI_RW:: 
04A5 F3 08          360         lda      #8
04A7 FD 11          361         sta      bit_ctrl
04A9                362 SPI_RW_Loop:
04A9 F1 10          363         lda      byte
04AB CB 80          364         anda     #0x80
04AD A7 00          365         cmpe     #0
04AF 06 04 BB       366         brz     Clear_MOSI
04B2                367         setbit(plata,MOSI)
04B8 02 04 C1       368         br       Next
04BB                369 Clear_MOSI:
04BB                370         clearbit(plata,MOSI)
04C1                371 Next:        
04C1 8B 00          372         adda     #0                  ;clear'C'flag
04C3 F1 10          373         lda      byte
04C5 7E             374         ROLC
04C6 FD 10          375         sta      byte
04C8                376         setbit(plata,SCK) 
04CE F0 28          377         lda      porta
04D0 CB 01          378         anda     #c_fetch_MISO
04D2 D9 10          379         ora      byte
04D4 FD 10          380         sta      byte
04D6                381         clearbit(plata,SCK)
04DC F1 11          382         lda      bit_ctrl
04DE AB 01          383         suba     #1
04E0 FD 11          384         sta      bit_ctrl
04E2 A7 00          385         cmpe     #0
04E4 07 04 A9       386         brnz     SPI_RW_Loop
+                   387              
04E7                388 SPI_RW_End:
+                   389         
04E7                390         clearbit(plata,MOSI)
04ED 24             391         ret
+                   392 
+                   393 ;***************************************
04EE                394 CE_Pulse::
04EE                395    	 setbit(plata,CE)		;A high pluse(>10us)on CE begin 
04F4 20 02 26       396          call     Delay_10us            ;sending the packet
04F7 20 02 26       397          call     Delay_10us
04FA                398          clearbit(plata,CE)
0500 24             399          ret
+                   400 
+                   401 ;***************************************
+                   402 ;TX_ADDRESS_Table:
+                   403     ;  db   0x40,0x50,0x60,0x70,0x80
+                   404        
+                   405 ;----------------------------------------        
0501                406 Flush_Tx_FIFO::
0501                407 	clearbit(plata,CSN)
0507 F3 E1          408 	lda        #FLUSH_TX		;清nRF24L01FIFO发送缓冲区,以免上次发送残留的数据重发
0509 FD 10          409         sta        byte
050B 20 04 A5       410         call       SPI_RW
050E                411         setbit(plata,CSN)        
0514 24             412 	ret
+                   413 ;------------------------------------------
0515                414 Read_Rx_Pload::
0515                415 	clearbit(plata,CSN)
051B F3 61          416 	lda     #RD_RX_PLOAD
051D FD 10          417 	sta     byte
051F 20 04 A5       418 	call    SPI_RW
0522 F3 00          419 	lda     #0
0524 FD 10          420 	sta	byte
0526 20 04 A5       421 	call    SPI_RW
0529 F1 10          422 	lda     byte
052B FD 0B          423 	sta	command
052D F3 00          424 	lda     #0
052F FD 10          425 	sta     byte
0531 20 04 A5       426 	call    SPI_RW
0534 F1 10          427 	lda     byte
0536 FD 05          428 	sta     access_code
0538 F3 00          429 	lda     #0
053A FD 10          430 	sta     byte
053C 20 04 A5       431 	call    SPI_RW
053F F1 10          432 	lda     byte
0541 FD 06          433 	sta     access_code+1
0543 F3 00          434 	lda     #0
0545 FD 10          435 	sta     byte
0547 20 04 A5       436 	call    SPI_RW
054A F1 10          437 	lda     byte
054C FD 0

⌨️ 快捷键说明

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