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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機紅外遙控器發射程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:197152 發表于 2021-11-11 19:39 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
該代碼使用51單片機,晶振為11.0592m,實現紅外發送的作用,也就是模擬遙控器的作用,如果想要發送的遠,建議加三極管放大,其對應按鍵,以及IR接口在程序可見。

單片機源程序如下:
  1. #include<reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. #define SBM   0x80                //識別碼
  6. #define ms9    (65536-9000)               //約9mS
  7. #define ms4_5  (65536-4500)               //約4.5mS
  8. #define ms1_6  (65536-1630)               //約1.65mS
  9. #define ms_65  (65536-580)               //約0.65mS
  10. #define ms_56  (65536-560)               //約0.56mS
  11. #define ms40   (65536-40000)       //約40mS
  12. #define ms56   (65536-56000)       //56mS
  13. #define ms2_25 (65536-2250)        //約2.25mS
  14. sbit IR  = P0^1;                                  //定義發射引腳(接PNP三極管基極)
  15. sbit IR2  = P0^2;       
  16. sbit IR3  = P0^3;
  17. sbit KEY0 = P1^7;               
  18. sbit KEY1 = P1^0;               
  19. sbit KEY2 = P1^3;       
  20. sbit KEY3 = P1^7;       
  21. sbit KEY4 = P1^1;       
  22. sbit KEY5 = P1^2;       
  23. sbit KEY6 = P1^4;       
  24. sbit KEY7 = P1^5;
  25. uchar KEY(void);
  26. void  SanZhuan(void);
  27. void  ZZ(uchar x);

  28. void  Z0(uchar temp);
  29. void  TT0(bit BT,uint x);
  30. void DelayUs2x(unsigned char t)
  31. {   
  32. while(--t);
  33. }
  34. void DelayMs(unsigned char t)
  35. {
  36.      
  37. while(t--)
  38. {
  39.      //大致延時1mS
  40.      DelayUs2x(245);
  41.          DelayUs2x(245);
  42. }
  43. }
  44. /*┈┈┈┈┈┈┈┈┈┈┈函數功能:主函數┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  45. void main(void)
  46. {
  47.         TMOD = 0x01;         //T0 16位工作方式
  48.         IR=1;                                   //發射端口常態為高電平

  49.         while(1)
  50.         {
  51.    
  52.                  SanZhuan();
  53.    
  54.      DelayMs(500);
  55.                
  56.                
  57.         }}
  58. uchar KEY(void)
  59. {
  60.         if(KEY0==0)   return 1;
  61.         if(KEY1==0)  return 2;
  62.         if(KEY2==0)  return 3;
  63.         if(KEY3==0)  return 4;
  64.    if(KEY4==0)  return 5;
  65.         if(KEY5==0)  return 6;
  66.         if(KEY6==0)  return 7;
  67.         if(KEY7==0)  return 8;
  68.         return 0;
  69. }
  70. void SanZhuan(void)                 
  71. {
  72.         uchar v;
  73.         v = KEY();
  74.         switch(v)
  75.         {
  76.                 case 1:ZZ(0x45);v=0;break;                //" 數字1 "
  77.                 case 2:ZZ(0x16);v=0;break;                //" 數字2 "
  78.                 case 3:ZZ(0x19);v=0;break;                //" 數字3 "
  79.                 case 4:ZZ(0x0d);v=0;break;                //" 數字4 "
  80.                 case 5:ZZ(0x0c);v=0;break;                //" 數字1 "
  81.                 case 6:ZZ(0x18);v=0;break;                //" 數字2 "
  82.                 case 7:ZZ(0x5e);v=0;break;                //" 數字3 "
  83.                 case 8:ZZ(0x08);v=0;break;                //" 數字4 "
  84.                 default:ZZ(0x19);v=0;
  85.         }
  86. }
  87. /*┈┈┈┈┈┈┈┈┈┈函數功能:發送主程序┈┈┈┈┈┈┈┈┈┈┈┈*/
  88. void ZZ(uchar x)
  89. {
  90.         TT0(1,ms9);                   //高電平9mS
  91.         TT0(0,ms4_5);               //低電平4.5mS
  92.         /*┈ 發送4幀數據 ┈*/
  93.         Z0(SBM);                                                                                                                                       
  94.         Z0(~SBM);
  95.         Z0(x);
  96.         Z0(~x);
  97.         /*┈┈ 結束碼 ┈┈*/
  98.         TT0(1,ms_65);
  99.         TT0(0,ms40);
  100.         /*┈┈ 重復碼 ┈┈*/
  101.         //while(KEY())
  102.         {
  103.                 TT0(1,ms9);
  104.         TT0(0,ms2_25);
  105.         TT0(1,ms_56);
  106.         TT0(0,ms40);
  107.                 TT0(0,ms56);                                  
  108.     }}


  109. void Z0(uchar temp)
  110. {
  111.         uchar v;
  112.        
  113.         for (v=0;v<8;v++)                     //循環8次移位
  114.         {
  115.                    
  116.                 TT0(1,ms_65);                        //高電平0.65mS         
  117.                 if(temp&0x01) TT0(0,ms1_6); //發送最低位
  118.                 else          TT0(0,ms_56);     
  119.                 temp >>= 1;                //右移一位
  120.                 }
  121.                
  122.         }


  123. /*┈┈┈┈┈┈┈┈┈38KHz脈沖發射 + 延時程序┈┈┈┈┈┈┈┈┈┈┈┈*/
  124. void TT0(bit BT,uint x)
  125. {
  126.         TH0 = x>>8;                    //輸入T0初始值
  127.         TL0 = x;
  128.         TF0=0;                                //清0
  129.         TR0=1;                                //啟動定時器0
  130.         if(BT == 0) while(!TF0);        //BT=0時不發射38KHz脈沖只延時;BT=1發射38KHz脈沖且延時;
  131.         else while(1)                            //38KHz脈沖,占空比5:26
  132.         {
  133.                 IR = 0;
  134.                 if(TF0)break;
  135.                 if(TF0)break;
  136.                 IR = 1;
  137.                 if(TF0)break;
  138.                 if(TF0)break;
  139.                 if(TF0)break;
  140.                 if(TF0)break;
  141.                 if(TF0)break;
  142.                 if(TF0)break;
  143.                 if(TF0)break;
  144.                 if(TF0)break;
  145.                 if(TF0)break;
  146.                 if(TF0)break;
  147.         }
  148.         TR0=0;                                //關閉定時器0
  149.         TF0=0;                                //標志位溢出則清0
  150.         IR =1;                                //脈沖停止后,發射端口常態為高電平
  151. }
