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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7992|回復: 9
打印 上一主題 下一主題
收起左側(cè)

紅外解碼 在LCD1602上顯示出遙控發(fā)送的16進制值 源代碼分享

  [復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:84299 發(fā)表于 2015-11-7 21:03 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
按鍵遙控鍵盤某個鍵,用紅外接收頭接受,單片機解碼接受數(shù)據(jù)值,在LCD1602上顯示出遙控發(fā)送的16進制值。

IMG_20151107_205714.jpg (1.71 MB, 下載次數(shù): 214)

IMG_20151107_205714.jpg

紅外解碼.rar

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

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:1 發(fā)表于 2015-11-9 01:54 | 只看該作者
主程序:
  1. #include"reg51.h"  
  2. #include"intrins.h"
  3. #include"lcd1602.h"

  4. // 此口為紅外信號輸入MCU口  
  5. sbit IR_Out = P3^2;   
  6.   
  7. // 主程序運行標志位,運行主程序時LED滅,運行中斷程序時LED亮   
  8. sbit IR_Flag = P1^4;  

  9. // LED顯示口  
  10. //#define LED_Port P1  
  11.   
  12. // 用于存放按鍵碼值,初始化為0000 0000這樣接受數(shù)據(jù)時可以只考慮1了   
  13. unsigned char dat[4] = {0,0,0,0};  
  14. void init()
  15. {
  16.         IR_Out = 1;     // 此口為MCU輸入口,故需要置1  
  17.     IR_Flag = 1;    // 滅LED燈  
  18.     TMOD = 0x01;    // 定時器0,方式1  
  19.     IT0 = 1;        // 外部中斷0,下降沿觸發(fā)  
  20.     EX0 = 1;        // 準許外部中斷  
  21.     EA = 1;         // CPU準許中斷  
  22. }         
  23.   
  24. /*............................................................*/  
  25. void main()  
  26. {  
  27.     init();
  28.         lcd_init();
  29.         lcd_initdata();
  30.     while(1)  
  31.     {  
  32.                 if(dat[2]==~dat[3])
  33.                 {
  34.                 lcd_conv(dat[2]);
  35.                 lcd_dis0();
  36.         IR_Flag = 1;// 執(zhí)行主程序時,LED燈滅
  37.                
  38.                 }
  39.                
  40.     }  
  41. }  
  42. /*------------------------------------------------------------*-  
  43.   函數(shù)名稱:Int0()
  44.   函數(shù)輸入:無(容許中斷時,外部觸發(fā))
  45.   函數(shù)輸出:無
  46.   函數(shù)說明:外部中斷0中斷處理
  47. -*------------------------------------------------------------*/  
  48. void Int0() interrupt 0  
  49. {  
  50.     unsigned char i,j;  
  51.     EX0 = 0;            // 關(guān)閉外部中斷0  
  52.     IR_Flag = 0;        // 執(zhí)行中斷程序時,LED燈亮  
  53.     i = 10;             // 0.793ms延時,運行10次  
  54.     while( --i )  
  55.     {  
  56.         // 定時0.793ms,延時0.793ms*10=7.93ms  
  57.         TH0 = 0xfc;  
  58.         TL0 = 0xe7;  
  59.         TR0 = 1;  
  60.         while( !TF0 );  
  61.         TF0 = 0;  
  62.         TR0 = 0;  
  63.          
  64.         // 這7.93ms期間只要IR_Out變高電平,就非合法的紅外信號,跳出  
  65.         if( IR_Out )  
  66.         {  
  67.             EX0 = 1;    // 準許中斷  
  68.             return ;  
  69.         }  
  70.     }  
  71.       
  72.     // 程序進行到這里,表明是合法的紅外信號(利用9ms判斷)  
  73.     while( !IR_Out );   // 等待9ms低電平過去  
  74.       
  75.     // 程序進行到這里,表明經(jīng)過9ms低電平  
  76.     TH0 = 0xf6;  
  77.     TL0 = 0xff;  
  78.     TR0 = 1;  
  79.     while( !TF0 );  
  80.     TF0 = 0;  
  81.     TR0 = 0;            // 延時2.305ms  
  82.       
  83.     // IR_Out 為低表明是連發(fā)碼,不予理睬,跳出  
  84.     if( !IR_Out )  
  85.     {  
  86.         EX0=1;  
  87.         return;  
  88.     }  
  89.   
  90.     // 程序進行到這里,表明是引導碼,等待4.5ms高電平的過去  
  91.     while( IR_Out );      
  92.       
  93.     // 開始接收用戶碼  
  94.     for(i=0; i<4; i++)  
  95.     {  
  96.         for(j=0; j<8; j++)  
  97.         {  
  98.             while( !IR_Out );   // 等待低電平過去  
  99.             dat[i] >>= 1;     // 把上次的數(shù)據(jù)位右移一位  
  100.   
  101.             TH0 = 0xfc;  
  102.             TL0 = 0xe7;  
  103.             TR0 = 1;  
  104.             while( !TF0 );  
  105.             TR0=0;  
  106.             TF0=0;              //延時0.793ms   
  107.               
  108.             // 若為數(shù)據(jù)"1",則延時后IR_Out為高電平  
  109.             if( IR_Out )   
  110.             {  
  111.                 dat[i] |= 0x80;     // 所有數(shù)據(jù)位1放最高位  
  112.                 while( IR_Out );    // 等待高電平過去  
  113.             }  
  114.         }  
  115.     }     
  116.   //LED_Port = dat[2];  
  117.     EX0=1;      // 開中斷  
  118.     return;  
  119. }  
復制代碼
回復

使用道具 舉報

板凳
ID:87193 發(fā)表于 2015-11-9 09:19 | 只看該作者
不錯的設計,下載看看
回復

使用道具 舉報

地板
ID:353 發(fā)表于 2016-9-11 14:12 | 只看該作者
下來看看
回復

使用道具 舉報

5#
ID:139200 發(fā)表于 2016-9-12 16:13 | 只看該作者
下載下來做了仿真感覺不錯
回復

使用道具 舉報

6#
ID:139204 發(fā)表于 2016-9-12 16:16 | 只看該作者
很棒的設計,但是代碼有點看不懂,正在學習中
回復

使用道具 舉報

7#
ID:139236 發(fā)表于 2016-9-22 09:01 | 只看該作者
找這個例程好久了,感謝分享
回復

使用道具 舉報

8#
ID:102702 發(fā)表于 2017-3-31 00:46 | 只看該作者
正需要這個,下來研究研究
回復

使用道具 舉報

9#
ID:127666 發(fā)表于 2019-12-16 22:30 | 只看該作者
學習有用,謝謝分享
回復

使用道具 舉報

10#
ID:600695 發(fā)表于 2021-4-18 01:26 | 只看該作者
沒仿真成功,不知道那錯了
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日本精品一区二区三区视频 | 欧美在线| 国产成人久久 | 99亚洲精品 | 欧美日韩精品 | 羞羞视频在线观看免费观看 | 色嗨嗨 | 国产专区免费 | 狠狠操狠狠操 | 91久久久久久久久久久 | 久草福利 | 亚洲精品在线视频 | 久久久网 | 久久久久国产一区二区三区四区 | 一级大黄色片 | 精品久久久久久久久久久久久久 | 国产91综合 | 欧美成年黄网站色视频 | 91精品久久| 久久一本 | 中午字幕在线观看 | 国产精品视频在线观看 | 欧产日产国产精品99 | 男人天堂网址 | 草久久免费视频 | 成人国产精品色哟哟 | 国产伦精品一区二区三区在线 | 2018天天干天天操 | 国产精品99久久久久久动医院 | 91福利网| 午夜网| 国产一二区视频 | 欧美一级二级视频 | h小视频| 成人在线视频观看 | 国产精品欧美精品 | 99re在线视频观看 | 欧美视频中文字幕 | 国内精品在线视频 | 在线午夜电影 | 色综合久久久 |