IC解密SI4432完整版单片机源码与开发文档
IC解密单片机源程序如下:
- /*
- IC解密Demo 程序适用范围: Si4431F13, Si4432F20, Si4431F27
- IC解密RF 模块的参数设置为: FSK, 433.5MHz, 1.2KBPS, +/-10PPM, 频偏:30KHz, 调制带宽:61.2KHz
- IC解密使能AFC,使能CRC, PH + FIFO 模式, 头码:"swwx", 同步字: 0x2d 0xd4
- 每秒钟发射的固定测试数据为:
- 0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x6d,
- 0x6d是发生数据的 CheckSum, 0x6d = (0x41 +0x42 +0x43 +0x44 +0x45 +0x46 +0x47 + 0x48 +0x49)
- 控制MCU : 8 bit MCU :STC89C52, 11.0592MHZ
- */
- #include <reg52.h> //52寄存器
- #include<math.h>
- #include <intrins.h>
- #define SI4432_PWRSTATE_READY 01 // 模块 Ready 状态定义
- #define SI4432_PWRSTATE_TX 0x09 // 模块 发射状态定义
- #define SI4432_PWRSTATE_RX 05 // 模块 接收状态定义
- #define SI4432_PACKET_SENT_INTERRUPT 04 // 模块 发射完成中断
- #define SI4432_Rx_packet_received_interrupt 0x02 // 模块 收到数据包中断
- #define TX1_RX0 spi_rw(0x0e|0x80, 0x01) // 发射状态的天线开关定义
- #define TX0_RX1 spi_rw(0x0e|0x80, 0x02) // 接收状态的天线开关定义
- #define TX0_RX0 spi_rw(0x0e|0x80, 0x00) // 非发射,接收状态的天线开关定义
- //========================================SI4432与MCU连接========================================
- sbit SDN = P3^3;
- sbit nIRQ = P1^4;
- sbit nSEL = P1^3;
- sbit SCK = P1^2;
- sbit SDI = P1^1;
- sbit SDO = P1^0;
- //========================================按键端口===============================================
- sbit KEY = P3^6;
- //========================================LED显示端口============================================
- sbit LED = P3^4;
- unsigned char ItStatus1, ItStatus2;
- unsigned char rf_timeout;
- unsigned char rx_buf[15];
- // 检测到按键后发射的固定内容的测试信号,第10个数据是前9个数据的校验和
- const unsigned char tx_test_data[10] = {0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x6d};
- //===============================================================================================
- typedef struct
- {
-
- unsigned char reach_1s : 1;
- unsigned char rf_reach_timeout : 1;
- unsigned char is_tx : 1;
-
-
- } FlagType;
- FlagType Flag;
- //==============================================函数申明===========================================
- void delay_1ms(unsigned char time);
- unsigned char spi_byte(unsigned char TRdata);
- unsigned char spi_rw(unsigned char addr, unsigned char TRdata);
- void rx_data(void);
- void tx_data(void);
- void SI4432_init(void);
- //================================================延时函数=========================================
- void delay_1ms(unsigned char time)
- {
- unsigned char i,k;
- for(k = 0; k< time; k++)
- {
- for(i = 0; i<130; i++)
- {
- _nop_();
- }
- }
- }

芯片解密