|
|
大家好,通过以前的学习,我们已经对51单片机综合学习系统的使用方法及学习方式有所了解与熟悉,学会了数字温度传感器DS18B20的基本知识,体会到了综合学习系统的易用性与易学性,这一期我们将一起学习无线电遥控的基本原理与应用实例。 先看一下我们将要使用的51单片机综合学习系统能完成哪些实验与产品开发工作:分别有流水灯,数码管显示,液晶显示,按键开关,蜂鸣器奏乐,继电器控制,IIC总线,SPI总线,PS/2实验,AD模数转换,光耦实验,串口通信,红外线遥控,无线遥控,温度传感,步进电机控制等等。
上图是我们将要使用的51单片机综合学习系统硬件平台,如图1所示,本期实验我们用到了综合系统主机、200米无线遥控器,无线接收板,综合系统其它功能模块原理与使用详见前几期《电子制作》杂志及后期连载教程介绍。 PT2262/PT2272无线模块工作原理 PT2262/2272是台湾普城公司生产的一种CMOS工艺制造的低功耗低价位通用编/解码电路,是目前在无线通讯电路中作地址编码识别最常用的芯片之一。PT2262/2272最多可有12位(A0-A11)三态(悬空,接高电平,接低电平)地址设定管脚,任意组合可提供531441个地址码。PT2262最多可有6位(D0-D5)数据端管脚,设定的地址码和数据码从17脚(Dout)串行输出,可用于无线遥控发射电路。 PT2262和PT2272的引脚排列见图2。对于编码器PT2262,A0~A5共6根线为地址线,而A6~A11共6根线可以作为地址线,也可以作为数据线,这要取决于所配合使用的解码器。若解码器没有数据线,则A6~A11作为地址线使用,这种情况下,A0~A11共12根地址线,每线都可以设置成“1”、“O”、“开路”三种状态之一,因此共有编码数312=531441种;但若配对使用的解码器的A6~A11是数据线,例如PT2272,那么这时PT2262的A6~A11也作为数据线用,并只可设置为“1”和“0”两种状态之一,而地址线只剩下A0~A5共6根,编码数降为36=729种。
图2 PT2262、PT2272引脚排列图 该编解码器的编码信号格式是:用2个周期的占空比为1:3(即高电平宽度为1,低电平宽度为2,周期为3)的波形来表示1个“0”,用2个周期的占空比为2:3(即高电平宽度为2,低电平宽度为1,周期为3)的波形来表示1个“1”,用1个周期的占空比为1:3的波形紧跟着1个周期的占空比为2:3的波形来表示“开路”。地址码和数据码都用宽度不同的脉冲来表示,两个窄脉冲表示“0”;两个宽脉冲表示“1”;一个窄脉冲和一个宽脉冲表示“F”也就是地址码的“悬空”。 编码芯片PT2262发出的编码信号由地址码、数据码、同步码组成一个完整的码字。解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平。PT2262每次发射时至少发射4组字码,因为无线发射的特点,第一组字码非常容易受零电平干扰,往往会产生误码,所以2272只有在连续两次检测到相同的地址码加数据码才会把数据码中的“1”驱动相应的数据输出端为高电平和驱动VT端同步为高电平。当发射机没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间315MHz的高频发射电路起振并发射等幅高频信号,当17脚为低平期间315MHz的高频发射电路停止振荡,所以高频发射电路完全收控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100%的调幅。 PT2272解码芯片有不同的后缀,表示不同的功能,有L4/M4/L6/M6之分,其中L表示锁存输出,数据只要成功接收就能一直保持对应的电平状态,直到下次遥控数据发生变化时改变。M表示非锁存输出,数据脚输出的电平是瞬时的而且和发射端是否发射相对应,可以用于类似点动的控制。后缀的6和4表示有几路并行的控制通道,当采用4路并行数据时(PT2272-M4),对应的地址编码应该是8位,如果采用6路的并行数据时(PT2272-M6),对应的地址编码应该是6位。 PT2262编码电路与PT2272解码电路一般配对使用,PT2262的特点是在其内部已经把编码信号调制在了一个较高的载频上。要把遥控编码信息用无线方式(红外线或无线电等)传送出去,必须有载体(载波),把编码信息“装载”在载体上(调制在载波上)才能传送出去,因此需要一个振荡电路和一个调制电路。PT2262编码器内部,已包含了这些电路,从DOUT端送出的是调制好了的约38kHz的高频已调波,因此使用起来非常方便,适用于红外线和超声波遥控电路。
表1:编码电路PT2262管脚功能表
表2:解码电路 PT2272 脚管功能表
图3 编码发射模块实物图与原理框图
其中编码部分电路由PT2262编码IC来组成,具体电路见图4所示。
图4 编码电路原理图 基于PT2272的无线解码模块 解码接收模块包括接收头和解码芯片PT2272两部分组成。接收头将收到的信号输入PT2272的14脚(DIN),PT2272再将收到的信号解码。解码接收模块和电路原理图如图5,接收板实物如图6所示。 接收板工作电压为DC 5V,接收灵敏度: -103dBm ,尺寸(mm): 49*20*7 ,工作频率:315MHz,工作电流:5mA ,编码类型:固定码(板上焊盘跳接设置) 应用说明:与各类型遥控器配合使用,解码输出后进行相应控制,如采用单片机进行读取接收并解码数据然后控制相应的灯或电源开关。
图5解码接收模块和电路原理图
图6 无线遥控接收板
无线收发模块的地址码设定
O O O O O O O O L - - - - - - - - 1 1 1 1 1 1 1 1 H
图7 地址设置跳线图 无线模块的软硬件设计应用 在功能稍复杂的系统中仅靠一对无线收发模块往往达不到要求,很多情况下都要借助于单片机扩展出更多的功能。本例通过一个简单的例子,实现单片机与无线接收模块的组合应用。
图8 无线遥控实验演示图 硬件原理图
图9 硬件原理图 程序流程图
图10 软件流程图
软件代码 /***************************************************************************/ /*杭州晶控电子有限公司 */ /*http://www.hificat.com */ /*无线收发模块演示程序 */ /*目标器件:AT89S51 */ /*晶振:11.0592MHZ */ /*编译环境:Keil 7.50A */ /***************************************************************************/ /*********************************包含头文件********************************/ #include <reg51.h>
/*******************************共阳LED段码表*******************************/ unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; /*******************************定义全局变量********************************/
/*********************************端口定义**********************************/ char dat; //接收到的数据 /**************************************************************************** 函数功能:数码管扫描延时子程序 入口参数: 出口参数: ****************************************************************************/ void delay(void) { int k; for(k=0;k<400;k++); } /**************************************************************************** 函数功能:LED数码管显示程序 入口参数:k 出口参数: ****************************************************************************/ void display(int k) { P2=0xfe; P0=tab[k/1000]; delay(); P2=0xfd; P0=tab[k%1000/100]; delay(); P2=0xfb; P0=tab[k%100/10]; delay(); P2=0xf7; P0=tab[k%10]; delay(); P2=0xff; }
/**************************************************************************** 函数功能:主程序 入口参数: 出口参数: ****************************************************************************/ void main(void) { char datavalue; P2=0x00; //端口初始化 P0=0x00; //端口初始化 P1=0xff; //置输入状态 while(1) { dat=(P1&0x0f); if(dat==0x04)//A datavalue=0x01; if(dat==0x08)//B datavalue=0x02; if(dat==0x02)//C datavalue=0x03; if(dat==0x01)//d datavalue=0x04; display(datavalue); //将读到的数显示 NOP(); } } 相信看到这里,你应该可以理解我们是如何利用单片机与无线模块相结合来做无线遥控的控制了,你也可以根据自己的需要来写一个无线遥控的相关程序。由于篇幅有限,读者朋友可以通过网站或电子邮件一起交流与学习。在下几期中,我们将陆续介绍51单片机综合学习系统的其它功能原理与应用。 |
![]() |
以上部分内容转载于网上,如有涉及到版权问题,请即通知本人删除 ICP备05019516号
联系地址:浙江省杭州市拱墅区普金家园11-3-702 徐玮 邮政编码:310015 Email:hificat@163.com xu169@sina.com 电话:0571-85956028 传真:0571-88230070 手机:13185018567 QQ:420951892 MSN:hificat@hotmail.com 杭州晶控电子有限公司 版权所有 COPYRIGHT2003——2007 HANGZHOU KinCony ELECTRONICS CO.,LTD All rights reserved |