温度采集系统设计毕业论文要点 联系客服

发布时间 : 星期五 文章温度采集系统设计毕业论文要点更新完毕开始阅读

2、主要程序 发送端程序:

void nRF24L01_TxPacket(uint8 * tx_buf) { }

int main(void) {

uint8 TxBuf[20] = {0x01}; uint8 i,j; uint32 temp; ioset();

//IO口初始化 //SPI初始化

//定时器0初始化,每秒钟发送一次数据 //nrf24L01初始化

MSPIInit(); Timer0Init(); Delay(6000); while(1) {

//将LM35采集的温度信息进行AD转换

//将32位的温度信息分成四个八位,只取

temp = ADCGet(2);

//发送起始位

IO0CLR |= CE; inerDelay_us(200);

SPI_Write_Buf(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,

// 频道0装载接收端地址

//

SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH);

//StandBy I模式

TX_ADR_WIDTH); 装载数据

SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e);// IRQ收发完成中断响应,16位IO0SET |= CE; inerDelay_us(6000);

//置高CE,激发数据发送 高电平>10US

CRC,主发送

init_NRF24L01();

TxBuf[1] = temp >> 8; TxBuf[2] = temp;

低十六位方便发送

22

if (tf==1)

{

nRF24L01_TxPacket(TxBuf); //发送温度数据 tf=0;

Delay(1000); }

return 0;

}

接收端程序: int main(void) { uint8 RxBuf[20]={1,2}; uint8 I; uint16 ad; char str[10]; float ad1; ioset();

//IO口初始化 UARTInit(); //串口通讯初始化 MSPIInit(); //SPI初始化 init_NRF24L01();

//nrf24L01初始化

Delay(6000);

for(i=0;i<20;i++)

{ RxBuf[i] = 0x00;

//清空RxBuf

}

Delay(1000);

nRF24L01_RxPacket(RxBuf);

//接收nrf24L01收到的数据

ad=( ((uint32)RxBuf[1]<<8 )|((uint32)RxBuf[2]);

接收到的四个八位数据重新组合成十六位数据 ad1 = (float)ad / 10;

//T(℃) = V(mv)/ 10 23

//将

3-1)

if(RxBuf[0] == 0x01) 送板的数据 { }

if(RxBuf[0] == 0x02) { } { } }

RxBuf[i] = 0x00; return 0;

DelayNS(10);

DelayNS(10);

//判断起始位,如果是01,则为第一块发

sprintf(str,”channel1:%.2f\\n”,ad1); SendStr(str);

//将数据通过串口发送给PC机

sprintf(str,”channel2:%.2f\\n”,ad1); SendStr(str);

for(i=0;i<20;i++)

//清空RxBuf

24