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

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

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

    [LV.1]初来乍到

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

    EDA365欢迎您登录!

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

    x
    提取单片机遥控器的控制码,但无论按那个键,控制码始终是0x008 l! o  _! K& ?7 S4 X; w8 [. e

    + F1 p4 u$ [  T0 x6 U- H#include "reg52.h"  e; ~6 _$ T& g+ M
    typedef unsigned char u8;
    8 n5 u# }: c" S. z! T. stypedef unsigned int u16;
    ! @5 E5 C" z9 n/ D# \& k1 ], e* J  m' W) L% z
    sbit LSA=P2^2;
    ! T  ]" Z( M" Ksbit LSB=P2^3;
    7 p" L" b8 o! m0 jsbit LSC=P2^4;
    5 q5 }3 K5 X% L* b( X& \, I* U0 Wsbit IRIN=P3^2;        //这是红外线接收口
    & t- K8 f  X4 O! c( {$ ?3 j' W+ y8 c& P$ a7 r
    u8 IrValue[6];        //这里存储的是遥控器发过来的数码! I3 T9 Y# J4 P" F  k) P- J( l8 n
    u8 time;( O9 b- e8 F+ @- H9 ~( c
    u8 displayData[8];
    / U) V# {; O% `4 W4 q$ {u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76};
    ! g) ]! H1 }. k+ G  Q. ]# x
    / e8 d# W0 v" h3 @# B, @3 t4 sdelay(u16 i)& C' k; w3 e, K, j& d% I% d
    {
    / a% Z8 p; L9 L2 J        while(i--);
    / |; g3 P6 Q* P: [" B}
    & r0 _" b% ~& [% P- e* ]
    " ?+ x; D( T6 N6 T) M6 {! l4 nvoid DigDisplay()
    2 Z- V" U; |$ t# m/ P9 T3 Q+ y$ ~{
    - [% k2 c) t4 j4 w        u8 i;; r( o' k# h" f2 S: W& R
            for(i=0;i<3;i++)! L8 p6 L& o. e2 q/ X
            {
      V. \' R) X1 A9 ?8 z' O                switch(i)0 f7 G/ [2 W/ ?: @
                    {9 Y! @6 @0 y" G/ V; t& r
                            case(0): LSA=1;LSB=1;LSC=1;break;$ d, d+ E' r; h" [* D! q
                            case(1): LSA=0;LSB=1;LSC=1;break;, v  Z6 ~0 q7 W. q7 f6 |
                            case(2): LSA=1;LSB=0;LSC=1;break;- \% W% U6 Z3 ]9 U7 y
                    }
    , p% d% l, W1 }: j$ j                P0=DisplayData;0 H" u8 i6 p3 m
                    delay(100);# `. U8 q1 |# N: Y" }
                    P0=0x00;
    : H! |4 O8 i/ A  m1 ^/ N        }% G$ x6 l: |7 I6 r9 J
    }
      C! {2 E0 c0 W0 j) @$ i
    - p! s& S5 ?$ r5 x+ Fvoid IrInit()# }2 f0 I& j8 U/ x! e+ L, g
    {
    ( R1 x8 X) G1 ]+ y% J        IT0=1;: ]" H/ ^% `" R( i
            EX0=1;& Q6 K" q: Y6 b6 w) N0 }% C
            EA=1;
    & P5 m$ Q0 O1 M3 x3 a' [: k        IRIN=1;
    & S1 U8 I3 V' U  L' l. a( S4 u}4 L! H5 _! i* e* G# b9 s
      l+ {. ?7 r- i7 A7 a: L
    void main()9 c& Z% B. e' E
    {        - D/ E$ {6 S- f
            IrInit();
    / F* I  S5 R  f& e7 s        while(1)
    # d, K: g3 Z. Q! `7 \        {        8 i& b% f- f5 Y3 L# ?8 Y! `: q3 R
                    DisplayData[0]=smgduan[IrValue[2]/16] ;
    1 M4 i4 ~# N+ w                DisplayData[1]=smgduan[IrValue[2]%16] ;
    , U) [# ]1 b: C/ ^+ {                DisplayData[2]=smgduan[16] ;
    4 O2 c3 D$ s$ l% o                DigDisplay();* V! I+ _# `% r5 M% W
            }' Q1 C1 J8 G. `8 [& [( C
    }4 j8 Y1 v) A  Z

    1 G: C9 S0 B$ ?! ?void ReadIr() interrupt 0
    0 Z9 J% }( T% z1 h{* G/ O" _, o" g
            u8 j,k;# @1 |  p! h; N" V' T) ^- _
            u16 err;5 G) ?7 h0 [/ ~3 t6 B+ j
            Time=0;1 ~  r+ p0 |: _: |( g
            delay(700);- `7 q/ I' _. S# @+ k, x
            if(IRIN==0)# U8 z( ~) [0 C
            {) e9 l# ^7 o8 J, q2 @2 W
                    err=1000;
    6 c1 J( y% K# ~" k! n                while((IRIN==0)&&(err>0))9 x# [+ h2 o7 v: g; ~
                    {
    + n5 M1 z0 X; z$ r9 V0 F8 B  O" y                        delay(1);  `" _+ u7 y6 O5 [$ a* y) W
                            err--;
    & j3 @1 q" i+ U6 l. s: z- {                }# V! ?5 [$ Q0 h5 y
                    if(IRIN==1)- L! h2 w- y# v1 }
                    {0 G/ h) |+ [! K6 q) P" P
                            err=500;
    & _7 g+ j0 W. o+ y& e3 u: C! Z                        while((IRIN==1)&&(err>0))
    ( c3 a+ ?+ ~, g6 f                        {
    9 k& h6 H& N, ~                                delay(1);  x( Y5 [% u& S9 t
                                    err--;
    - b9 I( {- F. k                        }# u7 N( ?* P  H2 B
                            for(k=0;k<4;k++)
    & c: `) w) J' k$ i# h( P0 v+ i                        {. T- L" L3 v5 U6 y& ]
                                    for(j=0;j<8;j++)
    + @9 ^1 y% {% ]9 C                                {
    , w# W) d$ k: w4 D6 E$ B2 ~                                        err=60;+ Y+ k3 x- y' v2 I: I
                                            while((IRIN==0)&&(err>0))
      A. I  H) O1 b3 F7 T                                        {1 h3 y+ Y. F6 [: B# d" S
                                                    delay(1);
    ; D* J5 _) T+ u' Y                                                err--;
    9 d, m0 d, _+ @                                        }
    0 C" ^8 o  y9 X3 U0 L                                        err=500;
    % j: |: E+ k8 u- B                                        while((IRIN==0)&&(err>0))
    1 F: t; ~. x' a* @/ E! d) x                                        {  R# \7 f7 J$ c7 O9 L( M( `
                                                    delay(10);1 V2 k9 D! U8 \0 d6 R
                                                    Time++;
    - X! M+ R( y, ?- s* v                                                err--;" u9 E% N/ f9 d% X& g' }! B
                                                    if(Time>30), o! N+ A; g. T$ @6 @
                                                    {5 V& _( I- a7 Y/ h- w
                                                            return;& `' p5 p$ v' z* _/ i3 K- ]8 [1 ^
                                                    }: \* l6 J3 I; v# \
                                            }- ^( l) }" F% j) H5 [. z
                                            IrValue[k]>>=1;% y  {: v- D5 r+ P9 ^$ d2 S
                                            if(Time>=8)
    $ d9 L6 v+ A1 C0 P) P: X                                        {& R& X0 @( i  k! p, y! _6 v1 i
                                                    IrValue[k]|=0x80;* i$ i, b7 b& g
                                            }
    + ]  o" @, N$ i/ p) p                                        Time=0;' p& t2 K) \* `) e7 L
                                    }! T, _+ }& @% X
                            }
    & g0 S( N# m3 V( V( Z4 ^                }1 O% I0 [. H1 I8 A3 Q* u
                    if(IrValue[2]!=~IrValue[3])
    ! n, S9 a% s4 D# m( u                {# f* J2 ]6 r% A6 O8 C. f" u( F
                            return;
      G" l1 q/ K' k                }          2 g2 K) N: U; {1 h$ ^  N3 Q
            }- Q6 r% Q* c4 g
    }        
    " {  p' |/ A0 z
  • 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 21:21 , Processed in 0.156250 second(s), 24 queries , Gzip On.

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

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

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