用单片机做的8通道无线遥控器.pdf

上传人:罗晋 文档编号:5657261 上传时间:2020-07-20 格式:PDF 页数:3 大小:234.49KB
返回 下载 相关 举报
用单片机做的8通道无线遥控器.pdf_第1页
第1页 / 共3页
用单片机做的8通道无线遥控器.pdf_第2页
第2页 / 共3页
用单片机做的8通道无线遥控器.pdf_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《用单片机做的8通道无线遥控器.pdf》由会员分享,可在线阅读,更多相关《用单片机做的8通道无线遥控器.pdf(3页珍藏版)》请在三一文库上搜索。

1、2 D口 8 。 口 1总第 5 44 期 本文用A T 8 9 C 2 0 5 l 单片机和无线收发模块组件制作了 一 个 8 通道无线遥控器,见图 1 。相当于实现了8 位数据的 无线传送 ,是单片机串 口 通信与无线收发模块组件配合使 用 的一个实用 电路 。用无线收发模块实现无线遥控要与 P T 2 2 6 2 7 2 、MC1 4 5 0 2 6 2 7等编译码集成电路配合使用 , 一 般最多可实现4 路或6 路的无线遥控, 而通过应用单片机 的I 0口 可 以实现 8 路或 l 6 路的无线遥控,而且实现的效 果和专用的编码译码集成电路一样稳定 ,不会出现乱码现 象。 由于用单片机

2、的成本相对要高些, 所 以不是说该 电路能 圈 1 完全取代专用的编译码集成电路 ,但是在要求被遥控 的对 象较多时可 以采用本文的电路。 本 电路主要是通过软件编程滤除无线接收模块的干扰 ( 超再生接收电路本身的间歇振荡信号) 见图2 及单片机的 时钟振荡电路产生的谐波分量干扰 ( 用频谱分析仪可 以看 到) 见图3 。 从而使得单片机电路和无线收发模块组件可以 很好地结合起来。 遥控距离取决于无线收发模块。 本人制作 用的 3 l 5 MHz 收发模块型号为 T DL - 9 9 2 1( 接收模块) 、 : I 一 _ _- l l l l 。 I i 1 f j i f i 1 : j

3、 j l t _ 一 一 簿形攀摩: T 0 0 图 2 def i ne( write _ LCD _c o m m a n d ) ; L C D写j 旨 令 ( CLR RW CLR RS SETB E MOV P0 , A ) 在 程 序 中就 可 以 使 用 这 个 宏 , 使 用 时 只 要 写 wr K e _ LC D _ c o mma n d即可,如图 7 所示。 由于宏是直接参与编译的,也就是在编译的时候宏所 定义的子程序将直接替代宏名编译 , 因此 , 笔者不建议新手 们使用宏。 以上就是笔者 的一点实际经验 ,在开发中靠着这些方 法偷了些小懒 , 愿这篇文章能起到抛砖

4、引玉的作用。 本期杂 志的配刊光盘 中附有以上几种方法做的库文件实例,以便 大家同我共懒之。 使用时, 在 了解所 附的库文件的功能的基 础上 , 若在 以后的工程 中要用到所提供 的库文件, 可直接在 C 语言程序文件中使用#i n c l u d e “ 库文件名” 或者 #i n c l u d e 加载库文件。 但有一点须注意 : 如果使用# c l u d e“ 库文件名”加载就表示该文件位于 i n c l u d e子目录 中; 如果被包含的文件存在当前的工作 目录中时, 就须使用 #i n c l u d e 加载了。一切 O K,就可以放心地写 自己的算法处理程序了。 回 图

5、 3 T D L - 9 9 1 2( 发送模块) 。实际空旷地测试距离可达 1 5 0 多 米。若更换大功率的收发模块可以实现更远距离的遥控。 硬件电路原理 图4 、图5 所示分别为发射 电路和接收电路,电路中以 8 个发光二极管表示遥控的对象, 如果是控制电器设备的开 与关, 只要对接收端单片机 P 1 口输出的脉冲信号进行处理 即可 , 本文就不做介绍了。图 1 中P 1 0 - P 1 7 作为 8 个按 键的输入端, 每个按键占用一条数据线, 当其中任意一个或 多个按键被按下时它所对应的数据线的电平变为低 电平。 单片机将读取P 1 口的数据并将这 8 位并行数据送到发送缓 冲区S

