基于51单片机的无线通信.docx
- 文档编号:16988039
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:21
- 大小:801.13KB
基于51单片机的无线通信.docx
《基于51单片机的无线通信.docx》由会员分享,可在线阅读,更多相关《基于51单片机的无线通信.docx(21页珍藏版)》请在冰点文库上搜索。
基于51单片机的无线通信
湖北民族学院
信息工程学院
课程设计报告书
题目:
基于51单片机的无线通信
课程:
数字通信系统课程设计
专业:
电子
班级:
0314411
学号:
0
学生姓名:
田紫龙
指导教师:
黄双林
2017年06月18日
摘要
本文设计了一种以AT89S52单片机为控制核心的无线通信控制模块,详细说明了该系统的基本原理、主要电路、硬件框架以及软件框架。
整个系统采用模块化设计,主要包括单片机与下位机之间的无线通信控制电路,以及无线通信模块与51单片机之间通信接口电路。
该通信控制系统通过51单片机和nrf2401的spi通信,从而通过无线通信控制模块形成与下位机的联系,控制下位机运动控制器,并且将通信接收的数据保存到扩展的存储器内。
本模块的通信方法简便,除了可以进行远程实时控制外,还可广泛的应用于工业监控和数据采集系统。
本系统具有性能可靠、抗干扰能力强、功耗低、性价比高等优点,在无线通信领域具有重要的应用价值和良好的发展前景。
关键字:
无线通信控制;AT89S52;nRF2401;串行通信
1绪论
伴随着短距离低功率无线数据传输技术的成熟,无线数据传输被越来越多地应用到新的领域。
与有线通信方式相比,无线通信以其不需铺设明线,使用便捷等一系列优点,在现代通信领域占重要地位。
以往的无线产品存在范围和方向上的局限,例如,一些无线产品在使用时,无法将信息反馈给控制者;还有一些无线产品不能很好地显示参数或状态信息,如果能在系统中增加一块小型液晶显示电路,产品不仅能向用户显示其状态或状态的改变,而且可以大大降低成本。
正如人们所发现的,只要建立双向无线通信-双工通信并且选无线数据传输模块基于微功耗单片射频收发器NRF24L01设计,采用89C52单片机完成数据的处理和控制择成本低的收发芯片,就会出现许多新应用。
本次设计主要是利用无线收发电路,加上单片机控制与液晶显示制成一套完整的点对点数据收发系统。
考虑到目前市场上的一些需求,设计的主要要求是方案成本低,体积小,低功耗,集成度高,尽量无需调外部元件,传输时间短,接口简单。
2总体设计
本设计使用M3单片机和51单片机通过nRF24L01模块进行通信实现51单片机发送字符到M3单片机上显示。
系统原理框如图所示.
图2.1系统原理框图
当51单片机通过spi对2401进行数据读写完毕后,2401将储存的字符通过射频技术发送给等待的2401,这时M3对2401接受到的数据进行读写,然后再TFT屏上显示接收到的内容。
3各个模块简介
1.单片机STC89C52和nRF2401的接口电路
STC89C52有UART和SPI接口,而nRF2401用的是DRI、CLK和DATA三线传输。
考虑到速率的因数,STC89C52和nRF2401的连接准备用SPI接口实现。
SPI(SerialPeriPheralInterface,串行外设接口)接口是一种同步串行外设接口,它可以使MCU和各种外围设备进行通信以交换信息。
外围设备包括FlashRAM,网络控制器,LCD显示驱动器,A/D转换器和MUC等。
图4说明了一个典型的SPI主从式总线结构。
它使用3根线连接了所有的设
备。
主设备通过并行的4个管脚来控制各个从设备的
脚来选择从设备。
图2典型的SPI主从式总线结构
1、MOSI(MasterOutputSlaveInput):
这个1bit的信号直接连接主设备和从设备。
信号通过MOSI线从主设备串行传输到从设备。
因此,对主设备而言,MOSI是信号输出端口,对从设备而言,则是信号输入端口。
在这条线上,一个Byte的信号通过高位(MSB)到低位(LSB)的传输。
2、MISO(MasterInputSlaveOutput):
通过这个1bit的信号线,信号由从设备传输到主设备,因此它是主设备的信号输入端口,从设备的信号输出端口。
信号同样是从MBS到LBS的传输。
3、SCK(SPISerialClock):
这个信号来同步所有设备的进出MOSI和MISO的数据。
它通过主设备的8个时钟周期来驱动,允许交换串行线上的1个Byte的信号。
4、
(SlaveSelect)
通过使某个从设备的
管脚保持低电平来选择该从设备。
显然只有主设备(它的
管脚保持高电平)才能驱动这个系统。
主设备通过软件,利用端口来选择从设备。
通过阻止MISO线上的冲突,来保证主设备每次传输只选择一个从设备。
在设置主设备时,
管脚可以和SPI的状态寄存器SPSTA中的MODF一起工作来阻止多个主设备一起驱动MOSI和SCK。
无线模块简介
NRF24L01无线模块,采用的芯片是NRF24L01,该芯片的主要特点如下:
1)全球开放的ISM频段,免许可证使用。
2)最高工作速率2Mbps,高校的GFSK调制,抗干扰能力强。
3)125个可选的频道,满足多点通信和调频通信的需要。
4)内置CRC检错和点对多点的通信地址控制。
5)低工作电压(~)。
6)可设置自动应答,确保数据可靠传输。
该芯片通过SPI与外部MCU通信,最大的SPI速度可以达到10Mhz。
本章我们用到的模块是深圳云佳科技生产的NRF24L01,该模块成熟度和稳定性都是相当不错的。
该模块的外形和引脚图如图所示:
图NRF24L01无线模块外形和引脚图
模块VCC脚的电压范围为~,建议不要超过,否则可能烧坏模块,一般用电压比较合适。
除了VCC和GND脚,其他引脚都可以和5V单片机的IO口直连,正是因为其兼容5V单片机的IO,故使用上具有很大优势。
1602简介
字符液晶显示模块,可显示数字和字母。
与数码管相比显示内容更丰富,而且编程简单。
它能够显示系统的当前工作时间、时间以及温度传感器检测到的温度。
为使用者观察提供了方便。
LCD1602的接口信号说明如表3
表3LCD1602的接口信号
编号
引脚符号
功能说明
编号
引脚符号
功能说明
1
VSS
电源地
9
D2
DATAI/O
2
VDD
电源正极
10
D3
DATAI/O
3
VL
液晶显示偏压信号
11
D4
DATAI/O
4
RS
数据/命令选择端(H/L)
12
D5
DATAI/O
5
R/W
读/写选择端(H/L)
13
D6
DATAI/O
6
E
使能信号
14
D7
DATAI/O
7
D0
DATAI/O
15
BLA
背光正极
8
D1
DATAI/O
16
BLK
背光负极
2.基本操作时序如下:
1)读状态:
RS=L,RW=H,E=H
2)写指令:
RS=L,RW=L,D0~D7=指令码,E=高脉冲
3)读数据:
RS=H,RW=H,E=H
4)写数据:
RS=H,RW=L,D0~D7=数据,E=高脉冲
3.初始化设置
1)显示模式设置如表5
表4显示模式设置
指令码
功能
0
0
1
1
1
0
0
0
设置16*2显示,5*7点阵,8位数据接口
2)显示开/关及光标设置如表6:
表7显示开/关及光标设置
指令码
功能
0
0
0
0
1
D
C
B
D=1开显示;D=0关显示
C=1显示光标;C=0不显示光标
B=1光标闪烁;B=0光标不显示
0
0
0
0
0
1
N
S
N=1当读或写一个字符后地址指针加一,且光标加一
N=0当读或写一个字符后地址指针减一,且光标减一
S=1当写一个字符,整屏显示左移(N=1)
LCD1602与MCU的接口电路
LCD的D0~D7分别接单片机的的P0口,作为数据线,因为P0口内部没有上
拉电阻,所以外部另外加上的上拉电阻;—分别接LCD的RS、RW、
E三个控制管脚;RV1用来调节LCD的显示灰度;BLK、BLA为背光的阴极和阳极,接上相应电平即点亮背光灯。
如图4
图41602显示电路
其中1602的第3脚接10K与的串联电阻起到分压作用,能够调节第一行与第二行亮度对比。
第16接个三极管的作用放大,是为了能够让液晶显示器的背光灯亮起,从而在夜间也能观看显示内容。
STC89C52单片机
单片微型计算机是随着微型计算机的发展而产生和发展的。
自从1975年美国德克萨斯仪器公司的第一台单片微型计算机(简称单片机)TMS-1000问世以来,迄今为止,单片机技术已成为计算机技术的一个独特分支,单片机的应用领域也越来越广泛,特别是在工业控制中经常遇到对某些物理量进行定时采样与控制的问题,在仪器仪表智能化中也扮演着极其重要的角色。
如果将8位单片机的推出作为起点,那么单片机的发展历史大致可以分为以下几个阶段:
第一阶段(1976—1978):
单片机的探索阶段。
以Intel公司的MCS-48为代表。
MCS-48的推出是在工控领域的探索,参与这一探索的公司还有Motorola、Zilog等。
都取得了满意的效果。
这就是SCM的诞生年代,“单片机”一词即由此而来。
第二阶段(1978—1982):
单片机的完善阶段。
Intel公司在MCS-48基础上推出了完善的、典型的单片机系列MCS-51。
它在以下几个方面奠定了典型的通用总线型单片机体系结构。
(1)完善的外部总线。
MCS-51设置了经典的8位单片机的总线结构,包括8位数据总线、16位地址总线、控制总线及具有多机通信功能的串行通信接口。
(2)CPU外围功能单元的集中管理模式。
(3)体现工控特性的地址空间及位操作方式。
(4)指令系统趋于丰富和完善,并且增加了许多突出控制功能的指令。
第三阶段(1982—1990):
8位单片机的巩固发展及16位单片机的推出阶段,也是单片机向微控制器发展的阶段。
Intel公司推出的MCS-96系列单片机,将一些用于测控系统的模数转换器、程序运行监视器、脉宽调制器等纳入片中,体现了单片机的微控制器特征。
第四阶段(1990—):
微控制器的全面发展阶段。
随着单片机在各个领域全面、深入地发展和应用,出现了高速、大寻址范围、强运算能力的8位/16位/32位通用型单片机,以及小型廉价的专用型单片机。
单片机是在集成电路芯片上集成了各种元件的微型计算机,这些元件包括中央处理器CPU、数据存储器RAM、程序存储器ROM、定时/计数器、中断系统、时钟部件的集成和I/O接口电路。
由于单片机具有体积小、价格低、可靠性高、开发应用方便等特点,因此在现代电子技术和工业领域应用较为广泛,在智能仪表中单片机是应用最多、最活跃的领域之一。
在控制领域中,现如今人们更注意计算机的底成本、小体积、运行的可靠性和控制的灵活性。
在各类仪器、仪表中引入单片机,使仪器仪表智能化,提高测试的自动化程度和精度,提高计算机的运算速度,简化仪器仪表的硬件结构,提高其性能价格比。
单片机主要特点:
(1)有优异的性能价格比。
(2)集成度高、体积小、有很高的可靠性。
单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性和抗干扰能力。
另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合在恶劣环境下工作。
(3)控制功能强。
为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。
单片机的逻辑控制功能及运行速度均高于同一档次的微机。
(4)低功耗、低电压,便于生产便携式产品。
(5)外部总线增加了I2C(Inter-IntegratedCircuit)及SPI(SerialPeripheralInterface)等串行总线方式,进一步缩小了体积,简化了结构。
(6)单片机的系统扩展和系统配置较典型、规范,容易构成各种规模的应用系统。
优异的性能价格比。
1)集成度高、体积小、有很高的可靠性。
单片机把各功能部件集成在一块芯片上,内部采用总线结构,减少了各芯片之间的连线,大大提高了单片机的可靠性与抗干扰能力。
另外,其体积小,对于强磁场环境易于采取屏蔽措施,适合于在恶劣环境下工作。
此外,程序多采取固化形式也可以提高可靠性。
2)控制功能强。
为了满足工业控制要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。
单片机的逻辑控制功能及运行速度均高于同一档次的微机。
单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。
VCC:
STC89C52电源正端输入,接+5V。
GND:
电源地端。
XTAL1:
单芯片系统时钟的反相放大器输入端。
XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
STC89C52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
"EA"为英文"ExternalAccess"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果是使用8751内部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
ALE/PROG:
ALE是英文"AddressLatchEnable"的缩写,表示地址锁存器启用信号。
STC89C52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为STC89C52是以多工的方式送出地址及数据。
平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。
此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。
PSEN:
此为"ProgramStoreEnable"的缩写,其意为程序储存启用,当8051被设成为读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。
STC89C52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。
PORT0(~):
端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,表示位0,表示位1,依此类推。
其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。
PORT2(~):
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当做一般I/O端口使用外,若是在STC89C52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。
PORT1(~):
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。
如果是使用8052或是8032的话,又当做定时器2的外部脉冲输入脚,而可以有T2EX功能,可以做外部中断输入的触发脚位。
PORT3(~):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
:
RXD,串行通信输入。
:
TXD,串行通信输出。
:
INT0,外部中断0输入。
:
INT1,外部中断1输入。
:
T0,计时计数器0输入。
:
T1,计时计数器1输入。
:
WR:
外部数据存储器的写入信号。
:
RD,外部数据存储器的读取信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
图5STC89C52单片机引脚图
4各个模块设计
硬件电路板的设计
在本系统中,电路板的设计使用的是Protel99SE软件。
电路板设计的主要步骤是:
原理图的设计→产生网络表→印制电路板。
(由于M3部分使用开发板这里只进行51部分的叙述)
硬件电路板原理图如图所示:
图硬件电路板原理图
PCB如图所示
图PCB图
在硬件设计时,需要注意以下几点:
(1)电源线要加粗,合理走线、接地;
(2)布线时避免90度折线,尽量平滑过渡;
(3)充分考虑单片机的带载驱动能力。
(4)尽可能的选择典型电路,并符合单片机的常规使用方法;
(5)在充分满足系统功能要求前提下,留余地以便于二次开发;
(6)硬件结构设计应与软件设计方案一并考虑;
(7)封装大小要严格按照元器件实际尺寸要特别注意元器件竖向所占空间;
(8)硬件上要有可靠性与抗干扰设计,电源要用电容滤波,增强电源的稳定性;
软件程序设计
程序设计采用模块化设计方法,依据了“任何复杂的程序都可以分解为顺序结构部分、分支结构部分、循环结构部分和子程序部分”的原则,将程序进行分解设计。
结构化程序设计具有结构清晰、易于读写、易于验证和可靠性高等特点,在程序设计中被广泛使用,易于文件规范管理。
主程序模块
模块化程序设计思想是采用自顶向下、逐步求精的方法,将一个复杂的问题分解成若干独立的子问题,每个子问题对应一个功能独立的程序模块,将这些模块有机的连接在一起,构成完整的程序。
先进行主程序模块的设计,描述程序的总体框架,在进行子模块的设计,完成相应的子功能。
该系统中需要分别设计发送端和接收端的程序。
在发送端,首先使其进入发送工作模式CE=1,通过I/O接口装入接收端地址和有效数据,然后启动发送CE=0,发送端等待数据发送完成。
当发送完成后模块进入接收状态,接收接收端的应答数据。
发送端程序流程图如图
图发送端程序流程图
在接收端,使能接收。
如果接收到发送端数据,则将接收到的数据送入扩展的外部RAM中,并且向发送端发送应答数据。
接收端程序流程图如图。
图接收端程序流程图
结果与分析
结果如图所示:
图结果图
对于2401这个模块来说,发送的速率远大于spi的读写速度,所以不能别发送别读写,只能将发送的数据在2401模块中进行储存,然后给控制器一个状态位,当控制器通过spi读到这个位的数据时,就给2401一个发送的指令这时2401才开始发送,同样的对应的接受端,也是先将接受的数据进行储存之后再用spi对控制器进行读写操作。
从结果图中我们看到,当51做为发送端时,对应的51接收端,进行数据的接收,同时,在发送端和接受端显示发送和接收的数据,这样我门就完成了一次通信。
总结
在整个设计过程中,硬件方面主要设计了STC89C52单片机的最小系统、NRF2401接口电路、LCD1602显示;软件方面借助各个渠道的资料,主要设计了LCD显示程序;系统的调试主要是通过一块单片机开发板,再借助于Keil、STC以及少许自己搭建的外围电路实现的;再此过程中,分步调试时显示出了1602收到的数据,集中调试时没有达到预期效果。
此无线通信具有读显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
在整个设计过程中学到了许多没学到的知识,在电路焊接时虽然没什么大问题,但从中也知道了焊接在整个作品中的重要性,电路工程量大,不能心急,一个个慢慢来不能急于求成。
反而达到事半功倍的效果。
对电路的设计、布局要先有一个好的构思,才显得电路板美观、大方。
程序编写中,由于思路不清晰,开始时遇到了很多的问题,经过静下心来思考,理清了思路,反而得心应手。
在此次设计中,知道了做事要有一颗平常的心,不要想着走捷径,一步一脚印。
也练就了我们的耐心,做什么事都要有耐心。
在本次设计中学到了很多很多东西,这是最重要的。
总之,此次毕业设计使我们的能力得到了全方位的提高,这次设计的无线通信也存在的不足的地方,有待于以后的改进。
参考文献
[1] 黄智伟.无线数字收发电路设计,第2版,电子工业出版社,2004年,253-269.
[2] 苗长云,沈保锁,窦晋江等.现代通信原理,第1版,电子工业出版社,2005年,174-177.
[3] Behrouz Forouzan. Introduction to Data Communications and Networking,First Edition,mechanic industry book concern,1999,121-125.
[4] 刘立枫,赵民建.信号接收机,中国无线电电子学文摘,2005年,31期,45-47.
[5] 康华光,邹寿彬.电子技术基础,第1版,高等教育出版社,2002年,191-197.
[6] 黄智伟,王彦,陈文光等.全国大学生电子设计竞赛训练教程,第1版,电子工业出版社,2004年,73-80.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 无线通信