




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、合肥学院第七届电子设计竞赛报告作品名称:无 线 温 度 遥 测 系 统 学校全称: 合肥学院系别班级: 08级电子信息与电气工程系 队员姓名:08电子<3>班 胡光 0805070240 08电子<3>班 刘扬 080507024408电子<3>班 程坤 0805070263 无线温度遥感系统摘要:本系统是基于80C52单片机和无线传输模块设计的无线温度遥测系统。温度测量采用的是DS18B20温度传感器;无线数据传输是基于FSK调制解调,抗干扰能力强的NRF24L01无线收发芯片;系统为低功耗设计。关键字:无线通信 DS18B20 单片机一、引言在许多场合需
2、要将传感器节点直接放置在目标地点进行现场的数据采集,这就要求传感器节点具有无线通信的能力。同时,由于无线传感器通常使用电池作为能源,所以,它对能耗要求也比较高。无线温度遥感系统可以实现主机端与传感器节点之间的通信,并且通过选用低功耗的芯片和对软件的低功耗设计,也可以实现低功耗的目标。1.1基本要求(1)测温范围1065,误差<0.5;(2)显示位数3位,分辨率0.1;(3)测温点到接收点距离>2米;(4)可设置温度上限报警;(5)接收点显示测温点数据及声光上限报警信号;1.2.发挥部分(1)遥测距离>5米;(2)误差<0.2;具有温度补偿功能;(3)具有特色与创新;(4
3、)测量温度速率小于1秒;(5)多路测量;二、系统设计2.1系统方案选择方案一:用ATmega8单片机作处理器和相关温度检测、无线收发、液晶显示和上限报警电路组成无线温度遥测系统。其中ATmega8单片机性能稳定,处理速度较快。方案二:用STC89C52单片机作处理器和相关温度检测、无线收发、液晶显示和上限报警电路组成无线温度遥测系统。STC89C52单片机8k片内程序存储器(ROM),对于无线温度遥测系统足够,而且性能相对也比较稳定。ATmega8单片机较之STC89C52单片机性能较为优越,针对所做无线温度遥测系统两者都够用,不过考虑到经济方面因素,STC89C52单片机相比之下比较便宜,经
4、济适用。所以最终系统方案选择方案二。2.2系统总体设计LCD显示及上限报警STC89C52单片机2STC89C52单片机1温度传感器DS18B20无线收发芯片2 NRF24L01无线收发芯片1 NRF24L01系统总设计结构图所设计的无线温度遥测系统主要由以下几部分组成:温度测量部分、无线发射部分、无线接收部分、LCD显示部分以及操控部分。2.3器件选择方案2.3.1温度传感器方案一:可以采用热敏电阻之类的器件利用其感温效应,再将随被测温度变化的电压或电流采集过来,进行A/D转换后,用单片机进行数据的处理,在显示电路上就可以将被测温度显示出来,这种设计需要用到A/D转换电路,电路比较麻烦。方案
5、二:进而考虑到温度传感器,在单片机电路设计中,大多都是使用传感器,所以这比较容易想到,可以采用一只比较常用的温度传感器DS81B20,其工作电压范围:3.05.5V,测温范围:55125,测温分辨率最高可达0.062 5,此传感器可以很容易的直接读取被测温度值,进行转换,并且其价格比较便宜,符合设计要求。从以上两种方案,很容易看出,采用方案二,电路比较简单,软件设计也比较简单,价格低廉,要求功能可完全实现,故采用方案二。温度检测电路图2.3.2无线收发芯片方案一:采用PTR2000,它的优点是工作频率稳定可靠、外围元件少、功耗低。不过它的价格较为昂贵,相比不适用于实验的选用。方案二:选用NRF
6、24L01,它采用FSK调制解调技术,抗干扰能力强,,频率稳定性好,工作电压在+3V5 V之间。所需外围元件较少,并可直接接单片机串口。而且价格较为便宜,符合要求。相比较之下,NRF24L01可以实现要求,加之经济,所以选择NRF24L01更为适合。无线收发电路图 NRF24L01收发模块2.3.3 LCD显示屏方案一:采用12864液晶显示屏,其价格不高,适用于各类仪器,小型设备的显示领域。方案二:采用1602液晶显示屏,其价格便宜,是比较常用的工业字符型液晶。方案三:采用四位一体数码管,其价格便宜,较为常用。考虑到我们需要的用途是温度的显示,三者皆可以达到显示要求,12864相对而言贵,排
7、除。而数码管和1602显示屏两者相比基本相当,价格相差也不大,考虑到显示效果和价格,我们选用了一块1602显示屏作为接受端的温度数据显示;采用了一块四位共阴数码管作为发送端的温度显示。1602液晶显示电路图与四位数码管(LED1、LED2、LED3、LED4)2.3.4电源设计电源需供给STC89C52单片机、1602液晶显示器、NRF24L01发射电路模块、NRF24L01接收电路模块所需的不同电压。电源电路原理图如下所示,三端稳压芯片L7805CV、ASM111173.3起稳压作用,10uf电解电容和30pf瓷片电容起滤除纹波作用,输出分别为+5V,+3.3V的电压供给各所需单元电路。电源
8、设计原理图三、系统软件设计3.1单片机软件设计单片机软件部分主要包括主程序、中断子程序、测温子程序、LCD的转换显示,蜂鸣器报警子程序,按键子程序以及SPI子程序等。为了降低功耗,使用中断来唤醒单片机进行测温等工作,因此主程序部分比较简单,主要负责系统各部分初始化和中断的调用,在系统初始化完成后就直接进入睡眠模式,当中断到来时单片机退出睡眠模式,调用中断子程序实现测温、转换显示、温度数据的传输等功能。单片机控制程序流程图如下图所示开始温度采集系统初始化NRF24L01发射采集的数据显示数据并继续采集是否发送成功?YNNRF24L01接收数据是否超过上限温度?显示数据并继续采集NY报警四、系统测
9、试第1次检测:选择检测晚上的室内温度。第2次检测:选择检测中午的室内温度。第3次检测:用铁制茶杯盛一杯开水,放在实验桌上,将温度计和系统采集温度芯片置于距离茶杯一厘米的同一位置,检测温度。 实验数据如下表:温度计测量温度()系统测量温度()上限报警温度()是否报警测量误差()第1次测量23.223.522是+0.3第2次测量24.024.225否+0.2第3次测量30.430.630是-0.2第4次测量38.037.838否-0.2第5次测量由于条件限制,采用量程范围为0250的水银温度计作为测量比较仪器,本身测量误差较大,结果并不精确。在误差允许范围内,本系统符合设计要求。其中,遥测距离可达
10、五米,达到发挥部分遥测距离>5米的要求。五、总结心得经过我们的团结协作、不懈努力,终于我们的无线温度遥测系统完成了,这次电子设计竞赛让我们在付出的道路上收获了很多。从选题开始一直到现在,我们感受着比赛带来的兴奋与快乐的同时,也体味到了付出的不易。经过这些天的努力,我们也终于将这份艰苦却又充满乐趣的事情完成了。本无线温度遥测系统中,温度传感器采用的是DS18B20,开始我们考虑的是PT100这种温度传感器件,但是由于DS18B20能够达到要求,相对又经济方便,最终选用了DS18B20。不过对于无线收发芯片的选用,相比之下就没有这样顺利了,我们起初的考虑忽视了经济这一个重要方面,经过查阅资料
11、,开始考虑的是PRT2000,它的性能很不错,不过后来才想到没有考虑它的价格,当了解到一块PRT2000无线收发模块价格在一百元左右的时候,我们意识到这是不可行的,应该选用其它的性能接近并且经济的芯片,经过了一番周折,最终确定了NRF401无线收发模块。当最终完成的时候,大家很开心的松了一口气,甚至在实物测试看到温度发送接收成功时,我们兴奋地欢呼相拥。作为大三的学生,第一次参加学校的电子设计竞赛,在为比赛努力付出的过程中,我们也有很多收获。为了把作品做成功,我们查阅资料,检索文献,其间丰富了我们的知识,增加了些许经验。我们常常是三个人在一起,通过分工协作和互相帮助,也让我们又一次体味了团队合作
12、的重要。在将实物做出来的过程中,我们感受到原来所有的一切都是那么的不易,都需要我们认真的思考,研究。对于电路板的焊接,需要事先进行排版布线,然后将相应的元件连接起来,焊接中,我们仿佛回到了曾经,回到了那个为了心中的象牙塔拼搏奋斗的日子,静静地专注于你的目标,双手在万能板上忙忙碌碌,电烙铁在焊锡丝和元件之间反反复复。偶尔会因某一个元件焊接的不够理想而眉头紧蹙,然后锡枪除去焊锡,再重新焊接,只是为了让电路焊接的更理想;时而也会因感觉到焊接的电路很不错而不由自主地啧啧赞叹。就这样我们的实物电路焊接完成了,接着是程序的编写,查阅了大量的资料,参考了一些相关书籍,最终编写完成后,烧录到STC89C52单
13、片机中,连接电路测试。起初的测试,没有达到要求,接下来便是对程序的再编写,再调试,就这样反反复复,最终实现了。尽管其间是枯燥的难熬的,不过,在测试成功,数据显示出来的那一瞬,心中的快乐难以言表,那种感觉多么的让人享受。当我们聚在一起专心为之而战斗的时候,专心的投入进去后,终于在你迫切地需要缓一下劲而暂停了一下的时候,你会恍然惊叹:大家居然忙了这么久!是的,这是专心,这是态度,人们说态度决定高度!兴奋着便又埋首于当前的工作之中了。最终,我们终于可以开心地笑着说我们可以稍事休息一会儿了,此次的任务完成了。我们默契的在心中共铭:不能放弃!这不仅仅是因为执著,也许还因为我们已骑虎难下,毕竟付出了很多,
14、付出了好久。为着它到了几近痴狂的程度,不只是对它所拥有着的浓厚兴趣,更是为了求得一个交待。我们心中有着一个坚定的信念:我们要彼此并肩齐首,走更远的路。参考文献:郭天祥 新概念51单片机C语言教程谭浩强 C程序设计(第三版)李岁劳 杨鹏翔 朱新颖 基于C8051单片机的多路温度无线遥测系统仪器仪表:仪器仪表名称型号生产公司名称三位半数字万用表MY61苏山仪器仪表公司温度计MC不详(从电子系实验室借用)附录总电路设计原理图 基于单片机的温度采集与无线发送电路基于单片机的无线接收及1602液晶显示电路程序代码清单:发射Allhead.h/*/#ifndef _ALLHEAD_H_#define _A
15、LLHEAD_H_/*/#include"pubile.h"#include"Delay.h"#include"NRF24L01.h"#include"DS18N02.h"/*/#endifDelay.h/*/#ifndef _DELAY_H_#define _DELAY_H_/*/void Delay(unint t);void DDelay(unint t);/*/#endifDS18B20.h/*/#ifndef _DS18B20_H_#define _DS18B20_H_/*/extern void Res
16、et();extern void WriteChar(unchar dat);extern unint ReadChar();extern unint ReadTemperature();/*/#endifNRF24L01.h/*/#ifndef _NRF24L01_H_#define _NRF24L01_H_/*/#define TX_ADDR_WITDH 5/发送地址宽度设置为5个字节#define RX_ADDR_WITDH 5/接收地址宽度设置为5个字节#define TX_DATA_WITDH 10/发送数据宽度1个字节#define RX_DATA_WITDH 10/接收数据宽度1
17、个字节/*命令寄存器*/#define R_REGISTER 0x00/读取配置寄存器#define W_REGISTER 0x20/写配置寄存器#define R_RX_PAYLOAD 0x61/读取RX有效数据#define W_TX_PAYLOAD 0xa0/写TX有效数据#define FLUSH_TX 0xe1/清除TXFIFO寄存器#define FLUSH_RX 0xe2/清除RXFIFO寄存器#define REUSE_TX_PL 0xe3/重新使用上一包有效数据#define NOP 0xff/空操作/*寄存器地址*/#define CONFIG 0x00/配置寄存器#def
18、ine EN_AA 0x01/使能自动应答#define EN_RXADDR 0x02/接收通道使能0-5个通道#define SETUP_AW 0x03/设置数据通道地址宽度3-5#define SETUP_RETR 0x04/建立自动重发#define RF_CH 0x05/射频通道设置#define RF_SETUP 0x06/射频寄存器#define STATUS 0x07/状态寄存器#define OBSERVE_TX 0x08/发送检测寄存器#define CD 0x09/载波#define RX_ADDR_P0 0x0a/数据通道0接收地址#define RX_ADDR_P1 0
19、x0b/数据通道1接收地址#define RX_ADDR_P2 0x0c/数据通道2接收地址#define RX_ADDR_P3 0x0d/数据通道3接收地址#define RX_ADDR_P4 0x0e/数据通道4接收地址#define RX_ADDR_P5 0x0f/数据通道5接收地址#define TX_ADDR 0x10/发送地址#define RX_PW_P0 0x11/P0通道数据宽度设置#define RX_PW_P1 0x12/P1通道数据宽度设置#define RX_PW_P2 0x13/P2通道数据宽度设置#define RX_PW_P3 0x14/P3通道数据宽度设置#d
20、efine RX_PW_P4 0x15/P4通道数据宽度设置#define RX_PW_P5 0x16/P5通道数据宽度设置#define FIFO_STATUS 0x17/FIFO状态寄存器/*相关函数声明*/unchar NRFACK();unchar NRFSPI(unchar date);unchar NRFReadReg(unchar RegAddr);unchar NRFWriteReg(unchar RegAddr,unchar date);unchar NRFReadRxDate(unchar RegAddr,unchar *RxDate,unchar DateLen);unc
21、har NRFWriteTxDate(unchar RegAddr,unchar *TxDate,unchar DateLen);unchar NRFRevDate(unchar *RevDate);void NRFSetTxMode(unchar *TxDate);void NRF24L01Int();void NRFSetRXMode();unchar CheckACK();extern unchar bdata sta;/*/#endifPubile.h/*/#ifndef _PUBILE_H_#define _PUBILE_H_/*/#define unchar unsigned ch
22、ar#define unint unsigned int/*/#endifDelay.c/*/#include"reg52.h"#include"Allhead.h"/*延时函数*/void Delay(unint t) unint x,y; for(x=t;x>0;x-) for(y=110;y>0;y-);/* DS18B20专用延时子函数*/void DDelay(unint t) unint n;n=0; while(n<t) n+; DS18B20.c/*/#include"reg52.h"#include
23、"allhead.h"sbit DQ=P22;/数据端unint tempL,tempH;/* DS18B20复位函数*/void Reset() DQ=1;DDelay(8); DQ=0; DDelay(85); DQ=1;DDelay(14); /* DS18B20写一个字节函数*/void WriteChar(unchar dat) unint i; for(i=8;i>0;i-) DQ=0; DQ=dat&0x01;DDelay(5);DQ=1;dat>>=1; DDelay(4); /* DS18B20读一个字节函数*/unint Rea
24、dChar() unchar i,dat=0;for (i=8;i>0;i-) DQ=1; DDelay(1);DQ=0; dat>>=1;DQ=1; if(DQ) dat=dat|0x80; DDelay(4); return(dat); /* /*SPI时序函数*/unchar NRFSPI(unchar date) unchar i; for(i=0;i<8;i+) / 循环8次 if(date&0x80) MOSI=1; else MOSI=0; / byte最高位输出到MOSI date<<=1; / 低一位移位到最高位 SCLK=1; i
25、f(MISO) / 拉高SCK,nRF24L01从MOSI读入1位数据,同时从MISO输出1位数据 date|=0x01; / 读MISO到byte最低位 SCLK=0; / SCK置低 return(date); / 返回读出的一字节/*NRF24L01初始化函数*/void NRF24L01Int()Delay(2);/让系统什么都不干CE=0; /待机模式1 CSN=1; SCLK=0;IRQ=1; /*SPI读寄存器一字节函数*/unchar NRFReadReg(unchar RegAddr) unchar BackDate; CSN=0;/启动时序 NRFSPI(RegAddr);
26、/写寄存器地址 BackDate=NRFSPI(0x00);/写入读寄存器指令 CSN=1; return(BackDate); /返回状态/*SPI写寄存器一字节函数*/unchar NRFWriteReg(unchar RegAddr,unchar date) unchar BackDate; CSN=0;/启动时序 BackDate=NRFSPI(RegAddr);/写入地址 NRFSPI(date);/写入值 CSN=1; return(BackDate);/*SPI读取RXFIFO寄存器的值*/unchar NRFReadRxDate(unchar RegAddr,unchar *R
27、xDate,unchar DateLen) /寄存器地址/读取数据存放变量/读取数据长度/用于接收 unchar BackDate,i;CSN=0;/启动时序BackDate=NRFSPI(RegAddr);/写入要读取的寄存器地址for(i=0;i<DateLen;i+) /读取数据 RxDatei=NRFSPI(0); CSN=1; return(BackDate); /*SPI写入TXFIFO寄存器的值*/unchar NRFWriteTxDate(unchar RegAddr,unchar *TxDate,unchar DateLen) /寄存器地址/写入数据存放变量/读取数据长
28、度/用于发送 unchar BackDate,i; CSN=0; BackDate=NRFSPI(RegAddr);/写入要写入寄存器的地址 for(i=0;i<DateLen;i+)/写入数据 NRFSPI(*TxDate+); CSN=1; return(BackDate);/*NRF设置为发送模式并发送数据*/void NRFSetTxMode(unchar *TxDate)/发送模式 CE=0; NRFWriteTxDate(W_REGISTER+TX_ADDR,TxAddr,TX_ADDR_WITDH);/写寄存器指令+接收地址使能指令+接收地址+地址宽度NRFWriteTxD
29、ate(W_REGISTER+RX_ADDR_P0,TxAddr,TX_ADDR_WITDH);/为了应答接收设备,接收通道0地址和发送地址相同NRFWriteTxDate(W_TX_PAYLOAD,TxDate,TX_DATA_WITDH);/写入数据 /*下面有关寄存器配置*/ NRFWriteReg(W_REGISTER+EN_AA,0x01); / 使能接收通道0自动应答 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); / 使能接收通道0 NRFWriteReg(W_REGISTER+SETUP_RETR,0x0a); / 自动重发延时等待250us+8
30、6us,自动重发10次 NRFWriteReg(W_REGISTER+RF_CH,0x40); / 选择射频通道0x40 NRFWriteReg(W_REGISTER+RF_SETUP,0x07); / 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益NRFWriteReg(W_REGISTER+CONFIG,0x0e); / CRC使能,16位CRC校验,上电CE=1;Delay(5);/保持10us秒以上/*NRF设置为接收模式并接收数据*/主要接收模式void NRFSetRXMode()CE=0; NRFWriteTxDate(W_REGISTER+RX_ADDR_P0,TxA
31、ddr,TX_ADDR_WITDH); / 接收设备接收通道0使用和发送设备相同的发送地址 NRFWriteReg(W_REGISTER+EN_AA,0x01); / 使能接收通道0自动应答 NRFWriteReg(W_REGISTER+EN_RXADDR,0x01); / 使能接收通道0 NRFWriteReg(W_REGISTER+RF_CH,0x40); / 选择射频通道0x40 NRFWriteReg(W_REGISTER+RX_PW_P0,TX_DATA_WITDH); / 接收通道0选择和发送通道相同有效数据宽度 NRFWriteReg(W_REGISTER+RF_SETUP,0x
32、07); / 数据传输率1Mbps,发射功率0dBm,低噪声放大器增益*/ NRFWriteReg(W_REGISTER+CONFIG,0x0f); / CRC使能,16位CRC校验,上电,接收模式 CE = 1;Delay(5);/保持10us秒以上 /*检测应答信号*/unchar CheckACK() /用于发射sta=NRFReadReg(R_REGISTER+STATUS); / 返回状态寄存器if(TX_DS|MAX_RT) /发送完毕中断 NRFWriteReg(W_REGISTER+STATUS,0xff); / 清除TX_DS或MAX_RT中断标志 CSN=0; NRFSPI
33、(FLUSH_TX);/用于清空FIFO !关键!不然会出现意想不到的后果!大家记住! CSN=1; return(0);else return(1);/*判断是否接收收到数据,接到就从RX取出*/用于接收模式unchar NRFRevDate(unchar *RevDate) unchar RevFlags=0; sta=NRFReadReg(R_REGISTER+STATUS);/发送数据后读取状态寄存器 if(RX_DR)/ 判断是否接收到数据 CE=0; /SPI使能NRFReadRxDate(R_RX_PAYLOAD,RevDate,RX_DATA_WITDH);/ 从RXFIFO读
34、取数据RevFlags=1; /读取数据完成标志 NRFWriteReg(W_REGISTER+STATUS,0xff); /接收到数据后RX_DR,TX_DS,MAX_PT都置高为1,通过写1来清楚中断标 return(RevFlags);void main()unint i; unint ReadTempDate;/读取温度 char TxDate6; NRF24L01Int(); while(1) ReadTempDate=ReadTemperature(); TxDate0=ReadTempDate/100+'0' TxDate1=ReadTempDate%100/10
35、+'0' TxDate2='.' TxDate3=ReadTempDate%100%10+'0' TxDate4=ReadTempDate/100; TxDate5=ReadTempDate%100/10; NRFSetTxMode(TxDate);/发送温度 while(CheckACK();/检测是否发送完毕 for(i=70;i>0;i-) dis_temp(ReadTemperature();接收Allhead.h/*/#ifndef _ALLHEAD_H_#define _ALLHEAD_H_/*/#include"pu
36、bile.h"#include"DELAY.h"#include"LCD1602.h"#include"NRF24L01.h" /*/#endifLCD1602.h/*/#ifndef _LCD1602_H_#define _LCD1602_H_/*/extern void LCDWriteCmd(unchar cmd);void LCDWriteDate(unchar date);void LcdShow(unchar x,unchar y,unchar *str);void SetXY(unchar x,unchar y
37、);extern void LCD1602Int();void xianshi(unchar add,unint date);/*/#endifNRF24L01.h/*/#ifndef _NRF24L01_H_#define _NRF24L01_H_/*/#define TX_ADDR_WITDH 5/发送地址宽度设置为5个字节#define RX_ADDR_WITDH 5/接收地址宽度设置为5个字节#define TX_DATA_WITDH 10/发送数据宽度1个字节#define RX_DATA_WITDH 10/接收数据宽度1个字节/*命令寄存器*/#define R_REGISTER
38、0x00/读取配置寄存器#define W_REGISTER 0x20/写配置寄存器#define R_RX_PAYLOAD 0x61/读取RX有效数据#define W_TX_PAYLOAD 0xa0/写TX有效数据#define FLUSH_TX 0xe1/清除TXFIFO寄存器#define FLUSH_RX 0xe2/清除RXFIFO寄存器#define REUSE_TX_PL 0xe3/重新使用上一包有效数据#define NOP 0xff/空操作/*寄存器地址*/#define CONFIG 0x00/配置寄存器#define EN_AA 0x01/使能自动应答#define EN
39、_RXADDR 0x02/接收通道使能0-5个通道#define SETUP_AW 0x03/设置数据通道地址宽度3-5#define SETUP_RETR 0x04/建立自动重发#define RF_CH 0x05/射频通道设置#define RF_SETUP 0x06/射频寄存器#define STATUS 0x07/状态寄存器#define OBSERVE_TX 0x08/发送检测寄存器#define CD 0x09/载波#define RX_ADDR_P0 0x0a/数据通道0接收地址#define RX_ADDR_P1 0x0b/数据通道1接收地址#define RX_ADDR_P2
40、 0x0c/数据通道2接收地址#define RX_ADDR_P3 0x0d/数据通道3接收地址#define RX_ADDR_P4 0x0e/数据通道4接收地址#define RX_ADDR_P5 0x0f/数据通道5接收地址#define TX_ADDR 0x10/发送地址#define RX_PW_P0 0x11/P0通道数据宽度设置#define RX_PW_P1 0x12/P1通道数据宽度设置#define RX_PW_P2 0x13/P2通道数据宽度设置#define RX_PW_P3 0x14/P3通道数据宽度设置#define RX_PW_P4 0x15/P4通道数据宽度设置#
41、define RX_PW_P5 0x16/P5通道数据宽度设置#define FIFO_STATUS 0x17/FIFO状态寄存器/*相关函数声明*/unchar NRFACK();unchar NRFSPI(unchar date);unchar NRFReadReg(unchar RegAddr);unchar NRFWriteReg(unchar RegAddr,unchar date);unchar NRFReadRxDate(unchar RegAddr,unchar *RxDate,unchar DateLen);unchar NRFWriteTxDate(unchar RegAd
42、dr,unchar *TxDate,unchar DateLen);void NRFSetTxMode(unchar *TxDate);void NRF24L01Int();void NRFSetRXMode();void CheckACK();void keyscan();extern void GetDate();extern unchar RevTempDate7;/*/#endifPubile.h/*/#ifndef _PUBILE_H_#define _PUBILE_H_/*/#define unchar unsigned char#define unint unsigned int/*/#endifDelay.c/*/#include"reg52.h"#include"Allhead.h"/*延时函数*/void LCDDelay(unchar t) unchar x,y; for(x=t;x>0;x-) for(y=110;y>0;y-);/*延时函数*/void NRFDelay(unin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 音乐史西方古典音乐知识点归纳梳理
- 应急消防考试试题及答案
- 六一公司举行活动方案
- 六一创意舞台活动方案
- 六一布置职场活动方案
- 六一幼儿结婚活动方案
- 六一活动互动策划方案
- 六一活动冷餐活动方案
- 六一活动小龙虾活动方案
- 六一活动美业活动方案
- 操作规程储气罐安全操作规程
- 电厂物资管理系统解决方案
- 初一数学(下)难题百道及答案
- 七年级下实数及实数的计算
- 中国古典文献学(全套)
- 《抖音平台商品销售策略研究10000字(论文)》
- 两用物项-最终用户用途证明
- 2023-2024学年贵州省铜仁市小学数学五年级下册期末高分预测题
- 会议记录(空白)
- GB/T 20624.2-2006色漆和清漆快速变形(耐冲击性)试验第2部分:落锤试验(小面积冲头)
- GB/T 15474-2010核电厂安全重要仪表和控制功能分类
评论
0/150
提交评论