实例制作基于C51的无线遥控玩具汽车.doc_第1页
实例制作基于C51的无线遥控玩具汽车.doc_第2页
实例制作基于C51的无线遥控玩具汽车.doc_第3页
实例制作基于C51的无线遥控玩具汽车.doc_第4页
实例制作基于C51的无线遥控玩具汽车.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

从事无线遥控玩具开发工作多年,开发了很多种类的无线遥控玩具产品。总结了很多工作经验。用的绝大部分IC是TX2C(遥控)和RX2C(接收),其功能分别是:前进,后退,左转,右转。笔者利用工作的空闲时间用AT89C2051单片机编出了跟TX2C和RX2C一样的编解码程序,并成功进行了实际制作。编解码与TX2C和RX2C兼容。现将制作原理图和源程序公开给读者参考学习与制作,相信对初学者有极大的帮助,这也是笔者的心愿!其原理图如下:图2为接收部分,图3为发射部分。源程序和仿真文件见附件.读者如果想仿制的话,建议RF接收和RF发射部使用市面上成品的315MHz模块,应用起来很方便,这样可以免去调试高频部分。下面图1是遥控前进部分编码波形:从编码图1中看出有四个周期一样的同步脉冲,各个功能是按数据脉冲个数的不同实现功能不同的。这样编码有很强的搞干扰能力,也可以应用到其它领域遥控上面去,可以做成遥控飞机,也可以做成遥控船这要看读者的需要应用了。具体功能相应编码以下:前进:同步脉冲+10个数据脉冲后退:同步脉冲+40个数据脉冲左转:同步脉冲+64个数据脉冲右转:同步脉冲+58个数据脉冲前进+左转:同步脉冲+34个数据脉冲前进+右转:同步脉冲+28个数据脉冲后退+左转:同步脉冲+46个数据脉冲后退+右转:同步脉冲+52个数据脉冲按键松开时发送2帧停止位:同步脉冲+4个数据脉冲。 接收部分收到的是反相的信号,读者在制作时要注意。图二(点击放大)图三;五功能遥控车发射程序.;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个单元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,#0B1HMOVTL0,#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,#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:SETBDATAOUTCALLDYMS5CLRDATAOUTCALLDYMS5DJNZR3,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.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 DECADECADECADECAJZSTOPDECADECADECADECADECADECAJZK1DECADECADECADECADECADECADECADECADECADECADECADECADECADECADECADECADECADECAJZFRDECADECADECADECADECADECAJZFLDECADECADECADECADECADECAJZK2DECADECADECADECADECADECAJZBLDECADECADECADECADECADECAJZBRDECADECADECADECADECADECAJZK3DECADECADECADECADECADECAJZK4NOPNOPEXIT:SETBEX0 RETISTOP:MOVP1,#00AJMPEXITK1:MOVP1,#00010000B;FAJMPEXITK2:MOVP1,#00100000B;BAJMPEXITK3:MOVP1,#01000000B;LAJMPEXITK4:MOVP1,#10000000B;RAJMPEXITFR:MOVP1,#10010000B;F+RAJMPEXITFL:MOVP1,#01010000B;F+LAJMPEXITBR:MOVP1,#10100000B;B+RAJMPEXI

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论