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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    提取单片机遥控器的控制码,但无论按那个键,控制码始终是0x00) y% ~: |2 b6 l: \& e
      P( @  N5 }: C
    #include "reg52.h"
    * x0 r' v$ s0 r+ i: L0 ztypedef unsigned char u8;, z0 J$ y* p" Y
    typedef unsigned int u16;% @* H1 }0 s+ {1 \+ o& q/ u- b

    2 d$ w- a8 e# C1 Wsbit LSA=P2^2;; C2 p3 o- u0 M
    sbit LSB=P2^3;5 O; H' y) i# i0 F2 \
    sbit LSC=P2^4;4 ]$ r- D6 {  Q: n5 z$ Q% j
    sbit IRIN=P3^2;        //这是红外线接收口
    5 @. _. e9 h/ G% O' z# o: C
    ( b- v% l" g& Lu8 IrValue[6];        //这里存储的是遥控器发过来的数码: E% n/ L* \' }9 L
    u8 time;
      m/ ]9 K* V7 a5 G$ pu8 displayData[8];% o# L* C4 F# i6 H
    u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76};" l* K0 m" W4 ]# p1 G8 o& `
      w4 ]% N4 |5 ~/ [' M
    delay(u16 i)* j$ u- {' |9 e$ d1 d$ U
    {
    % j' y' y3 @- D) U6 m7 {. N, g        while(i--);
    , J% p2 B2 `- a, ]( D: v; i- `}
    # Y/ K& x: ~7 C
    : n+ D/ Y2 x$ U6 ~; x: g8 M, ^void DigDisplay()
    8 [9 i: t# f: Q( k( O5 w{
    ) _/ w( F* ~4 Z! Q  X! m        u8 i;
    2 e. F1 }" @9 G        for(i=0;i<3;i++)
    & S/ N% L* l! o: {" ^$ r        {5 L% W( `6 q" K3 I  i' j/ {
                    switch(i)0 T  l$ B2 t% e5 r7 n/ n
                    {8 S& T# m3 }6 Y
                            case(0): LSA=1;LSB=1;LSC=1;break;2 C. t0 z3 W8 v6 Y  e, o1 e
                            case(1): LSA=0;LSB=1;LSC=1;break;
    0 F2 ^6 s0 e2 t% W) R5 m                        case(2): LSA=1;LSB=0;LSC=1;break;( E# a" y  Z  |4 @1 r' I
                    }
    1 B; l/ I# Q+ b3 L+ S                P0=DisplayData;
    4 n$ o4 P) e) Z; S$ q$ w* v) q  A                delay(100);
    5 t4 ^: V: K0 L/ @  I                P0=0x00;& O" C# W6 b4 d$ V, G
            }( Y/ F" O9 r. u( m- F8 u
    }
    - b* o5 E/ B) u4 F8 L6 o( S
    5 r. S5 R! e! R$ s0 K1 vvoid IrInit()
    & [; d: e* D, F) p6 m" W) S% c{# A! `- z: _. E+ H1 x  G" D# _
            IT0=1;
    ) {2 D1 U( P) k5 ^+ q  a3 V        EX0=1;
    ! V7 j" b3 Y1 n' f9 {+ a7 ]        EA=1;: O& G* d/ M" t! f' I0 f
            IRIN=1;- U" ]# J& g& z9 O$ T- j  N1 U
    }
    1 E6 i0 K- g* g: J. Q/ I2 q* I$ h) X# U9 F
    void main()
    & P' x4 W" ?, h; O- u{        
    - |& h5 m" {  p        IrInit();
    - i! i+ `/ K' t        while(1)
    : N7 h' k, _7 T        {        
    ; W5 v0 ~( ]4 J" @                DisplayData[0]=smgduan[IrValue[2]/16] ;
    9 o) P2 h" Y2 Y: j) H                DisplayData[1]=smgduan[IrValue[2]%16] ;% T4 ]* \8 g3 j2 K
                    DisplayData[2]=smgduan[16] ;
    # E9 j# g6 [) ^3 k+ r                DigDisplay();
    $ e: q/ ^5 m2 [+ p        }
    1 f* t1 c  G) g$ w}
    : i7 g4 h1 G: @. ]+ R5 i2 P: N
    : E8 z% P, f: ]void ReadIr() interrupt 0
    & z! @% _7 {$ r# P{$ P& ~, r* v5 s! H
            u8 j,k;' L4 H; R: G3 v$ V
            u16 err;( |3 }. @, E: O/ m) F
            Time=0;. H7 w3 a; Y" ~& `& |
            delay(700);
    4 |1 g4 L; Q( P# B  y        if(IRIN==0)
    , _* s! O8 h( D% r4 w9 P- q4 y9 D        {1 l7 d# R" F0 ^) D2 [. a/ b( A
                    err=1000;8 Z, l7 p1 l& s7 r" M! J
                    while((IRIN==0)&&(err>0))
    3 b9 E/ z) X- R) |# K                {
    . M' P4 H% z# |7 J                        delay(1);2 \: E& ^/ L3 J/ Y
                            err--;. q: T  W2 M. ~1 j0 {6 ^) ?1 A: L
                    }
    5 W4 l+ L: `% A- h; a* f# r                if(IRIN==1)$ w0 d2 l1 f8 l5 t+ s2 v
                    {
    + p, e* l* ~% a! H  x9 E                        err=500;
    9 z0 g9 x' _; y                        while((IRIN==1)&&(err>0))5 h# g. F; y4 b7 K- O: v
                            {
      |2 }" z, F2 Z! n" r. }                                delay(1);
    4 H5 ^7 n" ?3 I7 l4 R: o                                err--;7 Z9 S) B& E$ X' m& P% x# F! X
                            }
    9 s* J7 L8 c% m& ?                        for(k=0;k<4;k++)
    5 v( ^6 b1 k$ I1 _, p; K                        {
    ) Y0 e! Q- Z8 B& ]4 y, q& ?6 f                                for(j=0;j<8;j++)
    & v9 P" D' r3 @; J6 @0 R/ c                                {
    $ m- c7 R3 K1 V& U; P' T4 p* f                                        err=60;2 t5 L; W' W% Y+ x$ w
                                            while((IRIN==0)&&(err>0)); B0 Y, i& q& ?" a9 D1 w5 N6 S
                                            {# G3 u. [6 y2 V5 i$ \
                                                    delay(1);
    , _3 C# [3 [5 o/ {, I' B; n2 R, _                                                err--;3 V' p8 F& l6 b' u
                                            }
    ) n$ W, J! q2 v, s7 c                                        err=500;6 q% h/ D3 w3 w" x$ v" A. u
                                            while((IRIN==0)&&(err>0))* {$ p3 i% E; B2 e* O
                                            {
    & F4 \& u3 b4 d1 U) T! b% O) `                                                delay(10);+ A4 k4 N* p. b! _; c
                                                    Time++;3 P3 J( C  A9 o1 T! F! y
                                                    err--;
    # M, A# s+ Z3 m                                                if(Time>30)
    " r' y+ |6 p8 V: y# y                                                {  q/ ?) S4 C& s3 C2 X
                                                            return;
    6 T5 j# ?0 F( S0 ?; L$ {1 o( B3 D                                                }
    & h9 J8 G) s: z; {' B1 @3 D- t                                        }
    8 _3 b2 Z0 ^' m                                        IrValue[k]>>=1;1 e( D' v; C2 Z8 p5 Q8 Q
                                            if(Time>=8)
    # o# I2 O  W' Z4 f' P                                        {# k& h8 @* f7 O( B# M
                                                    IrValue[k]|=0x80;
    + s/ @3 i" }4 M8 }                                        }( t% Z  o9 q; Y
                                            Time=0;
    4 v. ?" i+ \' j/ b, u- a7 J7 k5 y, b                                }+ {2 I& p/ g0 K. Z4 U' p
                            }
      a, C5 l. {0 H% M4 R3 G' b                }  @3 x7 |+ y9 U
                    if(IrValue[2]!=~IrValue[3])2 P, b! T5 }: V3 N
                    {, z7 L# C$ g3 x
                            return;" i* n9 c" V5 {. u
                    }         
    , F' s9 l; a% Y2 ^7 V        }% R3 v3 c" D9 x' J' X9 X6 k5 |
    }        + b8 H- u( u) W# a
  • 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 20:22 , Processed in 0.187500 second(s), 23 queries , Gzip On.

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

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

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