注意:访问本站需要Cookie和JavaScript支持!请设置您的浏览器! 打开购物车 查看留言付款方式联系我们
初中电子 单片机教材一 单片机教材二
搜索上次看见的商品或文章:
商品名、介绍 文章名、内容
首页 电子入门 学单片机 免费资源 下载中心 商品列表 象棋在线 在线绘图 加盟五一 加入收藏 设为首页
本站推荐:
软件模拟PT2272解码程序
文章长度[5054] 加入时间[2006/7/1] 更新时间[2024/3/19 0:14:20] 级别[3] [评论] [收藏]
本站也有一款PT2272的解码程序,需要电路图和源程序或者产品,请向本站购买。
本站解码程序具有学习功能和停电记忆功能,本站已经制作成多路无线遥控开关。


软件模拟PT2272解码程序


;软件解码程序(仿真PT2272)        ;
;晶体频率为11.0592Mhz
;本程序中的时间定位关系只适用于接3.3M振荡电阻的PT2262解码
;使用其它阻值电阻时,应将定位时间按电阻比例缩放
;下面的程序中 REM 为信号输入端
;RECEIVE    检测到有效信号标志位
;ENABLE_DETE  连续按键标志
;3AH,3BH用作定时器           ;
;PT2262共12根地址线           ;
;31H,32H:接收的前8 位地址编码      ;
;33H,30H:接收的后4 位地址编码(若最后4位用作数据端,则只须读第33H单元的内容即可)
;当用作数据端时,PT2262对应脚悬空被认为是低电平。
;地址数据说明              ;
;以31H.0 和32H.0 为例          ;
;悬空 : 31H.0=0 32H.0=1         ;
;  1: 31H.0=1 32H.0=1         ;
;  0: 31H.0=0 32H.0=0         ;
;出错  31H.0=1 32H.0=0         ;
;
;说明:为了能可靠检测到有效信号,建议每次接收至少检测3次,然后比较3次检测值
;3次值相同才认为收到了正确信号。可在主程序中如下处理:第1次检测时调用REMOTE
;第2、3次检测时调用REMOTES,请注意必需连续调用,否则得不到正确的数据
;
;注意:将T1设定为16位定时器,允许中断,否则将导致接收数据错误
;---------------------------------------;
REMOTE:                 ;
    CLR   RECEIVE         ;
;检测50ms 内有没有编码接收       ;
    MOV   3AH,#55         ;
REMOTEA:                ;
    MOV   3BH,#250        ;
REMOTEB:                ;
    JB   REM,REMOTE0       ;有码发送则跳转
    DJNZ  3BH,REMOTEB       ;
    DJNZ  3AH,REMOTEA       ;
REMOTE_END_1:              ;
    CLR   ENABLE_DETE       ;
REMOTE_END:               ;
    CLR   REMOTING        ;清除探头检测标志
    RET               ;
REMOTE0:                ;
    JB   ENABLE_DETE,REMOTE_END_1;按键没有放开则返回
REMOTES:
    MOV   34H,#12         ;接收12位编码
;解码                  ;
;先找出接收码的开头即10ms 左右的高电平 ;
;设置高电平时间为8~12ms         ;
;检测和等待8ms 的低电平,70ms门限    ;
    CLR   T_OVER         ;
    MOV   TH1,#00H        ;
    MOV   TL1,#00H        ;
    SETB  TR1           ;
REMOTE1:                ;
    MOV   3AH,#50         ;
REMOTE2:                ;
    MOV   3BH,#25         ;
REMOTE3:                ;
    JB   REM,REMOTE1       ;
    JB   T_OVER,REMOTE_END    ;
    DJNZ  3BH,REMOTE3       ;
    DJNZ  3AH,REMOTE2       ;
                    ;
;等待在4ms 内接收到的高电平       ;
    CLR   T_OVER         ;
    MOV   TH1,#0F1H        ;
    MOV   TL1,#0F0H        ;
    SETB  TR1           ;
REMOTE_4:                ;
    JB   T_OVER,REMOTE_5     ;
    JNB   REM,REMOTE_4      ;
    CLR   TR1           ;
    AJMP  REMOTE6         ;
