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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    提取单片机遥控器的控制码,但无论按那个键,控制码始终是0x00. |2 i* t6 D  O" R

    * A! Q/ X1 V6 I1 k7 Z: J4 V#include "reg52.h", e$ V9 T" ]; e8 h( u
    typedef unsigned char u8;
      z5 Z5 L* S+ a6 o# x7 y7 p, X( H$ P. Rtypedef unsigned int u16;4 V$ n& K- `: M& G" H
    ' h9 s& x9 ~, m( [( G- v" P
    sbit LSA=P2^2;/ G/ `' B  A4 Z8 k+ R9 j
    sbit LSB=P2^3;
    * h7 Y4 e( V+ o8 @! m% H) _3 Vsbit LSC=P2^4;" H6 i- o" T6 d7 Q" P- ^
    sbit IRIN=P3^2;        //这是红外线接收口5 v0 Y2 ?% p; \
    ) }# \( D$ s2 {' ?* r/ Y2 W5 i
    u8 IrValue[6];        //这里存储的是遥控器发过来的数码
    2 R3 p, l5 u" ]u8 time;
    ; y7 [& f2 ~. S* x8 ^. b: e, au8 displayData[8];9 n! N+ }7 D/ V8 W2 g& b  \
    u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76};* Y+ s0 g( l2 B: ^2 P4 }/ Q" ~
    , q( k1 s2 Z1 j1 k
    delay(u16 i)$ F3 p6 @* i2 F) u: a9 ~
    {
    / G- M- p# O& Q; \' z" h7 }        while(i--);. x0 D& y- n5 t0 p
    }+ {! T4 `! h2 w+ f/ D
    " e, {- c0 j2 h0 ^+ J
    void DigDisplay()
    ; C: L/ _" M0 B2 R% I& x9 B{+ S4 T$ j% B( |1 t% v
            u8 i;
    % m# ]  @6 D* K0 r0 ]' m        for(i=0;i<3;i++)2 Z' J7 ?0 E! [
            {
    . b3 U" Q. C4 d3 w: s                switch(i)
    7 U- [, M6 k' B" T                {/ o) R: W+ n* z' l
                            case(0): LSA=1;LSB=1;LSC=1;break;/ }. a2 r7 x/ Z$ ]6 \9 h
                            case(1): LSA=0;LSB=1;LSC=1;break;
    ( O6 ?- d6 V( [5 _0 ~                        case(2): LSA=1;LSB=0;LSC=1;break;
    5 a9 w; h/ S* H- l6 J                }- k+ C! o9 Y8 X: Y: d
                    P0=DisplayData;
      x. _0 I( s: |" ], r                delay(100);6 S5 k, I$ z8 C3 `
                    P0=0x00;& P9 P8 U' F; ~: @! [8 p
            }
    4 ]# {) ^0 u6 s* X}
    / O, z( f. a8 y# K# `- w( X' d
    - b' I" ^8 q2 X# C2 p: H8 ]* u  Rvoid IrInit()# u; y# @9 X: o; F: }! t( v
    {
    0 a. U- b' Z( ]4 o  @1 k        IT0=1;: T" j- m1 R7 p" L) U' s
            EX0=1;
    , m: e! Y" N' d        EA=1;
    ; A: ]1 \, P, I0 W" e; }9 J        IRIN=1;
    5 f$ W, I6 ?% b+ r8 }7 T" w. ~( g: E}
    ) V& k9 V  o, E# k2 `' [% ]7 _2 R7 G1 D9 L  A; e& y9 x3 {
    void main()% f- ^. @0 b: W7 r  Z
    {        
      O% L( O9 C3 B0 B        IrInit();$ e4 N7 R0 g6 j$ ?* T, I
            while(1)
    + W( T& |7 m7 g9 k" a& `. O        {        1 m: H$ J( K  \0 K0 s. I6 M
                    DisplayData[0]=smgduan[IrValue[2]/16] ;
    0 D3 i3 n; c) X$ v                DisplayData[1]=smgduan[IrValue[2]%16] ;. p$ v; E% v8 O
                    DisplayData[2]=smgduan[16] ;
    - D* N: r: p+ N- `/ P                DigDisplay();
    / y4 |7 `/ V: c* K7 x        }! p4 \5 v: e% ~, W7 W0 H
    }
    3 M. b# {  W# C
    ! t3 c+ ^( _5 j9 U: C$ k, `4 w, ?void ReadIr() interrupt 0
    1 X4 k5 k& e/ \8 S' T& p{$ F6 w( ~! M3 X# v
            u8 j,k;
    4 P1 T# B( v- f( k0 P" p0 ]- y2 m        u16 err;8 z8 O$ F' r* H( P  ^$ ]' a
            Time=0;* C: m" g* {* E2 S! s
            delay(700);& S6 u+ h6 P6 V5 Q* E: r. s" W% e: Y
            if(IRIN==0)( a# l2 A* ]; v( ?1 T9 e) t
            {
    6 y2 v4 I/ Q& ~2 ?. G* d                err=1000;0 }4 ~3 d. ]6 q1 I+ D4 \$ y7 v/ H
                    while((IRIN==0)&&(err>0))1 V% C' {% i. ]2 O! E; O: h7 e
                    {
    / o- B1 ]! o# t7 T% z. c  f                        delay(1);5 Z( ?  e4 m" u, ?& ]
                            err--;  d: x; g8 s2 W
                    }
    ' a2 u6 Y/ @% ~: R: M6 u5 }/ I                if(IRIN==1)( T- ]: H! d9 ]$ ^5 `7 W% |
                    {3 |( }" j: h% a0 N1 w" E' r4 m
                            err=500;3 D' X: L4 j: l* T6 o5 s
                            while((IRIN==1)&&(err>0))) a* O- L8 e. X" K
                            {
    ) P/ \( p) e; H: G7 X. ^4 `                                delay(1);
    " R+ k9 W. l# ^) K8 c+ q: x                                err--;
    # ?9 D: D$ R) z" F! v                        }/ q0 [/ P$ z0 Y3 f- W9 c
                            for(k=0;k<4;k++)* g5 D7 v- x' k! g0 q& y2 c9 y; s2 m
                            {- i4 ^& ]3 }6 c/ o" c
                                    for(j=0;j<8;j++)' S, V% `4 x6 E
                                    {
    ' W& W% R& I+ e( u- C                                        err=60;
    / ^/ v6 [! p# k1 A$ S" b. ]                                        while((IRIN==0)&&(err>0))
    5 C: T9 Q! a9 j1 l' w; b                                        {" ^0 F' `, |- F
                                                    delay(1);# a( u" S. {( m( d- x
                                                    err--;
    ; y0 v% C: }2 D  r2 E2 C                                        }8 h- o. F0 G* ]6 z$ {6 x9 ^
                                            err=500;
    # V5 h1 y, g2 D. n8 A( R1 H, t# Z                                        while((IRIN==0)&&(err>0))7 h8 j' z" h" p. M. W! ]& ]; N
                                            {
    # p: I- h/ z- b                                                delay(10);# {6 B) O6 Z' f8 ?* i
                                                    Time++;
    1 k/ `2 J# u/ K+ A" Y+ s, t                                                err--;
    ( J8 f* A+ O+ q) x                                                if(Time>30). [$ u8 b2 k# y4 x
                                                    {
    " \& T/ i6 U+ O: \                                                        return;' ^( ]& b+ ~1 z8 J0 t# C" K4 K
                                                    }% Y- I" L1 m3 d4 p/ Q: ~
                                            }
    2 S% C7 ^+ J  w1 W* O                                        IrValue[k]>>=1;% L) k/ M% B: X$ R* F. f
                                            if(Time>=8)' V4 Z6 w4 c  A: a
                                            {, o2 _2 D' o- k3 y; G# _
                                                    IrValue[k]|=0x80;: v5 z+ r" o0 ~6 H" c, S
                                            }0 B$ j& D3 p5 C2 z8 ~" D
                                            Time=0;7 ~5 u% n) {5 ]+ n
                                    }
    ; d# P9 _6 ?# w7 O3 T0 I9 D: n                        }
    # I; S* w& M+ j1 [                }
    $ ^4 n+ b( s; d0 R7 A7 P                if(IrValue[2]!=~IrValue[3]). S/ Z  K' M/ b4 `( i& y- h7 Q! O
                    {; v  u: w$ T0 ^( J6 y  K: B0 z
                            return;
    9 @) M2 o8 b% X, O% `* m* M                }          ; N* b: ]4 A& w! F
            }
    5 y, S1 k7 F" q}        ! M7 s3 k- i( d6 d9 e2 W3 w
  • 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-25 00:31 , Processed in 0.156250 second(s), 23 queries , Gzip On.

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

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

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