收藏 分销(赏)

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

上传人:精*** 文档编号:2443515 上传时间:2024-05-30 格式:DOC 页数:15 大小:224.54KB 下载积分:8 金币
下载 相关
实例制作基于C51的无线遥控玩具汽车.doc_第1页
第1页 / 共15页
实例制作基于C51的无线遥控玩具汽车.doc_第2页
第2页 / 共15页


点击查看更多>>
资源描述
实例制作基于C51的无线遥控玩具汽车 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 15 个人收集整理 勿做商业用途 从事无线遥控玩具开发工作多年,开发了很多种类的无线遥控玩具产品.总结了很多工作经验。用的绝大部分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)。 ;作者:徐增钟 ;=================================================================================== KEY EQU P3   DATAOUT BIT P1.0  ;数据输出口. LED BIT P1。1  ;发射指示灯。 KEYBUF EQU 70H  ;键号存放单元。 KEYMASK BIT 01H   KEYFLAG BIT 05H  ORG 0000H  AJMP START  ORG 000BH  AJMP INTTCC  ORG 0030H ;=================================================================================== CLEAR_RAM:        MOV R0,#30H  ;从30H单元开始.  MOV R3,#127  ;清除127个单元 NEXT: MOV @R0,#00  ;清除  INC R1  ;  DJNZ R3,NEXT  ;127个单元清完?;  RET ;================================================================================== ;程序初始化; BEGIN:  MOV SP,#50H  ;  MOV P1,#00H  ;  MOV P3,#0FFH ;  MOV TMOD,#01H  MOV TH0,#0B1H  MOV TL0,#0E0H  SETB TR0  SETB EA  SETB ET0  CLR KEYFLAG  SETB KEYMASK   RET ;=================================================================================== START:          CALL CLEAR_RAM ;清除RAM  CALL BEGIN  ;程序初始化;    LOOP:    CALL KEYON  ;调用KEYSCAN    AJMP LOOP  NOP  NOP  NOP  AJMP START ;=================================================================================== INTTCC:  MOV TH0,#0B1H  MOV TL0,#0E0H  SETB KEYFLAG  RETI ;=================================================================================== KEYON:   MOV A,KEY           CJNE A,#0FFH,KEYSEND   JB KEYMASK,ET   SETB KEYMASK     CLR LED   MOV R5,#2   X2: MOV R3,#4    CALL SEND    DJNZ R5,X2    SETB DATAOUT    CALL DY5MS    MOV P1,#00   ET:     RET  ;==================================================================================== KEYSEND:    SETB LED  CLR KEYMASK    CJNE A,#0DFH,K1   MOV R3,#10  ;发送10个脉冲。  AJMP SEND    RET K1: CJNE A,#0EFH,K2   MOV R3,#40  ;发送40个脉冲.  AJMP SEND    RET K2: CJNE A,#0F7H,K3   MOV R3,#64  ;发送64个脉冲。  AJMP SEND    RET K3: CJNE A,#0FBH,K4   MOV R3,#58  ;发送58个脉冲.  AJMP SEND    RET K4: CJNE A,#0D7H,K5   MOV R3,#34  ;发送34个脉冲。  AJMP SEND    RET K5: CJNE A,#0DBH,K6   MOV R3,#28  ;发送28个脉冲。  AJMP SEND    RET K6: CJNE A,#0E7H,K7   MOV R3,#46  ;发送46个脉冲。  AJMP SEND    RET K7: CJNE A,#0EBH,K8   MOV R3,#52  ;发送52个脉冲。  AJMP SEND   K8: CJNE A,#0FFH,KEXIT  KEXIT:   RET ;=================================================================================== DOUT:  SETB DATAOUT    CALL DYMS5    CLR DATAOUT    CALL DYMS5  DJNZ R3,DOUT    MOV P2,#00  RET SEND:   MOV R1,#04     N1: SETB DATAOUT   MOV R4,#255 D1:     NOP  NOP  NOP  NOP  DJNZ R4,D1   CLR DATAOUT    CALL DYMS5  DJNZ R1,N1  AJMP DOUT  NOP  NOP  AJMP START ;===================================================================================  DYMS5:   MOV R6,#250 D2:   DJNZ R6,D2  RET ;==================================================================================文档为个人收集整理,来源于网络个人收集整理,勿做商业用途 DY5MS:  MOV R5,#4 D3: MOV R3,#248  DJNZ R3,$  DJNZ R5,D3  RET  ;==================================================================================  END 以下是接收部分程序 ;遥控车接收程序. ;MCU:AT89C2051 ;OSC:12M ;DATE:08。05。18 ;接收相应功能:前进,后退,左转,右转。 ;E—MAIL:chinameifen@21cn。com ;作者:徐增钟 ;================================================================= IN EQU P3。2  ;RECEIVE RXMA BIT 05H ;=================================================================  ORG 0000H  AJMP START  ORG 0003H  AJMP INRX  ORG 0030H ;================================================================ CLEAR_RAM:  MOV R1,#30H  MOV R3,#127 NEXT: MOV @R1,#00  INC R1  DJNZ R3,NEXT  RET ;================================================================ START:  MOV SP,#50H  MOV P3,#0FFH ;  MOV P2,#0FFH ;  MOV P1,#00  ;  SETB EA  SETB EX0  CLR RXMA本文为互联网收集,请勿用作商业用途文档为个人收集整理,来源于网络 LOOP:      CALL NORX  AJMP LOOP ;==================================================================== INRX:   CLR EX0  MOV R4,#4  ;同步脉冲。  MOV TMOD,#01H NX1: MOV TH0,#00  ;计数初值为00.  MOV TL0,#00  ;  SETB TR0 INC1: JNB IN,INC1  ;低电平在此等  CLR TR0  MOV A,TH0    CJNE A,#05H,EXIT  HERE1: JB IN,HERE1 ;等待0.5MS高电平结束。  DJNZ R4,NX1          JNB IN,$  CLR A RD1:  INC     A              RD2:  JB     IN,RD2               MOV     R1,#05          RD3:  JB     IN,RD1               LCALL   DYMS5                   DJNZ    R1,RD3                 DEC A  DEC A  DEC A   DEC A  JZ STOP    DEC A  DEC A  DEC A   DEC A  DEC A  DEC A  JZ K1   DEC A   DEC A  DEC A  DEC A  DEC A   DEC A  DEC A  DEC A  DEC A   DEC A  DEC A  DEC A  DEC A   DEC A  DEC A  DEC A  DEC A   DEC A  JZ FR    DEC A  DEC A  DEC A   DEC A  DEC A  DEC A  JZ FL    DEC A   DEC A  DEC A  DEC A  DEC A   DEC A  JZ K2    DEC A   DEC A  DEC A  DEC A  DEC A   DEC A  JZ BL    DEC A  DEC A  DEC A   DEC A  DEC A  DEC A  JZ BR    DEC A   DEC A  DEC A  DEC A  DEC A   DEC A  JZ K3    DEC A  DEC A  DEC A   DEC A  DEC A  DEC A  JZ K4    NOP   NOP本文为互联网收集,请勿用作商业用途个人收集整理,勿做商业用途 EXIT: SETB EX0      RETI   STOP: MOV P1,#00  AJMP EXIT K1:   MOV P1,#00010000B ;F  AJMP EXIT K2:  MOV P1,#00100000B ;B  AJMP EXIT K3:   MOV P1,#01000000B ;L  AJMP EXIT K4:   MOV P1,#10000000B ;R  AJMP EXIT FR: MOV P1,#10010000B ;F+R  AJMP EXIT FL:   MOV P1,#01010000B ;F+L  AJMP EXIT BR:   MOV P1,#10100000B ;B+R  AJMP EXIT BL:   MOV P1,#01100000B ;B+L  AJMP EXIT ;============================================================== NORX: NET:     MOV R1,#200  RX: JNB IN,NET    CALL DY1MS    DJNZ R1,RX  MOV P1,#00   NOSI:   RET ;============================================================== DYMS5:  MOV R5,#135  DJNZ R5,$  RET ;============================================================== DY1MS:  MOV R6,#138 D2:  DJNZ R6,D2  RET ;==============================================================  END
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 行业资料 > 机械/制造/汽车

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服