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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    提取单片机遥控器的控制码,但无论按那个键,控制码始终是0x00
    ( N( h6 m* y  ~6 P
    6 `5 J2 q0 e; U7 t0 H+ d#include "reg52.h"0 F8 K! u9 J/ p1 L( `
    typedef unsigned char u8;
    3 i* o" c6 F4 w0 K% \typedef unsigned int u16;' E7 Z  n0 ^0 y* b8 [4 {
    ! P. F7 E: }6 }' x' {1 p
    sbit LSA=P2^2;+ q# y' S- E9 F! K$ e
    sbit LSB=P2^3;
    ! R- S- D0 R6 ~$ G5 |# \sbit LSC=P2^4;
    + h) C# v. ^0 a2 S: Psbit IRIN=P3^2;        //这是红外线接收口
    & M2 r3 W" T) L  D/ h5 U2 ]+ M5 Y. h% T" [/ W0 h0 C
    u8 IrValue[6];        //这里存储的是遥控器发过来的数码" }6 Z5 [/ D8 G" o
    u8 time;
    + k5 T1 w7 |$ u! ?: Eu8 displayData[8];
    * W# V' A  X' Lu8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76};" B3 q" J+ z; ^  \1 G

    ; f* ]9 W4 N( B8 ^7 }delay(u16 i)
    4 o7 ?( \& N( c, ]{, N, I! y% a5 \7 J8 T( ]+ u( y
            while(i--);( h2 b; O9 E% a* m0 @
    }
    * S% H7 {: b5 D/ G# O' S$ r
    ' b  R( ]* P9 V5 Nvoid DigDisplay()  ?$ X: O0 y# F2 i
    {1 J- U# b* U: \
            u8 i;
    . M: s& z( V' U        for(i=0;i<3;i++)
    * W; W& o: J2 }$ y, z' _) W        {+ C; g) \7 @" F) v& S( i' d
                    switch(i)5 J: U# R  @; ?3 x8 w
                    {) C! v5 J$ z: P  j
                            case(0): LSA=1;LSB=1;LSC=1;break;. v  Y6 d3 t6 f) [# }/ S% K
                            case(1): LSA=0;LSB=1;LSC=1;break;
    9 v/ a! g# }  ~) \" p% t                        case(2): LSA=1;LSB=0;LSC=1;break;
    2 ~1 q' V! \1 _& ^6 b- S7 k                }
    ' y0 m1 n* ?( Z( w+ ~5 d( A                P0=DisplayData;8 t( Z  h& k; N# p* S+ G
                    delay(100);
    8 O- `: y: U: A/ E4 W$ n7 e                P0=0x00;
    / C! p2 O. a7 d; A( h        }' q+ C) m4 n- f
    }& U9 z0 ^, X4 H. t

    ! A: T( _0 S; K* i( d  `& zvoid IrInit()
    : E" \5 R; g, Z( A5 Y' H{9 B; D: g/ n. G% q
            IT0=1;6 q: U& q2 U, m6 f% K3 v* \7 M7 |7 `
            EX0=1;
    - Z5 N2 j0 k3 w" p! r# }; Z, z9 ^        EA=1;
    % H' j/ S% K& M0 g* w9 M2 K        IRIN=1;! E5 w; R, S* u6 o3 y2 e
    }2 o  }& @7 Y0 _. x0 F3 _* |  F
    2 v! Y1 S% {2 D
    void main()( i1 B: @2 {" V0 B0 f- d
    {        7 o$ w. S' t1 Q( L! j1 Q
            IrInit();
    ; t0 c0 R# X0 J5 _7 \1 k4 q        while(1)# h. f9 P3 a9 r& ~7 Q
            {        % ?& P' ~  k7 y
                    DisplayData[0]=smgduan[IrValue[2]/16] ;
    * j) \" z% o( H# k$ t: _0 ^                DisplayData[1]=smgduan[IrValue[2]%16] ;
    $ I' q! w' T0 }9 Q# d, [0 R7 A                DisplayData[2]=smgduan[16] ;
    " z: I7 T: y& l+ P8 c2 M1 D1 g                DigDisplay();& N8 x" d, s& v" t5 [
            }8 f7 W. [* n1 C* x9 A
    }! b: M1 i1 a- _9 m0 ^

    ' \0 \3 r% H+ V( ^! b2 ^9 P1 Avoid ReadIr() interrupt 0
    * `% ?# {9 R/ c! _- {{, Z+ g( G) I, s6 r. i6 K; i
            u8 j,k;
    ! S: D5 B. x6 x3 S( N0 E& g; c! |$ w        u16 err;
    5 \) G5 F! N0 _( K) i* b  }        Time=0;+ V: C0 X* E* o4 d  T
            delay(700);( ?& c% Z0 x: j
            if(IRIN==0)/ b( ^4 r- X* m' E# h
            {
    4 Q3 F+ f1 [) ]% a0 f                err=1000;* N, T. N" r, T
                    while((IRIN==0)&&(err>0))! w# P3 p+ B4 w6 E
                    {
    0 S7 ~& `( n; m                        delay(1);
    1 ^- V, R9 A% L- t' R. l                        err--;- ^( T7 X! e" S! h
                    }
    0 f+ E% F: s  n, l1 V                if(IRIN==1)1 F/ ^! h! U& @9 N+ D( B
                    {. A2 {4 B  c1 N* O3 C, X
                            err=500;+ @$ _# N- e4 y
                            while((IRIN==1)&&(err>0))
    * P2 ], F5 x2 G5 Y                        {
    2 J  Q5 N5 F9 D! I9 v, E5 k                                delay(1);8 T. I% |1 H( w8 M
                                    err--;
    + Q% h+ e8 R$ U, }  q& A                        }, W# e  n/ c3 \6 [7 w, y% t
                            for(k=0;k<4;k++)
    3 Q# }# r0 V& o  _( T                        {* P  \5 S$ l1 _) M0 d; r1 ^1 y3 N, y
                                    for(j=0;j<8;j++)# p1 j  Y4 W) N# n
                                    {
    % d# ], r2 F' p. D+ ?* n$ [                                        err=60;
    ) \! l5 X  N) {7 t) G2 q                                        while((IRIN==0)&&(err>0))0 Y* u0 O' T& f6 O
                                            {2 `; `; [# H# _' A9 m
                                                    delay(1);5 [3 Q8 Y8 j4 i& \
                                                    err--;0 l3 Z& p) b! ]1 X. K3 \2 R
                                            }
    0 g& l( X3 z' T; b3 o                                        err=500;8 ~! X! L' W6 w7 G
                                            while((IRIN==0)&&(err>0))
    5 Q1 ]) `: m  p, I9 t# o                                        {
    2 M- V3 ^/ p+ P1 C6 f                                                delay(10);
    # Q2 w: g6 k: d$ W2 s1 L                                                Time++;6 u& k5 _) O) K: y! L/ u
                                                    err--;
    # z& p# h0 C8 h' J: I! g6 b. B8 V                                                if(Time>30)
    6 Y) k  Y2 p) x5 n6 s                                                {; }% x2 W4 {$ e& C- m; F
                                                            return;
    ; M2 m$ S/ [' W/ [6 C# y: {6 @                                                }
    : m' M, t. S8 {3 b; F+ x' i" Z                                        }
    0 {( g8 g" U; K/ g" U                                        IrValue[k]>>=1;
    2 Z6 I7 n& Z0 j4 L                                        if(Time>=8)5 N0 x  g9 _( T: F; f( D
                                            {1 b" V4 f0 x6 k3 D
                                                    IrValue[k]|=0x80;
    ' X$ Q; G3 k) z: F                                        }
    0 K3 A& h% B9 ^9 U7 o                                        Time=0;
    3 P9 u8 u4 z4 V                                }
    7 L3 L' R1 \$ k                        }
    3 F- H4 f' E9 ~6 v& Q. s                }$ ?5 D) S* ^2 t/ o
                    if(IrValue[2]!=~IrValue[3])
    1 Z6 a7 M4 K. z, o' T. q                {
    & ?9 ~/ \9 S# M                        return;
    : H9 H0 r; ~' q2 ]- a                }         
    4 T3 T: m9 `- }& a& x" S        }
    $ R; e7 m: A# M# C9 g$ a8 A9 Y}        1 p3 x. y; t, y
  • 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 19:19 , Processed in 0.171875 second(s), 23 queries , Gzip On.

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

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

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