找回密码
 注册
关于网站域名变更的通知
查看: 343|回复: 2
打印 上一主题 下一主题

提取单片机遥控器的控制码,但无论按那个键,控制码始终是0x00.

[复制链接]
  • TA的每日心情
    难过
    2019-11-20 15:02
  • 签到天数: 1 天

    [LV.1]初来乍到

    跳转到指定楼层
    1#
    发表于 2020-12-7 13:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

    EDA365欢迎您登录!

    您需要 登录 才可以下载或查看,没有帐号?注册

    x
    提取单片机遥控器的控制码,但无论按那个键,控制码始终是0x00
    1 z" y1 M# ^4 r4 b8 B: U
    7 F3 A, H; u6 r3 D; e#include "reg52.h"
    ; O7 \8 e2 w6 a7 V0 {# mtypedef unsigned char u8;
    5 d2 R! S8 R% G% Ztypedef unsigned int u16;, w- _0 j* F# U. k& g) S# v

    ) x+ L" ^& O- w! N" I& Dsbit LSA=P2^2;
    , E3 }  h9 A9 p6 Jsbit LSB=P2^3;
    ; K2 r+ ]! c: N# o7 e1 b7 \, A) nsbit LSC=P2^4;7 y& W) m. C0 I! U7 ]; W
    sbit IRIN=P3^2;        //这是红外线接收口$ H' h* p1 p3 ?; b  f3 l

    ) U: E7 n: V0 `u8 IrValue[6];        //这里存储的是遥控器发过来的数码
    ! G0 M& F0 j, }- k. }u8 time;& ?4 {. x3 u$ g+ b: a1 t
    u8 displayData[8];% `; T7 J0 `. s6 T5 [
    u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76};. D4 j% Z" }5 X7 f6 ?1 l) p& Q

    ; R9 f/ G1 i# e& B4 T9 [# ~  _delay(u16 i)
    - S9 \0 R# P6 v/ J6 o: e{  a# _8 l0 n' X5 t0 ]2 d
            while(i--);
    % u0 X. r8 ^; G}
    2 D$ ~7 j0 W0 q% L" C# H$ ?/ b$ u; q9 U8 c6 a
    void DigDisplay()
    / S& E  a1 S  s) U3 U6 N) j0 F{
    5 c3 f' ^" j$ s6 Y$ g8 B        u8 i;
    ! [% b) I2 s# P/ _2 s        for(i=0;i<3;i++)% F, G# b: @3 y; c8 ^  q* D, o  y9 K
            {7 e' n% {2 l& v" Y( f2 v- X' J
                    switch(i)
    . k. s# ^0 {$ g! n' S                {
      a+ ~/ d5 q* A% u& C- C                        case(0): LSA=1;LSB=1;LSC=1;break;3 m4 [' ?) k8 L0 K
                            case(1): LSA=0;LSB=1;LSC=1;break;/ J/ i8 G( d2 N# n
                            case(2): LSA=1;LSB=0;LSC=1;break;
    / L) i  ]9 e+ z& \                }
    8 o& A' }9 E& ?( r                P0=DisplayData;  G. e* u# U$ Q3 X% \  F9 n* G
                    delay(100);) D, b6 {' `* C5 Y. x
                    P0=0x00;* D. s/ }: q/ y$ Q# A9 c. X. O3 t
            }2 u: D8 B6 ]! h. l
    }
    5 G7 y# A' k3 W1 i" D
    " U" N+ E' R3 n- dvoid IrInit()3 [+ M. c" ]4 I
    {$ D/ H. N! w' i5 |& L) O
            IT0=1;
    1 K& p# v5 p. |$ v/ M* N        EX0=1;
    8 H8 f$ K4 p2 y+ u        EA=1;! U2 |5 ?1 ^; @: m" J$ ^) k0 _
            IRIN=1;
    ' r- N* C2 ~& G+ \0 K& B}
    5 P. s& B' T; _3 w
    2 r% s8 B9 p. h' s' Z3 |void main()
    3 t* M" s! t% W* r3 Y  n! s* L- B* A{        3 F& g# s5 c( M5 `0 h( F- N9 @5 j" \
            IrInit();3 C; w7 G6 b: N! @" z5 w  u# \7 y
            while(1)  n% }* I+ E5 s
            {        % h. ?( x4 N' m" H
                    DisplayData[0]=smgduan[IrValue[2]/16] ;
    + N# h1 ^5 W1 K' b% t7 A( k0 I' q- V: ?                DisplayData[1]=smgduan[IrValue[2]%16] ;
    & p. ^1 M  a( Z1 x8 a( \                DisplayData[2]=smgduan[16] ;  x5 @; a, k  I. _- [
                    DigDisplay();
    ) G% }. t7 m" `( q9 g. v; _        }) Y0 H8 B9 u2 K/ y( W  B5 M/ z
    }
    3 ~$ I3 m' w. t
    ; e- u1 m( }' S" t7 m7 uvoid ReadIr() interrupt 0
    : z$ X, b. C' [{
    4 ?2 I2 w7 Z* c5 X        u8 j,k;
    - a3 X/ Y3 [7 o) m        u16 err;: q( X& H: G- g$ {1 {/ E- `; x
            Time=0;
    / B2 j7 @4 l, s+ L# A+ I$ _+ Z        delay(700);
    $ f+ r- b: O: R* t) f9 s- p        if(IRIN==0)  H$ g9 m6 A1 }. y1 d' i9 C" C# V
            {
    . {7 |+ Y( y$ T, z5 R0 l                err=1000;
    : A: I1 d% u+ L3 Y* i0 c! L' t& h                while((IRIN==0)&&(err>0))
    * y1 K: G2 o2 n                {6 I& c6 L' r& c% c1 I* P
                            delay(1);: E/ \! x9 c, ^! F9 G; U
                            err--;) M0 g5 N  D' c" Q( [  ]
                    }
    - P7 g) a% E0 b' {0 ?                if(IRIN==1)
    ( a( M- b9 p4 O7 Q7 I  W                {2 Z; i: f/ A6 L. ?0 z
                            err=500;3 o: x& C" |% c: }. J, X
                            while((IRIN==1)&&(err>0))
      X6 z/ O1 @$ {                        {# {+ M  E+ H% d% A
                                    delay(1);5 I8 a& J. ]5 K; Z/ u
                                    err--;
    ; R4 t6 O" l/ R: t! n$ g9 E) H8 C                        }0 r7 R& Y/ s3 A$ m" |: H' R
                            for(k=0;k<4;k++)
    : f+ d8 Q" H" Y" |" y2 D                        {
    . B4 s6 v! H8 X( g1 h4 M  _                                for(j=0;j<8;j++)
    # c4 S, i/ ~: w3 V& \                                {
    % k) c& a. p! r; Z                                        err=60;
    * j+ ^1 W) A& M4 b/ H% F                                        while((IRIN==0)&&(err>0))5 |, H2 I& ~( Y$ Z
                                            {
      p4 o) i! j3 E' B                                                delay(1);4 N- @6 r  i% n( s. ~! R
                                                    err--;
    ' T; }& G) Z$ a) J# f. J                                        }+ x9 _8 J7 u$ O4 ^% P7 m
                                            err=500;
    ( ~, T2 _7 g" j5 z, a9 c) G. y                                        while((IRIN==0)&&(err>0))
    - D/ y* a8 M' a' z; Q. C/ [, _                                        {
    4 [4 Q, C" d% D, x! H/ E6 n2 `7 H) F                                                delay(10);& ~* ?; g$ {7 v& T
                                                    Time++;
    + y  N4 M: ~( V' N% R                                                err--;
    8 h6 ?8 N/ g) ~1 W/ T: a                                                if(Time>30)- m5 y  U9 u! ], F
                                                    {
    # x8 F8 g9 j9 k! h) N0 R+ k( f                                                        return;
    7 ~( W3 d9 O5 e$ D7 r2 f4 d                                                }3 b- h& E! Z0 o& Q. D3 I5 A+ J
                                            }' R. H: I0 I9 r
                                            IrValue[k]>>=1;
    0 }' E) d5 E: `5 p4 d                                        if(Time>=8)$ A5 z( }# Y4 M: o& z( c
                                            {% k( F% l# r1 N0 P2 j
                                                    IrValue[k]|=0x80;
    1 P* W! G5 I5 z3 Q                                        }1 \: x) R$ S$ F2 K$ m4 ~, n( Z
                                            Time=0;3 }# S( \( \1 |. V- }
                                    }
    3 m/ [. A8 N' D& ~                        }
    * Q/ j6 U. ?- I4 @                }
    & K2 Z0 |4 t- O* ~                if(IrValue[2]!=~IrValue[3])
    6 L) M9 j( g/ E! T                {
    & C& G0 C% s6 |/ \* u4 l1 Z0 o2 `                        return;
    9 e& |  q+ |5 a' G5 x                }          8 C- |& N0 b+ N2 K0 L0 {! J
            }
    + m: j0 j: @8 ^4 k$ x}        
    6 k) v4 m+ R" T* y' O
  • TA的每日心情
    慵懒
    2020-6-13 15:46
  • 签到天数: 1 天

    [LV.1]初来乍到

    3#
    发表于 2020-12-7 15:30 | 只看该作者
    大路千万条,安全第一条,祝你好运
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-11-24 23:24 , Processed in 0.156250 second(s), 23 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表