0451-88102248
13836024381
15204677158
 

站内搜索


关键词:


类  型:


汇款账号

当前位置: 主页 > 经典文章 > 自做直流调速器自编遥控程序报告

自做直流调速器自编遥控程序报告

作者:志成时间:2011-06-21 15:06来源:哈尔滨汇丰电子 浏览: LOGING....

自做直流调速器自编遥控程序报告

了解了遥控发射的原理,就可以来自己动手做一个遥控器了,可是没有专门的芯片怎么办?用单片机,然后配合程序完成遥控码的发射。
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发射一段完整的码。

自做直流调速器自编遥控程序报告



 

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

友情链接 所有链接 | 申请加入