復制代碼

評分

參與人數 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产日韩 | 亚洲一二三区精品 | 色综合网站 | 国产激情视频网站 | 国产精品视频网站 | 日韩一区二区三区精品 | 亚洲www| 久久久久久免费毛片精品 | 欧美久久久久 | 亚洲人成人一区二区在线观看 | 国产剧情一区二区三区 | 国产精品欧美精品 | 久久中文免费视频 | 在线观看中文字幕一区二区 | 日韩欧美在线免费观看 | 亚洲一区二区精品视频 | 国产精品久久久久久久久久久久久久 | 欧美日韩在线一区 | 谁有毛片| 久久精品国产亚洲夜色av网站 | 成人在线观看免费观看 | 国产一区二区在线免费观看 | 日韩一区二区精品 | 亚洲乱码一区二区三区在线观看 | 国产免费视频 | 欧美日韩久久久 | a级黄色片在线观看 | 在线观看成人精品 | 亚洲欧洲精品一区 | a级片在线观看 | 欧美日韩福利视频 | 久久久久久一区 | 欧美精品一区二区三区在线 | 在线免费观看黄网 | 99久视频| 亚洲国产欧美91 | 一级a性色生活片久久毛片 一级特黄a大片 | 男女午夜激情视频 | 一区二区视频在线 | 国产精品自产拍 | 国产免费观看视频 |