无线多点报警系统毕业设计.docx
- 文档编号:26571478
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:31
- 大小:226.35KB
无线多点报警系统毕业设计.docx
《无线多点报警系统毕业设计.docx》由会员分享,可在线阅读,更多相关《无线多点报警系统毕业设计.docx(31页珍藏版)》请在冰豆网上搜索。
无线多点报警系统毕业设计
毕业设计(论文)
题目无线多点报警系统
摘要
本设计基于80c51单片机对12864液晶屏的控制,及80c51单片机对nRF905无线收发模块的控制,和漫反射式光电传感器的用法,本设计将对80c51单片机、nRF905无线收发模块及漫反射式光电传感器进行介绍,建立了相应的电路图,并对电路图进行分析,然后注有详细的程序,并对程序进行详细的分析,从而对80c51单片机、12864液晶屏、E18漫反射式光电开关、nRF905无线收发模块有进一步认识和了解。
关键词:
80c51单片机、漫反射式光电开关、12864液晶屏、nRF905无线收发模块
第一章元器件说明
1.1元器件说明
1.1.180C51单片机
80C51单片机是指MCS-51系列单片机中的一款,它内部有4KB掩膜ROM,对于MCS-51系列单片机来说,其基本功能是完全兼容;8051单片机主要由如下功能部件组成,即CPU(微处理器)、数据存储器(RAM)、片内为128个字节(52子系列的为256个字节)、程序存储器(ROM/EPROM)、4个并行8位I/O口(P1口、P2口、P3口、P0口)、串行口、定时器/计数器、中断系统、特殊功能寄存器(SFR)。
1.1.212864液晶
12864液晶带中文字库的128X64是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。
1.1.3nRF905无线收发模块
nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器功率放大器等模块,曼彻斯特编码/解码由片内硬件完成,无需用户对数据进行曼彻斯特编码,因此使用非常方便。
1.1.4E18-D50NK光电开关
E18-D50NK光电开关这是一种集发射与接收于一体的光电传感器。
检测距离可以根据要求进行调节1。
该传感器具有探测距离远、受可见光干扰小、价格便宜、易于装配、使用方便等特点,可以广泛应用于机器人避障、流水线计件等众多场合。
1.2引脚说明
1.2.180C51单片机引脚介绍
所用单片机如图1-1所示,引脚功能如下介绍。
图1-1单片机图
P0口:
8为双向I/O口,占32~39脚。
其第一功能为通用的输入/输出口线;第二功能是在系统扩展时,P0口可作为8位数据总线和低8位地址总线,通过分时操作达到复用的目的。
CPU在外部扩展操作时,P0口先用作地址总线,在ALE信号的作用下将地址锁存,然后再将P0口转作数据总线使用。
在做通用的输入/输出口使用时,P0口线的输出驱动电路是开漏的,所以,驱动集电极开路电路或漏极开路电路时需要外接上拉电阻。
当作为地址/数据复用总线使用时,口线不是开漏的,无需外接上拉电阻。
P0口线的每一位能驱动8个LSTTL负载。
P1口:
8位双向I/O口,占1~8脚。
P1口一般做通用I/O口使用,用于完成8位数据的并行输入/输出。
准双向口是指该口内设有上拉电阻,所以可以方便地由集电极开路电路或漏极开路所驱动,无需外接上拉电阻,其每一位口线能驱动4个LSTTL负载。
P2口:
8位双向I/O口,占21~28脚。
其第一功能为基本的输入/输出口线;第二功能是在系统扩展时作高8位地址总线使用。
同P1口,P2口的每一位口线能驱动4个LSTTL负载。
P3口:
8位双向I/O口,占10~17脚。
P3口是一个双功能端口,即P3口除可作为通用I/O口使用外,其每一条口线都具有第二功能,同P1口,P3口每一位口线能驱动4个LSTTL负载。
其中P3口具有第二功能:
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
PSEN:
(29脚)外部程序存储器读选通信号,在单片机访问外部扩展程序存储器ROM时,PSEN作为外部扩展程序存储器读选通信号,定时输出脉冲。
在单片机访问内部存储器时,PSEN无效。
ALE/PROG(30脚):
地址锁存准许/片内EPROM编程脉冲输入信号。
在单片机访问外存储器时,该引脚是地址锁存信号,用于锁存低8位地址。
在ALE为高电时,P0口上的信息为低8位地址,在ALE的下降沿时将P0口上的低8位地址送锁存器所存起来。
在ALE为低电平期间,P0口上的信息为志林或数据信息,从而实现低位地址与数据的分离。
在单片机不访问片内存储器时,ALE引脚能按主振频率的1/6固定的输出正脉冲,此脉冲可以用作外部的时钟或定时脉冲使用。
而当对单片机内部的程序存储器编程时,此引脚为编程脉冲的输入端。
RST/VPD:
复位/备用电源,RST功能,复位信号输入端,VPD功能,在Vcc掉电情况下,接备用电源。
ALE/PROG:
地址锁存允许/片内EPROM编程脉冲;ALE功能,用来锁存P0口送出的低8位地址;PROG功能,片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲
EA/Vpp:
内外ROM选择/片内EPROM编程电源;EA功能,内外ROM选择端;Vpp功能,片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
VCC:
芯片电源,接+5V,引入单片机工作电源。
VSS:
接地端;
XTAL1、XTAL2:
晶体振荡电路反相输入端和输出端。
1.2.212864液晶
VSS0V电源地
VCC3.0+5V电源正
V0对比度(亮度)调整
RS(CS)H/LRS=“H”,表示DB7——DB0为显示数据
RS=“L”,表示DB7——DB0为显示指令数据
R/W(SID)H/LR/W=“H”,E=“H”,数据被读到DB7——DB0
R/W=“L”,E=“H→L”,DB7——DB0的数据被写到IR或DR
E(SCLK)H/L使能信号
DB0-DB7H/L三态数据线
PSBH/LH:
8位或4位并口方式,L:
串口方式(见注释1)
NC空脚
RESETH/L复位端,低电平有效(见注释2)
VOUT-LCD驱动电压输出端
BLA背光源正端(+5V)(见注释3)
BLKVSS背光源负端(见注释3)
1.2.3nRF905无线收发模块
nRF905有14个管脚,管脚作用如下;
vcc电源电源+3.3-3.6vDC
TX_EN数字输入TX_EN=1TX模式;TX_EN=0RX模式;
TRX_CE数字输入使能芯片发射或接收
PWR_UP数字输入芯片上电
uCLK时钟输出本模块该管脚不用
CD数字输出载波检测
AM数字输出地址匹配
DR数字输出接受或发送数据完成
MISOSPI接口SPI输出
MOSISPI接口SPI输入
SCKSPI时钟SPI时钟
CSNSPI使能SPI使能
GND接地
GND接地
1.2.4E18-D50NK光电开关
vcc:
电源输入
out:
检测信号输出端
gnd:
接地
1.3相关参数
1.3.112864液晶相关参数
1、显示容量:
128x64
2、芯片电压:
3.3-5.5v
3、模块最佳工作状态:
5.0v
4、与MCU接口:
8位或4位并行/3位串行
5、工作温度:
-10~60度
1.3.2nRF905无线收发模块相关参数
1、工作电压范围:
DC1.9V‐DC3.6V
2、采用GFSK调制,433Mhz开放ISM频段免许可证使用
3、170个频道,满足多点通讯和跳频通讯需求,实现组网通讯,TDMA‐CDMA‐FDMA
4、内置硬件8/16位CRC校验,开发更简单,数据传输可靠稳定
5、接收灵敏度达‐100dBm
6、收发模式切换时间<650us
7、最大发射功率10毫瓦,发射模式:
最大电流<30mA;接收模式:
电流12.2mA
8、内置SPI接口,也可通过I/O口模拟SPI实现。
最高SPI时钟可达10M
9、发射速率50Kbps,外置433MHz天线,空旷通讯距离可达300米左右.
11、低功耗,休眠电流2.5uA
1.3.3E18-D50NK光电开关
1、输出电流DC/SCR/继电器Controloutput:
100mA/5V供电
2、消耗电流DC<25mA
3、响应时间<2ms
4、指向角:
≤15°,有效距离3-50CM可调
5、检测物体:
透明或不透明体
6、工作环境温度:
-25℃~+55℃
7、标准检测物体:
太阳光10000LX以下白炽灯3000LX以下
第二章电路图设计
2.1单片机
2.1.18051单片机复位电路
图2-1-1复位电路
按键复位是通过RST经过电阻与电源相连接或利用RC微分电路产生的正脉冲来实现按键复位的。
且这个电路具备自动复位的功能。
2.1.28051单片机外部晶振电路
图2-1-2时钟电路
如图引脚XTAL1和XTAL2之间跨接晶体振荡器和微调电容,可以和芯片内部的振荡器构成一个稳定的自激振荡器,这就是单片机的时钟电路,这种方式称之为内部时钟源方式,电容器主要的作用是帮助振荡器起振,且电容器大小对振荡频率有微调作用,典型值C1=C2=30PF.
2.2检测及发射电路图设计
2.2.1电路图设计
单片机
E18-D50NK
nRF905
图2-2-1检测机发射电路图
2.2.2电路图介绍
如图P1口与P2口接有漫反射式光电开关,P0口接有nRF905无线收发模块,在使用P0口时一定要外接上拉电阻,当漫反射式光电开关检测到有物体靠近时漫反射式光电开关会把信号传给单片机,单片机接收到信号时进行处理,然后用nRF905无线模块将信号发送出去。
2.3接收及显示电路图设计
2.3.1电路图设计
单片机
nRF905
图2-3-1接受信息并显示电路图
2.3.2电路图介绍
如图P1口接有nRF905无线收发模块,P0口接有12864液晶信号输入端,P2.0口-P2.3口接有12864液晶控制端,P2.4口接有蜂鸣器控制端。
当接收到有信号传来时,nRF905无线收发模块将信号发送到单片机中,一旦有信号进入蜂鸣器就会报警,此时单片机也会对信号进行处理,判断报警地点,然后进行液晶显示。
第三章程序设计
3.1中断介绍
3.1.1实现中断响应和中断返回
当CPU收到中断请求后,能根据具体情况决定是否响应中断,如果CPU没有更急、更重要的工作,则在执行完当前指令后响应这一中断请求。
CPU中断响应过程如下:
首先,将断点处的PC值(即下一条应执行指令的地址)推入堆栈保留下来,这称为保护断点,由硬件自动执行。
然后,将有关的寄存器内容和标志位状态推入堆栈保留下来,这称为保护现场,由用户自己编程完成。
保护断点和现场后即可执行中断服务程序,执行完毕,CPU由中断服务程序返回主程序,中断返回过程如下:
首先恢复原保留寄存器的内容和标志位的状态,这称为恢复现场,由用户编程完成。
然后,再加返回指令RETI,RETI指令的功能是恢复PC值,使CPU返回断点,这称为恢复断点。
恢复现场和断点后,CPU将继续执行原主程序,中断响应过程到此为止。
3.1.2实现优先权排队
通常,系统中有多个中断源,当有多个中断源同时发出中断请求时,要求计算机能确定哪个中断更紧迫,以便首先响应。
为此,计算机给每个中断源规定了优先级别,称为优先权。
这样,当多个中断源同时发出中断请求时,优先权高的中断能先被响应,只有优先权高的中断处理结束后才能响应优先权低的中断。
计算机按中断源优先权高低逐次响应的过程称优先权排队,这个过程可通过硬件电路来实现,亦可通过软件查询来实现。
定时器初值与中断周期 时钟中断无需过于频繁,一般取20mS(50Hz)即可。
如需要百分之一秒的时基信号,可取10mS(100Hz)。
这里取20mS,用定时器T0工作于16位定时器方式(方式1)。
T0的工作方式为:
每过一个机器周期自动加1,当计满0FFFFh,要溢出时,便会产生中断,并由硬件设置相应的标志位供软件查询。
即中断时比启动时经过了N+1个机器周期。
所以,我们只要在T0中预先存入一个比满值0FFFFh小N的数,然后启动定时器,便会在N个机器周期后产生中断。
这个值便是所谓的“初值”。
下面计算我们需要的初值:
时钟为6MHz,12个时钟周期为一个机器周期,20mS中有10000个机器周期。
(10000)10=(2710)16,则0FFFFh-2710h+1=0D8F0h。
由于响应中断、保护现场及重装初值还需要7~8个机器周期,把这个值再加上7,即T0应装入的初值是0D8F7h。
每次中断进入后,先把A及W的值压入堆栈,然后即把0D8F7h装入T0。
设置一个单元,每次中断加1 我们可以取内部RAM中一个单元,取名为INCPI(IncreasePerInterrupt),在中断中,装完T0初值后,用INC INCPI指令将其加一。
从这个单元中,无论中断程序还是主程序,都可以从中获得20mS的1~256之间任意整数倍的信号。
例如:
有一段向数码管送显的程序,需要每0.5秒执行一次以便刷新显示器,便可以设一单元(称为等待单元)W_DI,用/MOVA,INCPI/ADDA,#25/MOVW_DI,A/语句让其比当前的INCPI值大25,然后在每次中断中检查是否于INCPI值相等。
若相等,说明已过了25个中断周期,便执行送显程序,并且让W_DI再加上25,等待下个0.5秒。
我们可以设置多个等待单元,以便取出多个不同的时基信号。
让中断程序在每次中断时依次查询各个等待单元是否与INCPI相等,若相等,则执行相应的处理,并重新设置该等待单元的值,否则跳过。
例如:
用0.5秒信号刷新或闪烁显示器,用1秒信号产生实时时钟,或输出一定频率的方波,以一定间隔查询输入设备等。
3.1.3中断的使用
1、开全局中断51是EA=1
2、对应中断使能比如定时器1ET1=1、定时器0ET0=1
3、定时器工作方式配置:
有三种方式双8位定时16位定时还有捕捉方式定时器2有4种,具体不介绍了TMOD是定时器0和定时器1方式配置的寄存器TMOD=0x01,定时器0工作在方式1(16位计数)
4、打开定时器TR0=1;定时器1打开是TR1=1;
5、中断服务程序:
就是定时时间到,你要处理的事务
3.212864应用说明
1、使用前的准备
先给模块加上工作电压,再按照下图的连接方法调节LCD的对比度,使其显示出黑色的底影。
此过程亦可以初步检测LCD有无缺段现象。
2、字符显示
带中文字库的128X64-0402B每屏可显示4行8列共32个16×16点阵的汉字,每个显示RAM可显示1个中文字符或2个16×8点阵全高ASCII码字符,即每屏最多可实现32个中文字符或64个ASCII码字符的显示。
带中文字库的128X64-0402B内部提供128×2字节的字符显示RAM缓冲区(DDRAM)。
字符显示是通过将字符显示编码写入该字符显示RAM实现的。
根据写入内容的不同,可分别在液晶屏上显示CGROM(中文字库)、HCGROM(ASCII码字库)及CGRAM(自定义字形)的内容。
三种不同字符/字型的选择编码范围为:
0000~0006H(其代码分别是0000、0002、0004、0006共4个)显示自定义字型,02H~7FH显示半宽ASCII码字符,A1A0H~F7FFH显示8192种GB2312中文字库字形。
字符显示RAM在液晶模块中的地址80H~9FH。
字符显示的RAM的地址与32个字符显示区域有着一一对应的关系,其对应关系如下表所示。
80H81H82H83H84H85H86H87H
90H91H92H93H94H95H96H97H
88H89H8AH8BH8CH8DH8EH8FH
98H99H9AH9BH9CH9DH9EH9FH
3、图形显示
先设垂直地址再设水平地址(连续写入两个字节的资料来完成垂直与水平的坐标地址)
垂直地址范围AC5...AC0
水平地址范围AC3…AC0
绘图RAM的地址计数器(AC)只会对水平地址(X轴)自动加一,当水平地址=0FH时会重新设为00H但并不会对垂直地址做进位自动加一,故当连续写入多笔资料时,程序需自行判断垂直地址是否需重新设定。
GDRAM的坐标地址与资料排列顺序如下图:
4、应用说明
用带中文字库的128X64显示模块时应注意以下几点:
①欲在某一个位置显示中文字符时,应先设定显示字符位置,即先设定显示地址,再写入中文字符编码。
②显示ASCII字符过程与显示中文字符过程相同。
不过在显示连续字符时,只须设定一次显示地址,由模块自动对地址加1指向下一个字符位置,否则,显示的字符中将会有一个空ASCII字符位置。
③当字符编码为2字节时,应先写入高位字节,再写入低位字节。
④模块在接收指令前,向处理器必须先确认模块内部处于非忙状态,即读取BF标志时BF需为“0”,方可接受新的指令。
如果在送出一个指令前不检查BF标志,则在前一个指令和这个指令中间必须延迟一段较长的时间,即等待前一个指令确定执行完成。
指令执行的时间请参考指令表中的指令执行时间说明。
⑤“RE”为基本指令集与扩充指令集的选择控制位。
当变更“RE”后,以后的指令集将维持在最后的状态,除非再次变更“RE”位,否则使用相同指令集时,无需每次均重设“RE”位.
3.3nRF905时序说明
3.3.1发送流程
1.当微控制器有数据要发送时,通过SPI接口,按时序把接收机的地址和要发送的数据送传给nRF905,
SPI接口的速率在通信协议和器件配置时确定;
2.微控制器置高TRX_CE和TX_EN,激发nRF905的ShockBurstTM发送模式;
3.nRF905的ShockBurstTM发送:
l射频寄存器自动开启;
l数据打包(加字头和CRC校验码);
l发送数据包;
l当数据发送完成,数据准备好引脚被置高;
4.AUTO_RETRAN被置高,nRF905不断重发,直到TRX_CE被置低;
5.当TRX_CE被置低,nRF905发送过程完成,自动进入空闲模式。
ShockBurstTM工作模式保证,一旦发送数据的过程开始,无论TRX_EN和TX_EN引脚是高或低,发送过程都会被处理完。
只有在前一个数据包被发送完毕,nRF905才能接受下一个发送数据包。
3.3.2接收流程
1.当TRX_CE为高、TX_EN为低时,nRF905进入ShockBurstTM接收模式;
2.650us后,nRF905不断监测,等待接收数据;
3.当nRF905检测到同一频段的载波时,载波检测引脚被置高;
4.当接收到一个相匹配的地址,地址匹配引脚被置高;
5.当一个正确的数据包接收完毕,nRF905自动移去字头、地址和CRC校验位,然后把数据准备好引脚置高
6.微控制器把TRX_CE置低,nRF905进入空闲模式;
7.微控制器通过SPI口,以一定的速率把数据移到微控制器内;
8.当所有的数据接收完毕,nRF905把数据准备好引脚和地址匹配引脚置低;
9.nRF905此时可以进入ShockBurstTM接收模式、ShockBurstTM发送模式或关机模式。
当正在接收一个数据包时,TRX_CE或TX_EN引脚的状态发生改变,nRF905立即把其工作模式改变,数据包则丢失。
当微处理器接到地址匹配引脚的信号之后,其就知道nRF905正在接收数据包,其可以决定是让nRF905继续接收该数据包还是进入另一个工作模式。
3.3.3节能模式
nRF905的节能模式包括关机模式和节能模式。
在关机模式,nRF905的工作电流最小,一般为2.5uA。
进入关机模式后,nRF905保持配置字中的内容,但不会接收或发送任何数据。
空闲模式有利于减小工作电流,其从空闲模式到发送模式或接收模式的启动时间也比较短。
在空闲模式下,nRF905内部的部分晶体振荡器处于工作状态。
nRF905在空闲模式下的工作电流跟外部晶体振荡器的频率有关。
3.3.4器件配置
所有配置字都是通过SPI接口送给nRF905。
SIP接口的工作方式可通过SPI指令进行设置。
当nRF905处于空闲模式或关机模式时,SPI接口可以保持在工作状态。
3.3.5SPI接口配置
SPI接口由状态寄存器、射频配置寄存器、发送地址寄存器、发送数据寄存器和接收数据寄存器5个寄存器组成。
状态寄存器包含数据准备好引脚状态信息和地址匹配引脚状态信息;射频配置寄存器包含收发器配置信息,如频率和输出功能等;发送地址寄存器包含接收机的地址和数据的字节数;发送数据寄存器包含待发送的数据包的信息,如字节数等;接收数据寄存器包含要接收的数据的字节数等信息。
3.4检测及发送信号程序
#include
#defineucharunsignedchar
#defineuintunsignedint
#defineWC0x00//写配置寄存器命令
#defineWTP0x20//写发送数据命令
#defineWTA0x22//写发送地址命令
sbitTX_EN=P0^6;//选择模式
sbitTRX_CE=P0^5;//使能芯片发送或接收
sbitPWR_UP=P0^4;//芯片上电
sbitMOSI=P0^2;//SPI输入
sbitMISO=P0^3;//SPI输出
sbitCSN=P0^0;//SPI使能
sbitSCK=P0^1;//SPI时钟
sbitCD=P0^7;//载波检测
sbitAM=P3^0;//地址匹配
sbitDR=P3^1;//接受或发送数据完成
ucharshu[16];//检测到的数据暂时放在此数组内
ucharcodecanshu[]={//nRF905参数设置
0x01,0x0c,0x44,0x20,0x20,0xe7,0xe7,0xe7,0xe7,0x58
};
voidmiao(uintx)//延时
{
uinti,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
voidinit()//nRF905初始化
{
CSN=1;//SPI使能禁用
SCK=0;//在输入数据或命令时要将时钟拉低
DR=1;//接受或发送数据完成
AM=1;//地址匹配
PWR_UP=1;//芯片上电
TRX_CE=0;//使能芯片接收
TX_EN=1;//选择模式
}
voidpeizhi()//寄存器设置
{
uchari;
CSN=0;//往nRF905输入数据或指令时,要将使能端用低电平
w
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 无线 多点 报警 系统 毕业设计