单片机毕业设计(7)

2019-03-27 20:04

基于无线射频模块的汽车防盗报警设计

#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


单片机毕业设计(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:普通逻辑练习题及参考答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: