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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機紅外發射與接收源程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:668610 發表于 2019-12-19 20:14 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
純分享設計

發送端單片機源程序如下:
  1. #include "ir_send.h"



  2. /*------------初始化IO------------*/
  3. void ir_init(void)
  4. {
  5.         P2M0 = 0x80;                    //P2.7強推挽
  6.         P2M1 = 0x00;
  7.         TMOD = 0x01;                   //T0  16位 定時       
  8.         IR   = 0;
  9. }

  10. /*-------發射數據 + 載波---------*/
  11. void ir_t(bit BT , uint p)
  12. {
  13.         TH0 = p>>8;                   
  14.         TL0 = p;
  15.     TF0=0;                               
  16.     TR0=1;                                                                                                   //啟動定時器0
  17.     if(BT == 0)                                                                                                   //BT=0時,不發射38KHz載波只延時;BT=1發射38KHz脈沖且延時
  18.         {
  19.                 while(!TF0);
  20.     }
  21.         else while(1)                                                                                         //38KHz載波,(低電平)占空比5:26                       
  22.             {
  23.                   IR = 1;
  24.                   if(TF0)break;if(TF0)break;
  25.                   if(TF0)break;if(TF0)break;
  26.                   if(TF0)break;if(TF0)break;
  27.                   if(TF0)break;

  28.                   IR = 0;
  29.                 if(TF0)break;if(TF0)break;
  30.                  if(TF0)break;if(TF0)break;
  31.                  if(TF0)break;if(TF0)break;
  32.                  if(TF0)break;if(TF0)break;
  33.                  if(TF0)break;if(TF0)break;
  34.                 if(TF0)break;if(TF0)break;
  35.                  if(TF0)break;if(TF0)break;
  36.                  if(TF0)break;if(TF0)break;
  37.                  if(TF0)break;if(TF0)break;
  38.                  if(TF0)break;if(TF0)break;
  39.                 if(TF0)break;if(TF0)break;
  40.                  if(TF0)break;if(TF0)break;
  41.                  if(TF0)break;if(TF0)break;
  42.                  if(TF0)break;if(TF0)break;
  43.                  if(TF0)break;if(TF0)break;
  44.                 }
  45.     TR0=0;                                                                                                   //關閉定時器0
  46.     TF0=0;                                                                                       
  47.     IR =0;                                                               
  48. }


  49. /*-----------發送一幀數據-----------*/
  50. void ir_send_byt(uchar temp)
  51. {
  52.   uchar i;
  53.         for (i = 0; i < 8; i++ )                     //循環8次移位
  54.         {     
  55.             ir_t( 1 , m_56 );                                   //高電平0.65mS                                  
  56.                 if( temp & 0x01 )
  57.                 ir_t( 0 , m1_6 );                                               //先發送最低位               
  58.                 else         
  59.                 ir_t( 0 , m_56 );                              
  60.                 temp >>= 1;               
  61.         }   
  62. }

  63. /*┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈
  64. 函數:NEC編碼發送程序
  65. ┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  66. void ir_send(uchar p)
  67. {  
  68.         ir_t( 1 , m9   );                               //高電平9mS
  69.         ir_t( 0 , m4_5 );                    //低電平4.5mS

  70.   /*┈ 發送4幀數據┈*/
  71.         ir_send_byt( user_h );                              //用戶碼高8位                                                                                                               
  72.         ir_send_byt( user_l );                           //用戶碼低8位
  73.         ir_send_byt(  p  );                           //操作碼
  74.         ir_send_byt( ~p  );                           //操作碼反碼

  75.   /*┈┈ 結束碼 ┈┈*/
  76.     ir_t( 1 , m_56 );
  77.         ir_t( 0 , m40  );
  78. /*┈┈ 重復碼 ┈┈*/
  79.         while(0)
  80.         {
  81.         ir_t( 1 , m9         );
  82.         ir_t( 0 , m2_25 );

  83.         ir_t( 1 , m_56        );
  84.         ir_t( 0 , m40         );
  85.                 ir_t( 0 , m56         );                                  
  86.     }                   
  87. }
復制代碼

所有資料51hei提供下載:
單片機之紅外發射接受.zip (57.92 KB, 下載次數: 51)


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

使用道具 舉報

沙發
ID:1 發表于 2019-12-20 00:09 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

板凳
ID:128463 發表于 2019-12-20 09:51 | 只看該作者
謝謝分享!!
回復

使用道具 舉報

地板
ID:20012 發表于 2020-12-13 14:34 | 只看該作者
下載學習后,發現這是一個很好的程序,不是常規的下降沿中斷接收,程序工整強大。受溢非淺。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线播放中文 | 欧美日韩一区二区三区在线观看 | 九色porny自拍视频 | 午夜一区二区三区在线观看 | 超碰在线亚洲 | 亚洲视频在线看 | 国产高清免费视频 | 久久久久久久久久久久久9999 | 一区二区三区免费 | 成人免费在线观看 | 韩日在线观看视频 | 国产在线1区| 99久久精品国产麻豆演员表 | 日韩乱码一二三 | 成人羞羞国产免费视频 | 青娱乐自拍 | 97影院2| 中文字幕一区二区三区在线观看 | 亚洲国产激情 | 国产精品成人久久久久a级 久久蜜桃av一区二区天堂 | 美女天堂在线 | 最新高清无码专区 | 久久国产精品-久久精品 | 全部免费毛片在线播放网站 | 久草网址 | 成人综合视频在线 | 全免一级毛片 | 国产伦精品一区二区三区在线 | 国产成人综合在线 | 国产精品不卡一区 | 在线免费观看毛片 | 99这里只有精品视频 | 涩涩视频网站在线观看 | 中文日韩字幕 | 欧美日韩黄色一级片 | 五月天天丁香婷婷在线中 | 黄a在线播放 | 久久成人国产精品 | 日日日色 | 日本精品一区二区 | 在线观看国产www |