ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:666.65KB ,
资源ID:7246864      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7246864.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于nRF24L01的无线小车.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于nRF24L01的无线小车.docx

1、基于nRF24L01的无线小车目 录第一章系统的概述及设计任务书 1 -1 摘要 2 -2 关键词 3-3 设计任务与技术指标 3 -4 总体设计方案 4 -第二章 单元模块的设计与分析 4 -1 主控制器 5 -2 显示电路 5-3 系统软件算法分析 6-4 主程序 7-5 具体代码 8-6 总电路图结构图 10-第四章 总结与体会 11第一章系统的概述及设计任务书1 摘要本设计所介绍的遥控小车是基于nrf2401无线模块的直流电机小车,采用L298N电机驱动模块进行驱动。 2 关键词单片机,数字控制,nrf2401, L298N,STC89C523 设计任务与技术指标要求:设计要求使用ST

2、C90C516RD+单片机为核心无线遥控小车小车能够通过遥控实现前进,后退,左转,右转,停止等操作第二章 单元模块的设计与分析1 主控制器单片机STC89C52,具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路系统的设计需要,很适合便携手持式产品的设计使用。2 驱动电路 L298N 3 无线模块 nrf2401 nRF24L01是一款工作在2.42.5GHz世界通用ISM频段的单片无线收发器芯片无线收发器包括:频率发生器增强型SchockBurstTM模式控制器功率放大器晶体振荡器调制器解调器输出功率频道选择和协议的设置可以通过SPI接口进行设置4 系统软件算法分析NRF24L0

3、1是采用2.4-2.5GHZ世界通用ISM频段的单片机无线发送芯片。无线收发器是采用增强型SchockBurst模式控制器,工作电流消耗比较低,发射功率为9mA,接受为12.3mA。用户需要控制的只有6个引脚,CE:RX或TX模式选择;CSN:SPI片选信号;SCK:SPI时钟;MOSI:SPI数据输入;MISO:SPI数据输出;IRQ:中断脚。需要强调的是供电电压必须低于3.6V,一般采用3.3V。上图说明一个发送的主机可以连接6个从机,每个从机拥有自己独特的地址,nRF24L01在确认接受到数据后记录地址,并以此地址为目标地址发送应答信号,在发送端,数据通道0被用作接受应答信号。如果发送端

4、未收到应答信号达到设定的值,则产生MAX_RT中断。增强型ShockBurst发送模式:1. 配置寄存器拉低2. 发送数据时,接受节点地址(TX_ADDR)和有效数据(TX_PLD)通过SPI接口写入。当CSN为低时数据被不断写入,发送端发送完数据后,将通道0设置为接收模式来接受应答信号,其接受地址(RX_ADDR_P0)与接受端地址相同。3. CE拉高,启动发射。CE高电平持续大于10us。4. 如果启动了自动应答模式,无线芯片立即进入接受模式。5. 如果CE为低,则系统进入待机模式I,如不为I,则系统会发送TX FIFO寄存器中下一包数据。如果TX FIFO寄存器为空并且CE为高则系统进入

5、待机模式II。6. 如果系统在待机模式II,当CE置低后系统立即进入待机模式I、增强型ShockBurst接收模式:1. ShockBurst接受模式是通过设置寄存器中PRIM_RX位为高来选择的。2. 接受模式由设置CE为高来启动。3. 130us后Nrf24l01开始检测空中信息。4. 接受到有效数据包后,数据存储在RX_FIFO中,同时RX_DR位置高,并产生中断。状态寄存器RX_P_NO位显示数据是由哪个通道接受到的。5. 如果使能自动确认信号,则发送确认信号。6. MCU设置CE脚为低,进入待机模式I。7. MCU将数据以合适的速率通过SPI口读出 第三章 电路及程序实现1 具体代码

6、void init_NRF24L01(void) inerDelay_us(100); CE=0; / chip enable CSN=1; / Spi disable SCK=0; / Spi clock line init high SPI_Write_Buf(WRITE_REG + TX_ADDR, TX_ADDRESS, TX_ADR_WIDTH); / 写本地地址 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, RX_ADDRESS, RX_ADR_WIDTH); / 写接收端地址 SPI_RW_Reg(WRITE_REG + EN_AA, 0x01);

7、/ 频道0自动 ACK应答允许 SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允许接收地址只有频道0,如果需要多频道可以参考Page21 SPI_RW_Reg(WRITE_REG + RF_CH,40); / 设置信道工作为2.4GHZ,收发必须一致 SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /设置接收数据长度,本次设置为32字节 SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /设置发射速率为1MHZ,发射功率为最大值0dB SPI_RW_Reg(WRITE_RE

8、G + CONFIG, 0x0f); / IRQ收发完成中断响应,16位CRC ,主接收uchar SPI_Read(uchar reg) uchar reg_val; CSN = 0; / CSN low, initialize SPI communication. SPI_RW(reg); / Select register to read from. reg_val = SPI_RW(0); / .then read registervalue CSN = 1; / CSN high, terminate SPI communication return(reg_val); / retu

9、rn register valueuint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars) uint status,uchar_ctr; CSN = 0; /SPI使能 status = SPI_RW(reg); for(uchar_ctr=0; uchar_ctruchars; uchar_ctr+) / SPI_RW(*pBuf+); CSN = 1; /关闭SPI return(status); / void SetRX_Mode(void) CE=0; SPI_RW_Reg(WRITE_REG + CONFIG, 0x0f); C

10、E = 1; inerDelay_us(130);unsigned char nRF24L01_RxPacket(unsigned char* rx_buf) unsigned char revale=0;/ SPI_RW_Reg(FLUSH_RX,0xff); sta=SPI_Read(STATUS); / 读取状态寄存其来判断数据接收状况 if(RX_DR) / 判断是否接收到数据 CE = 0; /SPI使能 SPI_Read_Buf(RD_RX_PLOAD,rx_buf,TX_PLOAD_WIDTH); revale =1; /读取数据完成标志 SPI_RW_Reg(WRITE_REG

11、+STATUS,sta); return revale;void nRF24L01_TxPacket(unsigned char * tx_buf) CE=0; /StandBy I模式 SPI_Write_Buf(WRITE_REG + RX_ADDR_P0, TX_ADDRESS, TX_ADR_WIDTH); SPI_Write_Buf(WR_TX_PLOAD, tx_buf, TX_PLOAD_WIDTH); SPI_RW_Reg(WRITE_REG + CONFIG, 0x0e); CE=1; /置高CE,激发数据发送 inerDelay_us(10);2 总电路图结构图第四章 总结

12、与体会 经过将近两天的单片机课程设计,我终于在参考了众多程序之后完成了我的无限小车的设计,虽然没有完全达到设计要求,但我还是高兴的,毕竟这次设计的电路板是我一手焊出来的。 在本次设计的过程中,我发现很多的问题,也学到了许多东西。虽然我以前也做过类似的课程设计,但这次设计真的让我长进了很多。本次单片机课程设计的重点就在于无线数据的传输及按键编程软件算法的设计,其中有许多很巧妙的算法。我以前总是能看懂别人写的程序,但自己单独写时就会出现很多问题,经过这次锻炼我基本掌握了C语言编程的方法并在以前的基础上有所提高。 从这次的课程设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1