1、第三章:无线遥控原理及方案无线遥控,有基于电磁波和红外线两种。红外遥控距离短,只能直线方向遥控。电磁波的遥控具有衍射作用,能跨越一定的屏障,遥控时也不需要直线。电磁波无线遥控,就是在发射端发射一定频率的电磁波,接收端只提取出相同频率的电磁波信号,并经过解码得到发射端的数据。3.1 发射电路原理遥控器发射电路,有振荡电路、高频放大器,调制方式一般采用ASK和FSK。振荡电路可以采用电容、电感的振荡特性来设计,也可加入晶振来简单获得载波信号。一般载波信号的频率在 315MHZ-433MHZ,也可实现更高的频率。通过高频放大器,高频信号获得更高的发射能量,提高发射距离。图2-13.2 接收电路原理接
2、收电路里面主要有:天线,滤波电路,解调电路等几部分组成。图2-23.3接收方案:采用PT2262 和PT2272的编码解码芯片。PT2262和PT2272最多支持6位数据编码,一般支持4位数据编码。PT2262 和PT2272有三态地址编码功能,只有地址匹配时才能传输数据。3.3.1 PT2262/PT2272芯片原理简介: PT2262/2272是台湾普城公司生产的一种CMOS工艺制造的低功耗低价位通用编解码电路,PT2262/2272最多可有12位(A0-A11)三态地址端管脚(悬空,接高电平,接低电平),任意组合可提供531441地址码,PT2262最多可有6位(D0-D5)数据端管脚,
3、设定的地址码和数据码从17脚串行输出,可用于无线遥控发射电路。编码芯片PT2262发出的编码信号由:地址码、数据码、同步码组成一个完整的码字,解码芯片PT2272接收到信号后,其地址码经过两次比较核对后,VT脚才输出高电平,与此同时相应的数据脚也输出高电平,如果发送端一直按住按键,编码芯片也会连续发射。当发射机没有按键按下时,PT2262不接通电源,其17脚为低电平,所以315MHz的高频发射电路不工作,当有按键按下时,PT2262得电工作,其第17脚输出经调制的串行数据信号,当17脚为高电平期间315MHz的高频发射电路起振并发射等幅高频信号,当17脚为低平期间315MHz的高频发射电路停止
4、振荡,所以高频发射电路完全收控于PT2262的17脚输出的数字信号,从而对高频电路完成幅度键控(ASK调制)相当于调制度为100的调幅。3.3.2:PT2262及PT2272外观及引脚功能名称 管脚说 明 A0-A111-8、10-13地址管脚,用于进行地址编码,可置为“0”,“1”,“f”(悬空),D0-D57-8、10-13数据输入端,有一个为“1”即有编码发出,内部下拉 Vcc18电源正端()Vss9电源负端()TE14编码启动端,用于多数据的编码发射,低电平有效;OSC116振荡电阻输入端,与OSC2所接电阻决定振荡频率;OSC215振荡电阻振荡器输出端;Dout17编码输出端(正常时
5、为低电平)地址管脚,用于进行地址编码,可置为“0”,“1”,“f”(悬空),必须与2262一致,否则不解码 地址或数据管脚,当做为数据管脚时,只有在地址码与2262一致,数据管脚才能输出与2262数据端对应的高电平,否则输出为低电平,锁存型只有在接收到下一数据才能转换 DIN数据信号输入端,来自接收模块输出端VT解码有效确认 输出端(常低)解码有效变成高电平(瞬态)第四章:硬件电路系统:4.1复位电路:4.2时钟电路:4.3显示模块1602液晶显示电路 :4.4 键盘电路因为系统的控制指令比较少,故采用独立键盘控制,也可用中断方式控制,这样占用系统的资源比较少。4.5执行器ULN2003ULN
6、2003有八个输入端,对应八个输出端,当输入引脚为高电平时,对应达林管导通。电路中为避免电机中的电流过大,因此串入一个5欧的电阻。输入低电平时对应的引脚不导通。单机的转速控制是通过PWM控制的,只要改变电机两端电压的占空比就可以实现调速。4.6 AT89C52单片机AT89C52是一种低功耗、高性能CMOS 8位微控制器,具有8K在系统可编程Flash存储器。使用Atmel 公司高密度非易失性存储技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适合于常规编程器。在单芯片上,拥有灵巧的8位 CPU和在系统可编程Flash,使得AT89C52为众多嵌入
7、式控制应用系统提供高灵活、超有效的解决方案。AT89C52具有一下功能: 8K字节Flash,256字节RAM,32位I/O口线,看门狗定时器,2个数据指针,三个16位定时、计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89C52可降至0 HZ静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护模式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。第五章:整机电路(1):发射电路部分(2):接收控制部分第六章:程序代码6.1发射部分#include#def
8、ine uchar unsigned char#define uint unsigned intsbit E=P07; /1602使能引脚sbit RW=P06; /1602读写引脚 sbit RS=P05; /1602数据/命令选择引脚sbit KEY1 = P15;sbit KEY2 = P14;sbit KEY3 = P13;void delay()/延时,延时时间大概为140US。 int i,j; for(i=0; i=10; i+) for(j=0; j i) & 0x01; Out_Date |= (temp (7 - i); return Out_Date;/*1602命令函数
9、*/void enable(uchar del) P2 = Convert(del); RS = 0; RW = 0; E = 0; delay(); E = 1;/*1602写数据函数*/void write(uchar del) RS = 1;/*1602初始化,请参考1602的资料*/void L1602_init(void) enable(0x01); enable(0x38); enable(0x0c); enable(0x06); enable(0xd0);/*从1602第几行,第几个字符处开始写入一串字符串*/void L1602_string(uchar hang,uchar
10、lie,uchar *p) uchar a; if(hang = 1) a = 0x80; if(hang = 2) a = 0xc0; a = a + lie - 1; enable(a); while(1) if(*p = 0) break; write(*p); p+;/*键盘扫描*/void KEY() if(KEY1=1 | KEY2=1 | KEY3=1) Delay(2); /20毫秒软件防抖 if(KEY1=1 | KEY2=1 | KEY3=1) if(KEY1 = 1) enable(0x01); L1602_string(1,1,Velocity:High); L1602
11、_string(2,1,State:Run P0=0x0c; Delay(5); else if(KEY2 = 1) 0 Stop P0=0x03; else if(KEY3 = 1) Low P0=0x0a; Delay(50); /延时0.5秒再进行下次按键的检测 /*主函数*/void Main() L1602_init(); L1602_string(1,1, L1602_string(2,1, KEY();6.2接收部分#include #define uchar unsigned char #define uint unsigned int uchar m;sbit K=P00;/
12、电机控制sbit p10=P10;sbit p11=P11;sbit led0=P04;/高速指示sbit led1=P05;/停止指示sbit led2=P06;/低速指示void delay(uint del)/延时10ms/*定时程序产生占空比50%的方波,方波的占空比开改变以实现不同速度,中断的使用要注意,否则可能进不了中断,也可能跳不出*/void time0(void) interrupt 1 using 2 TH0=(65536-5000)/256; TL0=(65536-5000)%256;/定时1mS K=K;/*外部中断0服务程序*/void Servise_int0(vo
13、id) interrupt 0 using 1 EX0=0; /关外部中断0,防止干扰 m=P2&0x0f;/屏蔽P2口高4位数据,并读其低4位数据 if(m=0x01) K=1;/高速控制指令 led0=1;/开高速指示灯 led1=0;/关停止灯 led2=0;/关低速灯 else if(m=0x02) K=0;/停止控制指令 led1=1; led0=0; else if(m=0x04)/低速控制指令 ET0=1; TR0=1; led2=1; else/可不用此else ET0=0; _nop_() ; EX0=1; /开外部中断0void Main(void) K=0;/电机停止 led0=0;/关高速灯 led1=0; led2=0; PX0=1;/外部中断0优先级高 PT0=0;/定时器0优先级低 TMOD=0x01;/定时器设置 /赋初值定时 ET0=1;/*因PT2272VT为上升沿故需将其取反后给外部中断VT先由P10输入,然后P11输出到外部中断0*/ p11=p10; EA=1; /开总中断 EX0=1; IT0=1; /设置外部中断0为下降沿触发 while(!p11) p11=p10;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1