




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于52单片机的无线测温设计 摘 要:温度检测在日常生活、工作和工程实践中有重要的应用,我们选择STC89C52RC作为主控芯片,工作场所的温度采集采用了温度采集芯片DS18B20来达到一定的准确度和精确度,最后采用nRF24L01模块对采集到的温度数据进行无线传输,在经过软硬件测试后,我们基本实现了用nRF24L01进行一定距离温度数据传输后在接受端的1602液晶上显示出来的模型,传输距离>30m,温度范围达到0至125摄氏度。关键词: STC89C52RC;nRF24L01;DS18B20;无线传输随着社会的进步,利用无线通信进行温度数据采集的方式已经渗透到生活各个方面。例如在矿工业
2、现场,由于工作环境复杂、严酷,工作人员不能长时间停留在现场观察设备等是否运行正常,就需要采集数据并传输到一个环境相对好的操控室内,这样就会产生数据传输问题。但由于厂房大、需要传输的数据多,使用传统的有线数据传输方式就需要铺设很多很长的通讯线,这不但浪费资源,占用空间,可操作性差,出现错误检修困难,而且当数据采集点处于运动状态,所处的环境不允许或无法铺设电缆时数据就无法传输,此时便需要利用无线传输的方式进行数据采集。事实上在生活中,无线温度采集系统已经被成功应用于矿工业业、安防监控、环境监测、军事国防等许多智能控制领域,有的是单独做为一个系统,有的是与其它系统结合使用。总的来说凡是布线繁杂或不允
3、许布线的场合都希望能通过无线方案来解决。为此,需要设计相应的接口系统,控制这些射频芯片工作,完成可靠稳定的无线数据通信,这样使得研究也变得更加有意义了。1 对设计任务的分析1.1系统的功能模块整个系统由温度采集模块、无线收发模块、温度显示模块构成。发送部分以单片机STC89C52RC为核心,使用温度采集转换芯片DS18B20实时采集温度,将采集的温度数据通过一块无线收发模块传送给接收部分,然后接收部分再通过另一块无线收发模块接收温度数据,然后传给单片机,单片机对接收到的温度数据处理之后传给液晶,最终将会在液晶上显示。对于DS18B20的温度检测模块,由于是单线传输,硬件部分较简单,但软件在时序
4、上的精确度控制上要求比较高,要做到精确、正确传输,必要的可设置上、下限值来实现报警。显示模块选用1602LCD,硬件连线与软件编程虽然较简单,但因为是显示整个系统软、硬件连接好坏的直观对象,不可忽视。无线收发模块采用挪威(Nordic)公司生产的nRF24L01及其外围电路组成,软件部分必须要熟悉内部的标志控制寄存器、数据通道、发射频率功率、收发模式、SPI时序以利于编程,硬件连接简单,但须清楚每个管脚与STC89C52RC的连接点及作用以配置相应功能。1.2 预期结果在完成硬件电路的设计,确保每个模块使用无误后,可焊接硬件电路。焊完检查整个硬件系统无误后,然后编写软件程序,运行无误后下载至单
5、片机,可完成整个系统的设计。预期结果是:温度测量范围为0°C至125°C,无线传输距离>30m。2 STC89C52RC最小系统及编程环境的介绍2.1 STC89C52RC最小系统及应用 STC89C52RC是一个低电压,高性能8位单片机,片内含8k bytes的可反复擦写的Flash和256 bytes的随机存取数据存储器,工作电压在3.3V5.5V,通用 I/O 口 (32 个), 复位后均为0, P1、P2、P3、P4 是准双向口,P0 口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,但作为 I/O 口用时,需加上拉电阻1。 本设计中52单片机最小系统共使用
6、了VCC引脚作为芯片正极(该芯片是5V供电),VSS引脚接地,XTAL1、XTAL2引脚用来外接石英晶体与微调电容(本设计中晶振选用11.0592MHz),RST引脚用来外接复位电路。在发射系统中还使用了P0.0P0.5口作为nRF24L01芯片的输入端口,P1.7口作为DS18B20的数据接收输入端2。在接收系统使用了P0.0P0.7口作为1602LCD的数据输入端,由于本设计是在已有电路板上的开发,所以1602LCD的控制端RS与P1.2相连,RW与P1.1相连,EN端与P1.0相连,P2.0P2.5作为nRF24L01芯片的输入端口,由于P0口输出级是漏极开路电路,要使“1”信号正常输出
7、,必须外接上拉电阻3。STC89C52RC最小系统图如图1所示。图1 STC89C52RC最小系统2.2 Keil Vision4 的使用流程首先在桌面新建个存放工程的文件夹,例biyesheji.打开 Keil Vision4 ,然后点击菜单栏中Project选项,在下拉菜单栏中选择New Vision Project.,便可弹出Creat New Project窗口,输入工程名称,例biyesheji(文件名可与工程名不同)。可弹出器件选择对话框窗口,选择(前面加号),然后选择AT89C51(因为AT89C51单片机的基本功能与STC89C52RC完全相同,所以我们选择AT89C51),单
8、击OK即可创建。然后单击菜单栏中的File选项,在下拉菜单中选择New,便可创建一个Text文档,点击保存,保存在与工程同文件夹下,注意名称更改为main.c,单击确定,即可保存。单击左键main.c文档左边Project栏中Target1左边的加号,可弹出Source Group 1,单击右键Source Group 1,选择Add Files to Group”Source Group 1”,选择main.c 文件,即添加mian.c至工程。在工具栏单击Target 0ptions.按键,可弹出Option for Target”Target 1”窗口,选择Output选项,勾选Creat
9、 HEX File选项。 在main.c中输入我们的系统软件程序,顺序点击左上方的三个编译按键,在main.c输入框下面可查看出错与警告数量,单击错误原因可自动转换到出错地方,修改之后再编译,直至没有错误,一般情况下警告内容可忽略。3 系统各模块使用方法本设计采用温度传感器,配合低功耗单片机就可以快速、高效、准确的采集到目标点的温度,然后采用无线模块对采集到的温度数据进行无线传输,最终设计好的系统能够测量距离较远的温度,并将温度人性化的显示在液晶上。本设计采用STC89C52RC作为主控CPU,外加DS18B20温度采集模块、nRF24L0l无线收发模块和1602液晶显示模块组成整个系统4,如
10、图2所示。图2 系统总体架构图3.1 温度采集模块该模块采用数字测温芯片DS18B20,测量范围从-55摄氏度到+125摄氏度,拥有可以选择的9到12位温度数据分辨率,可以工作在寄生电源模式,也可采用外部电源供电,本设计采用外部电源供电。本系统中温度传感器输出脚I/O直接与单片机的P1.7相连。具体连接如图 图3 DS18B20与STC89C52RC接口电路。 图3 DS18B20与STC89C52RC接口电路DS18B20 可做主机也可作从机,但在本设计中充当从机的角色,而单片机就是主机。单片机通过单总线总线访问DS18B20需要经过以下几个步骤: (1)DS18B20初始化(复位)。 (2
11、)执行ROM 指令。ROM 指令也就是访问、搜索、匹配DS18B20 的64 位序列号的动作。在单个DS18B20情况下,可以直接跳过ROM 指令。而跳过ROM 指令的字节是0xCC。由于本设计中我们使用单个DS18B20,所以我们无需刻意读取ROM 里边的序列号来,然后匹配那个DS18B205。 (3)执行DS18B20 功能指令(RAM 指令),功能命令跟随着需要交换的数据。在初始化过程中,主机通过拉低单总线至少480µs,以产生复位脉冲(TX)。然后主机释放总线并进入接收(RX)模式。当总线被释放后,4.7K的上拉电阻将单总线拉高。DS18B20检测到这个上升沿后,延时15
12、181;s60µs,通过拉低总线60µs240µs产生应答脉冲,主CPU检测到这个低脉冲则表示复位成功。本设计中DS18B20采用分辨率为12位,因此精度为0.0625摄氏度。当采集的温度为零上摄氏度时,DS18B20高速暂存存储器的第一个字节的高4位为0,当采集的温度为零下摄氏度时,DS18B20高速暂存存储器的第1个字节的高4位为1。当温度为零上摄氏度时,只需给温度数据乘以精度。当温度为零下摄氏度时,需给温度数据取反加一再乘以精度。但当DS18B20高速暂存存储器的第0个字节为0XFF时,需给第0个字节清零,然后给第一个字节加1,之后再乘以精度。具体温度转换程
13、序如下:void convert_T(uchar temp_data_h,uchar temp_data_l) uchar temp; if(temp_data_h&0xf0)=0xf0) /*temp_data_h为DS18B20高速暂存存储器的第1个字节 temp_data_l为DS18B20高速暂存存储器的第0个字节*/ temp_data_l=temp_data_l; if(temp_data_l=0xff) temp_data_l=temp_data_l+0x01; temp_data_h=temp_data_h; temp_data_h=temp_data_h+0x01;
14、else temp_data_l=temp_data_l+0x01; temp_data_h=temp_data_h; temp=(temp_data_l&0xf0)>>4)|(temp_data_h&0x0f)<<4); else temp=(temp_data_l&0xf0)>>4)|(temp_data_h&0x0f)<<4); 3.2 nRF24L01模块使用方法流程 nRF24L01是新型单片射频收发器件,工作于2.4 GHz2.5 GHz ISM频段,供电电压为1.9 V3.6 V,功耗低,在以-6dB
15、m的功率发射时,工作电流也只有9mA;接收时,工作时电流只有12.3mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便.实物图如图4所示,图5为 nRF24L01模块电路图。图4 nRF24L01实物图图5 nRF24L01模块电路图SCK口同步串行通信接口,最大传输速率可达10 Mb/s,传输时先传送低位字节,再传送高位字节。对云单个字节而言,先送高位再送低位。用软件模拟SPI总线,与SPI相关的指令共有8个,使用时这些控制指令由nRF24L01的MOSI输入6。相应的状态和数据信息是从MISO输出给MCU。 发射数据时,首先将nRF24L01配置为发射模式,接着把接收节点地址T
16、X_ADDR和有效数据位TX_PLD按照时序由SPI口写入nRF24L01缓存区,TX_PLD必须在CSN为低时连续写入,而TX_ADDR在发射时写入一次即可,然后CE置为高电平并保持至少10s,延迟130s后发射数据;若自动应答开启,那nRF24L01在发射数据后立即进入接收模式,接收应答信号(自动应答接收地址必须与接收节点地址TX_ADDR一致)。如果收到应答,则认为此次通信成功,TX_DS置高,同时TX_PLD从TX FIFO中清除;若未收到应答,则自动重新发射该数据(自动重发已开启),若重发次数(ARC)达到上限,MAX_RT置高,TX FIFO中数据保留以便在次重
17、发;MAX_RT或TX_DS置高时,使IRQ变低,产生中断,通知MCU。最后发射成功时,若CE为低则nRF24L01进入空闲模式1;若发送堆栈中有数据且CE为高,则进入下一次发射;若发送堆栈中无数据且CE为高,则进入空闲模式。 接收数据时,首先将nRF24L01配置为接收模式,接着延迟130s进入接收状态等待数据的到来。当接收方检测到有效的地址和CRC时,就将数据包存储在RX FIFO中,同时中断标志位RX_DR置高,IRQ变低,产生中断,通知MCU去取数据。若此时自动应答开启,接收方则同时进入发射状态回传应答信号。最后接收成功时,若CE变低,则nRF24L01进入空闲模式1。在写寄
18、存器之前一定要进入待机模式或掉电模式。nRF24L0l所有的配置字都由配置寄存器定义,这些配置寄存器可通过SPI口访问。nRF24L01 的配置寄存器共有25个,详细配置参照附录中系统程序。3.3 1602LCD的使用流程LCD使用前必须先对他初始化,可通过复位完成前,也可在复位完成后。初始化过程如清屏;功能设置;开关显示设置;输入方式设置。对1602LED操作分为读、写操作,读、写操作又分为数据与命令操作。LCD控制器HD44780内有多个寄存器,通过RS和R/W引脚共同决定选择哪一个寄存器。当RS为高电平时选择数据寄存器,低电平时选择指令寄存器7。R/W为低电平时进行读操作,低电平时进行写
19、操作。DB0DB7为8位双向数据线,MCU通过这8位数据线将温度数据及其他数据传给1602LCD。最终设计显示是在1602LCD第一行显示:“WEN DU:XX.X”,第二行显示“TEST BY CTD”。写数据与写命令的程序具体如下:void write_command(uchar tempdata) /写命令 while(check_busy(); / 检测忙状态RS=0; RW=0;E=1;P0=tempdata;E=0; Delay(2);void write_data(uchar tempdata) /写数据 while(check_busy(); RS=1;RW=0;E=1;P0=
20、tempdata; E=0; Delay(2);4 电路设计4.1电源电路本设计中STC89C52RC是5V供电芯片,nRF24L01的供电电压也是5V,所以供电电路采用5V供电。考虑到成本、操作及开发难易度,供电电路采用USB供电。USB已经是一个业内标准了,电压是55.2V ,电流是300mA500mA,接口靠两端的是正负极,中间两条是数据的正负极,只要设备不接触“数据线”,电脑不会识别为移动设备。(业内的标准数据线是“红、白、绿、黑”分别是5V+、DAT-、DAT+、5V-)如果只用提供电源,只用两条引线,设计产品额定用电不超过5V,电流不超500mA,因此用USB供电可完全达到系统设计
21、要求。 4.2 发射电路DS18B20测试到温度之后,通过单片机的P1.7引脚传给单片机,而单片机接收到温度数据并转换之后为数据型,而nRF24L01只能传输字符型,因此必须通过软件在单片机中将数据型温度数据转换为字符型,再通过nRF24L01传输给接收部分,发射部分nRF24L01选择P0.0P0.5引脚。由于P0口是漏极开路,因此P0.0P0.5引脚需要外接上拉电阻8。具体电路图如下图6 发射部分电路图。图6 发射部分电路图4.3 接收电路液晶双向数据线选择P2口,使能端选择P0.1引脚,读写选择端R/W选择P0.2引脚,数据、命令选择端RS选择P0.3引脚。无线接收模块选择P1.0P1.
22、5引脚,接收部分管脚具体电路图见图7接收部分电路图。图7 接收部分电路图5 软件设计流程5.1 无线发射模块软件设计首先进行初始化操作,初始化包括设置单片机IO和模拟SPI总线两部分以使其可以和nRF24L01通信。通过SPI总线配置射频芯片使其进入正常的工作模式。发射数据时,首先将nRF24L01配置为发射模式。接着把发送端待发射数据的目标地址TXADDR和数据TXPLD写入nRF24L01缓冲区,延时后发射数据,其流程图如图8所示,发射程序见附录A.图8无线发射软件流程图5.2 无线接收模块软件设计首先配置好1602LCD,包括光标移动、设计数据位数、开关命令等。然后将nRF24L01配置
23、为接收模式。接收数据时延迟进入接收状态等待数据的到来,当接收方检测到有效地址和CRC时,就将数据包储存在接收堆栈中,同时状态寄存器中的中断标志位RXDR置高,产生中断使IRQ引脚变为低电平,以便通知MCU去取数据。MCU接收到nRF24L01数据并处理之后,首先判断数据是否正确,确定正确无误后,将数据写入1602LCD中显示。否则,MCU发送数据重发命令,直至数据发送正确,重发次数将在配置nRF24L01时设置。其流程图如图9所示,具体接收程序见附录B.图9无线接收软件流程图6 系统的调试及测试结果6.1 调试步骤步骤一 完成硬件电路的焊接。步骤二 首先先将其中一片STC89C52RC最小系统
24、与液晶相连显示,检验液晶显示没有问题。步骤三 将其中一片STC89C52RC与液晶及温度传感器DS18B20相连,写入测量温度的程序。测试DS18B20部分硬件及软件部分好使。步骤四 将nRF24L01的收发部分分别与两片STC89C52RC相连,写入发射一个常数的程序,检测收发模块及程序好使。步骤五 将显示、收发、温度检测程序整合,检测系统是否能将发送端的温度值测量出来发送到接收端在液晶上显示出来。6.2 实验结果经实验要求及实验的目的,对系统进行了一些动态值的测量,基本达到了设计的初衷。具体结果如表2所示:表2 数据测试表测试数据值发送端电流2.6mA接收端电流9mA收发端电压3.3V收发
25、距离>30m温度测试精度摄氏度参考文献1 谭浩强. C程序设计北京M.北京:清华大学出版社 1999.20-21.2 康华光. 电子技术基础数字部分(第五版)M.北京:高等教育出版社 2010.40-43.3 朱玉颖,蔡占辉. 基于nRF24L01的远程温度检测系统设计J.通信与信息处理 2010,12(10):100-102.4 周航慈. 单片机应用程序设计技术M.北京:北京航空航天大学出版 2010.65-67.5 丁永红、孙运强. 基于nRF240l的无线数传系统设计J.国外电子测量技术 2008,27(4): 45-476 彭为. 单片机典型系统设计实例精讲M.北京电子工业出版社
26、 2006. 69-717 潘永雄. 新编单片机原理与应用M.西安:西安电子科技大学出版社 2003.78-80.8 曾勇、杨涛、冯月晖. 基于nRF24L01的超低功耗无线传感器网络点设计J.电子技应用 2008,34(7):45-48.Wireless Temperature Measurement Based on 51 Single Chip MicrocomputerCHENG Tian-dong(Scienceand Technology of Electronic Information,Class 3,Grade 2010,School of Physics and Elect
27、rical Engineering, Weinan Normal University)Abstract:Temperature detection has important applications in daily life, work and engineering practice, we choose STC89C52RC as the main control chip,temperature acquisition workplace using temperature acquisition chip DS18B20 toachieve the accuracy and pr
28、ecision of the temperature data, finally the collected nRF24L01 module for wireless transmission, after the soft hardware testing, webasically are a certain distance from the temperature data transmission with nRF24L01 at the receiving end of the 1602 liquid crystal display model, the >30m transm
29、ission distance, the temperature range of 0 to 125 degrees. Key words: STC89C52RC;nRF24L01;DS18B20;Wireless附录A 发送程序#include <reg51.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define READ_REG #define WRITE_REG 0x20 #define RD_RX_PLOAD 0x61 #define WR_TX_PLOAD
30、 0xA0 #define FLUSH_TX 0xE1 #define FLUSH_RX 0xE2 #define REUSE_TX_PL 0xE3 #define NOP 0xFF #define CONFIG 0x00 #define EN_AA 0x01 #define EN_RXADDR 0x02 #define SETUP_AW 0x03 #define SETUP_RETR 0x04 #define RF_CH 0x05 #define RF_SETUP 0x06 #define STATUS 0x07 #define OBSERVE_TX 0x08 #define CD 0x09
31、 #define RX_ADDR_P0 0x0A #define RX_ADDR_P1 0x0B #define RX_ADDR_P2 0x0C #define RX_ADDR_P3 0x0D #define RX_ADDR_P4 0x0E #define RX_ADDR_P5 0x0F #define TX_ADDR 0x10 #define RX_PW_P0 0x11 #define RX_PW_P1 0x12 #define RX_PW_P2 0x13 #define RX_PW_P3 0x14 #define RX_PW_P4 0x15 #define RX_PW_P5 0x16 #d
32、efine FIFO_STATUS 0x17 #define RX_ADR_WIDTH 5#define TX_PLOAD_WIDTH 4#define TX_PLOAD_WIDTH 4float f_temp;uint temp;uchar TX_ADDRESS5=0x34,0x43,0x10,0x10,0x01;sbit CE=P00;sbit CSN=P01;sbit MOSI=P02;sbit MISO=P03;sbit SCK=P04;sbit IRQ=P05;sbit DQ=P17;sbit led0=P10;uchar bdata sta;sbit RX_DR= sta6;sbi
33、t TX_DS= sta5;sbit MAX_RT= sta4;uchar code dot_tab ="0112334456678899"uchar code LCDData ="0123456789" uchar LCD_3,LCD_2,LCD_1,LCD_0;void init_io(void)CE = 0; CSN = 1; SCK = 0; IRQ = 1; uchar SPI_RW(uchar byte)uchar i;for(i=0;i<8;i+)MOSI=(byte&0x80);byte=(byte<<1);SC
34、K=1;byte|=MISO;SCK=0;return(byte);uchar SPI_RW_reg(uchar reg,uchar value)uchar status;CSN=0;status=SPI_RW(reg);SPI_RW(value);CSN=1;return(status);uchar SPI_read(uchar reg)uchar reg_val;CSN=0;SPI_RW(reg);reg_val=SPI_RW(0);CSN=1;return(reg_val);uchar SPI_read_pload(uchar reg,uchar *pBuf,uchar bytes)uc
35、har status,i;CSN=0;status=SPI_RW(reg);for(i=0;i<bytes;i+)pBufi=SPI_RW(0);CSN=1;return(status);uchar SPI_write_pload(uchar reg,uchar *pBuf,uchar bytes)uchar status,i;CSN=0;status=SPI_RW(reg);for(i=0;i<bytes;i+)SPI_RW(pBufi);CSN=1;return(status);void TX_mode(uchar *tx_buf)CE=0;SPI_write_pload(WR
36、ITE_REG+TX_ADDR,TX_ADDRESS,TX_ADR_WIDTH);SPI_write_pload(WRITE_REG+RX_ADDR_P0,TX_ADDRESS,TX_ADR_WIDTH); SPI_write_pload(WR_TX_PLOAD,tx_buf,TX_PLOAD_WIDTH);SPI_RW_reg(WRITE_REG+EN_AA,0X01);SPI_RW_reg(WRITE_REG+EN_RXADDR,0X01);SPI_RW_reg(WRITE_REG+SETUP_RETR,0X1F);SPI_RW_reg(WRITE_REG+RF_CH,40);SPI_RW
37、_reg(WRITE_REG+RF_SETUP,0X0F);SPI_RW_reg(WRITE_REG+CONFIG,0X0e);CE=1;uchar Check_ACK()sta=SPI_read(STATUS);if(TX_DS|MAX_RT)SPI_RW_reg(WRITE_REG + STATUS, 0xff); CSN=0;SPI_RW(FLUSH_TX);CSN=1;return (1);else return (0);IRQ = 1; void delay(unsigned int N) unsigned int i; for(i=0;i<N;i+);bit resetpul
38、se(void)DQ=0;delay(40);DQ=1; delay(30); return(DQ);void ds18b20_init(void)resetpulse();uchar read_bit(void)unsigned char i; DQ=0; _nop_(); _nop_(); DQ=1; for(i=0;i<4;i+); return(DQ);uchar read_byte(void) uchar i,m,receive_data; m=1; receive_data=0; for(i=0;i<8;i+) if(read_bit() receive_data=re
39、ceive_data+(m<<i); delay(7); return(receive_data);void write_bit(uchar bitval) DQ=0; if(bitval=1) DQ=1; delay(6); DQ=1;void write_byte(uchar val) uchar i,temp; for(i=0;i<8;i+) temp=val>>i; temp=temp&0x01; write_bit(temp); delay(6); void convert_T(uchar temp_data_h,uchar temp_data_
40、l) uchar temp; if(temp_data_h&0xf0)=0xf0) temp_data_l=temp_data_l; if(temp_data_l=0xff) temp_data_l=temp_data_l+0x01; temp_data_h=temp_data_h; temp_data_h=temp_data_h+0x01; else temp_data_l=temp_data_l+0x01; temp_data_h=temp_data_h; LCD_0=dot_tabtemp_data_l&0x0f; temp=(temp_data_l&0xf0)&
41、gt;>4)|(temp_data_h&0x0f)<<4); LCD_3='-' LCD_2=LCDData(temp%100)/10; LCD_1=LCDData(temp%100)%10; else LCD_0=dot_tabtemp_data_l&0x0f; temp=(temp_data_l&0xf0)>>4)|(temp_data_h&0x0f)<<4); LCD_3=LCDDatatemp/100; LCD_2=LCDData(temp%100)/10; LCD_1=LCDData(temp%
42、100)%10; void main() uchar temp_data_l,temp_data_h;uchar tx_buf4=0;init_io();while(1)ds18b20_init(); write_byte(0xcc); write_byte(0x44); delay(1000); ds18b20_init(); write_byte(0xcc); write_byte(0xbe); temp_data_l= read_byte(); temp_data_h = read_byte(); convert_T(temp_data_h,temp_data_l);tx_buf0=LC
43、D_3;tx_buf1=LCD_2tx_buf2='.'tx_buf3=LCD_1;TX_mode(tx_buf);while(Check_ACK(); 附录B 接收程序#include<reg52.h>#include<intrins.h>#define uchar unsigned char#define uint unsigned int#define READ_REG 0x00 #define WRITE_REG 0x20 #define RD_RX_PLOAD 0x61 #define WR_TX_PLOAD 0xA0 #define FLUS
44、H_TX 0xE1 #define FLUSH_RX 0xE2 #define REUSE_TX_PL 0xE3 #define NOP 0xFF #define CONFIG 0x00 #define EN_AA 0x01 #define EN_RXADDR 0x02 #define SETUP_AW 0x03 #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_P
45、0 0x0A #define RX_ADDR_P1 0x0B #define RX_ADDR_P2 0x0C#define RX_ADDR_P3 0x0D #define RX_ADDR_P4 0x0E #define RX_ADDR_P5 0x0F #define TX_ADDR 0x10 #define RX_PW_P0 0x11 #define RX_PW_P1 0x12 #define RX_PW_P2 0x13 #define RX_PW_P3 0x14 #define RX_PW_P4 0x15 #define RX_PW_P5 0x16 #define FIFO_STATUS 0
46、x17 #define TX_ADR_WIDTH 5#define RX_ADR_WIDTH 5#define TX_PLOAD_WIDTH 4#define RX_PLOAD_WIDTH 4uchar idata rxbuf12=0;uchar RX_ADDRES5=0x34,0x43,0x10,0x10,0x01;uchar code table="0123456789"uchar bdata sta;sbit RX_DR= sta6;sbit TX_DS= sta5;sbit MAX_RT= sta4;sbit RS=P12;sbit RW=P11;sbit E=P1
47、6;uchar code LCDData ="0123456789" uchar code dot_tab ="0112334456678899" uchar first_line16=" WEN DU 00.0 " uchar second_line16="TEST BY CTD " sbit MOSI=P20;sbit MISO=P21;sbit CE=P22;sbit CSN=P24;sbit IRQ=P26;sbit SCK=P27;sbit beep=P23;void delayms(uint x)uint i,j;for(i=x;i>0;i-)for(j=113;j>0;j-);void init_io
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 矿石浮选工艺优化-石墨滑石选矿考核试卷
- 畜禽繁殖力与遗传改良研究考核试卷
- 纺织材料与纤维的研究与发展考核试卷
- 电脑系统优化与提速技巧考核试卷
- 笔的制造生产计划编制与执行考核试卷
- 嘉兴南湖学院《Python数据分析与应用》2023-2024学年第二学期期末试卷
- 昆明理工大学津桥学院《CAD制图》2023-2024学年第二学期期末试卷
- 咸阳市2025年三年级数学第二学期期末学业水平测试试题含解析
- 日照职业技术学院《国际商务创业策划案例分析》2023-2024学年第二学期期末试卷
- 宁德市周宁县2024-2025学年数学四年级第二学期期末考试试题含解析
- 大部分分校:地域文化形考任务三-国开(CQ)-国开期末复习资料
- 数独题目高级50题(后附答案)
- DB22-T 5118-2022 建筑工程资料管理标准
- 工程地质测绘ppt版(共61页)
- 水文地质与工程地质勘察工程地质测绘PPT
- 崩塌易发程度数量化评分表
- 年产10000吨耐高温α-淀粉酶发酵车间设计
- 机组黑启动方案
- 平衡计分卡及战略地图
- 《观潮》学历案案例
- 附件:湖北省重点水利水电工程施工招标投标评分标准-鄂水
评论
0/150
提交评论