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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5059|回復(fù): 0
收起左側(cè)

msp430單片機紅外解碼1838.c驅(qū)動程序

[復(fù)制鏈接]
ID:76127 發(fā)表于 2015-4-18 03:45 | 顯示全部樓層 |閱讀模式
  1. //***********************************************************************
  2. //   遙控器鍵碼
  3. //***********************************************************************
  4. #define KEY_0     0x16                 //鍵0
  5. #define KEY_1     0x0C                 //鍵1
  6. #define KEY_2     0x18                 //鍵2
  7. #define KEY_3     0x5E                 //鍵3
  8. #define KEY_4     0x08                 //鍵4
  9. #define KEY_5     0x1C                 //鍵5
  10. #define KEY_6     0x5A                 //鍵6
  11. #define KEY_7     0x42                 //鍵7
  12. #define KEY_8     0x52                 //鍵8
  13. #define KEY_9     0x4A                 //鍵9
  14. #define KEY_POWER 0x45                 //電源
  15. #define KEY_MODE  0x46                 //模式
  16. #define KEY_SOUND 0x47                 //靜音
  17. #define ch_       0x45                //模式
  18. #define ch        0x46
  19. #define cha       0x47                 //模式
  20. uchar KEY_VAL=0;
  21. uchar code_value=0;
  22. uchar key_code[4],code='_';
  23. //***********************************************************************
  24. //               MSP430IO口初始化
  25. //***********************************************************************
  26. /*void Port_Init()
  27. {
  28.   LED8DIR  = 0xFF;                      //設(shè)置IO口方向為輸出
  29.   LED8 = 0xFF;                      //P2口初始設(shè)置為FF
  30.   
  31.   RED_L;
  32.   RED_IN;
  33. }*/
  34. //*************************************************************************
  35. //   遙控器鍵值賦功能值子程序
  36. //*************************************************************************
  37. void Key_Icode(void)
  38. {
  39.    switch(key_code[2])                    //第3個字節(jié)是數(shù)據(jù),第4個字節(jié)是反碼
  40.    {                                      //為了更穩(wěn)定,可以加上第4個字節(jié)數(shù)據(jù)的判斷
  41.    case KEY_0:KEY_VAL=0;break;
  42.    case KEY_1:KEY_VAL=1;break;
  43.    case KEY_2:KEY_VAL=2;break;
  44.    case KEY_3:KEY_VAL=3;break;
  45.    case KEY_4:KEY_VAL=4;break;
  46.    case KEY_5:KEY_VAL=5;break;
  47.    case KEY_6:KEY_VAL=6;break;
  48.    case KEY_7:KEY_VAL=7;break;
  49.    case KEY_8:KEY_VAL=8;break;
  50.    case KEY_9:KEY_VAL=9;break;
  51.    case ch_ :code='-';break;
  52.    case ch :code='_';break;
  53.    case cha :code='+';break;
  54.    default:KEY_VAL=10;break;
  55.    }
  56.   
  57. }

  58. //*************************************************************************
  59. //     顯示采集到的數(shù)據(jù)到LED燈
  60. //*************************************************************************
  61. void Display_Key(uint data_KEY)
  62. {if(code=='_');  
  63.        //鍵值顯示到LED燈上,二進制的形式顯示,只識別0~9
  64. }
  65. //*************************************************************************
  66. // 遙控器解碼子程序
  67. //*************************************************************************
  68. void Red_Code()
  69. {
  70. uchar i,j,k = 0;
  71. for(i = 0;i < 19;i++)
  72. {
  73.   delay_us(400);           //延時400us
  74.   if(RED_R)                //9ms內(nèi)有高電平,則判斷為干擾,退出處理程序
  75.   {
  76.       return;
  77.   }
  78. }
  79. while(!RED_R);            //等待9ms低電平過去

  80. for(i=0;i<5;i++)          //是否連發(fā)碼
  81. {
  82.   delay_us(500);
  83.   if(!RED_R)
  84.    {
  85.      return;
  86.    }
  87. }

  88. while(RED_R);               //等待4.5ms高電平過去
  89. for(i = 0;i < 4;i++)        //接收4個字節(jié)的數(shù)據(jù)
  90. {
  91.   for(j = 0;j < 8;j++)      //每個字節(jié)的數(shù)據(jù)8位
  92.   {
  93.   
  94.    while(!RED_R);           //等待變高電平
  95.    while(RED_R)             //計算高電平時間
  96.    {
  97.     delay_us(100);
  98.     k++;
  99.     if(k >22)               //高電平時間過長,則退出處理程序
  100.     {
  101.      return;        
  102.     }
  103.    
  104.    }
  105.    code_value>>=1;          //接受一位數(shù)據(jù)
  106.    if(k >= 7)
  107.    {
  108.     code_value|=0x80;       //高電平時間大于0.56,則為數(shù)據(jù)1
  109.    }
  110.    k = 0;                  //計時清零
  111.   }
  112.   key_code[i]=code_value;  //四個字節(jié)的數(shù)據(jù)
  113. }
  114.   Key_Icode();             //調(diào)用賦值函數(shù)
  115. //  Display_Key(KEY_VAL);     //顯示按鍵值

  116.   delay_ms(50);
  117. }
  118. //***********************************************************************
  119. //            主程序
  120. //***********************************************************************
  121. /*void main(void)
  122. {   
  123.   WDT_Init();                         //看門狗初始化
  124.   Clock_Init();                       //時鐘初始化
  125.   Port_Init();                        //端口初始化,用于控制IO口輸入或輸出

  126.     while(1)
  127. {
  128.     Red_Code();                       //調(diào)用遙控器解碼子程序
  129. }
  130. }*/
復(fù)制代碼


相關(guān)帖子

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 日本三级电影免费 | 国产高清视频一区二区 | 亚洲成人av在线播放 | 日韩免费在线 | 亚洲麻豆| 日韩精品成人一区二区三区视频 | 我要看黄色录像一级片 | 四虎永久免费地址 | 欧区一欧区二欧区三免费 | 亚洲欧美第一视频 | 在线看无码的免费网站 | 涩涩视频在线观看 | 久久国产美女视频 | 精品一区二区视频 | 日韩精品人成在线播放 | 久草热线 | 日韩中文字幕av | 亚洲欧洲在线视频 | 福利在线观看 | www.se91| 国产精品爱久久久久久久 | 日韩精品在线观看网站 | 中文字幕中文字幕 | 日韩精品在线视频免费观看 | 天天宗合网 | 伦理一区二区 | 国精产品一区一区三区免费完 | 99国产精品一区二区三区 | 色啪网| 欧美成人精品一区二区男人看 | 日韩av手机在线观看 | 国产精品一区二区视频 | 免费在线观看成年人视频 | 欧美精品一区二区在线观看 | 欧美成人精品一区二区三区 | 欧美国产精品一区二区三区 | 日韩免费一二三区 | 欧洲性生活视频 | av一区二区三区四区 | 久久精品伊人 | 国产精品久久久久久久 |