有关遥控发射、接收装置地文档.doc.doc.docx

  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
有关遥控发射、接收装置地文档.doc.doc

1、系统方案设计及论证1.1 设计任务与要求有1号、2号两套遥控发射、接收装置,其组成如图1.1.1左端1号所示:1、一般情况下A灯亮,B灯灭(通过继电器控制实现)2、当切换键按下时,1号、2号的接收端均能通过控制电路的作用使A灯灭,B灯亮,延时10秒后自动回到A灯亮,B灯灭的状态。3、在延时10秒未到时,只要手动键按下(单脉冲触发信号),均可使本套内的A灯亮,B灯灭,如切换键再次按下,仍可重复第2状态过程。4、1号、2号两套遥控发射、接收装置之间要求通信距离达到150-200米。5、要求体积小。图1.1.11.2 设计分析要成功实现设计任务与要求,系统必须具备以下功能:信号的发射、接收,手动按钮切换及无线遥控切换等功能。其主要电气系统可划分为:主从控制电路、信号的发射及接收端口、无线通信等基本模块。系统框图如1.2.1所示: 图 1.2.12、各模块方案论证2.1控制模块方案一:采用XC9000系列的FPGA。该种类器件具有并行处理能力,能快速的响应外部的各种数字信号,但在数字的乘除运算等数据处理方面不方便,而且芯片价格较昂贵。 方案二:采用单片机作为控制核心,单片机数学运算功能较强。在程序相互调用方面,处理方便灵活,性能稳定,适合实际应用。且单片机技术发展较为成熟,价格便宜。且本系统所要求功能较为简单 ,采用单片机控制更为方便灵活。基于以上分析,系统拟采用方案二。使用两片STC89C52RD单片机作为系统的控制器。2.2 无线通信方案一:采用NRF905无线通信模块,此模块功能齐全,可进行大量配置,包括通信通道(最多6通道)、发射功率、波特率设置等。但应用起来要耗费大量的单片机资源(占用多达14个单片机引脚),会导致控制程序过于复杂甚至影响定时的精度。方案二:采用迪菲无线串口模块,此模块具有两种工作模式,当选用普通模式时,无需进行任何配置,只需与单片机的串口线直接连接(只需占用单片机2个引脚)并供电即可进行无线通信。用此模块开发项目能大大减少开发时间。鉴于此项目只需要单一、简单的通信方式即可满足设计要求,故采用方案二。2.3手动与切换控制本系统通过中断来控制手动与切换,单片机接收信号后,通过内部处理给继电器输出不同电平,从而通过继电器控制手动与切换情况下不同的灯亮情况。2.4 主从控制根据设计要求,本系统为无主从双机通信系统。无主从双向通信的特点是两个单片机处在平等的地位,两个单片机均可随时提出申请,向对方发送数据,当然也可通过简单的接口协议从对方读取数据。在无主从双向通信中,由于单片机(1)与单片机(2)没有主从关系而处在平等位置,所以单片机B与单片机A的数据接收发送流程完全相同。3、系统的组成与实现单片机都带有串口,利用串口进行互连通信极为方便,其各种连接方式在许多书籍和资料上都有介绍,在此不再重述。单片机的并行端口能相互进行数据通信。根据单片机端口内部结构的特点,这些端口可以发送无线数据,从而使两单片机之间通信接口的实现不用另外的硬件电路设备。基于这种情况,本系统设计成无主从双机通信模式。最终方案如1.4.1图所示(采用体积小、功能稳定的ZT11-5H继电器):图 1.4.1具体实现情况如下:通常情况下,A灯亮,B灯灭。若按下1号的切换按钮,此时1号的A灯灭,B灯亮,同时向2号发送信号,2号接收信号后,经过处理,发出切换电平,通过继电器控制使得A灯灭,B灯亮。若在上述情况下的延时时间内按下1号手动按钮,则使1号的A灯亮,B灯灭,但不向2号发送信号。由于本系统为无主从传输,故由2号发出信号的情况同上述相同。4、系统的软件设计4.1设计流程主程序外部中断 0 外部中断 1定时器 0中断 串口中断图 4.1.14.2 系统程序#include reg52.h#define uchar unsigned char#define uint unsigned intsbit p20=P1^0;sbit p32=P3^2;sbit p33=P3^3;uchar byte,n=0;void timer_ini(){EX0 = 1;//允许总中断中断,使能 INT0 外部中断EX1 = 1;//使能 INT1 外部中断TCON = 0x00;//触发方式为电平触发TMOD|=0x21;//定时器1工作方式2,定时器0工作方式1TH1=0xfd;TL1=0xfd;//设置波特率为9600TH0=0x4c;TL0=0x00;//定时50msTR1=1;TR0=1;//开定时器SCON=0x40;//串口工作方式1REN=1;//允许接收EA=1;//开总中断ET1=1;ET0=0;//关定时器0,开定时器1ES=1;//开串口中断IP=0x15;//设置中断优先级}void delay(uint t){u

文档评论(0)

vshoulrengb3 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档