基于单片机的无线电遥控系统正文及结论.docx
《基于单片机的无线电遥控系统正文及结论.docx》由会员分享,可在线阅读,更多相关《基于单片机的无线电遥控系统正文及结论.docx(39页珍藏版)》请在冰豆网上搜索。
基于单片机的无线电遥控系统正文及结论
第1章绪论
1.1本论文研究的背景及其意义
遥控是指对被控对象按照所预定的意图对其内部参数、工作状态等进行远距离操纵。
遥控技术在现代工农业生产、科研、国防等领域有非常广泛的应用。
随着现代科技的发展,它们的应用也越来越普遍。
遥控技术一般应用于操作者不能或难以到达受控对象的场合。
而对于移动式的受控对象,则更不得不使用遥控技术。
例如在恶劣环境下作业的机器,人难以到现场操纵,就必须使用遥控技术进行远距离操纵。
又如工厂里的行车、模型飞机、模型舰艇,乃至当代的无人驾驶飞机、宇宙飞船、无线电制造导弹等,这些移动式设施就更缺不了遥控技术了。
现代遥控技术也是十分普遍地应用于各类家用电器中,如电视遥控、电灯遥控、电风扇遥控、空调器遥控等,这类应用提高了家用电器的功能和档次,更重要的是给使用者带来极大的方便。
设有遥控功能的电视机,使用者不用离开座位,只需使用手持红外遥控器旧可以进行节目切换,以及对音量、对比度、亮度等的调节。
在这些应用中,操作者与受控者之间并非“遥”,也非“难以到达”,仅为方便而已,因此对遥控的定义,应该广义的理解为操作者没有直接对遥控对象进行操纵。
遥控的种类有很多。
若以遥控信息传送方式区别,可以分为有线遥控和无线遥控两大类,而无限遥控又包含了红外线遥控、超声波遥控和无线电遥控之类,有线遥控和无线电遥控可以达到很远的距离,而红外线和超声波遥控只能在十几米之内。
无线电遥控是使用无线电射频为载体来栽送遥控信息。
所谓射频,就是具有较强辐射能力的无线电频率,一般在几百kHz以上,通常也称为“高频”。
使用无线电射频传送遥控命令与红外或超声遥控有所不同,后二者遥控距离较近,而且具有方向性,特别是红外线的方向性强,不能跨越墙壁的阻挡,因此只能在小范围内,同一个房间内实现遥控操作,多用于家用电器的遥控。
本设计为基于51单片机的无线电遥控系统,使之能在多障碍物的条件下进行有效通信,并且能够控制两个接收机[14]。
1.2国内外本课题的研究现状
美国、日本、德国以及包括中国在内的很多国家对遥控技术这一课题进行了大量的研究并取得了显著的成果。
从遥控视距的角度来看,遥控技术发展经历了下面三个阶段:
视距遥控(LOS)、超视距遥控(ELOS)和远程无线遥控。
对于视距遥控,操作员不与机器直接接触,已位于作业区的危险范围外,通过直接观察、发送指令来控制各种设备,一般来说,其可靠遥控作业距离为几十米。
在视距遥控基础上发展起来的超视距遥控,虽然仍需要操作员靠近工作区作业,但通过其先进的数据传输手段和控制技术能够为操作员提供作业区的反馈信息来克服视距遥控的某些局限性,增强了操作员对设备的遥控控制能力(视距范围之外)。
1.3对选题的研究设想和试验方法
无线电遥控电路是利用无线电信号作为遥控指令来完成各种指定动作,按规定.业余频段有28.0~29.7MHz、50~54MHz、144~148MHz和420~448MHz等,频率愈高对器件的要求也就愈高。
随着各种专用遥控集成电路和无线电发射和接收专用集成电路的不断涌现,使许多复杂的遥控、遥测系统设计变得越来越多样化而且工作稳定性可靠。
无线电遥控系统包括两个最基本的模块:
无线发射模块、无线接收模块。
无线发射模块包括了控制电路及发射机。
控制者通过控制电路产生控制信号,再通过编码产生具有某些特征的、相互间易区分的电信号。
但是编码电路产生的指令信号都是频率较低的电信号,无法直接传送的遥控目标上去,还要将指令信号送到发射电路,使它载在高频信号上,即要经过调制电路调制以后才能由天线发射出去。
无线接收模块由接收机及受控电路组成。
接收机又包括高频部分及解调部分及译码电路。
由接收天线送来的微弱信号经接收机高频部分的选择和放大后,送到解调器。
解调后的是混在一起的各种指令信号,将这些信号送到译码电路,译码电路的工作就是对各种指令信号高进行鉴别,然后送到受控电路。
1.4设计的预期结果及意义
相对于红外遥控系统,无线电遥控系统能够穿透一般障碍物进行通信,并且没有方向的限制,非常适合于布局复杂的建筑物内的电器设备遥控。
本课题利用单片机设计一套无线电器控制系统,此系统由一个发射机和两个接收机构成。
课题预期目标:
1、传输距离不小于20m(在传输方向有障碍物的情况);
2、接收机可以控制继电器,达到控制强电的目的。
第2章方案总体设计与论证
2.1收发模块的选择
根据实验要求,该遥控系统传输距离不小于20m(在传输方向有障碍物的情况)。
因此载波频率及发射功率必须达到一定要求。
本设计采用的收发芯片是CC1100。
CC1100是一种低成本真正单片的UHF收发器,为低功耗无线应用而设计。
电路主要设定为在315、433、868和915MHz的ISM(工业,科学和医学)和SRD(短距离设备)频率波段,也可以容易地设置为300-348MHz、400-464MHz和800-928MHz的其他频率。
RF收发器集成了一个高度可配置的调制解调器。
这个调制解调器支持不同的调制格式,其数据传输率可达500kbps。
通过开启集成在调制解调器上的前向误差校正选项,能使性能得到提升。
CC1100为数据包处理、数据缓冲、突发数据传输、清晰信道评估、连接质量指示和电磁波激发提供广泛的硬件支持。
其主要操作参数和64位传输/接收FIFO(先进先出堆栈)可通过SPI接口控制。
在一个典型系统里,CC1150和一个微控制器及若干被动元件一起使用。
使用STC12C5410AD(20)单片机实现对CC1100的控制。
该单片机是1个时钟/机器周期8051单片机。
具有无法解密、低功耗、高速、高可靠性、强抗静电性、强抗干扰性等优点
2.2控制方式的选择[17]
单片机控制系统以键盘输入命令,使用STC12C5AS62单片机对控制对象进行控制,控制信号经调制放大,通过天线发射和接受,解调后就可以对目标进行全面而且细节的控制,如可以完成对继电器的控制以达到控强电的目的,也可以实现数码管显示数字功能。
STC12C5AS62是一个低电压,高性能CMOS8位单片机,片内含4kbytes的可反复擦写的只读程序存储器(PEROM)和128bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,内置功能强大的微型计算机的STC12C5AS62提供了高性价比的解决方案。
STC12C5AS62CPU使用5V供电,STC12C5410ADCPU及CC1100使用3.3V供电,它们都是低功耗,因此可以使用在发射机和接收机上,适合干电池供电,只需加一片3.3V的稳压片。
2.3调制解调方式的选择
对数字信号的而言,FM调制解调方式调制效果远好于其他调制方式。
而CC1100提供的2-FSK调制方式是比较理想的选择。
二进制频移键控(2FSK)调制是指传号(指发送“1”)时,发送一个频率的正弦波;空号(指发送“0”)时,发送另一频率的正弦波。
由于2-FSK传号及空号时采用两种不同频率的信号,因而不需要固定的比较电压。
即使在空号时也有足够的信号幅度,不至于因噪声产生误码,另外其自身就是一个调频系统,因此有较好的抗干扰能力,抗衰落性能好。
第三章51单片机原理及应用技术
3.1单片机的概述及应用领域
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统,目前大部分还会具有外存。
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。
导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化过程的实时控制和数据处理,广泛使用的各种智能IC卡,民用豪华轿车的安全保障系统,录像机、摄像机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。
更不用说自动控制领域的机器人、智能仪表、医疗器械了。
因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控制的科学家、工程师。
3.2STC12C5AS62单片机主要性能特点[15]
1、增强型8051CPU,1T,单时钟/机器周期,指令代码完全兼容传统8051单片机。
2、工作电压:
STC12C5A60S2系列工作电压:
5.5V-3.3V。
3、工作频率范围:
0-35MHz,相当于普通8051的0~420MHz。
4、用户应用程序空间8K/16K/20K/32K/40K/48K/52K/60K/62K字节......
5、片上集成1280字节RAM。
6、通用I/O口(36/40/44个),复位后为:
准双向口/弱上拉(普通8051传统I/O口);可设置成四种模式:
准双向口/弱上拉,推挽/强上拉,仅为输入/高阻,开漏 ,每个I/O口驱动能力均可达到20mA,但整个芯片最大不要超过55mA。
7、ISP(在系统可编程)/IAP(在应用可编程),无需专用编程器,无需专用仿真器 。
可通过串口(P3.0/P3.1)直接下载用户程序,数秒即可完成一片。
8、有EEPROM功能(STC12C5A62S2/AD/PWM无内部EEPROM)。
9、看门狗。
10、内部集成MAX810专用复位电路(外部晶体12M以下时,复位脚可直接1K电阻到地)。
11、外部掉电检测电路:
在P4.6口有一个低压门槛比较器 ,5V单片机为1.32V,误差为+/-5%;3.3V单片机为1.30V,误差为+/-3%。
12、时钟源:
外部高精度晶体/时钟,内部R/C振荡器(温漂为+/-5%到+/-10%以内)。
用户在下载用户程序时,可选择是使用内部R/C振荡器还是外部晶体/时钟。
常温下内部R/C振荡器频率。
5.0V单片机为:
11MHz~15.5MHz ;3.3V单片机为:
8MHz~12MHz。
精度要求不高时,可选择使用内部时钟,但因为有制造误差和温漂,以实际测试为准。
13、共4个16位定时器。
两个与传统8051兼容的定时器/计数器,16位定时器T0和T1,没有定时器2,但有独立波特率发生器。
做串行通讯的波特率发生器,再加上2路PCA模块可再实现2个16位定时器。
14、2个时钟输出口,可由T0的溢出在P3.4/T0输出时钟,可由T1的溢出在P3.5/T1输出时钟。
15、外部中断I/O口7路,传统的下降沿中断或低电平触发中断,并新增支持上升沿中断的PCA模块,PowerDown模式可由外部中断唤醒,INT0/P3.2,INT1/P3.3,T0/P3.4,T1/P3.5,RxD/P3.0,CCP0/P1.3(也可通过寄存器设置到P4.2),CCP1/P1.4(也可通过寄存器设置到P4.3)。
16、PWM(2路)/PCA(可编程计数器阵列,2路)
也可用来当2路D/A使用
也可用来再实现2个定时器
也可用来再实现2个外部中断(上升沿中断/下降沿中断均可分别或同时支持)
17、A/D转换,10位精度ADC,共8路,转换速度可达250K/S(每秒钟25万次)。
18、通用全双工异步串行口(UART),由于STC12系列是高速的8051,可再用定时器或PCA软件实现多串口。
19、STC12C5A60S2系列有双串口,后缀有S2标志的才有双串口,RxD2/P1.2(可通过寄存器设置到P4.2),TxD2/P1.3(可通过寄存器设置到P4.3)。
20、工作温度范围:
-40-+85℃(工业级)/0-75℃(商业级)。
21、封装:
PDIP-40,LQFP-44,LQFP-48 I/O口不够时,可用2到3根普通I/O口线外接 ,74HC164/165/595(均可级联)来扩展I/O口,还可用A/D做按键扫描来节省I/O口,或用双CPU,三线通信,还多了串口。
3.3STC12C5AS62端口
3.3.1端口概述
如图3.1所示:
1、VCC40脚接电源+5V。
2、VSS20脚接地也就是GND。
3、XTAL119脚和XATL218脚接振荡电路。
4、PSEN29脚片外ROM选通信号低电平有效。
5、ALE/PROG30脚地址锁存信号输出端/EPROM编程脉冲输入端。
7、EA/VPP31内/外部ROM选择端。
6、RST/VPD9脚复位信号输入端/备用电源输入端。
8、.P0口39-32脚双向I/O口。
9、P1口1-8脚准双向通用I/0口。
10、P2口21-28脚准双向I/0口。
11、P3口10-17脚多用途口。
图3.1STC12C5AS62单片机管脚图
3.3.2单片机并行口的结构分析[3]
1、输入结构
I/O口作为输入口时有两种工作方式,即所谓的读端口与读引脚。
读端口时实际上并不从外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回到端口锁存器。
只有读端口时才真正地把外部的数据读入到内部总线。
CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作。
2、端口的工作原理
(1)P0口
P0口的内部有一个2选1的选择器,它受内部信号的控制,如果处在I/O口工作方式,此时相当于一个“准双向口”(输入时须先将口置“1”),每根口线可以独立定义为输入或输出,但是须在口线上加上拉电阻。
如果将开关往另一个方向,则就是另一个功能——作为地址/数据复用总线用,此时不能逐位定义为输入/输出,它有两种用法:
当作数据总线用时,输入8位数据;而当作地址总线用时,则输出低8位地址。
(2)P1口
同P0不同P1口只能作为I/O口使用,但它的内部有一个上拉电阻,所以连接外围负载时不需要外接上拉电阻。
(3)P2口
P2口作为I/O口线用时,与P0口一样,当内部开关向另一个方向时,即作地址输出时,可以输出程序存储器或外部数据存储器的高8位地址。
并与P0口输出的低地址一起构成16位的地址线。
(4)P3口
P3口作为I/O口线用时,同其他的端口相同,也是准双向口;不同的是,P3口的每一位都有另一种功能,也叫第二功能,各位的功能如表3.1:
表3.1 P3端口功能
端口位
第二功能
注释
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
外部RAM写入选通信号
P3.7
RD
外部RAM读出选通信号
3.3.3单片机的特殊功能寄存器[4]
1、累加器ACC
通常用A表示,单片机在做运算时它的中间结果需要放在某个地方,这个地方就是累加器,它的名字很特殊,功能也很特殊,几乎所有的运算类指令都离不开它。
2、寄存器B
B寄存器在做乘法时用来存放一个乘数,在做除法时用来存放一个除数,不做乘除法时随便怎么用。
3、程序状态字PSW
它是一个很重要的寄存器,里面放了CPU工作时的很多状态,知道它就可以了解CPU当前的工作状态。
其中的7位其格式如表3.2:
表3.2 PSW格式
D7
D6
D5
D4
D3
D2
D1
D0
CY
AC
F0
RS1
RS0
OV
——
P
下面介绍其功能:
(1)CY;进位标志
当运算超过八位是向CY进位,CY置“1”。
(2)AC;半进位标志位
当D3位向D4位进位/借位时,AC=1,通常用于十进制调整运算中
(3)F0;用户自定义标志位
由编程人员自行决定什么时候用什么时候不用
(4)RS1、RS0;工作寄存器组选择位
其选择格式如表3.3:
表3.3 工作寄存器组选择格式
RS1
RS2
工作寄存器组
0
0
0组(00H-07H)
0
1
1组(08H-0FH)
1
0
2组(10H-17H)
1
1
3组(18H-1FH)
(5)OV;溢出标志位
表示结果是否超出所表示数的范围,溢出时OV=1
(6)P;奇偶检验位
每次运算结束后若A中二进制数1”的个数为奇数,则P=1,否则P=0
4、DPTRDPHDPL数据指针
数据指针是一个16位的寄存器。
我们可以用它来访问外部RAM,也可以访问外部ROM中的表格。
5、堆栈指针
符合“先进后出,后进先出”存放规则的现象,我们就把它叫做堆栈。
指针开始所指的位置并非就是数据存放的实际位置,而是数据存放的前一个位置。
6、电源控制寄存器PCON
单片机在以电池供电的系统中,有时为了节,电我们需要让它尽量降低电源的消耗。
所以单片机就有多种的工作方式,其中一种就是低功耗方式。
PCON寄存器就是用来控制单片机进入低功耗方式的。
3.4单片机的定时/计数器
单片机中的计数器除了可以作为计数用还可以用作定时器。
其实定时器和计数器是一个东西。
只不过计数器记录的是外界发生的事情,而定时器则是由单片机提供一个非常稳定的计数源,然后把计数源的计数次数转化为定时器的时间。
单片机的定时/计时器是由两个特殊功能寄存器设定的,它们分别是TMOD和TCON。
3.4.1特殊功能寄存器
1、特殊功能寄存器TMOD(89H)
表3.4 TMOD格式
用于T1
用于T0
GATE
C/T
M1
M0
GATE
C/T
M1
M0
从表3.4中可以看出,TMOD被分成两部份每部份4位分别用于控制T1和T0。
2、特殊功能寄存器TCON(88H)
表3.5 TCON格式
用于定时/计数
用于中断
TF1
TR1
TF0
TR0
IE1
IT1
IE0
IT0
从表3.5中可以看出,TCON也被分成两部份,高4位用于定时/计数器,低4位则用于中断。
3.4.2单片机定时/计数工作方式
1、工作方式0
定时/计数器的工作方式0称之为13位定时/计数器方式。
它由TL(0/1)的低5位和TH0/1的8位构成13位的计数器,此时TL0/1的高3位未用。
2、工作方式1
工作方式1是16位的定时/计数器方式,将TMOD的M1、M0设为“01”即可,其它特性与工作方式0相同。
3、工作方式2
工作方式2把TL0配置成一个可以自动恢复处置(初值常数自动重新装入)的8位计数器,TH0作为常数缓冲器,TH0由软件预置初值。
当TL0产生溢出时,一方面溢出标志TF0置”1”,又同时把TH0中的8位数据重新装入TL0中。
4、工作方式3
工作方式3对定时器T0和定时器T1是不相同的。
若T1设置为工作方式3,则停止工作(其效果与TRI=0相同),所以工作方式3只适用于T0。
3.4.3定时器/计数器的定时/计数范围
那么单片机的这四种工作方式的计数范围确定方法如下:
1、工作方式0
13位的定时/计数器工作方式因此最多可以计到2的13次方也就是8192次。
2、工作方式1
16位的定时/计数器工作方式因此最多可以计到2的16次方也就是65536次。
3、工作方式2和3
工作方式2和工作方式3都是8位的定时/计数器工作方式因此最多可以计到2的8次方,也说是256次。
3.5单片机的中断功能
3.5.1中断的原理
中断其实意思就是随时都有可能发生的一些不确定量的变化,比如机器在执行其它指令时,定时器突然溢出了就是一个中断,此时如果条件允许(开了中断并且中断优先级满足执行该中断),CPU就会先停下执行别的程序先去处理中断程序,处理完了再回到刚才断开的地方(称为断点)继续执行之前的程序。
此过程既是中断。
实现中断功能的硬件和软件系统称为中断系统。
能向CPU发出请求的事件称为中断源。
89C51单片机拥有5个中断源。
若多个中断源同时请求时,或CPU正在处理某件外部事件时,又有另一外部事件申请中断,CPU通常根据中断源的紧急程度,将其进行排列,规定每个中断源都有一个中断优先级,中断优先级可以由硬件排队或软件排队来设定,CPU根据其优先顺序处理中断请求。
89C51单片机拥有4个中断优先级。
3.5.2中断系统的结构
1、中断源
(1)外部中断
即外中断0和外中断1,经由外部引脚引入,在单片机的硬件上有两个引脚(12脚和13脚),名称为INT0和INT1(第二引脚功能P3.2、P3.3)。
特殊寄存器TCON中有四位与外中断有关:
A.IT0;中断0(INT0)的触发方式控制位
可由软件进行置位和复位,IT0=0,中断0为低电平触发方式;IT0=1,中断0为负跳变触发方式。
B.IE0;中断0(INT0)的中断请求标志位
当有外部的中断请求时,该位就会置“1”;在CPU响应中断后,该位就自动清“0”。
这是由硬件自动完成的。
IT1、IE1的用途和IT0、IE0是类似的。
(2)内部中断
即定时器0T0和定时器1T1中断,与外中断一样,它也是由TCON中的四位控制的。
TF0;定时器T0的溢出中断标记。
当T0计数器产生溢出时,由硬件置位TF0;当CPU响应中断后,再由硬件将TF0自动清“0”。
TF1与TF0类似。
(3)串行口中断
负责串行口的发送接收中断。
2、中断允许寄存器IE(A8H)
中断的允许或禁止是由片内可进行位。
寻址的8位中断允许寄存器IE来控制的,允许中断我们把它称为中断开放,不允许中断我们把它称为中断屏蔽。
如表3.6:
表3.6 IE格式
中断允许寄存器IE
EA
——
——
ES
ET1
EX1
ET0
EX0
(1)EA:
总中断允许开关。
它是个总开关,凡是要设置中断都得先通过它。
EA=1,开放所有的中断;EA=0,则所有中断都被禁止。
(2)ES:
串行口中断控制位。
ES=1,允许中断;ES=0,禁止中断。
(3)ET1:
定时/计数器1中断控制位。
ET1=1,允许中断;ET1=0,禁止中断。
(4)EX1:
外中断1中断控制位。
EX1=1,允许中断;EX1=0,禁止中断。
(5)ET0:
定时器0中断控制位。
ET0=1,允许中断;ET0=0,禁止中断。
(6)EX0:
外中断0中断控制位。
EX0=1,允许中断;EX0=0,禁止中断。
3、中断源优先级寄存器IP(D8H)
单片机执行中断的过程和生活中的中断有些类似,它也有一个自然优先级与人工优先级的问题。
那么单片机是如何来设置它们的呢?
这就要用到中断优先级寄存器IP,它也是一个可位寻址的8位寄存器。
五个中断源的自然优先级由高到低的排列顺序为外中断0--定时器0--外中断1--定时器1--串口。
中断如果我们不对其进行设置,单片机就按照此顺序不断的循环检查各个中断标志。
但有时我们需要人工设置高、低优先级,也就是说由编程者来设定哪些中断是高优先级,哪些中断是低优先级。
当然,由于只有两级,所以必然只有一些中断处于优先级别,而其他的中断则处于同一级别,处于同一级别的中断顺序就由自然优先级来确定。
既然可以设定人工优先级,那么它又是如何来设置的呢?
其实很简单,我们只要把IP寄存器的对应位置“1”就可以了。
如表3.7:
表3.7 IP格式
——
——
——
PS
PT1
PX