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帧
3、停止位:同步脉冲+4个数据脉冲。 接收部分收到的是反相的信号,读者在制作时要注意。 ;五功能遥控车发射程序. ;MCU:2051 ;OSC:12M ;DATE:08.05.18 ;功能: ;前进(F) ;后退(B), ;左转(L), ;右转(R). ;加速(T). ;作者:徐增钟 ;=================================================================================== KEY EQU P3 DATAOUT BIT P1.0 ;数据输出口. LED BIT P
4、1.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:
5、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 C
6、LR KEYFLAG SETB KEYMASK RET ;=================================================================================== START: CALL CLEAR_RAM ;清除RAM CALL BEGIN ;程序初始化; LOOP: CALL KEYON ;调用KEYSCAN AJMP LOOP NOP NOP NOP AJMP START ;================================
7、 INTTCC: MOV TH0,#0B1H MOV TL0,#0E0H SETB KEYFLAG RETI ;=================================================================================== KEYON: MOV A,KEY CJNE A,#0FFH,KEYSEND JB KEYMASK,ET SETB KEYMASK CLR LE
8、D 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个脉冲. AJ
9、MP 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
10、 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 ;===================================================================================
11、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 ;============
12、 DYMS5: MOV R6,#250 D2: DJNZ R6,D2 RET ;================================================================================== DY5MS: MOV R5,#4 D3: MOV R3,#248 DJNZ R3,$ DJNZ R5,D3 RET ;================================================================================== END 参考链接:






