历史上的今天
返回首页

历史上的今天

今天是:2025年01月07日(星期二)

正在发生

2018年01月07日 | 30路红外遥控开关程序

2018-01-07 来源:eefocus

30路遥控开关,按0-30个键分别点亮p0.0-p3.5的灯,32键全灭 

    org 00h 
    ORG 30H 
    MOV P1,#0FFH 
    MOV P2,#0FFH


MOV P3,#0FFH 
START: 


    JB P3.7,$        ;等待遥控信号出现 
SB: 
    MOV R4,#8       ;8毫秒为高电平错误 
SBA: 
    MOV R5,#250 
SBB: 
    JB P3.7,SXB1 
    DJNZ R5,SBB 
    DJNZ R4,SBA 
    MOV R4,#2 
    JMP SBC 
SXB1: 
    MOV R5,#5 
SXB2:                 ;去掉20US的尖峰干扰信号 
    JNB P3.7,SBB 
    DJNZ R5,SXB2 
    JMP START 
SBC: 
    MOV R5,#250 
SB1: 
    JB P3.7,SB2     ;2MS内不为高电平错误(监测9MS的低电平引导码) 
    DJNZ R5,SB1 
    DJNZ R4,SBC 
    JMP START 
SB2:                    ;去掉20US的尖峰干扰信号 
    MOV R5,#5 
SB2_A: 
    JNB P3.7,SB1 
    DJNZ R5,SB2_A 
    MOV R4,#3 
SB2_1: 
    MOV R5,#250 
SB3:                     ;监测4.5MS高电平,如3MS内出现低电平错误 
    JNB P3.7,SXC 
    DJNZ R5,SB3 
    DJNZ R4,SB2_1 
    MOV R4,#2 
    JMP SB3_1 
SXC:                     ;去掉20US的尖峰干扰信号 
    MOV R5,#5 
SXC1: 
    JB P3.7,SB3 
    DJNZ R5,SXC1 
    JMP START 
SB3_1:                    ;监测4.5MS高电平,如5MS内不为低电平错误 
    MOV R5,#250 
SB3_2: 
    JNB P3.7,SB4 
    DJNZ R5,SB3_2 
    DJNZ R4,SB3_1 
    JMP START 
SB4:                       ;去掉20US的尖峰干扰信号 
    MOV R5,#5 
SB4_1: 
    JB P3.7,SB3_2 
    DJNZ R5,SB4_1 
    MOV R1,#1AH     ;设定1AH为起始RAM区 
    MOV R2,#4 
PP: MOV R3,#8 
JJJJ: 
    MOV R5,#250 
JJJJ2:                   ;1MS内不为低电平错误 
    JB P3.7,JJJJ3 
    DJNZ R5,JJJJ2 
    JMP START 
JJJJ3: 
    LCALL YS1         ;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态 
    MOV C,P3.7      ;将P3.7引脚此时的电平状态0或1存入C中 
    JNC UUU         ;如果为0就跳转到UUU 
    MOV R5,#250 
JJJJ4: 
    JNB P3.7,UUU 
    NOP 
    DJNZ R5,JJJJ4 
    JMP START 
UUU:    MOV A,@R1     ;将R1中地址的给A 
    RRC A           ;将C中的值0或1移入A中的最低位 
    MOV @R1,A       ;将A中的数暂时存放在R1中 
    DJNZ R3,JJJJ    ;接收地址码的高8位 
    INC R1          ;对R1中的值加1,换成下一个RAM 
    DJNZ R2,PP      ;接收完16位地址码和8位数据码和8位数据反码,存放在1AH/1BH/1CH/1DH的RAM中 
            ;以下对代码是否正确和定义进行识别 
    MOV A,1AH    ;比较高8位地址码 
    XRL A,#00000000B;判断1AH的值是否等于00000000,相等的话A为0 
    JNZ EXIT    ;如果不相等说明解码失败退出解码程序 
    MOV A,1BH    ;比较低8位地址 
    XRL A,#11111111B;再判断高8位地址是否正确 
    JNZ EXIT    ;如果不相等说明解码失败退出解码程序 
    LCALL YS3 
    MOV A,1CH    ;比较数据码和数据反码是否正确? 
    CPL A 
    XRL A,1DH     ;将1CH的值取反后和1DH比较 不同则无效丢弃,核对数据是否准确 
    JNZ EXIT    ;如果不相等说明解码失败退出解码程序 
    LCALL YS3 
    AJMP BIJIAO 
            ;判断在118毫秒内是否有连发码 
