基于无线射频模块的汽车防盗报警设计
#define RX_ADDR_P1 0x0B // 'RX address pipe1' register address #define RX_ADDR_P2 0x0C // 'RX address pipe2' register address #define RX_ADDR_P3 0x0D // 'RX address pipe3' register address #define RX_ADDR_P4 0x0E // 'RX address pipe4' register address #define RX_ADDR_P5 0x0F // 'RX address pipe5' register address #define TX_ADDR 0x10 // 'TX address' register address
#define RX_PW_P0 0x11 // 'RX payload width, pipe0' register address #define RX_PW_P1 0x12 // 'RX payload width, pipe1' register address #define RX_PW_P2 0x13 // 'RX payload width, pipe2' register address #define RX_PW_P3 0x14 // 'RX payload width, pipe3' register address #define RX_PW_P4 0x15 // 'RX payload width, pipe4' register address #define RX_PW_P5 0x16 // 'RX payload width, pipe5' register address #define FIFO_STATUS 0x17 // 'FIFO Status Register' register address #define MAX_RT 0x10 // Max #of TX retrans interrupt #define TX_DS 0x20 // TX data sent interrupt #define RX_DR 0x40 // RX data received
#define RF_PACKET_LEN 8 //8
#define TX_ADR_WIDTH 5 // 5 bytes TX(RX) address width #define TX_PLOAD_WIDTH RF_PACKET_LEN // 8 bytes TX payload
Uchar Rf_Rec_Buf[RF_PACKET_LEN] = {0}; Uchar Rf_Send_Buf[RF_PACKET_LEN] = {0x33,0x59,0x72,0x31,0x89,0x67,0x45,0x23};
Uchar code TX_ADDRESS[TX_ADR_WIDTH] = {0x34,0x43,0x10,0x10,0x01}; 定义一个静态发送地址
#define RF_UP_CMD 0x77 #define RF_DOWN_CMD 0x88
31
// 基于无线射频模块的汽车防盗报警设计
#define RF_TEST_CMD 0x99
Uchar code tab[] = {\ \Uchar code system[] = {\Uchar code tab1[] = {\ C\Uchar code tab3[] = {\ C TL: C\Uchar code qk[] = {\ \/*********************************************** 函 数: RF_Setup_transmiter() 功 能: A7102设置为发射状态 输 入: / 输 出: /
描 述: A7102使用12.8M晶体为基准源
***********************************************/ void Rf_Setup_Tx(void) {
Rf_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); // Writes TX_Address to nRF24L01
//SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); // RX_Addr0 same as TX_Adr for Auto.Ack
//SPI_Write_Buf(WR_TX_PLOAD, Buffer, TX_PLOAD_WIDTH); // Writes data to TX payload
Rf_Write_Buf(WR_TX_PLOAD, Rf_Send_Buf, TX_PLOAD_WIDTH); // Writes RF_CE_LOW; delayus(40);
data to TX payload rled=0;
//Rf_Write_Register(WRITE_REG + EN_AA, 0x01); // Enable
Auto.Ack:Pipe0
32
基于无线射频模块的汽车防盗报警设计
Rf_Write_Register(WRITE_REG + EN_AA, 0x00); // disable
Auto.Ack:Pipe0
Rf_Write_Register(WRITE_REG + EN_RXADDR, 0x01); // Enable Pipe0 Rf_Write_Register(WRITE_REG + SETUP_AW, 0x03);//5byte的地址 //Rf_Write_Register(WRITE_REG + SETUP_RETR, 0x1a); // 500us + 86us, 10 retrans...
Rf_Write_Register(WRITE_REG + SETUP_RETR, 0x00);//禁止重发
Rf_Write_Register(WRITE_REG + RF_CH, 20); // Select RF channel 2440M
Rf_Write_Register(WRITE_REG + RF_SETUP, 0x07); // TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
//Rf_Write_Register(WRITE_REG + CONFIG, 0x0e); // Set PWR_UP bit, enable CRC(2 bytes) & Prim:TX. MAX_RT & TX_DS enabled.. }
/*********************************************** 函 数: RF_Setup_receiver() 功 能: A7102设置为接收状态 输 入: / 输 出: /
描 述: A7102使用12.8M晶体为基准源
33
Rf_Write_Register(WRITE_REG + CONFIG, 0x3e);//
RF_CE_HIGH;
delayus(1000);
Rf_Write_Register(FLUSH_TX, 0x00);
Rf_Write_Register(WRITE_REG + STATUS, 0x70);//RESET INTTERUPT
IE0 = 0;
基于无线射频模块的汽车防盗报警设计
***********************************************/ void Rf_Setup_Rx(void) {
Rf_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS,
RF_CE_LOW; delayus(40);
TX_ADR_WIDTH);
//Rf_Write_Register(WRITE_REG + EN_AA, 0x01); // Enable Auto.Ack:Pipe0
Rf_Write_Register(WRITE_REG + EN_AA, 0x00); // disable
Auto.Ack:Pipe0
Rf_Write_Register(WRITE_REG + EN_RXADDR, 0x01); // Enable Pipe0
Rf_Write_Register(WRITE_REG + SETUP_AW, 0x03);//5byte的地址 Rf_Write_Register(WRITE_REG + SETUP_RETR, 0x00);//禁止重发 Rf_Write_Register(WRITE_REG + RF_CH, 20); // Select RF channel
2440M
Rf_Write_Register(WRITE_REG + RX_PW_P0, TX_PLOAD_WIDTH); // Select same RX payload width as TX Payload width
Rf_Write_Register(WRITE_REG + RF_SETUP, 0x07); // TX_PWR:0dBm, Datarate:2Mbps, LNA:HCURR
Rf_Write_Register(WRITE_REG + CONFIG, 0x0f); // Set PWR_UP bit, enable CRC(2 bytes) & Prim:RX. RX_DR enabled..
RF_CE_HIGH; }
34
delayus(1000); rled=1; IE0 = 0;
基于无线射频模块的汽车防盗报警设计
void main() {
uchar i; EA = 0; Init_1602lcd(); Ini_mcu(); tempa_h=TA_H/10; tempa_l=TA_L/10; write_com(0x80); for(i=0;i<16;i++) { write_data(tab[i]);
}
write_com(0x80+0x40+10); for(i=0;i<6;i++) { write_data('.'); delayms(1000); }
write_com(0x01); write_com(0x80); for(i=0;i<16;i++) { write_data(system[i]);
}
delayms(20); Rf_Set_Io(); Rf_Setup_Rx(); delayms(10);
35
百度搜索“yundocx”或“云文档网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,云文档网,提供经典综合文库单片机毕业设计(7)在线全文阅读。
最新更新: