繁体中文
高级搜索
 
首页 | 电子技术应用 | 行业最新动态 | 行业最新产品 | 软件资料下载 | 电路图纸欣赏 | 博客文章精选 | 电子精品论坛 | 电子技术贴吧

当前位置:首页 >> 电子技术应用 >> 单片机-----应用 >> 单片机模拟遥控器
单片机模拟遥控器
作者:   来源: 发表时间:2007-02-28  字号:  
了解了遥控发射的原理,就可以来自己动手做一个遥控器了,可是没有专门的芯片怎么办?用单片机,然后配合程序完成遥控码的发射。
1、硬件电路


其中,单片机选用AT89C2051, 使用两节电池供电就可以工作,用P1口构成3×3的模拟键盘,用一个IO口作为遥控波形输出端,然后接三极管驱动红外发射管,发出需要的遥控波形。

2、程序编写
由于要把波形“发射”出去,需要对遥控码进行调制,调制即把遥控码的高电平和载波进行“与”,结果是连续发射一定数量的载波,而低电平则只需进行简单的延时即可。以SAA3010T编码为例,为双相位编码方式,“0”用844US高电平加844US低电平表示,“1”用844US低电平加844US高电平表示,根据上述原理,844US高电平和载波进行“与”,载波的频率为38KHZ,周期为1/38k, 所以,结果是
32个完整载波+12us,另外,844US低电平只需用一个延时函数即可。由于程序不长且时间精度要求很高,所以用汇编来编程,程序如下:

发射“0”的子函数

;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAA3010T;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SEND0: MOV R0, #20H
NEXT0: SETB REMOTE ; 844us=32个完整载波+12us
MOV R1, #03H ;发送正电平9us
DJNZ R1, $
NOP
CLR REMOTE ;发送负电平17us
MOV R1, #06H
DJNZ R1, $
NOP
DJNZ R0, NEXT0 ; 32个完整载波发送完毕
SETB REMOTE ;发送高电平9us
MOV R1, #03H
DJNZ R1, $
NOP
CLR REMOTE ;3us低电平
NOP
NOP
NOP
ACALL DELAY844US
RET

发射“1”的子函数

SEND1: MOV R0, #20H
CLR REMOTE ; 发送低电平844US
ACALL DELAY844US
NEXT1: SETB REMOTE ; 844us=32个完整载波+2US
MOV R1, #03H ; 发送正电平9us
DJNZ R1, $
NOP
CLR REMOTE ; 发送负电平17us
MOV R1, #06H
DJNZ R1, $
NOP
DJNZ R0, NEXT1 ; 32个完整载波发送完毕
SETB REMOTE ; 发送高电平9us
MOV R1, #03H
DJNZ R1, $
NOP
CLR REMOTE ; 3us低电平
RET
完整的程序还需加上键盘扫描程序,以及连续调用SEND1和SEND0发射一段完整的码。


!注意:如果您发现此文章出现影响您的阅读的状况,请从浏览器地址栏里复制本文的链接到留言本报告给站长解决!
  • 上一篇: SPI接口介绍
  • 下一篇: 自己制做显卡温控报警器装置

  • >> 联系我们请给我们留言·留言本
    本站所有提供的信息软件资料均来自网络,版权及著作权归原作者所有,如果无意中侵犯了您的相关权利或触及法律法规,请给我们留言, 我们将在24小时内删除。
      浙ICP备05071687号  电子技术精品网