AA:    MOV R1,#25 
XX:    ACALL YS2 
    JNB P3.7,HH    ;跳转到判断连发代码是否正确的程序段 
    DJNZ R1,XX 
EXIT:             ;对所有端口清零 

    AJMP START 
            ;连发码判断程序段----------- 
HH:    MOV R6,#4 
S:     ACALL YS1    ;调用882微秒延时子程序 
    JB P3.7,EXIT    ;延时882微秒后判断P3.7脚是否出现高电平如果有就退出解码程序 
    DJNZ R6, S    ;重复4次,目的是确认连发码的低电平信号波形 
    JNB P3.7, $     ;等待高电? 
    LCALL YS3 
    AJMP AA 

BIJIAO:    MOV A,1CH    ;按键数值判断执 
    CJNE A,#10h,TT1 
     clr p0.0 
  TT1:     CJNE A,#03h,T2 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p0.1 
  T2:     CJNE A,#01h,T3 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p0.2 
  T3:     CJNE A,#06h,T4 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p0.3 
  T4:     CJNE A,#09h,T5 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p0.4 
  T5:     CJNE A,#1dh,T6 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p0.5 
  T6:    CJNE A,#1fh,T7 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p0.6 
  T7:     CJNE A,#0dh,T8 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p0.7 
  T8:    CJNE A,#19h,t9 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p1.0 
  T9:    CJNE A,#1bh,t10 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p1.1 
  T10:     CJNE A,#11h,t11 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p1.2 
  T11:     CJNE A,#15h,t12 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p1.3 
  T12:     CJNE A,#17h,t13 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p1.4 
  T13:     CJNE A,#12h,t14 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p1.5 
  T14:     CJNE A,#16h,t15 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p1.6 
  T15:     CJNE A,#4ch,t16 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p1.7 
  T16:     CJNE A,#40h,t17 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p2.0 
  T17:     CJNE A,#48h,t18 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p2.1 
  T18:     CJNE A,#04h,t19 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p2.2 
  T19:     CJNE A,#00h,t20 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p2.3 
  T20:     CJNE A,#02h,t21 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p2.4 
  T21:     CJNE A,#05h,t22 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p2.5 
  T22:     CJNE A,#54h,t23 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p2.6 
  T23:     CJNE A,#4dh,t24 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p2.7 
  T24:     CJNE A,#0ah,t25 
   MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p3.0 
  T25:     CJNE A,#1eh,t26 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p3.1 
  T26:     CJNE A,#0eh,t27 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p3.2 
  T27:     CJNE A,#1ah,t28 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p3.3 
  T28:     CJNE A,#1ch,t29 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p3.4 
  T29:     CJNE A,#14h,t31 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

  clr p3.5 
  T31:     CJNE A,#0ch,t32 
  MOV p0,#0ffh 
  MOV p1,#0ffh 
  MOV p2,#0ffh 
  MOV p3,#0ffh 

t32:    AJMP AA 
YS1:    MOV R4,#20     ;延时子程序1,精确延时882微秒 
    D1: MOV R5,#20 
    DJNZ R5,$ 
    DJNZ R4,D1 
    RET 
YS2:     MOV R4,#10     ;延时子程序2,精确延时4740微秒 
    D2: MOV R5,#235 
    DJNZ R5,$ 
    DJNZ R4,D2 
    RET 
YS3:    MOV R4,#2    ;延时程序3,精确延时1000微秒 
    D3:MOV R5,#248 
    DJNZ R5,$ 
    DJNZ R4,D3 
    RET 
    END 


推荐阅读

史海拾趣

粤翔(FlyWin)公司的发展小趣事
合理设计电路结构,确保各元件之间的连接正确无误,同时考虑电路的可靠性和稳定性。
E. Dold & Söhne KG公司的发展小趣事

在电子行业快速发展的背景下,E. Dold & Söhne KG公司始终紧跟科技潮流,致力于技术创新。公司投入大量资源研发新型电子元件和系统,以满足市场对于高性能、高可靠性产品的需求。通过不断的技术创新,E. Dold & Söhne KG公司在行业内树立了良好的口碑,成为众多知名企业的合作伙伴。

EDO Corp公司的发展小趣事

随着科技的不断进步,电子行业也在不断变化。Eclipse Magnetics深知,只有不断创新才能保持竞争力。因此,公司不断加大研发投入,积极探索新的技术方向。同时,公司还面临着来自全球竞争对手的挑战。然而,Eclipse Magnetics凭借其强大的研发实力和品牌影响力,始终保持着领先地位。

