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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

關于stc15單片機 為什么紅外遙控按了沒反應,8位數碼管就都顯示0

[復制鏈接]
跳轉到指定樓層
樓主
ID:256174 發表于 2017-12-26 15:44 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
10黑幣
求助各為大神,幫忙分析下這個程序,為什么紅外遙控按了沒反應,8位數碼管就都顯示0


  1. #include <stc15.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. uchar code led_xs[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E};
  5. uchar code led_wei[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};
  6. uchar t;

  7. sbit IR=P3^2;

  8. bit irok;//紅外接收完標志位
  9. bit ieok;//紅外處理完標志位

  10. uchar Ir_cd[4];
  11. uchar Ir_data[33];

  12. void iint();//設置準雙向口
  13. void init();//外部中斷0初始化
  14. void intt();//定時器0初始化
  15. void hwjmcl(); //紅外解碼處理
  16. void hwmzzh();//紅外碼值轉換處理顯示
  17. void delay(uint t);

  18. void main()
  19. {
  20.         intt();//設置準雙向口
  21.         iint();//外部中斷0初始化
  22.         init();//定時器0初始化
  23.         while(1)
  24.         {
  25.                 if(irok)  
  26.                 {
  27.                         irok=0;  
  28.                         ET0=0;   //禁止定時器0中斷
  29.                         hwjmcl();//紅外解碼處理
  30.                 }
  31.                 if(ieok)   
  32.                 {
  33.                         ieok=0;
  34.                 }
  35.                 hwmzzh();  //紅外碼值轉換處理顯示
  36.         }
  37. }

  38. void hwjmcl()  //紅外解碼處理
  39. {
  40.         uchar i,j,k=1,value=0;
  41.         for(i=0;i<4;i++)   
  42.         {
  43.                 for(j=0;j<8;j++)   
  44.                 {
  45.                         value>>=1;        
  46.                         if(Ir_data[k]>6)
  47.                         {               
  48.                                 value|=0x80;  
  49.                         }
  50.                         k++;
  51.                 }
  52.                 Ir_cd[i]=value;  
  53.         }
  54.         ieok=1;            
  55. }

  56. void hwmzzh()  //紅外碼值轉換處理顯示
  57. {
  58.         P2=led_xs[Ir_cd[0]/16];      
  59.         P0=led_wei[0];delay(1);P0=0xFF;
  60.         P2=led_xs[Ir_cd[0]%16];
  61.         P0=led_wei[1];delay(1);P0=0xFF;
  62.         
  63.         P2=led_xs[Ir_cd[1]/16];      
  64.         P0=led_wei[2];delay(1);P0=0xFF;
  65.         P2=led_xs[Ir_cd[1]%16];
  66.         P0=led_wei[3];delay(1);P0=0xFF;
  67.         
  68.         P2=led_xs[Ir_cd[2]/16];        
  69.         P0=led_wei[4];delay(1);P0=0xFF;
  70.         P2=led_xs[Ir_cd[2]%16];
  71.         P0=led_wei[5];delay(1);P0=0xFF;
  72.         
  73.         P2=led_xs[Ir_cd[3]/16];      
  74.         P0=led_wei[6];delay(1);P0=0xFF;
  75.         P2=led_xs[Ir_cd[3]%16];
  76.         P0=led_wei[7];delay(1);P0=0xFF;
  77. }        

  78. void time_0(void) interrupt 1 //定時器0中斷服務函數
  79. {
  80.         t++;
  81. }

  82. void INT_0(void) interrupt 0 //外部中斷0服務函數
  83. {
  84.         static uchar i;
  85.         static bit flag;
  86.         ET0=1;         
  87.         if(t>35)        
  88.         {
  89.                 flag=1;      
  90.                 i=0;        
  91.         }
  92.         if(flag)        
  93.         {
  94.                 Ir_data[i]=t;
  95.                 i++;           
  96.                 t=0;           
  97.                 if(i>=33)
  98.                 {
  99.                         i=0;
  100.                         flag=0;
  101.                         irok=1;
  102.                 }
  103.         }
  104. }

  105. void delay(uint t)
  106. {
  107.         uint i,j;
  108.         for(i=t;i<50;i++)
  109.                 for(j=25;j>0;j--);
  110. }

  111. void init()
  112. {
  113.         TMOD&=0xF0;
  114.         TMOD|=0x02;
  115.         TH0=0;
  116.         TL0=0;
  117.         TR0=1;
  118. }

  119. void iint()
  120. {
  121.         IT0=1;
  122.         EX0=1;
  123.         EA=1;
  124. }

  125. void intt()
  126. {
  127.         P0M0=0;P0M1=0;
  128.         P1M0=0;P1M1=0;
  129.         P2M0=0;P2M1=0;
  130.         P3M0=0;P3M1=0;
  131.         P4M0=0;P4M1=0;
  132.         P5M0=0;P5M1=0;
  133. }
復制代碼

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: a级片在线观看 | 亚洲精品一区中文字幕乱码 | 免费午夜视频 | 97在线超碰 | 日韩一区二区在线视频 | 欧美精品91 | 99国产精品久久久 | 欧美一区二区在线观看 | 精品免费国产一区二区三区四区介绍 | 免费在线观看一区二区三区 | 91一区二区 | 久久蜜桃av一区二区天堂 | 久久久久久久久综合 | 亚洲精品3 | 国产视频不卡一区 | 免费日韩网站 | 91麻豆蜜桃一区二区三区 | 午夜影院| 国产精品精品视频 | 在线免费观看毛片 | 久久久人成影片免费观看 | 欧美一区在线视频 | 日韩精品一区二区三区视频播放 | 国产香蕉视频在线播放 | 精品久久一区 | 中文字幕四虎 | 国产精品成av人在线视午夜片 | 国产精品久久久久久久久久久免费看 | 在线观看国产视频 | 亚洲国产一区二区三区在线观看 | 精品久久久一区 | 99久久久国产精品 | 国产精品久久久久久婷婷天堂 | 日韩欧美视频 | 国产在线观看网站 | 国产精品久久久久久久久久 | 国产欧美一区二区三区日本久久久 | 欧美一区中文字幕 | 日韩精品一 | www视频在线观看 | 成人精品国产免费网站 |