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: ;退出接收程序
    ;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

  • 相关阅读:

    队列
    数据结构简介
    标准模板库
    类模板
    函数模板
    srvctl error
    FLASH BACK
    RAC 设置archive log模式
    CHAPTER 1 Architectural Overview of Oracle Database 11g
  • 原文地址:https://www.cnblogs.com/yxwkf/p/3979828.html
Copyright © 2011-2022 走看看