实例制作基于C51的无线遥控玩具汽车.doc

上传人:汽*** 文档编号:561506483 上传时间:2023-05-14 格式:DOC 页数:13 大小:139.50KB
返回 下载 相关 举报
实例制作基于C51的无线遥控玩具汽车.doc_第1页
第1页 / 共13页
实例制作基于C51的无线遥控玩具汽车.doc_第2页
第2页 / 共13页
实例制作基于C51的无线遥控玩具汽车.doc_第3页
第3页 / 共13页
实例制作基于C51的无线遥控玩具汽车.doc_第4页
第4页 / 共13页
实例制作基于C51的无线遥控玩具汽车.doc_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《实例制作基于C51的无线遥控玩具汽车.doc》由会员分享,可在线阅读,更多相关《实例制作基于C51的无线遥控玩具汽车.doc(13页珍藏版)》请在金锄头文库上搜索。

1、从事无线遥控玩具开发工作多年,开发了很多种类的无线遥控玩具产品。总结了很多工作经验。用的绝大部分IC是TX2C(遥控)和RX2C(接收),其功能分别是:前进,后退,左转,右转。笔者利用工作的空闲时间用AT89C2051单片机编出了跟TX2C和RX2C一样的编解码程序,并成功进行了实际制作。编解码与TX2C和RX2C兼容。现将制作原理图和源程序公开给读者参考学习与制作,相信对初学者有极大的帮助,这也是笔者的心愿!其原理图如下:图2为接收部分,图3为发射部分。源程序和仿真文件见附件.读者如果想仿制的话,建议RF接收和RF发射部使用市面上成品的315MHz模块,应用起来很方便,这样可以免去调试高频部

2、分。下面图1是遥控前进部分编码波形:从编码图1中看出有四个周期一样的同步脉冲,各个功能是按数据脉冲个数的不同实现功能不同的。这样编码有很强的搞干扰能力,也可以应用到其它领域遥控上面去,可以做成遥控飞机,也可以做成遥控船这要看读者的需要应用了。具体功能相应编码以下:前进:同步脉冲+10个数据脉冲后退:同步脉冲+40个数据脉冲左转:同步脉冲+64个数据脉冲右转:同步脉冲+58个数据脉冲前进+左转:同步脉冲+34个数据脉冲前进+右转:同步脉冲+28个数据脉冲后退+左转:同步脉冲+46个数据脉冲后退+右转:同步脉冲+52个数据脉冲按键松开时发送2帧停止位:同步脉冲+4个数据脉冲。 接收部分收到的是反相

3、的信号,读者在制作时要注意。图二(点击放大)图三;五功能遥控车发射程序.;MCU:2051;OSC:12M;DATE:08.05.18;功能:;前进(F);后退(B),;左转(L),;右转(R).;加速(T).;作者:徐增钟;=KEYEQUP3DATAOUTBITP1.0;数据输出口.LEDBITP1.1;发射指示灯.KEYBUFEQU70H;键号存放单元.KEYMASK BIT01HKEYFLAGBIT05HORG0000HAJMPSTARTORG000BHAJMPINTTCCORG0030H;=CLEAR_RAM: MOVR0,#30H;从30H单元开始.MOVR3,#127;清除127个

4、单元NEXT:MOVR0,#00;清除INCR1;DJNZR3,NEXT;127个单元清完?;RET;=;程序初始化;BEGIN: MOVSP,#50H;MOVP1,#00H;MOVP3,#0FFH;MOVTMOD,#01HMOVTH0,#0B1HMOVTL0,#0E0HSETBTR0SETBEASETBET0CLRKEYFLAGSETBKEYMASKRET;=START: CALLCLEAR_RAM;清除RAMCALLBEGIN;程序初始化;LOOP:CALLKEYON;调用KEYSCANAJMPLOOPNOPNOPNOPAJMPSTART;=INTTCC: MOVTH0,#0B1HMOVT

5、L0,#0E0HSETBKEYFLAGRETI;=KEYON: MOVA,KEY CJNEA,#0FFH,KEYSENDJBKEYMASK,ETSETBKEYMASKCLRLEDMOVR5,#2X2:MOVR3,#4CALLSENDDJNZR5,X2SETBDATAOUTCALLDY5MSMOVP1,#00ET: RET;=KEYSEND:SETBLEDCLRKEYMASKCJNEA,#0DFH,K1MOVR3,#10;发送10个脉冲.AJMPSENDRETK1:CJNEA,#0EFH,K2MOVR3,#40;发送40个脉冲.AJMPSENDRETK2:CJNEA,#0F7H,K3MOVR3,

6、#64;发送64个脉冲.AJMPSENDRETK3:CJNEA,#0FBH,K4MOVR3,#58;发送58个脉冲.AJMPSENDRETK4:CJNEA,#0D7H,K5MOVR3,#34;发送34个脉冲.AJMPSENDRETK5:CJNEA,#0DBH,K6MOVR3,#28;发送28个脉冲.AJMPSENDRETK6:CJNEA,#0E7H,K7MOVR3,#46;发送46个脉冲.AJMPSENDRETK7:CJNEA,#0EBH,K8MOVR3,#52;发送52个脉冲.AJMPSENDK8:CJNEA,#0FFH,KEXITKEXIT: RET;=DOUT:SETBDATAOUTCA

7、LLDYMS5CLRDATAOUTCALLDYMS5DJNZR3,DOUTMOVP2,#00RETSEND: MOVR1,#04N1:SETBDATAOUTMOVR4,#255D1: NOPNOPNOPNOPDJNZR4,D1CLRDATAOUTCALLDYMS5DJNZR1,N1AJMPDOUTNOPNOPAJMPSTART;=DYMS5: MOVR6,#250D2:DJNZR6,D2RET;=DY5MS:MOVR5,#4D3:MOVR3,#248DJNZR3,$DJNZR5,D3RET;=END以下是接收部分程序;遥控车接收程序.;MCU:AT89C2051;OSC:12M;DATE:08

8、.05.18;接收相应功能:前进,后退,左转,右转.;E-MAIL:;作者:徐增钟;=INEQUP3.2;RECEIVERXMABIT05H;=ORG0000HAJMPSTARTORG0003HAJMPINRXORG0030H;=CLEAR_RAM:MOVR1,#30HMOVR3,#127NEXT:MOVR1,#00INCR1DJNZR3,NEXTRET;=START:MOVSP,#50HMOVP3,#0FFH;MOVP2,#0FFH;MOVP1,#00;SETBEASETBEX0CLRRXMALOOP: CALLNORXAJMPLOOP;=INRX:CLREX0MOVR4,#4;同步脉冲.MOVTMOD,#01HNX1:MOVTH0,#00;计数初值为00.MOVTL0,#00;SETBTR0INC1:JNBIN,INC1;低电平在此等CLRTR0MOVA,TH0CJNEA,#05H,EXITHERE1:JBIN,HERE1;等待0.5MS高电平结束.DJNZR4,NX1 JNBIN,$CLRARD1: INC A RD2: JB IN,RD2 MOV R1,#05 RD3: JB IN,RD1 LCALL DYMS5 DJNZ R1,RD3 DECADECADECADECAJZSTOPDECADECAD

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号