性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

  • 回復(fù)
  • 收藏
  • 點贊
  • 分享
  • 發(fā)新帖

為什么我的紅外接收程序就是不行呢?大夾幫我分析下吧

我是用最基本的匯編來編的,用89C2051做的,用中斷來做的,嗚嗚,搞了很久就是不知道原因在哪里?大夾幫幫忙吧?


       CP17  BIT  P1.2    
       CP16  BIT  P1.0  
       CP15  BIT  P1.1  
       CP32  BIT  P3.2  ;INTO

       ORG   0000H
       AJMP  MAIN
       ORG   0003H
       AJMP  INTT0
       ORG   0100H
MAIN:  MOV   SP   , #60H
       SETB  IT0
       MOV   IP   , #00000001B
       SETB  EA
       SETB  EX0
       MOV   P1   , #00H
       SETB  CP32
       CLR   A  
KAIJI: CJNE  A    , #1CH  , KJWAIT
       AJMP  KJ
KJWAIT:AJMP  KAIJI
KJ:    CLR   CP17
       CLR   CP16
       SETB  CP15
       CLR   A
YUNXIN:CJNE  A    , #00H  ,  TT0
       AJMP  YUNXIN
TT0:   CJNE  A    , #19H  ,  TT1
       ACALL KEYW
       AJMP  YUNXIN
TT1:   CJNE  A    , #01H  ,  TT2
       ACALL KEYR
       AJMP  YUNXIN
TT2:   CJNE  A    , #02H  ,  TT3
       ACALL KEYG
       AJMP  YUNXIN
TT3:   CJNE  A    , #03H  ,  TT4
       ACALL KEYB
       AJMP  YUNXIN
TT4:   CJNE  A    , #15H  ,  TT5
       ACALL KEYOFF
TT5:   AJMP  YUNXIN

KEYW: SETB  CP17
       SETB  CP16
       SETB  CP15
       CLR   A
       RET
KEYR: SETB  CP17
       CLR   CP16
       CLR   CP15
       CLR   A
       RET

KEYG: CLR   CP17
       SETB  CP16
       CLR   CP15
       CLR   A
       RET

KEYB: CLR   CP17
       CLR   CP16
       SETB  CP15
       CLR   A
       RET

KEYOFF:CLR  CP17
       CLR   CP16
       CLR   CP15
       CLR   A
       RET

       ORG   0200H
INTT0: PUSH  DPH
       PUSH  DPL
       CLR   EA
      
       MOV   R2   , #32
       MOV   R6   , #10

       JNB   P3.2 , $
BYT1:  JB    P3.2 , $
       JNB   CP32 , $
       MOV   R6   , #3
S1:    MOV   R3   , #150
       DJNZ  R3   , $
       DJNZ  R6   , S1
       MOV   C    , CP32
       MOV   R3   , #4
       MOV   R0   , #1DH
BYT2:  MOV   A    , @R0
       RRC   A
       MOV   @R0  , A
       DEC   R0
       DJNZ  R3   , BYT2
       DJNZ  R2   , BYT1
       MOV   A    , 1AH
       XRL   A    , #40H
       JNZ   EXIT
       MOV   A    , 1BH
       XRL   A    , #0BFH
       JNZ   EXIT
      
       MOV   R2   , #6
       MOV   DPTR , #TABLE
LOOKUP:MOV   A    , R2
       MOVC  A    , @A+DPTR
       XRL   A    , 1CH
       JZ    EXIT1
       DJNZ  R2   , LOOKUP
       AJMP  EXIT
EXIT1: MOV   A    , 1CH
       SJMP  EDYK
EXIT:  CLR   A
EDYK:  SETB  EA
       POP   DPL
       POP   DPH
       RETI

TABLE: DB    00H , 01H , 02H , 03H , 1CH , 15H , 19H

       END
全部回復(fù)(3)
正序查看
倒序查看
dz3690
LV.2
2
2009-07-25 00:19
好久不用匯編了,沒注釋,難看懂.
說個思路:用統(tǒng)計兩次外中斷之間的時間長度來判斷是收到的幀頭、信息1、信息0.
0
回復(fù)
syfxqy
LV.1
3
2009-07-25 09:34
@dz3690
好久不用匯編了,沒注釋,難看懂.說個思路:用統(tǒng)計兩次外中斷之間的時間長度來判斷是收到的幀頭、信息1、信息0.
用統(tǒng)計兩次外中斷之間的時間長度來判斷是收到的幀頭、信息1、信息0..?
不是很理解,能否再說詳細(xì)點,行不?有沒有好的案例
0
回復(fù)
one_touch
LV.1
4
2009-07-26 10:21
@syfxqy
用統(tǒng)計兩次外中斷之間的時間長度來判斷是收到的幀頭、信息1、信息0..?不是很理解,能否再說詳細(xì)點,行不?有沒有好的案例
兄弟,你要先知道你的遙控器發(fā)出的什么碼?然后根據(jù)它發(fā)的波形,設(shè)當(dāng)留有余量,就可以了.
    一個寬度,區(qū)分"0","1",還有大于多長時間就認(rèn)為出錯,重行計時.很簡單的東西,用示波器測量一下,各個代碼不一樣.
0
回復(fù)
發(fā)