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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3636|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

DMAVR-L的紅外遙控器解碼通信實驗源程序,采用一體化紅外接收頭進(jìn)行信號接收,查詢方式

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:559337 發(fā)表于 2019-7-24 20:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//DMAVR-L的紅外遙控器解碼通信實驗源程序,采用一體化紅外接收頭進(jìn)行信號接收,查詢方式
//按鍵值直接反應(yīng)到LED燈上,比如按0鍵,鍵值為0,送入LED燈,8個全亮,按鍵1,亮7個,D1不亮,以此類推
//硬件相關(guān)的配置文件在Config.h里,自己建立項目時,需要復(fù)制到項目文件夾下
//系統(tǒng)時鐘16MHZ,設(shè)置熔絲位為外部高頻石英晶體振蕩,啟動時間4.1ms
//編譯環(huán)境 AVR Studio 4.19/AVR ToolChain V3.4

  1. //***********************************************************************
  2. //                包含文件
  3. //***********************************************************************
  4. #include <string.h>
  5. #include <stdio.h>
  6. #define         F_CPU        16000000                                // 單片機(jī)主頻為16MHz,用于延時子程序,熔絲位必須設(shè)置到外部高頻晶振才行
  7. #include <util/delay.h>
  8. #include <avr/io.h>
  9. #include <avr/iom128.h>
  10. #include <avr/interrupt.h>                           //中斷信號頭文件
  11. #include  <avr/pgmspace.h>                          //須增加的頭文件,用來將數(shù)據(jù)存放在flash中
  12. #include "Config.h"                         //配置頭文件,與硬件相關(guān)的配置在這里更改

  13. //***********************************************************************
  14. //                        定義變量區(qū)
  15. //***********************************************************************
  16. uchar key;
  17. uint temp_value;
  18. uint temp,A;                                           //定義的變量,顯示數(shù)據(jù)處理
  19. uchar code_value=0;
  20. uchar key_code[4];
  21. uint l,p;

  22. //***********************************************************************
  23. //                        遙控器鍵碼
  24. //***********************************************************************

  25. #define KEY_0     0x16                 //鍵0
  26. #define KEY_1     0x0C                 //鍵1
  27. #define KEY_2     0x18                 //鍵2
  28. #define KEY_3     0x5E                 //鍵3
  29. #define KEY_4     0x08                 //鍵4
  30. #define KEY_5     0x1C                 //鍵5
  31. #define KEY_6     0x5A                 //鍵6
  32. #define KEY_7     0x42                 //鍵7
  33. #define KEY_8     0x52                 //鍵8
  34. #define KEY_9     0x4A                 //鍵9
  35. #define KEY_POWER 0x45                 //電源
  36. #define KEY_MODE  0x46                 //模式
  37. #define KEY_SOUND 0x47                 //靜音


  38. //***********************************************************************
  39. //                        IO端口初始化
  40. //***********************************************************************

  41. void system_init()
  42. {

  43.         LED = 0xFF;               //關(guān)LED
  44.         LEDDDR = 0xFF;

  45.     RED_SET;
  46.         RED_IN;
  47. }

  48. //*************************************************************************
  49. //            顯示采集到的數(shù)據(jù)到LED燈
  50. //*************************************************************************

  51. void Display_Key(uint data_KEY)
  52. {   
  53.     LED = data_KEY;      //鍵值顯示到LED燈上,二進(jìn)制的形式顯示,只識別0~9
  54. }

  55. //*************************************************************************
  56. //                        遙控器鍵值賦功能值子程序
  57. //*************************************************************************
  58. void Key_Icode(void)
  59. {
  60.    switch(key_code[2])
  61.    {
  62.     case KEY_0:key=0;break;
  63.         case KEY_1:key=1;break;
  64.         case KEY_2:key=2;break;
  65.         case KEY_3:key=3;break;
  66.         case KEY_4:key=4;break;
  67.         case KEY_5:key=5;break;
  68.         case KEY_6:key=6;break;
  69.         case KEY_7:key=7;break;
  70.         case KEY_8:key=8;break;
  71.         case KEY_9:key=9;break;
  72.         default:key=10;break;
  73.    }
  74. }

  75. //*************************************************************************
  76. //                        遙控器解碼子程序
  77. //*************************************************************************

  78. void Red_Code()
  79. {
  80. uchar i,j,k = 0;

  81. for(i = 0;i < 19;i++)
  82. {
  83.   delay_us(400);           //延時400us
  84.   if(RED_R)                //9ms內(nèi)有高電平,則判斷為干擾,退出處理程序
  85.   {
  86.       return;
  87.   }
  88. }

  89. while(!RED_R);            //等待9ms低電平過去



  90. for(i=0;i<5;i++)          //是否連發(fā)碼
  91. {
  92.   delay_us(500);
  93.   if(!RED_R)
  94.    {
  95.      return;
  96.    }
  97. }


  98. while(RED_R);               //等待4.5ms高電平過去

  99. for(i = 0;i < 4;i++)        //接收4個字節(jié)的數(shù)據(jù)
  100. {
  101.   for(j = 0;j < 8;j++)      //每個字節(jié)的數(shù)據(jù)8位
  102.   {


  103.    while(!RED_R);         //等待變高電平
  104.    while(RED_R)           //計算高電平時間
  105.    {
  106.     delay_us(100);
  107.     k++;
  108.     if(k >= 22)           //高電平時間過長,則退出處理程序
  109.     {
  110.      return;              //
  111.     }

  112.    }

  113.    code_value>>=1;        //接受一位數(shù)據(jù)
  114.    if(k >= 8)
  115.    {
  116.     code_value|=0x80;           //高電平時間大于0.56,則為數(shù)據(jù)1
  117.    }
  118.    k = 0;                  //計時清零
  119.   }
  120.   key_code[i]=code_value;  //四個字節(jié)的數(shù)據(jù)
  121. }

  122.   Key_Icode();             //調(diào)用賦值函數(shù)

  123.   Display_Key(key);        //顯示按鍵值

  124. }


  125. //*************************************************************************
  126. //                        主程序
  127. //*************************************************************************
  128. int main(void)
  129. {
  130.   system_init();         //系統(tǒng)初始化
  131.   while(1)
  132. {
  133.     Red_Code();          //調(diào)用遙控器解碼子程序

  134. }

  135. }
