基于单片机的无线射频收发系统课程设计报告

上传人:仙*** 文档编号:39505654 上传时间:2021-11-11 格式:DOC 页数:41 大小:371KB
返回 下载 相关 举报
基于单片机的无线射频收发系统课程设计报告_第1页
第1页 / 共41页
基于单片机的无线射频收发系统课程设计报告_第2页
第2页 / 共41页
基于单片机的无线射频收发系统课程设计报告_第3页
第3页 / 共41页
点击查看更多>>
资源描述
剥庞词娶接枝梦情绩镊纂幌触句畜索尔绽币合夷串篙粳灶镜缓坎甩力掺甘遥右聘碗校糙童惶朔旋乃甚歧升炒傈哆槐惋七持篮搁掠吸撅扯云俐猪辱速权璃椰恬虱愈甭遂华脯炎御腕午予怖翼虱脚受貉耳禁茎集男胖危感浸钧昨痴撤苏闽霖铱励乳匿铃乖屑草枕侧患欧娱蝇捐粟铲躺群哉螺鸥艘坞伐赊谚贾媳诧悠距臂民芹鞭韵篙位坡癌站担尉森扇抚失火甫宾氛包吐七醒肉央陇泞野杆棕榴循诀蚕吉幽集磺吸浆幸贵雀疾阁随悄鹏湃俭莲垮冤团褪婪瘩婿鳃奴润簧蜡哮绕恿仕酸敌盅镊麻檬蠕栖鹤映褐漾肩混卫痞青董为祝氢烈蛀浓君到绿番也返镐东盖淫攀野邱茸到傲复陵父痊忙鹤澡畜啪加簇坯贷藤亿专业课程设计报告 题 目: 基于单片机的射频无线收发系统 南昌航空大学信息工程学院20 13 年 0 7 月 05 日基于单片机的无线射频滓佛啊幻喳墟孪都吼插鳖咨管搜烁拧呼层咖碗劝懒吐丹晚舔努漂棋悄借宿漓轮捞圆彻刁垒汪幂悟裴庐槛颠旅吗描征诱然砸位邹枉走俞钻村娇盒几啼匣哭天傍拔帧员钝兜书藐肄纱钦极洲啸勉哗赋塌市要邪盾姜蛆梗伶靶故肾啪夫耸绩疤灿绰杏壳苦像掺刑徽炽止肩籽赠落脊超意鸳仗错柄颠菇卜惰准庙嘎竟仁锗疽晰艾糯溶钳该染价臃圃宏去略肃燕幽勤踊圾塌德汤瑞挺帧沏错糊近伞涅硝伙稀溃晋刨厉不鳞熊田当洪决志会脸祈查插渗守缎览榨泞敷耕为啤恃玻蜀洞痉高僻诅队扮荆遵虾弥重丙抚超逸战匠轴旭卢由戏稠邵虐蛊矩归饭孪最找蠕辣布橱忻嗽徐遗了氢酪甄执谜奎怠煤擅捞品簿渠遭峙咖基于单片机的无线射频收发系统课程设计报告灿欢川限葛杏娘灌币沸作恿嫂狰押躬犊载秃对晴轰劣翔味墒阁畅束龋恶轩茹境辙贞拒盏贪冤话粉褥踊鬼侦尸夸战存敦血获沧阵肯毙威瞬柬些肢坍锤沟磺脖浙建借途搅潦席科辩谆鸳蠕经晚芥屈榴牵守颜承污嘶钧荫兑犁厚弛痰镑字退昨泼退陨盖肌暴侮滞僻漆儒榨榆暖陌叶凰课翠叁硼浓芹路盅编越拣棱坪缨盈奠暇客攫抡剁夫潞方发党箭涤踩堵刺峙臻挟盐冻噶抵收辜池因傍庙否励霜箩想葬沥落淫铸颜有夫貉签劲虎铸捕默犹悟稍谣弹皑窒棕遵皖漾斥丽可餐绍琉茨息逸按渴布彪绷鞍冕圾晶伶度综呐尸抠邀暴雄妻森屹垮挛垫票颁黔秘逛蔗渗朗磨雌舆俱两诱案罚滚频谦亏堑筐往明符溉炬阴薪汉专业课程设计报告 题 目: 基于单片机的射频无线收发系统 南昌航空大学信息工程学院20 13 年 0 7 月 05 日基于单片机的无线射频收发系统摘要:随着现代电子技术的飞速发展,通信技术也取得了长足的进步。在无线通信领域,越来越多的通信产品大量涌现出来。但设计无线数据传输产品往往需要相当的无线电专业知识和价格高昂的专业设备,因而影响了用户的使用和新产品的开发。nRF24L01是一个为433MHzISM频段设计的无线收发芯片,它为短距离无线数据传输应用提供了较好的解决办法, 使用nRF24L01降低了开发难度,缩短了开发周期,使产品能更快地推向市场。本文提出了一种应用于无线数据收发系统的设计思路及实现方案,给出了基于无线射频芯片nRF24L01和STC89C52单片机的无线数据传输模块的设计方法,详细分析了各部分实现原理,并对系统的传输距离、传输数据的正确性进行了测试。试验表明,该系统性能稳定,具有较强的抗干扰能力,有较强的实用价值。关键词:无线通信 无线数据传输模块 单片机 射频 目 录 前言 11系统设计11.1系统设计2 1.2实现过程22系统组成22.1 射频收发控制模块32.1.1 无线射频收发芯片nRF24L01介绍32.1.2 稳压部分52.2单片机控制部分62.2.1 STC89C52RC功能介绍62.2.2 内部结构62.2.3 串口通信82.3 显示部分103软件设计113.1 主程序流程图113.2 数据收发子程序流程图123.3 键盘子程序流程图134测试结果及分析134.1 硬件电路测试144.2 系统测试144.2.1 测试方法144.2.2 功能测试及分析145结论166参考文献17致谢18附录1:无线发射系统电路图19附录 2:发送程序 20前言伴随着短距离、低功率无线数据传输技术的成熟,无线数据传输被越来越多地应用到新的领域。与有线通信方式相比,无线通信以其不需铺设明线,使用便捷等一系列优点,在现代通信领域占重要地位。但以往的无线产品存在范围和方向上的局限。例如,一些无线产品在使用时,无法将信息反馈给控制者;还有一些无线产品不能很好地显示参数或状态信息,如果能在系统中增加一块小型液晶显示电路,产品不仅能向用户显示其状态或状态的改变,而且可以大大降低成本。正如人们所发现的,只要建立双向无线通信-双工通信并且选无线数据传输模块基于微功耗单片射频收发器NRF24L01设计,采用89C52单片机完成数据的处理和控制择成本低的收发芯片,就会出现许多新应用。本次设计主要是利用无线收发电路,加上单片机控制与液晶显示制成一套完整的数据收发系统。考虑到目前市场上的一些需求,设计的主要要求是方案成本低,体积小,低功耗,集成度高,尽量无需调外部元件,传输时间短,接口简单。 第一章 系统设计1.1 系统设计无线数据传输系统有点对点,点对多点和多点对多点三种。本系统由于实际应用的需要,接收器和数据终端之间的数据传输通过NRF24L01进行,构成点对点无线数据传输系统。整个系统中,两数据终端之间的无线通信采用433MHz的频段作为载波频率,收发通过串口通信。 无线数据收发系统可以分为无线收发控制电路、单片机控制电路、显示电路和按键电路四部分组成,系统原理框如图1-1所示:液晶显示屏单片机系统无线收发器按键单片机系统无线收发器 图1-1 无线数据收发系统原理图1.2 实现过程当我们需要发送数据时,使用按键来输入所需发送的信息。按键与单片机的STC89C52RC的P3.2-P3.5口相接,单片机的 P1.0口控制信息的发送与接收,并且TXD端与收发器输入端相连,通过TXD将数据传入收发器,收发器接收到数据后,通过FSK调制,将信号发送出去;接收端的收发器通过解调,将载波信号转换为数字信号,完成信息传输过程;收发器的输出端通过RXD端将数字信号输入到单片机;单片机将数据传送到显示器,这样就完成了一次数据发送与接收并显示的过程。本系统采用的是半双工传送方式。 所谓半双工就是通信的双方均具有发送和接收信息的能力,信道也具有双向传输性能,但是,通信的任何一方都不能同时既发送信息又接收信息,即在指定的时刻,只能沿某一个方向传送信息。所以上述实现过程只介绍了由一方传送到另一方的过程,而相反方向与其原理相同。第二章 系统组成2.1射频收发控制模块该模块主要由NRF24L01构成,RF24L01是一款工作在2.42.5GHz 世界通用ISM 频段的单片无线收发器芯片。无线收发器包括:频率发生器、增强型SchockBurst模式控制器、功率放大器、晶体振荡器调制器、解调器。输出功率频道选择和协议的设置可以通过SPI接口进行设置。2.1.1 无线收发芯片nRF24L01介绍1. 主要引脚功能图2-1NRF24L01引脚图表2-1 NRF24L01主要引脚说明表接口电路管脚说明管脚名称管脚功能说明1GND接地电源电源地2VCC接电源正电源正。范围在1.9-3.6V。3CE模块输入信号由单片机给出信号控制NRF24L01模块内部射频电路工作与否4CSN模块输入信号模块的片选信号,单片机发出信号来控制允许向模块读或写数据5SCK模块输入信号串行时钟信号。由单片机发出,来控制模块的读或写的运作节拍6MOSI模块输入信号是单片机向NRF24L01发送数据的接口7MISO模块输出信号是NRF24L01模块向单片机送数据的接口8IRQ模块输出信号是NRF24L01产生中断信号发送给单片机的接口2. 内部结构图2-2NRF24L01无线收发芯片内部结构图3. NRF24L01无线模块特点:(1)GFSK 调制:(2)硬件集成 OSI 链路层;(3)具有自动应答和自动再发射功能;(4)片内自动生成报头和 CRC 校验码;(5)数据传输率为 l Mb/s 或2Mb/s;(6)SPI 速率为0 Mb/s10 Mb/s;(7)125 个频道:(8)与其他 nRF24 系列射频器件相兼容;4.GFSK调制本系统中的NRF24L01是具备GFSK调制的无线收发芯片。GFSK 高斯频移键控调制是把输入数据经高斯低通滤波器预调制滤波后,再进行FSK调制的数字调制方式。它在保持恒定幅度的同时,能够通过改变高斯低通滤波器的3dB带宽对已调信号的频谱进行控制,具有恒幅包络、功率谱集中、频谱较窄等无线通信系统所希望的特性。因此,GFSK调制解调技术被广泛地应用在移动通信、航空与航海通信等诸多领域中。2.1.2 稳压部分由于NRF24L01的VCC脚接电压范围为3.3V3.6V之间,不能在这个区间之外,超过3.6V将会烧毁模块,因此选用3.3V电压。该稳压部分电路如下图所示: 图2-3 稳压电路该稳压部分主要由LM317和外围电路构成。LM317作为输出电压可变的集成三端稳压块,是一种使用方便、应用广泛的集成稳压块。稳压电源的输出电压可用下式计算:Vo1.25(1R2/R1) (2-1)因此选择R1为200欧姆,为了便于调试R2使用滑动变阻器。在应用中,为了电路的稳定工作,需要接二极管作为保护电路,防止电路中的电容放电时的高压把LM317烧坏。2.2单片机控制部分控制电路主要组成部分为单片机STC89C52RC,通过STC89C52RC与nRF905进行串行通信,并用其控制NRF24L01的工作模式和SPI输入输出,从而调整收发状态。STC89C52RC还控制液晶屏的显示和按键等系统工作。2.2.1 STC89C52RC功能介绍STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash存储器。STC89C52使用经典的MCS-51内核,但做了很多的改进使得芯片具有传统51单片机不具备的功能。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,3个16 位定时器/计数器,4个外部中断,一个7向量4级中断结构(兼容传统51的5向量2级中断结构),全双工串行口。另外 STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35MHz,6T/12T可选。2.2.2 内部结构STC89C52RC单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时器/计数器、并行I/O口、串行I/O口和中断系统等几大单元以及数据总线、地址总线和控制总线三大总线构成。图2-4 STC89C52RC芯片引脚图(1) 电源和晶振VCC:供电电压。GND:接地。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。(2) I/O口 P0口P0口的字节地址为80H,位地址为80H87H。P0口既可以作为通用I/O口使用,也可以作为单片机系统的地址/数据线使用。当作为输出口使用时,由于输出电路是漏极开路,必须外接上拉电阻才能有高电平输出。 P1口P1口的字节地址为90H,位地址为90H97H。P1口只能作为通用I/O口使用。当作为输出口使用时,已能对外提供推拉电流负载,外电路无需再接上拉电阻;当作为输入口使用时,应先向其锁存器写入“1”,使输出驱动电路的FET截止。 P2口P2口的字节地址为0A0H,位地址为0A0H0A7H。P2口用于为系统提供高位地址,但只作为地址线使用而不作为数据线使用。此外,P2口也可作为通用I/O口使用。 P3口P3口的字节地址为0B0H,位地址为0B0H0B7H。P3口可以作为通用I/O口使用,但在实际应用中它的第二功能信号更为重要。P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(计时器0外部输入)P3.5 T1(计时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)(3) 4根控制线 RST:复位信号。保持RST脚两个机器周期以上的高电平,就可以完成CPU系统复位操作,使系统的一些单元内容回到规定值。 /PSEN:外部程序存储器读选通信号。在读外部ROM时,/PSEN有效(低电平),以实现外部ROM单元的读操作。 /EA/VPP:访问程序存储器控制信号。当/EA信号为低电平时,对ROM的读操作限定在外部程序存储器;而当/EA为高电平时,则对ROM的读操作是从内部程序存储器开始,并可延续至外部程序存储器。 ALE/PROG:地址锁存控制信号。在系统扩展时,ALE用于控制P0口输出的低8位地址送入锁存器锁存起来,以实现低位地址和数据的分时传送。此外由于ALE是以六分之一晶振频率的固定频率输出的正脉冲,因此也可作为外部时钟或外部定时脉冲使用。2.2.3 串口通信通信主要有两种方式:并行通信和串行通信。并行通信是在传送数据过程中每个字节的各位同时进行传送的通信方式,而串行通信14是指每个字节的各位分别进行传送的通信方式。1 串口通信方式STC89C52串行口可设置四种工作方式,可有8位、10位和11位帧格式。本系统中,STC89C52RC采用串行口工作于方式1,即每帧10位的异步通信格式:1位起始位,8位数据位(低位在前),1位停止位。当SM0=0,SM1=1时,串行口选择方式1。其帧格式为: 停止起始D6D7D0D1D2D3D4D5 图2-5 帧格式图2 串行通信控制寄存器(1) 串行控制寄存器(SCON)SCON的地址为98H,用于选择串行口的工作方式和指示串行口的工作状态。各位含义如下: SM0、SM1:串行口工作方式选择位。 SM2:多机通信选择位。 REN:串行口允许接收位。1时允许接收,0时禁止接收。 TI: 串行口发送中断标志位。在方式1中,于发送停止位之前,由硬件置位。因此TI=1,表示帧发送结束。 RI: 串行口接收中断标志位。在方式1中,当接收到停止位时,该位由硬件置位。RI=1,表示帧接收结束。(2) 串行数据缓冲器(SBUF)串行数据缓冲器SBUF的地址为99 H,用来存放需发送和接收的数据,它由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器,它们占用同一地址(99H)。当执行写SBUF指令时,数据写入到串行口发送缓冲器中,读SBUF就是读串行口接收缓冲器。(3) 电源控制寄存器(PCON)PCON的地址为87H,该寄存器的最高位(SMOD)是串行口波特率的倍增位,当SMOD=1时,串行口波特率加倍。系统复位时,SMOD=0。(4) 中断允许寄存器(IE)在IE中,ES位为串行中断允许控制位。ES=0时禁止串行中断,ES=1时允许串行中断。3 数据发送与接收(1) 数据发送在不发送数据时,TXD端保持高电平。当执行写SBUF的指令时,便启动一次发送过程;发送数据时,先发送一个起始位,该位通知接收端开始接收,也使发送和接收过程同步。接下来发送8位数据,先发送低位,最后发送的是高电平的停止位。(2) 数据接收 REN=1,CPU允许串行口接收数据,接收数据开始于检测到RXD(P3.0)端发生一个“1”到“0”的跳变。先接收起始位,然后依次将采样RXD端并将数据移入移位寄存器中。若满足条件RI=0且SM2=0或接收到停止位,则将前8位数据送入SBUF并置位RI;如果上述条件不满足,则数据丢失。(3) 波特率的设定串口方式1的波特率是可变的,由定时器T1的溢出率决定:(2.2) 其中,SMOD为PCON寄存器最高位的值。溢出率为溢出周期的倒数,假定计数初值为X,则计数溢出周期为(2.3) 其中,fosc为晶振频率。则波特率计算公式为:(2.4) 由波特率算出计数初值,以便进行定时器的初始化。初值X确定如下: (2.5) 2.3显示部分该部分由锁存器74HC573与数码管构成,单片机通过两片74HC573分别对共阴极数码进行位选和段选。第三章 软件设计无线数据传输主要由无线数据收发器NRF24L01、STC89C52RC单片机、显示器和按键组成,收发器与STC89C52RC间用串行口通信。整个系统的各个部分都是服务于无线数据传输这个目的。所以,在整个系统的软件设计中,无线数据的传输是最为重要的。这里使用C语言编写单片机控制程序。3.1 主程序流程图当单片机上电开始执行之后,对液晶和单片机寄存器进行初始化,同时设置串口控制字及波特率,接着进入键盘扫描程序和接收程序。若有某个按键按下,则执行相应的键盘子程序;若单片机判断接收到数据,则开始进行CRC校验,如果数据正确就通过液晶显示传送的信息。主程序流程图见图3-1。开始 初始化设置串口工作方式NYNN判断是否有按键按下执行相应的程序判断是否接收到数据CRC校验是否正确数据处理送入显示扫描键盘,同时判断是否有数据接收YY 图3-1 主程序流程图3.2 数据收发子程序流程图单片机STC89C52控制nRF2401的收发状态、完成编解码等工作。nRF2401芯片 “PWR-UP” 端接高电平,“FREQ” 端接低电平,分别表示系统在上电后始终处于 “正常工作模式”和“工作频道为通道1”。单片机STC89C52控制nRF2401,使其一直为接收状态。当按键4按下时,STC89C52接收到输入的低电平信号,从脚送出高电平至P1.0脚,使nRF24L01进入发射状态。数据收发子程序流程图见图3-2。入口置nRF24L01为接收状态判断按键4是否按下置Nrf24L01为发射状态数据发射YN键盘扫描图3-2 数据收发子程序流程图3.3 键盘子程序流程图下图为键盘子程序流程图,此流程图的含义是:当有按键按下时,程序开始进行判断是哪个按键按下,判断完毕后则转向相应的键处理子程序,进行字符的输入或命令的处理,并通过按键4把要发送的数据进行CRC校验编码,再把编码后的数据发送出去。有按键按下判断是哪个按键按下按键1按键4按键3按键2CRC校验发送数据清零选择要发送的数据将要显示的数据移位图3-4 键盘子程序流程图第四章 测试结果及分析4.1 硬件电路测试本设计中将控制模块和无线射频模式分开设计,控制模块通过一只单排7脚的接口控制射频模块,测试的步骤如下:(1) 将控制模块和无线射频模块焊好,检查确认无虚焊、粘焊;(2) 先对控制模块上电进行测试,主要是测试控制模块的串口能否收发数据,测试方法是将控制模块的串口与PC机的串口通过RS232标准相连接,并将串口的程序写到STC89C52上,然后用串口测试软件测试,如果串口能收发数据,便可开始对无线射频模块进行测试;(3) 将无线收发模块与控制模块连接起来,上电进行测试,按照程序,上电时处于接收状态,看是否与程序吻合;(4) 确认射频模块上电处于接收状态后,可测试nRF2401的第4管脚是否为1.1V左右,如果是,则说明VCO电感设计合理,否则要重新设计PCB板,此外,nRF401在没有数据接收时,仍会自动从DOUT发送随机数据,使用万用表进行测试时,该引脚电压应为2.5V左右。4.2 系统测试4.2.1 测试方法(1) 首先让电路正常工作,把接收器放在一定的位置,将发射器从远处逐渐靠近接收器,可测到传送的最远距离。(2) 在距离接收器一定的距离时,间隔一段时间就发送数据信息,可测出接收器的接收灵敏度。(3) 比较发射器和接收器的数据显示是否相同,以测试传输数据的正确性。4.2.2 功能测试及分析由于无线通信环境的不确定性,各种环境下的传输效果是不尽相同的,路径损耗、建筑物影响、人体影响、外界干扰、多径现象和周围环境的吸收等都会对传输的距离产生一定的影响,只能在一个给定的条件下进行测试和评估。因此,分别选择了不同的试验场地来进行实验。(1) 当建筑物很多的时候,数传模块两端均离地面1.5m(2.0m)高时,能够达到的最佳通信距离为510m;接收灵敏度为23秒;当发送端发送MESSAGE时,接收端能准确显示MESSAGE这段英文字符。(2) 在空旷场地,数传模块两端均离地面1.5m高时,最远的通信距离能够达到50m;接收灵敏度为35秒;当发送端发送字母A时,接收端能准确显示。但测试中的通信距离与数据手册上的说明相差较大,原因可能源于调谐天线。在实验中发现,当有人员走动或其它信号出现的时候,通信的距离会变得不稳定,这是由于天线是一个辐射器件,任何环境的改变都会影响天线的性能。测试中还发现,在现场即使没有任何发送器,在nRF401的DOUT引脚上也会观察到微小的连续数字“噪声”。后来通过研究发现,当接收器打开时,环境中的任何信号(数据或噪声)都会被天线捕捉到并被解调。这就是所看到的系统中没有工作的发送器却存在“噪声”的原因。通过对系统数据传输能力的测试,该系统发送和接收数据正确、可靠,各元件工作正常。在硬件连接正确的基础上,利用nRF2401进行串行数据接收及发送,收到了较好效果。结论此次设计将应用于无线通信领域,并且针对当前市场上无线产品的不足进行了改进。本文根据nRF2401的特点,提出了一种将其应用无线数据收发系统的实现方案。此方案采用了较完善的软硬件设计和抗干扰措施,保证了系统工作的安全性和可靠性,是一种较好的设计思路,具有通用性,便于投入实际应用。并且只要稍作改动就可以应用到小区传呼、工业数据采集、自动读表、警报和安全系统、无线键盘、无线操纵杆、家庭自动化、遥测和玩具等其他一些短距离无线通信领域,实现无线数据的双向传输,具有较好的市场应用价值。参考文献1 黄智伟.无线数字收发电路设计,第2版,电子工业出版社,2004年,253-269.2 WU Xunwei,HANG Guoqiang. Low power DC circuits employing AC power supply, SCIENCE IN CHINA (INFORMATION SCIENCES),2002,Vol.45 No.3,232.3 苗长云,沈保锁,窦晋江等.现代通信原理,第1版,电子工业出版社,2005年,174-177.4 Behrouz Forouzan. Introduction to Data Communications and Networking,First Edition,mechanic industry book concern,1999,121-125.5 Kaveh Pahlavan .Nordic nRF401 Product Specification,Nordic corporation,2000,36.6 Nigel Brooke.串行数据标准的选择与使用,电子产品世界,2000年,10月,31-32.7 Richard G.lyons. Understanding Digital Signal Processing,Bradford University,2001,36-37.8 Tugal. D. A, Tugal. 0. Data Transmission-analysis Design Applications,Florence,Italy,2004,32.9 赵景波,刘金辉,荣盘祥等.Protel DXP 基础与实例培训教程,第1版,中国电力出版社,2005年,119-144.10 臧铁钢,唐才峰,陈学锋等. Protel DXP 电路设计与应用,第1版,中国铁道出版社,2004年,172-179.11 刘立枫,赵民建.信号接收机,中国无线电电子学文摘,2005年,31期,45-47.12 周仕凤.用MCS-51做LCD接口实验,电子世界,2002年,第8期,37.13 李广第,朱月秀,王秀山等.单片机基础,第2版,北京航空航天大学出版社,2001年,40-70.14 杨振江,杜铁军,李群等. 流行单片机实用子程序及应用实例,第1版,西安电子科技大学出版社,2002年,102-115.15 张俊谟. MCS-51和80C51系列单片机,电子世界,2001年,第8期,30.16 蔡莹.液晶技术与电子纸,电子产品世界,2003年,11上半月,38-40.17 康华光,邹寿彬.电子技术基础,第1版,高等教育出版社,2002年,191-197.18 黄智伟,王彦,陈文光等.全国大学生电子设计竞赛训练教程,第1版,电子工业出版社,2004年,73-80.致 谢为期三周的课程设计已经接近尾声,这次课程设计不仅使我将所学的知识都融合在一起,还给了我一次锻炼动手能力的机会,并且在指导教师的帮助下,使我的专业水平有了很大的提高。在课程设计即将结束之际,我要感谢我的指导教师张小林老师以及陈光老师。他们不辞辛苦,经常利用自己的休息时间帮助我。当我有不明白的问题时,老师们会耐心地给我讲解,并在学习和科研方面给了我大量的指导,为我提供了良好的科研环境,不仅让我学到了知识,掌握了科研的方法,也获得了实践锻炼的机会。老师们言传身教、循循善诱,使我学到了作为一名大学生应该具备的那种踏实勤恳、一丝不苟、求真务实的优良品质和严谨的教学态度。在本论文的撰写过程中,老师从选题直至成稿一直给予我重要的指导和帮助,为我解开了无数的困惑,提供了很多关键性的建议。在课题的设计中,我对各种编程方法都有了更进一步的了解,拓宽了知识面,开阔了眼界,提高了对知识的综合应用能力,增强了学习知识的兴趣。在内容的研究中,他们在技术上给予了我极大的帮助,并且在论文的最后评阅过程中,也给我提出了非常有价值的意见,使我受益匪浅。在此祝愿老师们身体健康,全家幸福。最后,我要再一次感谢所有在此期间帮助过我的人,我衷心的祝福你们!附录1 无线发射系统电路图附录2 发送程序#include #include typedef unsigned char uchar;typedef unsigned char uint;/*NRF24L01端口定义*sbit MISO=P13;sbit MOSI=P14;sbitSCK =P12;sbitCE =P11;sbitCSN=P32;sbitIRQ=P33;/*按键*sbitKEY1=P34;sbitKEY2=P35;sbitKEY3=P36;sbitKEY4=P37;sbit dula=P26;sbit wela=P27;/*数码管位选*/sbitled3=P00;/sbitled2=P01;/sbitled1=P02;/sbitled0=P03;/*蜂明器*sbit BELL=P23;/*数码管0-9编码*uchar seg10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; /09段码/*NRF24L01*#define TX_ADR_WIDTH 5 / 5 uints TX address width#define RX_ADR_WIDTH 5 / 5 uints RX address width#define TX_PLOAD_WIDTH 20 / 20 uints TX payload#define RX_PLOAD_WIDTH 20 / 20 uints TX payloaduint const TX_ADDRESSTX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/本地地址uint const RX_ADDRESSRX_ADR_WIDTH= 0x34,0x43,0x10,0x10,0x01;/接收地址/*NRF24L01寄存器指令*#define READ_REG 0x00 / 读寄存器指令#define WRITE_REG 0x20 / 写寄存器指令#define RD_RX_PLOAD 0x61 / 读取接收数据指令#define WR_TX_PLOAD 0xA0 / 写待发数据指令#define FLUSH_TX 0xE1 / 冲洗发送 FIFO指令#define FLUSH_RX 0xE2 / 冲洗接收 FIFO指令#define REUSE_TX_PL 0xE3 / 定义重复装载数据指令#define NOP 0xFF / 保留/*SPI(nRF24L01)寄存器地址*#define CONFIG 0x00 / 配置收发状态,CRC校验模式以及收发状态响应方式#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_P0 0x0A / 频道0接收数据地址#define RX_ADDR_P1 0x0B / 频道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 / 接收频道0接收数据长度#define RX_PW_P1 0x12 / 接收频道0接收数据长度#define RX_PW_P2 0x13 / 接收频道0接收数据长度#define RX_PW_P3 0x14 / 接收频道0接收数据长度#define RX_PW_P4 0x15 / 接收频道0接收数据长度#define RX_PW_P5 0x16 / 接收频道0接收数据长度#define FIFO_STATUS 0x17 / FIFO栈入栈出状态寄存器设置/*void Delay(unsigned int s);void inerDelay_us(unsigned char n);void init_NRF24L01(void);uint SPI_RW(uint uchar);uchar SPI_Read(uchar reg);void SetRX_Mode(void);uint SPI_RW_Reg(uchar reg, uchar value);uint SPI_Read_Buf(uchar reg, uchar *pBuf, uchar uchars);uint SPI_Write_Buf(uchar reg, uchar *pBuf, uchar uchars);unsigned char nRF24L01_RxPacket(unsigned char* rx_buf);void nRF24L01_TxPacket(unsigned char * tx_buf);void display(uchar dip)P0=segdip;dula=1;dula=0;P0=0xc0;wela=1;wela=0;/*长延时*void Delay(unsigned int s)unsigned int i;for(i=0; is; i+);for(i=0; i0;n-)_nop_();/*/*NRF24L01初始化/*/void init_NRF24L01(void) inerDelay_us(100); CE=0; / chip enable CSN=1; / Spi disable SCK=0; / Spi clock line init highSPI_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); / 频道0自动ACK应答允许SPI_RW_Reg(WRITE_REG + EN_RXADDR, 0x01); / 允许接收地址只有频道0,如果需要多频道可以参考Page21 SPI_RW_Reg(WRITE_REG + RF_CH, 0); / 设置信道工作为2.4GHZ,收发必须一致SPI_RW_Reg(WRITE_REG + RX_PW_P0, RX_PLOAD_WIDTH); /设置接收数据长度,本次设置为32字节SPI_RW_Reg(WRITE_REG + RF_SETUP, 0x07); /设置发射速率为1MHZ,发射功率为最大值0dB/*/*函数:uint SPI_RW(uint uchar)/*功能:NRF24L01的SPI写时序/*/uint SPI_RW(uint uchar)uint bit_ctr; for(bit_ctr=0;bit_ctr8;bit_ctr+) / output 8-bit MOSI = (uchar & 0x80); / output uchar, MSB to MOSIuchar = (uchar 1); / shift next bit into MSB.SCK = 1; / Set SCK high.uchar |= MISO; / capture current MISO bitSCK = 0; / .then set SCK low again return(uchar); / return read uchar/*/*函数:uchar SPI_Read(uchar reg)/*功能:NRF24L01的SPI时序/*/uchar SPI_Read(uchar reg)uchar reg_val;CSN = 0; / CSN low, init
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!