;超出12ms 接收错误返回         ;
REMOTE_5:                ;
    AJMP  REMOTE_END       ;
REMOTE6:                ;
;等待550us 后采集接收信号        ;
    MOV   3AH,#00         ;
    DJNZ  3AH,$          ;
;采集接收信号并记录           ;
    MOV   C,REM          ;
    MOV   A,33H          ;
    RLC   A            ;
    MOV   33H,A          ;
    MOV   A,31H          ;
    RLC   A            ;
    MOV   31H,A          ;
;等待第二个上升沿,限时1.5ms       ;
    CLR   T_OVER         ;
    MOV   TH1,#0FAH        ;
    MOV   TL1,#099H        ;
    SETB  TR1           ;
RM1:  JB   T_OVER,REMOTE_END    ;
    JB   REM,RM1         ;
    CLR   TR1           ;
                    ;
    CLR   T_OVER         ;
    MOV   TH1,#0FAH        ;
    MOV   TL1,#099H        ;
    SETB  TR1           ;
RM2:  JB   T_OVER,REMOTE_END    ;
    JNB   REM,RM2         ;
    CLR   TR1           ;
;等待550us 后采集接收信号        ;
    MOV   3AH,#00         ;
    DJNZ  3AH,$          ;
    MOV   C,REM          ;
    MOV   A,30H          ;
    RLC   A            ;
    MOV   30H,A          ;
    MOV   A,32H          ;
    RLC   A            ;
    MOV   32H,A          ;
;等待第二个码值的上升沿         ;
    CLR   T_OVER         ;
    MOV   TH1,#0FAH        ;
    MOV   TL1,#099H        ;
    SETB  TR1           ;
RM3:  JB   T_OVER,RM5       ;
    JB   REM,RM3         ;
    CLR   TR1           ;
                    ;
    CLR   T_OVER         ;
    MOV   TH1,#0FAH        ;
    MOV   TL1,#099H        ;
    SETB  TR1           ;
RM4:  JB   T_OVER,RM5       ;
    JNB   REM,RM4         ;
    CLR   TR1           ;
    DJNZ  34H,REMOTE6       ;
;把接收的编码左移4 位将8 位密码放在同一字节上
    MOV   34H,#4         ;
    AJMP  REMOTE7         ;
RM5:  AJMP  REMOTE_END       ;
REMOTE7:                ;
    CLR   C            ;
    MOV   A,33H          ;
    RLC   A            ;
    MOV   33H,A          ;
    MOV   A,31H          ;
    RLC   A            ;
    MOV   31H,A          ;
    CLR   C            ;
    MOV   A,30H          ;
    RLC   A            ;
    MOV   30H,A          ;
    MOV   A,32H          ;
    RLC   A            ;
    MOV   32H,A          ;
    DJNZ  34H,REMOTE7       ;
;把4 位数据编码由高4 位移到低4 位上   ;
    MOV   A,33H          ;
    SWAP  A            ;
    MOV   33H,A          ;
    MOV   A,30H          ;
    SWAP  A            ;
    MOV   30H,A          ;
    SETB  ENABLE_DETE       ;
    SETB  RECEIVE         ;
                    ;
    AJMP  REMOTE_END_1      ;


: 
1、 本站不保证以上观点正确,就算是本站原创作品,本站也不保证内容正确。
2、如果您拥有本文版权,并且不想在本站转载,请书面通知本站立即删除并且向您公开道歉! 以上可能是本站收集或者转载的文章,本站可能没有文章中的元件或产品,如果您需要类似的商品请 点这里查看商品列表!
本站协议 | 版权信息 |  关于我们 |  本站地图 |  营业执照 |  发票说明 |  付款方式 |  联系方式
深圳市宝安区西乡五壹电子商行——粤ICP备16073394号-1;地址:深圳西乡河西四坊183号;邮编:518102
E-mail:51dz$163.com($改为@);Tel:(0755)27947428
工作时间:9:30-12:00和13:30-17:30和18:30-20:30,无人接听时可以再打手机13537585389