久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1864|回復: 0
打印 上一主題 下一主題
收起左側

紅外遙控鍵值讀取+數碼管顯示

[復制鏈接]
跳轉到指定樓層
樓主
ID:378773 發表于 2018-7-25 08:18 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本程序可讀出大部分遙控器的鍵值全碼
#include <reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit p22=P2^2;
sbit p23=P2^3;
sbit p24=P2^4;
sbit beep= P1^5;
sbit  indate=P3^4;
sbit  oe =P3^5;
sbit  clk =P3^6;
uchar ritime;
uchar startflag;
uchar ridate[33];
uchar bitnum;
uchar rireceok;
uchar ricode[4];
uchar riprosok;
uchar dis[8];
uchar key;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};
void riwork(void);
void ripros(void);
void keyscan(void);
void display(void);
void delay(uint z);
void wr_date(uchar a);
void bep(void)
{
  beep=0;delay(10);beep=1;
}
void delay(uint z)
{
        uint x,y;
        for(x=20;x>0;x--)
        for(y=z;y>0;y--);
}
void display(void)
{
  P0=table[dis[0]];
  p22=0;p23=0;p24=0;
  delay(10) ;   
  P0=table[dis[1]];
  p22=1;p23=0;p24=0;
  delay(10) ;
  P0=table[dis[2]];
  p22=0;p23=1;p24=0;
  delay(10) ;   
  P0=table[dis[3]];
  p22=1;p23=1;p24=0;
  delay(10) ;
  P0=table[dis[4]];
  p22=0;p23=0;p24=1;
  delay(10) ;   
  P0=table[dis[5]];
  p22=1;p23=0;p24=1;
  delay(10);
  P0=table[dis[6]];
  p22=0;p23=1;p24=1;
  delay(10) ;   
  P0=table[dis[7]];
  p22=1;p23=1;p24=1;
  delay(10);
}
void timer0init(void) //開定時器2
{
        TMOD=0X02;
        TH0=0X00;     
        TL0=0X00;
        ET0=1;
        EA=1;
        TR0=1;
}
void init0init(void)  //外部中斷
{
        IT0=1;
        EX0=1;
        EA=1;
}
void riwork(void)
{
   dis[0]=ricode[0]/16;
   dis[1]=ricode[0]%16;
   dis[2]=ricode[1]/16;
   dis[3]=ricode[1]%16;
   dis[4]=ricode[2]/16;
   dis[5]=ricode[2]%16;
   dis[6]=ricode[3]/16;
   dis[7]=ricode[3]%16;
}
void ripros(void)
{        uchar j,k,i,value;
   k=1;
        for(j=0;j<4;j++)
  {
    for(i=0;i<8;i++)
       {
                        value=value>>1;
                        if(ridate[k]>10)
                         {
                                value=value|0x80;
                         }
                                k++;
        }
                ricode[j]=value;
   }  
                riprosok=1;
}

void main()
{  wr_date(0x00);///595第一次寫不進 全 1
   wr_date(0xff);
   timer0init();
   init0init();
   while(1)
       {
                        if(rireceok==1)
                          {bep();
                                ripros();
                                rireceok=0;
                          }
                        if(riprosok==1)
                          {
                      riwork();
                                riprosok=0;
                }
                        display();
                    keyscan();

                  if(key==1)wr_date(0xfe);
                  if(key==2)wr_date(0xfd);
                  if(key==3)wr_date(0xfc);
                  if(key==4)wr_date(0x55);
                  if(key==5)wr_date(0xaa);
                  if(key==6)wr_date(0xf9);
                  if(key==7)wr_date(0xf8);
                  if(key==8)wr_date(0x00);
                  if(key==9)wr_date(0xff);
      }
}

void timer0 () interrupt 1
{
        ritime++;
}
void int0() interrupt 0
{  
        if(startflag==1)
        {
                if(ritime>32)//檢測引導碼
                {
                        bitnum=0;
                }
   ridate[bitnum]=ritime;
     ritime=0;
                bitnum++;
                if(bitnum==33)
                {
                  bitnum=0;
                  rireceok=1;
                }
        }
        else
        {
                startflag=1;
      ritime=0;
   }
}

void keyscan(void)
{  
  if(ricode[1]==0xff)  //驗證用戶碼
{ key=0;
   switch(ricode[2])
          {case 0x16:key=21;break;
                case 0x0c:key=1;break;
                case 0x18:key=2;break;
                case 0x5e:key=3;break;
                case 0x08:key=4;break;
                case 0x1c:key=5;break;
                case 0x5a:key=6;break;
                case 0x42:key=7;break;
                case 0x52:key=8;break;
                case 0x4a:key=9;break;
                case 0x19:key=10;break;
                case 0x0d:key=11;break;
                case 0x45:key=12;break;
                case 0x46:key=13;break;
                case 0x47:key=14;break;
                case 0x44:key=15;break;
                case 0x40:key=16;break;
                case 0x43:key=17;break;
                case 0x07:key=18;break;
                case 0x15:key=19;break;
                case 0x09:key=20;break;
        }   
}
}
void wr_date(uchar a) ///595
{  uchar i;
   oe=0;    //使能置0       
for(i=0;i<8;i++)
  { clk=0;//時鐘給脈沖
   a=a<<1;
   indate=CY; //加數據
   clk=1;
/*clk=0;
  indate=a&0x01;
  a=a>>1;
  clk=1;*/

  }     
oe=1;       //使能置1
}       

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线中文视频 | 欧美在线视频二区 | 日韩看片| 在线观看精品视频网站 | 国产精品久久久久久模特 | 在线欧美一区二区 | 激情毛片 | 国产福利视频 | 日韩高清一区二区 | 久久麻豆精品 | 91国自产 | 日韩中文字幕在线视频 | 国产一区二区久久 | 欧美精 | 秋霞在线一区 | 成人在线激情 | 日韩av在线一区二区 | 中文字幕伊人 | 中文字幕成人免费视频 | 日韩精品一区在线 | h在线免费观看 | 一级毛片高清 | 亚洲一区电影 | 黄色一级免费看 | 蜜桃av人人夜夜澡人人爽 | 国产日韩欧美在线 | 亚洲精品视频在线看 | 天堂中文在线观看 | 精品日韩一区二区三区av动图 | 中文字幕在线播放不卡 | 欧美精品一区在线 | 日韩一级精品视频在线观看 | 日韩欧美视频在线 | 欧美电影大全 | 久久国产精品一区二区三区 | 中文字幕日韩欧美一区二区三区 | 精品国产色 | 久久久久国产一区二区三区 | 91污在线| 亚洲国产精品久久 | 欧美日韩视频在线播放 |