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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

紅外遙控解碼數碼管顯示實驗

[復制鏈接]
跳轉到指定樓層
樓主
ID:146918 發表于 2016-11-8 22:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
      #include <reg51.h>
      #define c(x) (x*110592/120000)
      sbit Ir_Pin=P3^2;
          sbit beep=P3^6;
      unsigned char code Led_Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
              0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf};                        //共陽極數碼顯示碼0-F.
      unsigned char code Led_Sel[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
      unsigned char Led_Buf[7]; //顯示緩沖區
      char Led_Index;                   //位選         
      unsigned char Ir_Buf[4]; //用于保存解碼結果
                 void delay_50ms(unsigned int t)
{
unsigned int j;   
for(;t>0;t--)
  for(j=6245;j>0;j--)
{;}
}

      //==============================================================
      //數碼管掃描
      timer0() interrupt 1 using 1
      {
      TL0=65536-1000;
      TH0=(65536-1000)/256; //定時器0設定約1000us中斷一次,用于數碼管掃描
      P0=0xff;
      P2=Led_Sel[Led_Index];                            //位選
      P0=Led_Tab[Led_Buf[Led_Index]];                    //段選
      if(++Led_Index>7) Led_Index=0;                    //八個掃描完了,到第一個數碼管

      }
      //==============================================================
      unsigned int Ir_Get_Low()
      {
      TL1=0;
      TH1=0;
      TR1=1;
      while(!Ir_Pin && (TH1&0x80)==0);               
      TR1=0;           
      return TH1*256+TL1;
      }
      //=============================================================
      unsigned int Ir_Get_High()
      {
      TL1=0;
      TH1=0;
      TR1=1;
      while(Ir_Pin && (TH1&0x80)==0);
      TR1=0;
      return TH1*256+TL1;
      }
      //==============================================================
      main()
      {
      unsigned int temp;
      char i,j;
      Led_Index=0;
      TMOD=0x11;
      TL0=65536-1000;
      TH0=(65536-1000)/256; //定時器0設定約1000us中斷一次,用于數碼管掃描
      EA=1;
      ET0=1;
      TR0=1;

      //Led_Buf[0]=0;
      //Led_Buf[1]=0;
      //Led_Buf[2]=0;
      //Led_Buf[3]=0; //顯示區設成0
         // Led_Buf[4]=0;
      //Led_Buf[5]=0;
      //Led_Buf[6]=0;
      //Led_Buf[7]=0; //顯示區設成0
      do{
      restart:
      while(Ir_Pin);
      temp=Ir_Get_Low();
      if(temp<c(8500) || temp>c(9500)) continue;//引導脈沖低電平9000
      temp=Ir_Get_High();
      if(temp<c(4000) || temp>c(5000)) continue;//引導脈沖高電平4500
      for(i=0;i<4;i++) //4個字節
      for(j=0;j<8;j++) //每個字節8位
      {
      temp=Ir_Get_Low();
      if(temp<c(200) || temp>c(800)) goto restart;
      temp=Ir_Get_High();
      if(temp<c(200) || temp>c(2000)) goto restart;
      Ir_Buf[i]>>=1;
      if(temp>c(1120)) Ir_Buf[i]|=0x80;
      }
          Led_Buf[0]=(Ir_Buf[0]/16)&0xf;//顯示結果
      Led_Buf[1]=Ir_Buf[0]&0xf;           //顯示結果
      Led_Buf[2]=(Ir_Buf[1]/16)&0xf; //顯示結果
      Led_Buf[3]=Ir_Buf[1]&0xf;                 //顯示結果
      Led_Buf[4]=(Ir_Buf[2]/16)&0xf; //顯示結果
          Led_Buf[5]=Ir_Buf[2]&0xf;                 //顯示結果
      Led_Buf[6]=(Ir_Buf[3]/16)&0xf; //顯示結果
      Led_Buf[7]=Ir_Buf[3]&0xf;                 //顯示結果
         beep=0;
         delay_50ms(2);
           beep=1;
      }
          while(1);

      }

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美激情亚洲激情 | 亚洲精品乱码久久久久v最新版 | 国产亚洲精品美女久久久久久久久久 | 欧美精品v | 欧美精品一区久久 | 成人在线免费视频 | 成人国产毛片 | 日韩午夜网站 | 欧美精品区 | 亚洲成av人片在线观看 | 欧美一区二区三区在线视频 | 很很干很很日 | 99精品亚洲国产精品久久不卡 | 日本福利在线 | 国产超碰人人爽人人做人人爱 | 久久亚 | 久久久视| 国产免费看 | 午夜在线观看免费 | 国产乱码一二三区精品 | 亚洲成av| 真人一级毛片 | 一区二区视频 | 日本久久精品视频 | 国产乱精品一区二区三区 | 欧美一区二区三区在线看 | 国产九九精品 | 亚洲视频欧美视频 | 国产精品久久久久久久久久久久久久 | 国产一区二区精品在线 | 一区二区三区视频在线观看 | 欧美a免费 | 精品一区在线 | 午夜私人影院 | 嫩草视频免费 | 成人国产在线观看 | 国产在线播放一区二区三区 | 一区二区视频在线观看 | 丁香综合| 久久精品—区二区三区 | www.久草|