找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

帖子
查看: 5127|回復(fù): 5
收起左側(cè)

紅外遙控數(shù)碼管顯示鍵碼用戶碼求問

[復(fù)制鏈接]
ID:194864 發(fā)表于 2017-4-29 20:43 | 顯示全部樓層 |閱讀模式
//數(shù)碼管永遠(yuǎn)都是0,不管按哪個遙控鍵都不變。能幫忙看看是哪里出問題了嗎?

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit IRIN=P3^3;
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
uchar code table2[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
uchar disp[8];
uchar ircode[4]; //數(shù)碼管顯示緩沖
sbit duan=P2^6;
sbit wei=P2^7;
void init_int0()
{
    IE = 0x84;                 //允許總中斷中斷,使能 INT1 外部中斷
    TCON = 0x10;               //觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)   
    IRIN=1;                    //I/O口初始化
}
void data_pros()
{
   disp[0]=ircode[0]>>4;
   disp[1]=ircode[0]&0x0f;
   disp[2]=ircode[2]>>4;
   disp[3]=ircode[2]&0x0f;
}
void delayms(uint x)
{
   uint i,j;
   for(i=x;i>0;i--)
     for(j=110;j>0;j--);
}
void delay(unsigned char x)    //x*0.14MS
{
unsigned char i;
  while(x--)
{
  for (i = 0; i<13; i++) {}
}
}
void display()
{
    uchar i;
        for(i=0;i<4;i++)
        {
          duan=1;
          P0=table[disp[i]];
          duan=0;
          P0=0xff;
          wei=1;
          P0=table2[i];
          wei=0;
          delayms(5);
       
        }
}
void IR_IN() interrupt 2 using 0
{
  unsigned char j,k,N=0;
     EX1 = 0;   
         delay(15);
         if (IRIN==1)
     { EX1 =1;
           return;
          }
                           //確認(rèn)IR信號出現(xiàn)
  while (!IRIN)            //等IR變?yōu)楦唠娖剑^9ms的前導(dǎo)低電平信號。
    {delay(1);}

for (j=0;j<4;j++)         //收集四組數(shù)據(jù)
{
  for (k=0;k<8;k++)        //每組數(shù)據(jù)有8位
  {
   while (IRIN)            //等 IR 變?yōu)榈碗娖�,跳過4.5ms的前導(dǎo)高電平信號。
     {delay(1);}
    while (!IRIN)          //等 IR 變?yōu)楦唠娖?br />      {delay(1);}
     while (IRIN)           //計算IR高電平時長
      {
    delay(1);
    N++;           
    if (N>=30)
         { EX1=1;
         return;}                  //0.14ms計數(shù)過長自動離開。
      }                        //高電平計數(shù)完畢               
     ircode[j]=ircode[j] >> 1;                  //數(shù)據(jù)最高位補“0”
     if (N>=8) {ircode[j] = ircode[j] | 0x80;}  //數(shù)據(jù)最高位補“1”
     N=0;
  }//end for k
}//end for j
if (ircode[2]!=~ircode[3])
   { EX1=1;
     return; }
     EX1 = 1;
}
void main()
{  
   init_int0();
   duan=0;
   wei=0;
   while(1)
   {
             data_pros();
          display();
   }
}

所用的開發(fā)板和無線模塊

所用的開發(fā)板和無線模塊

相關(guān)帖子

回復(fù)

使用道具 舉報

ID:194864 發(fā)表于 2017-4-29 21:05 | 顯示全部樓層
可加QQ512127058談有償幫助
回復(fù)

使用道具 舉報

ID:162136 發(fā)表于 2017-4-30 10:22 | 顯示全部樓層
天祥天子的資料都比較詳細(xì),慢慢看看和教程才能題解代碼,光燒個程序看效果學(xué)不到知識。
回復(fù)

使用道具 舉報

ID:194864 發(fā)表于 2017-5-1 10:08 | 顯示全部樓層
bayga456 發(fā)表于 2017-4-30 10:22
天祥天子的資料都比較詳細(xì),慢慢看看和教程才能題解代碼,光燒個程序看效果學(xué)不到知識。

郭天祥好像沒有紅外教程
回復(fù)

使用道具 舉報

ID:258520 發(fā)表于 2017-12-7 11:23 | 顯示全部樓層
解決了嗎 我現(xiàn)在和你做的一樣 也是不顯示 能請教一下嗎 QQ947048848
回復(fù)

使用道具 舉報

ID:251085 發(fā)表于 2018-5-8 22:19 | 顯示全部樓層
我的也是有這種問題
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表