导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→这是网友"剑龙"用汇编写的,他向我请教过,我在他的同意下公开

* 37352: PC遥控源码放送

   明浩 
明浩发表的帖子 

 
这是网友"剑龙"用汇编写的,他向我请教过,我在他的同意下公开他的源码。
ORG 0000H 
MOV SCON,#50H;工作在串口方式1
MOV PCON,#00H
MOV TMOD,#20H;9600波特率 
MOV TH1,#0FDH
MOV TL1,#0FDH
SETB TR1
  
LOOP1:
  MOV P2,#0FFH
  MOV R0,#50H;第一个数据存储器为50H
  MOV R6,#4;NEC码一共有4个字节的数据

  MOV R1,#25
D1:JB P2.0,$
D2:LCALL YS300US
  JB P2.0,LOOP1
  DJNZ R1,D2
  MOV R1,#12
  JNB P2.0,$
D3:LCALL YS300US
  JNB P2.0,LOOP1
  DJNZ R1,D3;以上为起始码检测

  JB P2.0,$
D5:MOV R7,#8
D4:JNB P2.0,$
  ACALL YS540US
  MOV C,P2.0
  JNC D6
  JB P2.0,$
D6:MOV A,@R0
  RLC A
  MOV @R0,A
  DJNZ R7,D4  
  INC R0
  DJNZ R6,D5;以上为4个字节数据的接收
(分别为2个字节用户码和2个字节地址码)


  MOV P1,#0FFH
  MOV A,50H
  CPL A
  XRL A,51H
  JZ DDD1
  AJMP LOOP1;以上为用户码检测
 DDD1:
  MOV A,52H
  CPL A
  XRL A,53H
  JZ DA0
  AJMP LOOP1;以上为地址码检测
DA0:
  MOV R2,#6;如果检测通过,
就向串口发送6次最后一位地址码

DA1:
  MOV A,53H
  MOV SBUF,A
  JNB TI,$
  CLR TI
  DJNZ R2,DA1
 DA8:AJMP LOOP1;返回


YS540US:  ;延时540微秒
  MOV R5,#1
 DD1:MOV R4,#250
  DJNZ R4,$
  DJNZ R5,DD1
  RET
YS300US:  ;延时300微秒
  MOV R3,#139
  DJNZ R3,$
  RET
 
END
 
注:必须向串口发送6次才行,否则当你重启机子时就不能用了。
    本机的红外解码部分参照"电子制作试验室"
                                                    作者:剑龙



发表时间:2003年7月17日13:44:37

  
回复该帖

本主题共有 2 帖,分页:>>>>>该主题的所有内容[2]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

[上一篇帖子]:多谢了! /P P esnail@sina.com
[下一篇帖子]:PC遥控源码放送PC遥控源码放送   [IMG]http://www.pc