以上故事均基于Eclipse Magnetics在电子行业中的发展历程进行概括性描述,具体细节可能因实际情况而有所不同。

Elma Electronic Inc公司的发展小趣事

Elma Electronic Inc公司在电子封装市场拥有显著的领导地位。从VME/VME64x到Rugged COTS封装,该公司凭借其创新的设计和制造技术,成功地在多个细分市场取得了领先地位。这种领导地位不仅体现在产品的多样性上,更在于其为客户提供的高质量、可靠性和性能优异的产品。

安美通(APPCON)公司的发展小趣事

在发展过程中,安美通始终注重与合作伙伴的互利共赢。公司与多家知名企业建立了战略合作关系,共同开拓市场、分享资源。这些合作不仅为公司带来了更多的商业机会,也提高了其在行业内的知名度和影响力。

CALMIRCO公司的发展小趣事

CALMIRCO公司注重企业文化的塑造,倡导“创新、协作、务实、进取”的企业精神。公司通过定期举办员工培训、团队建设等活动,提升员工的职业素养和团队协作能力。同时,CALMIRCO公司还建立了完善的激励机制,鼓励员工积极创新、勇于担当。这些举措使得CALMIRCO公司的团队凝聚力不断增强,为公司的持续发展提供了有力保障。

问答坊 | AI 解惑

求九画面VGA分割器

想做一个九画面VGA分割器,就是能把9台电脑的画面接在一台VGA显示器上显示。 好像AM-209M可以实现,可是网上找不到更详细的资料。真是无重下手。 希望大家能给点宝贵意见。…

查看全部问答>

半导体存储器

半导体存储器 几个基本概念 数的本质和物理现象。 我们知道,计算机可以进行数学运算,这可令我们非常的难以理解,计算机吗,我们虽不了解它的组成,但它总只是一些电子元器件,怎么可以进行数学运算呢?我们做数学题如37+45是这样做的, ...…

查看全部问答>

串口通信中校验位和校验字节的问题

请问单片机方面每个字节的校验位怎么设置? 一帧数据的校验字节用什么算法来计算较为合理?…

查看全部问答>

请教关于PXA270处理器的BSPmainstone3的问题

请教各位:     关于PXA270处理器的BSP:mainstone3的问题: 我下载的是盛博的wince50---bsp :看文件夹结构应该是mainstone3的 这个BSP把C:\\WINCE500\\PLATFORM\\COMMON   和 \\WINCE500\\PUBLIC\\COMMON\\OAK\\CSP\\ARM\\ ...…

查看全部问答>

can总线干扰问题!

各位大侠,我现在在调CAN总线,我的CAN总线,控制器是用AT89S52+SJA1000+TJA1050,波特率是250K,总线上有加匹配电阻120,当我的节点少于13个时很正常,可是当大于13个以上的时候,每增加一个节点,我用总线监视器看到的错误就增加了不少,不知道这是什么原 ...…

查看全部问答>

阿牛哥参加电源技术研讨会见闻!

9月17日阿牛哥去北京国宾酒店参加电源技术研讨会。芯片大厂TI ,NS ,MAXIM ,ON 来了,测试测量厂商泰克,安捷伦,力科,普源精电也来了,还有广州金升阳都来了。了解业内领先者新产品和对行业看法,可以看到一些趋势性东西,免得走弯路。   ...…

查看全部问答>

fpga 扩展异步串行口

fpga 扩展异步串行口,通过max485芯片输出的差分信号送给外部设备,没有响应(如果直接通过PC机串口转485后发送信号,外围设备有响应);如果我把max485输出的信号经过RS485转232送回给PC机,通过串口调试助手可以读到相应的信号   咨询一下 ...…

查看全部问答>

有没有STM32的温度控制例程?急!!!

                                 谢谢啦!最好详细点 程序多点…

查看全部问答>

51单片机串口通信

想用max232做一个51单片机串口通信硬件电路,急需电路图,请哪位大侠贴上电路图. 再问一下接口能用usb子口吗?…

查看全部问答>

TNY277PN设计问题

我设计了一个5V 2.5A的 电源  是参考那个软件设计的,但是软件提示的是使用EE19的变压器,但是线圈是绕的1.2脚  和5.6脚,我就想不懂了,这个是为什么?请高手知道下,非常感谢!!!…

查看全部问答>