这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 活动中心 » 合作大赛 » 红外线接收设计主程序(参考)

共1条 1/1 1 跳转至

红外线接收设计主程序(参考)

高工
2015-06-10 22:58:43     打赏
红外线接收主程序: 

ORG  0000H 
AJMP  RECE  
ORG  0111H 
RECE:    MOV   R5,  # 4 ;        接收4位红绿灯信号 
JB P2.0, $ ;   
MOV R7, # 15 ;     
RECE1:  LCALL   DELAY  ;  调用一次子程序DELAY,产生一个26us的延时 
DJNZ  R7,  RECE1 ;等待15个脉冲的时间 
          JB  P2. 0,  RECE1 ;  延时15个脉冲后Pl. 0=1,转RECE1重新检测 
JNB    P2. 0, $;    延时15个脉冲后P2. 0还是0传输开始再等编码中的高电平(如图8中E点和F点) (直接位不为1则转移) 
GM:      MOV  R7,  # 15 ;     编码中的高电平到来后,延时15个脉冲的时间 
GM1:     LCALL   DELAY  ;  调用一次子程序DELAY,产生一个26us的延时 
         DJNZ  R7, GM1;   延时15个脉冲 
JNB   P2. 0,   RE1:    延时15个脉冲后, P2. 0= 0转RE1, P2. 0= 1顺序执行 
CLR  C;              P2.0= 1时应解码为0(图8中B点),使标志C清0 
CLR  A;         使A清0 
RLC   A;           把标志C= 0移入寄存器A中,经4次移位到A的高位 
GM2:    JB  P2.0 , GM2 ;  等待低电平 
LJMP   XYW;      转接收下一位 
RE1:   SETB   C ;          P2.0= 0时应解码为1(图A 中A点),使标志C置1 
CLR  A  ; 
RLC  A ;         把标志C= 1移入寄存器A中 
JNB  P2.0 , $;    等待高电平 
XYW:  DJNZ  R5,GM;       4位未接收完,继续 
JNB   Acc.1  , RED ;      红灯提示发声 
GREEN:      MOV  R0,  #50H ;   绿灯提示发声 
         ACALL   PLAY ;      调放音子程序 
         MOV  R0,  #78H; 
        ACALL  PLAY;     调放音子程序 
  LJMP  STOP 
RED:  MOV  R0,  #00H 
     ACALL  PLAY ; 调放音子程序 
     MOV  R0,  #28H; 
     ACALL  PLAY;调放音子程序 
     LJMP  STOP 

DELAY:  MOV   R6,    #12;   1us 
    DJNZ    R6,  $ ;24us 
              RET ;    1 us 

PLAY: MOV  A,  #00H;复位信号 
      MOV  P1, A;     使P1复位,P1才能作为输入口。 
      SETB   P2.1;  复位后,P2.1才能作为通用I/O口使用。 
SETB   P2.2;  复位后,P2.2才能作为通用I/O口使用。 
      MOV  A, R0;  放音地址码由R0送A  
      MOV  Pl, A;    放音地址码由A送P1口 
      CLR  P2.2  ;  PLAY端置低电平. 开始放音 
ACALL  FOUR ;  延时放音时间4s多(录音时每段用5秒,但用2秒时间说完) 
      MOV  A,  #00H;复位信号 
      MOV  P1,  A; 使P1复位 
      SETB  P2.2  ; 停止放音 
RET 
FOUR: MOV R7,#50; 
FOUR0: MOV R6,#200; 
FOUR1: MOV R5,#200; 
DJNZ R5,$;200×2us=400us=0.4ms           
DJNZ R6,FOUR1;0.4ms×200=80ms 
DJNZ R7,FOUR0;80ms×50=4000ms=4s 
RET 

STOP:  SJMP  $ 
END 
语音信息可分成4段录入,每段5s。 
语音 
段序号 语言 
信息 起始 
时间 起始 
地址 
数 起始 
地址 
码 开关SWI-SW8的状态(1是断开,高电平) 
SW8 SW7 SW6 SW5 SW4 SW3 SW2 SW1 
1 红灯亮 0 0 00H 0 0 0 0 0 0 0 0 
2 请停止 5 40 28H 0 0 1 0 1 0 0 0 
3 绿灯亮 10 80 50H 0 1 0 1 0 0 0 0 
4 请前行 15 120 78H 0 1 1 1 1 0 0 0 


共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]