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

📄 rf收发汇编参考代码.asm

📁 LT8900
💻 ASM
📖 第 1 页 / 共 2 页
字号:

*******************************************************************************/
;---------------------------------------------------------------------
#include              "usb_define.ash"
#include              "user_reg.ash"
;---------------------------------------------------------------------
;---------------------------------------------------------------------
#include             "U83-KB+Mouse.asm"
extern                Delay_100us_RAM1
;---------------------------------------------------------------------
;---------------------------------------------------------------------
#include             "USB_Report.asm"
extern                ID_TABLE
;---------------------------------------------------------------------
;---------------------------------------------------------------------
            ORG            0X0500            //PAGE1
;---------------------------------------------------------------------
FRAME_TABLE:                                                // other Register the default value equal recommended value
          ADDAR               PCL, R
          RETIA               020H                          // Reg32
          RETIA               0F0H
          RETIA               000H                          // 32 Byte Sync Word// NRZ,no FEC

          RETIA               021H                          // Reg33
          RETIA               03FH
          RETIA               0C7H                          // Configures packet sequencing

          RETIA               022H                          // Reg34
          RETIA               020H
          RETIA               000H                          // Configures packet sequencing

          RETIA               023H                          // Reg35
          RETIA               003H
          RETIA               020H                          // AutoACK max TX retries = 3 ,MISO is tri-state when SPI_SS = 1

          RETIA               024H                          // Reg36
          RETIA               003H
          RETIA               080H                          // Sync Word

          RETIA               025H                          // Reg37
          RETIA               003H
          RETIA               080H                          // Sync Word

          RETIA               026H                          // Reg38
          RETIA               05AH
          RETIA               05AH                          // Sync Word

          RETIA               027H                          // Reg39
          RETIA               003H
          RETIA               080H                          // Sync Word

          RETIA               028H                          // Reg40
          RETIA               044H
          RETIA               002H                          // Configure FIFO flag,sync threshold

          RETIA               029H                          // Reg41
          RETIA               0E0H
          RETIA               000H                          // CRC on,SCRAMBLE off,1st byte is packet length
/*
          RETIA               02AH                          // Reg42
          RETIA               0FDH
          RETIA               06BH                          //

          RETIA               02BH                          // Reg43
          RETIA               000H
          RETIA               00FH                          // Configure scan RSSI

          RETIA               032H                          // Reg50
          RETIA               000H
          RETIA               000H

;---------------------------------------------------------------------
          RETIA               000H                          // Reg0
          RETIA               06FH
          RETIA               0E0H                          //

          RETIA               001H                          // Reg1
          RETIA               056H
          RETIA               081H
*/
          RETIA               002H                          // Reg2
          RETIA               066H
          RETIA               017H

          RETIA               004H                          // Reg4
          RETIA               09CH
          RETIA               0C9H

          RETIA               005H                          // Reg5
          RETIA               066H
          RETIA               037H

          RETIA               007H                          // Reg7
          RETIA               000H
          RETIA               04CH                          // Use for setting RF freqency

          RETIA               008H                          // Reg8
          RETIA               06CH
          RETIA               090H

          RETIA               009H                          // Reg9
          RETIA               018H
          RETIA               000H                          // Sets TX power level
/*
          RETIA               00AH                          // Reg10
          RETIA               07FH
          RETIA               0FDH                          // Crystal osc. enable
*/
          RETIA               00BH                          // Reg11
          RETIA               000H
          RETIA               008H                          // RSSI enable
/*
          RETIA               00CH                          // Reg12
          RETIA               000H
          RETIA               000H
*/
          RETIA               00DH                          // Reg13
          RETIA               048H
          RETIA               0BDH

          RETIA               016H                          // Reg22
          RETIA               000H
          RETIA               0FFH
/*
          RETIA               017H                          // Reg23
          RETIA               080H
          RETIA               005H
*/
          RETIA               018H                          // Reg24
          RETIA               000H
          RETIA               067H