6、B U F装载并由T X D ( P 3 I )串行数据输出引脚送入 3 1 5 MH z 无线发射模块数据输入端 D A T A,将数据发送出 去。图2 中3 l 5 MH z 无线接收模块的数据输出端D A T A脚 直接与R X D ( P 3 0 )串行数据接收引脚相连,无需将接收 模块的信号进行放大再给串口输入端,由于接收模块输出 f) 螺 I I I CI AT8 9 ( 2 2 0 5 1 VC C Rs T ) -AI 2 I 1 G ND 2 I C I 3 0 p 1 M PI 一 ( TX D ) P3 1 Rl 6 l k 发射电路 一 C2 3 0 p + l 2 V

7、 3 l 5 赶 z 无线发射模块 IV C C f DA T A ANT2 G N D 1 日 I毛 电 图 4 4 8 X 5 1 0 口 口 蝽 幽 口 口 咝 c 卜 _ 出 口 口卜_ R5 4 7 k I C2 P 1 0 P I 1 P l l2 Pl l3 P1 4 Pl l5 P1 5 Pl 7 接收电路 2 千 C 6 30 p l 卜 - - - 1 + 5 v DAT A VCC A NTI 3 l 5 z G ND无线接收模块 圈 5 的电平能满足单片机 串口的电平要求。单片机将送来的数 据进行处理最后送到P 1 口, 相应的发光二极管发光。接收 电路P 1 口的输出

8、信号为瞬态暂留信号, 即发射按键断开后 控制的信号便消失,暂留的时间取决于软件中的延时子程 序。由于 A T 8 9 C 2 0 5 1 单片机 P 1 口片内输出缓冲电路能够 吸人 2 0 mA的电流,因此可以直接驱动发光二极管,R 8 R1 5 为 5 1 0 Q的限流电阻。为了得到精确的波特率,单片 机系统选用 1 1 o 5 9 2 MHz 的晶振。 P 1 0 与P I 1 分别是片内 的模拟比较器的正负输入端, 在使用时必须接上拉电阻。 图 6 为 A T 8 9 C 2 O 5 1 的引脚说明。 软件说明 串口采用 1 O 位异步通信方式 1 、波特率为2 4 0 0 的传输 速

9、率 , 若传输速率过高则接收数据不稳定, 会出现误码, 这 取决于无线收发模块的数据传输速率。 采用定时器T1 模式 2 作为波特率发生器。即T I 、 R I 都是受波特率T1 的溢出率 控制的。数据发送和接收都采用查询方式。 数据发送原理是通过查询 T I ( 发送中断标志位) 的值 , 判断发送 是否结束,只要 T I 为 “ 0 ”就继续 查询 , 直到T 1 为 “ 1 ”才表示数据 弋 厂 一 RS T P亡 l 2 O VCC ( R X D ) P 3 + O 亡 2 l 9 P l , 7 ( T X D) P 3 1 亡 3 l 8 P I 6 X TAL 2 匕 4 1

10、7 P1 5 X T A L 1 5 蚤 1 6 P I 4 O N T O ) P 3 2 亡 6 蠹 1 5 P l 3 ( I N T I ) P 3 3 7 l 4 P I 2 ( T o ) P 3 4 r 8 l 3 3P 1 1 A I N1 ) ( T 1 ) P 3 5 9 l 2 丁P l 0 ( A I N0 ) GND亡 l O l 1 P 3 7 图 6 仇 ;3 1 l T IJ =J一 X x 胁 附裹 麟 黼 鏊 9 6 0 0 l 1 0 5 9 2 0 2 FDH 4 8 0 0 l 1 0 5 9 2 0 2 FAH 2 4 0 o l 1 0 5 9 2

