zoukankan      html  css  js  c++  java
  • 标准红外遥控的接收程序-松瀚汇编源程序

    /****************************************************
    名称: 标准红发遥控 接收程序--4BYTE
    平台为: 松瀚SN8P2511
    接收方式为 定时中断接收 中断定时时间为100U
    *****************************************************/
    ;寄存器定义
    STS1 DS 1
    F_IRECOK EQU STS1. 0 ;接收到一帖数据
    
    T_IRSTA  DS 1
    T_IRNUMPOSI DS 1 ;高电平计数器
    R_IRDAT1 DS 1 ;接收缓冲区
    R_IRDAT2 DS 1
    R_IRDAT3 DS 1
    R_IRDAT4 DS 1
    R_IRDATBUF DS 1 ;成功接收到的数据
    ;常数定义
    VT_LEVEL0 EQU 10 ;1MS
    VT_LEVEL1 EQU 20 ;2MS
    
    ;下面为中断接收程序--100U进入中断一次
    ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    ;先接收R_IRDAT4 最后接收R_IRDAT1
    ;R_IRDAT4 R_IRDAT3 R_IRDAT2 R_IRDAT1 分别为地址码 地址反码 数据码 数据反码
     BTS0 F_IRECOK ;数据未取出 临时不接收新数据
     JMP L_IREXIT
     CLR T_IRSTA
     BTS1 P_IR 
     INCMS T_IRSTA
     BTS1 P_IR 
     INCMS T_IRSTA
     BTS1 P_IR 
     INCMS T_IRSTA
     BTS1 T_IRSTA. 1
     JMP L_IRPOSI
    L_NEGA1: ;当前为0
     MOV A, T_IRNUMPOSI
     B0BTS0 FZ
     JMP L_IREXIT
     MOV A, T_IRNUMPOSI 
     SUB A, #VT_LEVEL1 ;高电平时间大于 数据1 觉得起始 
     B0BTS0 FC
     JMP L_INITIRDAT
     
     BTS0 R_IRDAT4. 0
     BSET F_IRECOK ;接收完一帖数据
      
     MOV A, T_IRNUMPOSI 
     SUB A, #VT_LEVEL0 ;高电平时间大于 数据0 觉得接收到数据1 
     RRCM R_IRDAT1
     RRCM R_IRDAT2
     RRCM R_IRDAT3
     RRCM R_IRDAT4
     
     CLR T_IRNUMPOSI
     JMP L_IREXIT
    L_INITIRDAT: ;接收到起始码以后 初始化各数据 
     CLR T_IRNUMPOSI
     MOV A, #0X80
     MOV R_IRDAT1, A
     CLR R_IRDAT2
     CLR R_IRDAT3
     CLR R_IRDAT4
    ; BCLR F_IRECOK
     JMP L_IREXIT 
    ;-------------------------------
    L_IRPOSI: ;当前为1
     INCMS T_IRNUMPOSI
     NOP 
    L_IREXIT: ;退出接收程序
    ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

  • 相关阅读:
    倍增_ST表与LCA
    树状数组
    CF1365B 题解
    左偏树
    ES5_04_Array扩展
    ES5_03_Object扩展
    ES5_05_Function扩展
    前台样式与实际开发应用
    利用Mircosoft URLRewriter.dll实现页面伪静态(伪静态系列一)
    递归算法常见习题代码(控制台程序)
  • 原文地址:https://www.cnblogs.com/yxwkf/p/3979828.html
Copyright © 2011-2022 走看看