/*
          RETIA               019H                          // Reg25
          RETIA               016H
          RETIA               059H
*/
          RETIA               01AH                          // Reg26
          RETIA               019H
          RETIA               0E0H

          RETIA               01BH                          // Reg27
          RETIA               010H
          RETIA               0C0H                          // NO crystal trim
/*
          RETIA               01CH                          // Reg28
          RETIA               018H
          RETIA               000H
*/
          RETIA               0FFH

;---------------------------------------------------------------------
Mouse_Normal_Channle_Table:
          ADDAR               PCL, R
          RETIA               002                           // freq:2402 ;@0X02
          RETIA               030                           // freq:2428 ;@0X1E
          RETIA               068                           // freq:2456 ;@0X44

          RETIA               008                           // freq:2406 ;@0X08
          RETIA               033                           // freq:2433 ;@0X21
          RETIA               072                           // freq:2461 ;@0X48

          RETIA               015                           // freq:2410 ;@0X0F
          RETIA               040                           // freq:2438 ;@0X28
          RETIA               077                           // freq:2466 ;@0X4D

Key_Normal_Channle_Table:
          ADDAR               PCL, R
          RETIA               003                           // freq:2402 ;@0X03
          RETIA               032                           // freq:2428 ;@0X20
          RETIA               065                           // freq:2456 ;@0X41

          RETIA               010                           // freq:2406 ;@0X0A
          RETIA               035                           // freq:2433 ;@0X23
          RETIA               070                           // freq:2461 ;@0X46

          RETIA               018                           // freq:2410 ;@0X12
          RETIA               044                           // freq:2438 ;@0X28
          RETIA               075                           // freq:2466 ;@0X4B

Mouse_Code_Channle_Table:
          ADDAR               PCL, R
          RETIA               004                           // freq:2406 ;@0X04
          RETIA               037                           // freq:2438 ;@0X25
          RETIA               074                           // freq:2478 ;@0X4A

Key_Code_Channle_Table:
          ADDAR               PCL, R
          RETIA               005                           // freq:2406 ;@0X05
          RETIA               038                           // freq:2438 ;@0X26
          RETIA               076                           // freq:2478 ;@0X4C

/*********************************************************************
*  Function: Write SPI Register
*  Input:    SPI_Addr, SPI_Data_High, SPI_Data_Low
*  Output:   None
*********************************************************************/
Write_SPI_Reg:
;         BCR                 RF_CSn                                  //    /SS    =0
;{
          MOVIA               BCR_RF_CSn
          ANDAR               PORTA, R
;}
          MOVR                SPI_Addr, A
          CALL                WriteSPI
          NOP
          MOVR                SPI_Data_High, A
          CALL                WriteSPI
          NOP
          MOVR                SPI_Data_Low, A
          CALL                WriteSPI
          NOP
;         BSR                 RF_CSn                                  //    /SS    =1
;{
          MOVIA               BSR_RF_CSn
          IORAR               PORTA, R
;}
          RETURN

/*********************************************************************
*  Function: Read SPI Register
*  Input:   SPI_Addr
*  Output:  SPI_Data_High,SPI_Data_Low
*********************************************************************/
Read_SPI_Reg:
;         BCR                 RF_CSn                                  //    /SS    =0
;{
          MOVIA               BCR_RF_CSn
          ANDAR               PORTA, R
;}
          MOVR                SPI_Addr, A
          IORIA               080H
          CALL                WriteSPI
          NOP
          CALL                ReadSPI
          MOVAR               SPI_Data_High
          NOP
          CALL                ReadSPI
          MOVAR               SPI_Data_Low
          NOP
;         BSR                 RF_CSn                                  //    /SS    =1
;{
          MOVIA               BSR_RF_CSn
          IORAR               PORTA, R
;}
          RETURN

