单片机里的无线接收与发送。.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
引言 本篇文章简单描述了对舰上16枚火箭进行遥控点火最基本的芯片通信调试 过程。有关的具体控制暂未公布,如果你对这个遥控设计感兴趣或有商业需求, 请联系作者,QQ使用的315芯片的资料: /f05p.htm /j04v.htm 遥控端信号发射部分的电路(测试用) YCC GXD315*5V|I4Q23933S YCC GXD 315 *5V| I 4Q 2 39 3 3S 4 37 6 35 7 ■g- 34 9 32 10 31 30 12 29 2S 27 1 \ 1(5 厶口 25 1? ?4 13 23 I Q 20 21 C-CPU ATS9SJ: 原理 第一块单片机p1.0 口输出脉冲方波提供给无线发射模块,无线发射模块将信 号以电磁波的形式传到无线接收模块。 无线接收模块会根据这个电磁波还原出脉 冲方波提供给第二块单片机,第二块单片机进行进一步的解算处理。 通信协议 根据这个原理和315M收发模块的特性。我决定以900us高电平和2000us底 电平表示1; 450us高电平和2000us低电平表示0。而8个1或0组成一个字 节。为了防止误码,所以在每个字节的前面加一个 2ms高电平和2ms低电平的起 始码。 单片机相关知识 ⑴用定时器产生制定脉宽的脉冲 ⑵用计数器计算接收到脉冲的宽度 GATE=时(门控方式),启动计数器的条件TR=1且INT0=1。所以利用这点, 可以测量外部脉冲的高电平宽度 单片机调试程序 第一步的调试不停发送1 ( 一个位 ) ,观察接收到的信号是否正常。 有示波 器的话非常方便直观,如果没有示波器,那么可以在单片机上接16个LED灯, 将TH0显示在P2 口的8个灯,TL0显示在P0的8个灯。比如收到脉宽 900us的 信号,那么TL0 TH0=1B,下排P2 口左边第二个和右边最后两个灯 亮,上排P0 口左边第一个亮。然而实验中发现实际接收到的脉宽比预计的平均 少2 0 us,但是这丝毫不会影响接收数据的正确性, 因为在这个协议中只要判断 TH0和TL0的高4位就足以识别是1或0 了发送程序关键部分如下。 略 第二步的调试发送一字节数据(8个位),并显示在P2 口上ORG 0000H AJMP MAIN ORG 0010H MAIN: MOV TMOD,#01H CLR C MOV R5,#08H aa: MOV A, acall send mov a, acall send mov a, acall send mov a,#1111b acall send ajmp aa send: MOV TH0,#00fcH MOV TL0,#0018H SETB P1.0 SETB TR0 JNB TF0,$ CLR P1.0 CLR TF0 MOV TH0,#00FCH MOV TL0,#0025H SETB TR0 JNB TF0,$ CLR TF0 SS: RLC A JC S1 AJMP S0 S1: MOV TH0,#00feH MOV TL0,#003fH SETB P1.0 SETB TR0 JNB TF0,$ CLR P1.0 CLR TF0 MOV TH0,#00FCH MOV TL0,#0025H SETB TR0 JNB TF0,$ CLR TF0 AJMP OUT s0: MOV TH0,#00ffH MOV TL0,#001fH SETB P1.0 SETB TR0 JNB TF0,$ CLR P1.0 CLR TF0 MOV TH0,#00FCH MOV TL0,#0025H SETB TR0 JNB TF0,$ CLR TF0 ajmp out OUT: DJNZ R5,SS clr c mov a, mov r5,#08h ret DELAY: mov R0,#05Fh w_1: mov R1,#0fFh w_2: djnz R1,w_2 djnz R0,w_1 RET 接收端的电路(测试) 如果顺利,那么在接收芯片的数据输出端也会产生 900us脉宽的脉冲波。如 果没有示波器,那么怎么知道接受到信号的脉宽呢?我在 P2 口接了 8个LED 读取TH0 TL0里的数值,取反,然后依次在 P2上显示。比如900us脉宽对应 TH0=11B TL0对应位为1折亮,所以当显示TH0的时候最左边的两 个LED会被点亮,而显示TL0的时候从左往右:第三个和最后一个亮。但事实上 脉冲信号存在 20us 的误差。然而这丝毫不影响遥控的准确性, 因为我是取 900us 表示 1, 450us 表示 0,然后根据 8 个 1 或 0

文档评论(0)

2105194781 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档