单片机在无线遥控模块中的应用.docx
《单片机在无线遥控模块中的应用.docx》由会员分享,可在线阅读,更多相关《单片机在无线遥控模块中的应用.docx(29页珍藏版)》请在冰豆网上搜索。
单片机在无线遥控模块中的应用
第1章绪论
课题背景
盆腔治疗仪采用物理的电、热、磁等生理作用,具有促进神经肌肉组织兴奋,局部血液循环和镇痛三种重要作用。
电疗是由盆腔治疗仪产生复杂的中低频电流,经过探头流向贴在腹部两边的电极。
电疗具有积极的生理作用。
热疗是由在探头内部的加热线圈对探头进行加热,并有探头内部的温度传感器,反馈温度,并经过单片机控制加热的温度,以实现盆腔炎的热疗疗法。
本课题是基于对已研发的盆腔炎治疗仪进行改进设计的情况下提出的。
盆腔治疗仪的改进包括温度控制改进、抗干扰改进、探头改进和增加无线遥控功能。
本文正是为解决盆腔治疗仪无线遥控功能,而提出了自己的设计方案。
对盆腔治疗仪进行改进,是针对多年来盆腔炎治疗仪在临床应用中存在的问题而提出的。
在温度控制部分,要力求达到高精度和稳定性,一方面避免温度跳变对病人造成不适,另一方面也是为更好控制治疗的效果。
在抗干扰方面,盆腔治疗仪的电疗输出电流是中低频电流,在治疗时人体感觉不到这种电流的通过。
如果有跳变高频的电流,则容易使运放电路产生高频冲击,不但人体能感觉到,就连按摩电机也造成探头的有明显的抖动。
探头的设计应该更加人性化,按照人体的生理结构设计,让病人用得更舒服。
无线遥控功能的增加,更是为方便盆腔治疗仪使用和提高盆腔治疗仪的智能化。
遥控器原理
遥控器的遥控功能实现,一般是以电磁波或红外线为数据传输介质,实现指令的传送功能。
遥控器发送的数据要经过加密编码,调制,载波输出信号。
接受模块,则进行相反的操作,提取出遥控器发射过来的命令,再由MCU执行相应的命令。
设计任务
对盆腔治疗仪增加无线遥控功能,要从仪器原有方案出发,考虑系统的兼容性,不能对仪器造成附加的干扰和影响。
也要从经济角度考虑,在达到功能要求下,尽量节省成本,为整体仪器提高经济竞争力。
同时从节能角度出发,实现遥控器长时间的工作。
设计的意义
由于盆腔治疗仪对盆腔炎的治疗,具有无副作用和后遗症等优点,在妇科中得到广泛的应用。
在治疗前,盆腔治疗仪的探头需要插入盆腔内,给女病人生理和心理上都造成一定的障碍,同时也给医生(特别是男医生)带来了许多的不便。
具有无线遥控功能的盆腔治疗仪在一定程度上解决了这些问题,医生可以在屏蔽墙后,控制整个治疗过程。
本文正是为解决此问题,提出了盆腔治疗仪遥控模块的解决方案。
第2章无线遥控原理
无线遥控,有基于电磁波和红外线两种。
红外遥控距离短,只能直线方向遥控。
电磁波的遥控具有衍射作用,能跨越一定的屏障,遥控时也不需要直线。
电磁波无线遥控,就是在发射端发射一定频率的电磁波,接收端只提取出相同频率的电磁波信号,并经过解码得到发射端的数据。
发射电路原理
遥控器发射电路,有振荡电路、高频放大器,调制方式一般采用ASK和FSK。
振荡电路可以采用电容、电感的振荡特性来设计,也可加入晶振来简单获得载波信号。
一般载波信号的频率在315MHZ-433MHZ,也可实现更高的频率。
通过高频放大器,高频信号获得更高的发射能量,提高发射距离。
图2-1
接收电路原理
接收电路里面主要有:
天线,滤波电路,解调电路等几部分组成。
图2-2
天线原理
2.3.1什么是天线
天线是一种导行波与自由空间波之间的转换器件或换能器。
其基本功能是发射和接收无线电波:
发射时,把高频电流转换为电磁波;接收时,把电滋波转换为高频电流。
衡量天线性能的一个指标是:
天线增益
计算公式:
天线主瓣宽度越窄,增益越高。
对于一般天线,可用下式估计其增益:
G(dBi)=10Lg{32000/(2θ3dB,E×2θ3dB,H)}
式中,2θ3dB,E与2θ3dB,H分别为天线在两个主平面上的波瓣宽度
32000是统计出来的经验数据
对于抛物面天线,可用下式近似计算其增益:
G(dBi)=10Lg{×(D/λ0)2}
式中,D为抛物面直径
λ0为中心工作波长
是统计出来的经验数据
对于直立全向天线,有近似计算式
G(dBi)=10Lg{2L/λ0}
式中,L为天线长度
2.3.2天线的种类
螺旋天线如:
图2-4
图2-4
盘卷天线如:
图2-5
图2-5
短的PCB短截线如:
图2-6
图2-6
环路天线如:
图2-7
图2-7
鞭型天线如:
图2-8
图2-8
第3章遥控方案设计
系统设计
遥控器部分框图如:
图3-1
图3-1
遥控接受部分框图如:
图3-2
图3-2
解决方案
(一)
采用玩具遥控芯片TX-2/RX-2编码解码芯片。
TX-2/RX-2是一对采用CMOS工艺制造的遥控专用集成电路.它具有功耗低,电源电压适用范围宽,工作稳定可靠,外围元件少等特点.TX-2是编码发射电路,RX-2是与TX-2配套使用的译码接收电路.
图3-3图3-4
TX-2/RX-2的典型的应用电路如:
图3-5/图3-6
图3-5
图3-6
发射模块:
采用带放大三极管S8050的发射电路模块,一个串行数据输入,另外两个引脚供电,发射距离远。
在不带电线的情况下也能有5-6m的距离,安装上电线发射距离达100m左右。
天线设计采用鞭型天线。
接受模块:
采用自带天线的接受模块,一般为印刷天线,这样可以减少电路的体积,同时减轻天线的调试工作。
解决方案
(二)
采用PT2262和PT2272的编码解码芯片。
PT2262和PT2272最多支持6位数据编码,一般支持4位数据编码。
PT2262和PT2272有三态地址编码功能,只有地址匹配时才能传输数据。
PT2262和PT2272的典型应用电路如:
图3-7图3-8
图3-7
图3-8
发射和接受模块采用<方案一>的设计。
发射模块天线,采用螺旋天线,以减少遥控器占用的空间。
方案讨论
基于以上的提出的两个方案,结合现实考虑。
在医疗应用中,同一个病房中可能有多台盆腔炎治疗仪,由于电磁波传播方向是全方位的,一个遥控器的遥控可能会对多台仪器产生影响。
假如没有地址配对,那么在多台仪器工作时,遥控将会变得混乱,所以使遥控器与仪器的一一配对显得非常重要。
基于以上考虑,采用第二种方案能达到现实的要求。
发射接受模块,应该要满足体积小,通信距离远,抗干扰性强等要求,所以应该采用有发射放大三极管的发射电路,外加天线设计;接受模块采用印刷天线的设计方法。
第4章系统实现
工具介绍
4.1.1Protus原理图与仿真
在程序编写过程中,不可能一次就能成功,程序的测试非常重要。
完全用硬件测试将会浪费很多的时间。
软件工具辅助测试,把程序的编写与具体硬件实现独立起来,加快了开发的速度。
程序测试原理图如:
图4-1
图4-1
所选取的器件包括:
单片机AT89C52,二态开关,LCD型号为:
LM016L等一些电阻、电容其他元件。
4.1.2Protel原理图与电路板制作
ProtelDXP2004在电路设计方面,提供了从原理图设计到PCB制作的完整的集合。
Protel在PCB制作方面的很灵活,不但有从原理图转到PCB的功能,也提供了自动布线的功能。
这更有利于我们实现遥控器的电路板制作,最重要的是能满足遥控器的键盘实现。
Protel中实现的遥控测试原理图如:
图4-2
图4-2
器件介绍
4.2.1发射集成电路
图4-3
【主要特点】
1、低功耗发射
2、声表稳频
3、无数据时发射电流为零
4、较宽的工作电压范围
【应用说明】
F05P采用SMT工艺,树脂封装,小体积,声表稳频,内部具有一级调制电路及限流电阻,适合短距离无线遥控报警及单片机无线数据传输。
F05P具有较宽的工作电压范围及低功耗特性,ASK方式调制。
F05P不能任意调整发射电流,单片机的数据可直接通过串口进入F05P的数据输入端。
F05P在无数据输入时单片机必须为低电平状态;F05P+在无数据输入时单片机必须为高电平状态。
F05P需要输入数据才能发射,数据信号停止,发射电流为零。
F05P对的数据脉冲发射效果较理想,过宽过窄的脉冲会引起调制效率下降,过调制或调制不足使收发距离变近。
F05P对直流电平及模拟信号不能发射。
如在数据位前加一些乱码可以抑制接收机的零电平燥声干扰。
若采用通用编码器2262,发射效果比单片机好,因为2262的数据无论怎么变,但脉宽是不变的,即使出现一点突发性的外界干扰,解码器的宽容性也会解码输出高电平。
而单片机则会出现数据错误。
所以单片机必须要工作在可靠的收发区域才能保证较低的误码率。
F05P有4个功能引脚,因为体积小,功耗低,无天线只能满足短距离使用,而天线对距离起着很大的作用,天线能否匹配,也是很关键,匹配良好的天线能增加几倍的距离,匹配不好的天线效果很差甚至会引起频率漂移。
天线的长度应取发射频率的1/4波长,可以用一根直径毫米,长度(433M)18厘米;(315M)24厘米的漆包线代替。
但天线必须拉直,指向无所谓。
短于1/4波长或弯曲的天线效果会很差。
F05P应垂直安装在印板边部,应离开周围器件5mm以上,以免受分布参数影响而停振。
FO5P发射距离与输入信号,发射电压,电池容量,发射天线及发射环境有关。
在障碍区由于折射反射会形成一些死区及不稳定区域,不同的收发环境会有不同的收发距离,F05P最佳有效工作距离为100M左右。
4.2.2接受集成电路
采用接受模块
图4-4
【主要特点】
⑴、特低功耗超再生接收模块
⑵、输出无噪声干扰
⑶、接收灵敏度高
【应用说明】
J04V工作电压范围:
;时工作电流在;3V时约;时约在。
J04V适合电池或线性电源,可采用电阻从5V取得,再加220UF电解电容滤波,电解电容的接地点必须靠近J04V的地,J04V输出能力可驱动一支发光二极管。
如果从6V以上的电压用电阻降压会引起工作电压的不稳定。
也可以从220V用电容降压整流滤波后用7805取得5V再用电阻降压滤波取得。
不适合用稳压管串联分压。
接收模块的电源直接影响到接收电路的稳定性,也是接收电路的主要干扰源,J04V不适合开关电源也不适合用实验室大整流电源做试验。
J04V不适合与发射用同一电源做试验。
J04V内部具有放大整形电路,只适合数据信号的接收而不适合模拟信号。
J04V在A处点可根据需要接一支470K-1M的电阻可使J04V输出更干净,但接收灵敏度会降低。
J04V应安装在印板边部并离开周围器件5mm以上,要垂直于线路板,否则会引起频率偏移。
如果器件较多还必须注意地线布局合理,如果有晶振或其他信号源,必须远离J04V,否则会引起很多无法排除的干扰致使接收电路无法正常工作。
J04V可外接天线提高接收灵敏度,天线长度不限。
4.2.3编码和解码芯片
图4-5图4-5
PT2262和PT2272是CMOS三态编码集成芯片,这组器件广泛用于各种遥控器件上,只需较低的+3V电压就能工作。
PT2262是发射编码芯片,PT2272是接收解码芯片,两者的地址必须配对,而且振荡电阻必须符合要求。
PT2262的TE端是发射允许端,接受低电平时,17脚DOUT端输出一串编码。
该串编码在载波上发送出去,被接收端接受和解调,输入PT2272的14脚,当地址配对时,VT解码有效端输出高电平,数据端口就会输出与PT2262发射端口一致的数据,从而实现遥控功能。
4.2.4单片机AT89S52
图4-6
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适合于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有一下功能:
8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时、计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0HZ静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。
掉电保护模式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
4.2.5LCD1602A显示原理
4.2.5.11602A引脚说明图
表4-1
4.2.5.21602A指令表
表4-2
序号
指令
RS
R/W
D7
D6
D5
D4
D3
D2
D1
D0
1
清显示
0
0
0
0
0
0
0
0
0
1
2
光标返回
0
0
0
0
0
0
0
0
1
*
3
置输入模式
0
0
0
0
0
0
0
1
I/D
S
4
显示开/关控制
0
0
0
0
0
0
1
D
C
B
5
光标或字符移位
0
0
0
0
0
1
S/C
R/L
*
*
6
置功能
0
0
0
0
1
DL
N
F
*
*
7
置字符发生存贮器地址
0
0
0
1
字符发生存贮器地址
8
置数据存贮器地址
0
0
1
显示数据存贮器地址
9
读忙标志或地址
0
1
BF
计数器地址
10
写数到CGRAM或DRAM
1
0
要写的数据内容
11
从CGRAM或DDRAM读数
1
1
读出的数据内容
4.2.5.3基本操作时序
表4-3
读状态
输入:
RS=L,RW=H,E=H
输出:
D0-D7=状态字
写指令
输入:
RS=L,RW=L,D0-D7=指令E=高脉冲
输出:
无
读数据
输入:
RS=H,RW=H,E=H
输出:
D0-D7=数据
写数据
输入:
RS=H,RW=L,D0-D7=数据,E=高脉冲
输出:
无
·指令1:
清显示,指令码01H,光标复位到地址00H位置
·指令2:
光标复位,光标返回到地址00H
·指令3:
光标和显示模式设置I/D:
光标移动方向,高电平右移,低电平左移S:
屏幕上所有文字是否左移或者右移。
高电平表示有效,低电平则无效
·指令4:
显示开关控制。
D:
控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:
控制光标的开与关,高电平表示有光标,低电平表示无光标B:
控制光标是否闪烁,高电平闪烁,低电平不闪烁
·指令5:
光标或显示移位S/C:
高电平时移动显示的文字,低电平时移动光标
·指令6:
功能设置命令DL:
高电平时为4位总线,低电平时为8位总线N:
低电平时为单行显示,高电平时双行显示F:
低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符
·指令7:
字符发生器RAM地址设置
·指令8:
DDRAM地址设置
·指令9:
读忙信号和光标地址BF:
为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。
·指令10:
写数据
·指令11:
读数据
4.2.5.4RAM地址映射图
控制器内部带有80×8位(80字节)的RAM缓冲区,对应关系如:
图4-7
图4-7
键盘编码
由于PT2262芯片只采用了4位的数据传输,一共可以传送2^4-1个指令,必须对这4路数据进行编码并分配相应的指令。
表示按下启动按钮。
按下停止按钮
强度上升一度
强度下降一度
时间上升一分钟
时间下降一分钟
疗程上升一
疗程下降一
天数上升一
天数下降一
键盘面板设计如:
图4-8
图4-8
系统构架
图4-9
程序实现
程序流程图如:
图4-10
图4-10
系统初始化:
包括LCD1602A的初始化、开辟显示缓冲区、中断初始化、堆栈初始化等
显示菜单:
在LCD1602A显示屏上显示出仪器输出的参数菜单
显示数据:
显示缓冲区中的初始化数据
等待中断:
这里有两种中断,分别是INT0和内部定时中断。
INT0主要响应外部信号中断,定时中断主要是为蜂鸣器的输出而设置的中断。
更新数据:
主要是更新LCD显示缓冲区中的数据和LED的数据
设置定时中断:
为蜂鸣器输出终止作定时
蜂鸣器工作:
主要是从口输出
具体代码实现请参考附录:
源程序(有详细的注释)
第5章系统测试
无线发射与接受测试分为三个步骤:
编码发射模块和接受模块通信测试
单片机执行命令测试(软件仿真测试为主)
系统总体测试
测试工作,应该按部就班,因为前一步的结果往往会影响下一步的结果。
同时由简单的测试,到复杂的测试,再整合所有测试成果,才能实现复杂的系统。
无线发射接收测试
测试发射电路如:
图5-1
图5-1
测试接收电路如:
图5-2
图5-2
程序测试
程序测试,最好有单片机开发板,实现在线运行,跟踪单片机运行的每一步,从而找出程序中问题。
假如没有的话,也可考虑软件仿真测试。
本文采用软件仿真方式,进行程序的测试。
采用Protus软件实现单片机的仿真与程序的测试。
本课题程序测试步骤:
测试LCD1602初始化显示
测试初始化数据更新
测试中断
整体程序测试
系统总体测试
系统的总体测试,是在各个部分完成相应功能后的一个整合。
总体测试是要考虑系统各部分的兼容性,使各部分能协调工作。
本课题的总体测试就是把发射与接受模块,同单片机与LCD显示器整合起来。
系统总体测试原理图请参考附录:
遥控器电路图和接收部分电路图
致谢
本课题在方案设计阶段得到了余学飞老师的指导,使得课题明确了研究的方向和达到的目标。
在实施过程中,得到了刘先锋和吴萧博师兄的协助,解决了不少的疑难问题。
在此对他们表示感谢!
参考文献
【1】余学飞·无线传送技术在医疗仪器设计中的应用·医疗卫生装备·2007年第28卷第2期:
14-18
【2】李广第朱月秀冷祖祁·单片机基础(第三版)·北京·北京航空航天大学出版社·
【3】余周军·ProtelDXP使用教程·北京·中国铁道出版社·2003
【4】刘国权韩晓东·ProtelDXP电路原理图设计指南·北京·中国铁道出版社·2004
【5】天线设计原理·【6】李坚·PT2262、PT2272芯片应用[J]·现代通信·1997
(2)·28-29.
【7】陈国华·无线电发射/接收IC模块应用综述[J]·国外电子元器件,1997
(2)·36-38.
【8】李冰·利用编、译码实现状态量的无线传送[J]·应用科技·2006
(1)·49-51.
【9】吴文佳·PT2262/PT2272编解码IC在无线智能报警系统中的应用[J]·世界电子元器件·2004
【10】林凌.新型单片机接口器件与技术[M].西安:
西安电子科技大学出版社,2005.
【11】刘宜胡学龙顾庆明•基于PT2262/PT2272的机器人遥控系统的设计•国外电子测量技术•2007
附录
遥控器电路
接收部分电路图
源程序
;1602A.........................................................................
;中断响应子程序,主要判断遥控发送过来的命令,并执行相应的动作.
;1、表示按下启动按钮。
.
;2、按下停止按钮.
;3、强度上升一度.
;4、强度下降一度.
;5、时间上升一分钟.
;6、时间下降一分钟.
;7、疗程上升一.
;8、疗程下降一.
;9、天数上升一.
;10、天数下降一.
;...........................................................................
;显示说明:
.
;.
;1、强度显示3位,显示地址分别是:
c1H\c2H\c3H.
;2、时间占4位,显示地址分别是:
c5H\c6H\c7H\c8H.
;3、疗程占2位,显示地址分别是:
cAH\cBH.
;4、天数占2位,显示地址分别是:
cDH\cEH.
;中断子程序的执行,判断接受到的命令,并更新数据和显示数据.
;...........................................................................
exint0:
SETB;蜂鸣器开始工作
mova,p2;读取接收到的数据
anla,#0fh
cjnea,#1,no2;根据命令执行相应的操作
;执行启动命令操作放于此
mov34h,#1
jmpnext
no2:
cjnea,#2,no3
;执行停止命令命令操作放于此
mov34h,#2
jmpnext
no3:
CJNEa,#3,no4
mov34h,#3
inc30h
jmpnext
no4:
CJNEa,#4,no5
mov34h,#4
dec30h
jmpnext
no5:
CJNEa,#5,no6
mov34h,#5
inc31h
jmpnext
no6:
CJNEa,#6,no7
mov34h,#6
dec31h
jmpnext
no7:
CJNEa,#7,no8
mov34h,#7
inc32h
jmpnext
no8:
CJNEa,#8,no9
mov34h,#8
dec32h
jmpnext
no9:
CJNEa,#9,no10
mov34h,#9
inc33h
jmpnext
no10:
CJNEa,#10,next
mov34h,#10
dec33h
next:
acalldisplay2
calldisLED
movth0,#0
movtl0,#0
SETBTR0;启动定时器0
RETI
;显示LED子程序
disLED:
MOVA,34H
MOVDPTR,#num
movca,@a+dptr
movp0,a
RET
;定时器0中断子程序
time0:
callDELAY400MS
clr
reti
;显示缓冲区的内容
display2:
mova,30h
movr3,#0c1h
acalldisplay
mova,31h
movr3,#0c5h
acalldisplay
mova,32h
movr3,#0c9h
acalldisplay
mova,33h
movr3,#0cdh
acalldisplay
ret
;显示数据,参数:
要显示的数字到A中,显示的开始地址r3
display:
MOVB,#100
DIVAB
adda,#30h
MOVP1,r3;写入显示起始地址
ACALLENABLE;调用写入命令子程序
MOVP1,a;写入显示起始地址
ACALLenable2;调用写入命令子程序
MOVA,B
MOVB,#10
DIVAB
adda,#30