復(fù)制代碼


iRED.zip

22.75 KB, 下載次數(shù): 12, 下載積分: 黑幣 -5

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲综合大片69999 | 影视先锋av资源噜噜 | 伊人久久伊人 | 夜夜骑首页 | 一区二区三区在线 | 日韩at| www.亚洲成人网 | 久在线观看 | 精品一区二区三区在线观看国产 | 成人一级片在线观看 | 中文字幕一区在线观看视频 | 亚洲一级毛片 | 久久99精品视频 | 国产乱码一区 | 男人的天堂中文字幕 | av资源中文在线天堂 | 亚洲一区二区三区视频 | 国产精品视频一区二区三区不卡 | 欧美淫片| 91国内产香蕉 | 日韩欧美国产精品一区二区三区 | 国产精品久久久久久久久久久新郎 | 欧美午夜精品理论片a级按摩 | 特级毛片www | 国产午夜视频 | 欧美日韩一二三区 | 中文字幕视频在线 | 欧美三级视频在线观看 | 亚洲二区在线 | 亚洲精品美女视频 | 99re在线视频免费观看 | 懂色中文一区二区在线播放 | 精品久久久久久久久久久院品网 | 日韩三级在线观看 | 福利网址| 亚洲二区在线 | 久久久久久高清 | 超碰91在线 | 成人欧美一区二区三区黑人孕妇 | 久久精品屋 | 亚洲综合色自拍一区 |