📄 jfp_fasong.lis
字号:
.module jfp_fasong.c
.area text(rom, con, rel)
0000 .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
.area data(ram, con, rel)
0000 .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
0000 _TxAddress::
0000 .blkb 2
.area idata
0000 CCCC .byte 204,204
.area data(ram, con, rel)
0002 .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
0002 .blkb 2
.area idata
0002 CCCC .byte 204,204
.area data(ram, con, rel)
0004 .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
0004 .dbsym e TxAddress _TxAddress A[4:4]c
0004 _RFConf::
0004 .blkb 2
.area idata
0004 004C .byte 0,'L
.area data(ram, con, rel)
0006 .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
0006 .blkb 2
.area idata
0006 0C44 .byte 12,'D
.area data(ram, con, rel)
0008 .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
0008 .blkb 2
.area idata
0008 0404 .byte 4,4
.area data(ram, con, rel)
000A .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
000A .blkb 2
.area idata
000A CCCC .byte 204,204
.area data(ram, con, rel)
000C .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
000C .blkb 2
.area idata
000C CCCC .byte 204,204
.area data(ram, con, rel)
000E .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
000E .blkb 1
.area idata
000E 58 .byte 'X
.area data(ram, con, rel)
000F .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
000F .dbsym e RFConf _RFConf A[11:11]c
.area text(rom, con, rel)
0000 .dbfile F:\开发板配套资料\JASK3000软件开发包\遥控开关\NRF905_发送\jfp_fasong.c
0000 .dbfunc e Delay _Delay fV
0000 ; i -> R20,R21
0000 ; x -> R16,R17
.even
0000 _Delay::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 80
0004 ; //ICC-AVR application builder : 2007-8-11 20:37:32
0004 ; // Target : M16
0004 ; // Crystal: 8.0000Mhz
0004 ; #include <iom16v.h>
0004 ; #include <macros.h>
0004 ; #define uint unsigned int
0004 ; #define uchar unsigned char
0004 ; ///////////////////////////模式控制定义/////////////////////////////////
0004 ; //#define nrf905_TX_EN PB0 //输出1
0004 ; #define Low_nrf905_TX_EN PORTB &= ~(1 << PB0)
0004 ; #define Hign_nrf905_TX_EN PORTB |= (1 << PB0)
0004 ; //#define nrf905_TRX_CE PD5 //输出1
0004 ; #define Hign_nrf905_TRX_CE PORTD |= (1 << PD5)
0004 ; #define Low_nrf905_TRX_CE PORTD &= ~(1 << PD5)
0004 ; //#define nrf905_PWR PB1 //输出1
0004 ; #define Hign_nrf905_PWR PORTB |= (1 << PB1)
0004 ; #define Low_nrf905_PWR PORTB &= ~(1 << PB1)
0004 ; //--------------------------------SPI口定义-------------------------------------
0004 ; //#define nrf905_MISO PB6 //输入0
0004 ; //#define nrf905_MOSI PB5 //输出1
0004 ; //#define nrf905_SCK PB7 //输出1
0004 ; #define Low_nrf905_SCK PORTB &= ~(1 << PB7)
0004 ; //------------------------------------------------------------------------------
0004 ; //#define nrf905_CSN PB4 //输出1
0004 ; #define Hign_nrf905_CSN PORTB |= (1 << PB4)
0004 ; #define Low_nrf905_CSN PORTB &= ~(1 << PB4)
0004 ; //-------------------------------状态输出口-------------------------------------
0004 ; //#define nrf905_CD PD4 //输入0
0004 ; #define Hign_nrf905_CD PORTD |= (1 << PD4)
0004 ; #define Low_nrf905_CD PORTD &= ~(1 << PD4)
0004 ; #define Read_nrf905_CD PINB & (1 << PD4)
0004 ; //#define nrf905_AM PB3 //输入0
0004 ; #define Hign_nrf905_AM PORTB |= (1 << PB3)
0004 ; #define Low_nrf905_AM PORTB &= ~(1 << PB3)
0004 ; #define Read_nrf905_AM PINB & (1 << PB3)
0004 ; //#define nrf905_DR PB2 //输入0
0004 ; #define Hign_nrf905_DR PORTB |= (1 << PB2)
0004 ; #define Low_nrf905_DR PORTB &= ~(1 << PB2)
0004 ; #define Read_nrf905_DR PINB & (1 << PB2)
0004 ; //读取键值KEYA-KEYB-KEYC
0004 ; #define Read_KEY_A PINA & (1 << PA6)
0004 ; #define Read_KEY_B PINA & (1 << PA5)
0004 ; #define Read_KEY_C PINA & (1 << PA4)
0004 ; //----------------------------------905-SPI指令---------------------------------
0004 ; #define WC 0x00
0004 ; #define RRC 0x10
0004 ; #define WTP 0x20
0004 ; #define RTP 0x21
0004 ; #define WTA 0x22
0004 ; #define RTA 0x23
0004 ; #define RRP 0x24
0004 ; //---------------------------------发送数据-------------------------------------
0004 ; uchar TxRxBuf[4];
0004 ; //----------------------------------接收地址------------------------------------
0004 ; uchar TxAddress[4]={0xcc,0xcc,0xcc,0xcc };
0004 ; //----------------------------------寄存器配置----------------------------------
0004 ; uchar RFConf[11]=
0004 ; {
0004 ; 0x00, //配置命令//
0004 ; 0x4c, //CH_NO,配置频段在430MHZ
0004 ; 0x0C, //输出功率为10db,不重发,节电为正常模式
0004 ; 0x44, //地址宽度设置,为4字节
0004 ; 0x04,0x04, //接收发送有效数据长度为4字节
0004 ; 0xCC,0xCC,0xCC,0xCC, //接收地址
0004 ; 0x58, //CRC充许,8位CRC校验,外部时钟信号不使能,16M晶振
0004 ; };
0004 ; //----------------------------------函数申明------------------------------------
0004 ; void Delay(uint x);
0004 ; void Spi_initial();
0004 ; uchar SpiReadSpiWrite(uchar DATA);
0004 ; void system_Init(void);
0004 ; void Config905(void);
0004 ; void TxPacket(uchar TxBUF[4]);
0004 ; void SetTxMode(void);
0004 ; void TX(void);
0004 ; void StartUART(void);
0004 ; void R_S_Byte(uchar R_Byte);
0004 ; //----------------------------------100us延时子程序-----------------------------
0004 ; void Delay(uint x)
0004 ; {
0004 09C0 xjmp L3
0006 L2:
0006 .dbline 83
0006 4427 clr R20
0008 5527 clr R21
000A 02C0 xjmp L8
000C L5:
000C .dbline 83
000C L6:
000C .dbline 83
000C 4F5F subi R20,255 ; offset = 1
000E 5F4F sbci R21,255
0010 L8:
0010 .dbline 83
0010 4035 cpi R20,80
0012 E0E0 ldi R30,0
0014 5E07 cpc R21,R30
0016 D0F3 brlo L5
0018 L3:
0018 .dbline 82
0018 ; uint i;
0018 ; while(x--)
0018 1801 movw R2,R16
001A 0150 subi R16,1
001C 1040 sbci R17,0
001E 2220 tst R2
0020 91F7 brne L2
0022 3320 tst R3
0024 81F7 brne L2
0026 X0:
0026 .dbline -2
0026 L1:
0026 0E940000 xcall pop_gset1
002A .dbline 0 ; func end
002A 0895 ret
002C .dbsym r i 20 i
002C .dbsym r x 16 i
002C .dbend
002C .dbfunc e Spi_initial _Spi_initial fV
.even
002C _Spi_initial::
002C .dbline -1
002C .dbline 87
002C ; for(i=0;i<80;i++);
002C ; }
002C ; //----------------------------------SPI初始化-----------------------------------
002C ; void Spi_initial()
002C ; {
002C .dbline 90
002C ; //SPCR=0x50;
002C ; //SPSR=0x00;
002C ; SPCR = (1<<SPE)|(1<<MSTR)|(0<<CPOL)|(0<<SPR0); // 主机模式,fck/16, SPI方式0
002C 80E5 ldi R24,80
002E 8DB9 out 0xd,R24
0030 .dbline -2
0030 L9:
0030 .dbline 0 ; func end
0030 0895 ret
0032 .dbend
0032 .dbfunc e SpiReadSpiWrite _SpiReadSpiWrite fc
0032 ; cData -> R16
.even
0032 _SpiReadSpiWrite::
0032 .dbline -1
0032 .dbline 94
0032 ; }
0032 ; //---------------------------------SPI读写程序----------------------------------
0032 ; uchar SpiReadSpiWrite(unsigned char cData)//r
0032 ; {
0032 .dbline 95
0032 ; SPDR = cData;
0032 0FB9 out 0xf,R16
0034 L11:
0034 .dbline 97
0034 .dbline 97
0034 L12:
0034 .dbline 96
0034 ; while(!(SPSR & (1<<SPIF) ))
0034 779B sbis 0xe,7
0036 FECF rjmp L11
0038 .dbline 97
0038 ; {}; // 等待SPI发送完毕
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -