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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3520|回復: 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在线免费观看视频 | 视频一区二区中文字幕 | 亚洲欧美自拍偷拍视频 | 一区二区国产在线 | 亚洲九色 | 亚洲一区二区三区免费在线观看 | 99国内精品久久久久久久 | 久久午夜国产精品www忘忧草 | 欧美精品欧美精品系列 | 亚洲高清免费视频 | 91久久国产综合久久 | 毛片综合| 亚洲 成人 av | 久久久久久免费毛片精品 | 99草免费视频 | 国产精品久久久久久久岛一牛影视 | www.788.com色淫免费 | 午夜在线| 一区二区免费 | 成人影院网站ww555久久精品 | 欧美a级成人淫片免费看 | 噜噜噜噜狠狠狠7777视频 | 日韩精品免费播放 | 手机看片在线播放 | 久久国产欧美日韩精品 | 久久久www成人免费无遮挡大片 | 精品国产乱码久久久久久1区2区 | 亚洲视频精品在线 | 国产毛片久久久久久久久春天 | 91偷拍精品一区二区三区 | 日韩久久久久 | 国产精品免费一区二区三区四区 | 亚洲精品免费在线 | 日韩在线看片 | 精一区二区 | 在线观看黄色电影 | 欧美国产视频一区二区 | 一道本视频 |