标准红外遥控的接收程序-松瀚汇编源程序

标准红外遥控的接收程序-松瀚汇编源程序

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

/****************************************************
名称: 标准红发遥控 接收程序--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: ;退出接收程序
;&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118522.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • tf2013_access下载免费中文版

    tf2013_access下载免费中文版
    TFS2010中文版下载 
     
    MicrosoftVisualStudioTeamFoundationServer2010中文版90天试用,可直接加序列号成正式版快速描述MicrosoftVisualStudioTeamFoundationServer2010是一个协作平台,它是Microsoft应用程序生命周期管理解决方案的核心,可帮助团队在整个IT生命周期中降低风险、简化交互过程并杜绝浪费。
    http://www.micros

    2022年9月24日
    3
  • 卡罗拉配置参数表_fr154参数

    卡罗拉配置参数表_fr154参数H.264VideoEncodingGuideContentsConstantRateFactor(CRF) Two-Pass LosslessH.264 Overwritingdefaultpresetsettings AdditionalInformation&Tips FAQ AdditionalResourcesThe…

    2022年9月24日
    3
  • Linux下rpm包x86、i386、i486、i586、i686和x86_64这些后缀含义

    Linux下rpm包x86、i386、i486、i586、i686和x86_64这些后缀含义iamlaosong评:虽然rpm包版本很多,不过目前的新机器都可以使用x86_64版本,而且也应该使用这个版本,除非一些特殊场合,比如为了使用一些老版程序。有些功能没有x86_64版本,那也只好用i386了。现在的发行包,一般也就提供i386和x86_64两个版本,即32位版本和64位版本,有些甚至已经不提供i386版本了。1、i386、i586、i686与Noarchi386—几乎所有的X…

    2022年6月6日
    138
  • GOF23-创建型:简单工厂模式

    GOF23-创建型:简单工厂模式

    2021年7月12日
    78
  • C#QuotedStr方法实现,引号的处理

    C#QuotedStr方法实现,引号的处理在Delphi中处理引号有QuotedStr函数,但C#中却没有相应的处理!所以转换了Delphi的代码为C#中来处理。。以下为代码!protectedstringQuotedStr(stringS){stringvResult;vResult=S;for(inti

    2022年10月17日
    6
  • CentOS如何查看本机ip

    CentOS如何查看本机ip之前我们习惯的 ipconfig 不能用了原来是改了呀 改成了 ipaddress 我们可以输入 ipaddress 也可以输入 ipaddr 或者是 ipadd 你会发现 无法查看 ip 但至少这个命令是存在的你需要打开网卡配置文件 etc sysconfig network scripts ifcfg ens33 将 ONBOOT 修改为 yes 也就是启动网卡 vi et

    2025年10月10日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号