11、 0 2 F4 H 1 2 0 0 l 1 0 5 9 2 0 2 E8 H 已发送结束 ,发送完毕后由指令 CL R TI 将 TI 清零,然后进入下 一 组数据的发送 。发送流程 图见 图 7 。 数据接收原理同上 ,也是查 询 R I ( 接收中断标志位 ) 的值 , 为 “ 0 ”则数据未接收完毕, 需继续查 询 ,若为 “ l ”则表示数据接收完 毕, 此时由指令 C L R RI 将该位清 零 , 然后进入接收下组数据。 接收 流程图见图8 。 在程序流程 图中需重点说 明 一 下的就是关于 “ 识别码”的问 题。 接收电路一上电, 通过示波器 观察会发现 3 1 5 MHz 无线

12、接收模 块的数据输出端有杂波 ( 无线接收模块的超再生电路本身 所产生的间歇振荡电压信号,见图2 ) ,该信号直接进入 了 单片机串行口中。如果在程序中不加入软件编程滤 除杂波 这一步则会出现乱码现象 ,为了排 除干扰引入了自己定义 的 “ 识别码” 。 “ 识别码” 不同于奇偶校验码 , 识别码实际上 是一些特定的数据 , 如从十六进制中的0 0 F F 中任意取的 数值做为密码 。 即在正确的数据未发送前, 先发送一些 “ 特 定的数据” 接着再发送正确的数据。 而在接收端则是先将接 收到的数据进行校验是否是 “ 特定的数据” , 是则把正确的 数据送到输出端, 不是则不输出数据且返回继续

13、校验。 这一 识别码不仅给按键加 了密还消除间歇振荡信号的干扰 ,起 到一举两得的功能。 本程序 中先发送出4 个识别码, 接着再 发送P1 口的按键数据。在接收程序 中的识别码和发送程序 中的码是一样的,然后单片机通过检验所接收到的数据是 否与识别码一致,是则将数据发给接收端的P1口,否则重 新接收并检验数据 , 如此循环 。 从而保证了接收数据的正确 和可靠性及稳定性。 信号波形见图9 。 程序中无需加入按键 延时消抖程序。 注意事项 在制作和调试过程 中要特别注意的问题 :程序中接收 与发送的单片机的波特率必须相同,如果读者换用了传输 速率较高的收发模块 ,则可参考附表的数值对波特率进行

14、 修改。 色 口口 B 口 1总第 5 4 4期 如果想更换识别码要注意发送和接收的识别码的顺序 要一致如发送端第一个识别码的数值为 3 F H,那么在接收 端的程序 中的第一个校验识别码的数值也必须是 3 F H。可 以说识别码越多数据越稳定 , 但不是越多越好 , 到底加多少 的识别码是合适的昵?这个就 留给读者到实践去测试吧 一 关于 3 1 5 M H z收发模块资料读者可 以访 问 WWW o ld z h a n g c o m了解更多。 圆 _: - J E ,_ - 己 , =l : l - 一 文 编辑部 2 0 0 7 年第 l 1 期 无线 电 杂志刊登了杜洋撰写的 “

15、单 片机入门制作”系列专题文章 ,许多读者来信来电表示非 常喜欢这种轻松幽默的文风。下一期本刊将继续刊登由杜 洋执笔的 “ 单片机编程魔法学校”专题文章,带你进入更 加有趣的单片机编程世界。主要内容如下: 1 构建编程思想 对于刚入 门的初学者来说, 一般是不了解单片机编程 的概念的。 这部分就用最简单通俗的语言介绍什么是程序, 什么是编程。 2 建立编程平台 介绍编写单片机程序所需要的硬件和软件,告诉你怎 样建立起编程的平台环境。演示从编程到把程序下载到单 片机的一般操作方法。 3 实际动手改写第一个程序 多数初学者都是从读别人的程序和改写程序开始编程 之旅的,这一节内容可让你对作者写好的汇编和 C语言两 个程序进行改写,从中找到编程的成功感觉和乐趣。 4 实际动手重新写一个程序 让读者用 C语言从头开始实际写一个程序,从中介绍 程序结构和习惯的重要性,这并不只是程序实际的功能, 而是讲程序源代码的格式和技巧。 5 从终点回到起点 教育的目标是有一天可以不教。 在这一节作者总结自己 的经历和感受, 介绍了从 “ 魔法学校”毕业后的你怎样在网 络环境下自学和与他人交流, 助你往更广阔的世界进发 国 毛 屯! 田

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1