/*********************************************************************
* Function: Write SPI communication subroutine Falling edge
* Input:    ACC
* Output:   None
* I/O Software SPI (PA7:SCK  PA6:SDO  PA5:SDI)
*********************************************************************/
WriteSPI:
          MOVAR               SPI_BUF
          MOVIA               008H
          MOVAR               CYC_CNT
WRITE_SPI_1:
;         BSR                 RF_SCK
;{
          MOVIA               BSR_RF_SCK
          IORAR               PORTA, R
;}
          RLR                 SPI_BUF,R
          BTRSC               STATUS,C_B
          GOTO                SET_SPI_MOSI
;         BCR                 RF_MOSI
;{
          MOVIA               BCR_RF_MOSI
          ANDAR               PORTA, R
;}
          GOTO                WRITE_SPI_COUNT_DEC
SET_SPI_MOSI:
;         BSR                 RF_MOSI
;{
          MOVIA               BSR_RF_MOSI
          IORAR               PORTA, R
;}
          NOP
WRITE_SPI_COUNT_DEC:                                                                                          // FIRST HIGT BIT
;         BCR                 RF_SCK
;{
          MOVIA               BCR_RF_SCK
          ANDAR               PORTA, R
;}
          NOP
          DECRSZ              CYC_CNT,R
          GOTO                WRITE_SPI_1
          NOP
;         BCR                 RF_MOSI
;{
          MOVIA               BCR_RF_MOSI
          ANDAR               PORTA, R
;}
          RETURN

/*********************************************************************
* Function: Read SPI communication subroutine Falling edge
* Input:    None
* Output:   SPI Data
* I/O Software SPI (PA7:SCK  PA6:SDO  PA5:SDI)
*********************************************************************/
ReadSPI:
          CLRR                SPI_BUF
          MOVIA               008H
          MOVAR               CYC_CNT
READ_SPI_1:
;         BSR                 RF_SCK
;{
          MOVIA               BSR_RF_SCK
          IORAR               PORTA, R
;}
          NOP
          NOP
          NOP
          NOP
          NOP
;         BCR                 RF_SCK
;{
          MOVIA               BCR_RF_SCK
          ANDAR               PORTA, R
;}
;         BSR                 RF_MISO
;{
          MOVIA               BSR_RF_MISO
          IORAR               PORTA, R
;}
          BTRSS               RF_MISO
          GOTO                CLR_STATUS_C
          BSR                 STATUS,C_B
          GOTO                READ_SPI_MISO
CLR_STATUS_C:
          BCR                 STATUS,C_B
READ_SPI_MISO:
          RLR                 SPI_BUF,R
          DECRSZ              CYC_CNT,R
          GOTO                READ_SPI_1
          MOVR                SPI_BUF,A
          RETURN

;---------------------------------------------------------------------
;---------------------------------------------------------------------
RF_Module_Reset:
;         BCR                 RF_RST                                  //Reset = 0
;{
          MOVIA               BCR_RF_RST
          ANDAR               PORTA, R
;}
          MOVIA               020D
          CALL                Delay_100us_RAM1

;         BSR                 RF_RST                                  // RESET=1
;{
          MOVIA               BSR_RF_RST
          IORAR               PORTA, R
;}

          MOVIA               010D
          CALL                Delay_100us_RAM1
          RETURN
          
/*********************************************************************
*  Function: RF Initialize SubRoutine
*  Input:    None
*  Output:   None
*********************************************************************/
Init_RF_Module:
          CALL                RF_Module_Reset
          CALL                RF_Module_Reset
          CALL                RF_Module_Reset

          BCR                 Test_Error_B
          CALL                Init_FrameReg                           // load    FRAMER TABLE send

          MOVIA               001D
          CALL                Delay_100us_RAM1

          CALL                TEST_Initial_RF
          BTRSC               Test_Error_B
          GOTO                Init_RF_Module
          CALL                RF_Enter_Idle_State
          BSR                 RF_Init_OK_B
          CALL                RF_Set_Commun_SyncWord

⌨️ 快捷键说明

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