⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄

📁 里面包括很多的驱动程序的
💻
字号:
红外线接收程序如何写? [stong] [50次] 2001-3-5 17:45:29
要在8052上写NEC格式的红外线接收程序,在识别引导码时,9ms+4.5ms的时间我用延时子
程序来完成,不过我觉得用计数器中断应该更好吧,但是不会写,请高手指点一二! 

方法很多 [秋雨] [49次] 2001-3-5 19:58:53 
1:用门控法,设定一个计数器,用外部遥控电平控制开关
2:采样法,如每2ms采样一次,小于3次为4.5ms,大于3次为9ms
3:中断法,遥控信号在翻一次相,元信号和反相后的信号分别接到两个中断上
 让一个计数器计时
等等 

stong: 您可看我所提供的程式! [tienan] [54次] 2001-3-6 13:42:42 
 ;*************************************************************************
*
;  文 件 名 : REMOTE.A51                                                  *
;  芯片型号 : AT89C2051 MCU @6Mhz                                         *
;  发射芯片 : PT2222 OR PT2213                                            *
;  功    能 : 遥控器键码接收解码程式                                      *
;  版 本 号 : VER. 2.00                                                   *
;  编程日期 : 00-10-17 16:57                                              *
;  最后修改日期 : 00-10-17 16:57                                          *
;  联系电话 :0755-3236107                                               *
;**************************************************************************

  ir_rec_ok     bit     00h
  ir_first      bit     01h

  stack         equ     50h
  custom_code   equ     21h
  key_code      equ     23h

  custom_id     data    0eh

  leader_code   data    11h        ; 引导码
  end_code      data    5ch        ; 尾码
  code_0        data    02h        ; "0" 码
  code_1        data    04h        ; "1" 码

;*************************************************************************

                org     0000h
                jmp     initial
                org     0003h
                jmp     ir_recever

;*************************************************************************

                org     0030h
      initial:  mov     r0,#02h
                mov     r1,#7fh
      clr_reg:  mov     @r0,#00h
                inc     r0
                djnz    r1,clr_reg

                mov     sp,#stack
                mov     tmod,#00000001b
                mov     ip,#00000001b
                mov     tcon,#00000001b
                clr     et0
                mov     ie,#10000001b

     main_pro:  nop
                jb      ir_rec_ok,key_pro
                nop
                jmp     main_pro

;*************************************************************************

      key_pro:  nop
                nop
                nop
                nop
                clr     ir_rec_ok
                jmp     main_pro

;************** 红外接收解码程式入口 *************************************

   ir_recever:  push   acc
                push   psw
                setb   rs0
                clr    rs1
                mov    a,th0
                mov    r2,a
                mov    tl0,#00h
                mov    th0,#00h
                setb   tr0
                cjne   a,#leader_code,chk_end1
                mov    r0,#20h
                setb   ir_first

   int_return:  clr     ie0
                pop     psw
                pop     acc
                reti

     chk_end1:  jnb     ir_first,int_return
                cjne    a,#end_code,read_code
                jmp     int_return

    read_code:  mov     a,r2
                cjne    a,#code_0,receive_1
                jmp     receive_0

    receive_1:  cjne    a,#code_1,int_return
                setb    c
                jmp     encode

    receive_0:  clr     c

       encode:  mov     a,key_code+1
                rrc     a
                mov     key_code+1,a
                mov     a,key_code
                rrc     a
                mov     key_code,a
                mov     a,custom_code+1
                rrc     a
                mov     custom_code+1,a
                mov     a,custom_code
                rrc     a
                mov     custom_code,a
                djnz    r0,int_return

                mov     a,custom_code
                cjne    a,#custom_id,ir_exit_int

                mov     a,key_code
                cpl     a
                xrl     a,key_code+1
                jnz     ir_exit_int
                setb    ir_rec_ok
                jmp     ir_ok_exit

  ir_exit_int:  clr     ir_rec_ok
   ir_ok_exit:  clr     tr0
                mov     tl0,#00h
                mov     th0,#00h
                clr     ir_first
                pop     psw
                pop     acc
                reti

;**************************************************************************

                db      " ver. 2.00  zhou  00-10-17 16:57 "
  end


 
点击这里回复这篇贴子>>
_____________________________________________________________________________
Copyright?,C51BBS论坛 2000-2001 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -