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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

單片機(jī)紅外遙控器發(fā)射程序

[復(fù)制鏈接]
ID:197152 發(fā)表于 2021-11-11 19:39 | 顯示全部樓層 |閱讀模式
該代碼使用51單片機(jī),晶振為11.0592m,實(shí)現(xiàn)紅外發(fā)送的作用,也就是模擬遙控器的作用,如果想要發(fā)送的遠(yuǎn),建議加三極管放大,其對(duì)應(yīng)按鍵,以及IR接口在程序可見。

單片機(jī)源程序如下:
  1. #include<reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint  unsigned int
  5. #define SBM   0x80                //識(shí)別碼
  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;                                  //定義發(fā)射引腳(接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.      //大致延時(shí)1mS
  40.      DelayUs2x(245);
  41.          DelayUs2x(245);
  42. }
  43. }
  44. /*┈┈┈┈┈┈┈┈┈┈┈函數(shù)功能:主函數(shù)┈┈┈┈┈┈┈┈┈┈┈┈┈┈*/
  45. void main(void)
  46. {
  47.         TMOD = 0x01;         //T0 16位工作方式
  48.         IR=1;                                   //發(fā)射端口常態(tài)為高電平

  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;                //" 數(shù)字1 "
  77.                 case 2:ZZ(0x16);v=0;break;                //" 數(shù)字2 "
  78.                 case 3:ZZ(0x19);v=0;break;                //" 數(shù)字3 "
  79.                 case 4:ZZ(0x0d);v=0;break;                //" 數(shù)字4 "
  80.                 case 5:ZZ(0x0c);v=0;break;                //" 數(shù)字1 "
  81.                 case 6:ZZ(0x18);v=0;break;                //" 數(shù)字2 "
  82.                 case 7:ZZ(0x5e);v=0;break;                //" 數(shù)字3 "
  83.                 case 8:ZZ(0x08);v=0;break;                //" 數(shù)字4 "
  84.                 default:ZZ(0x19);v=0;
  85.         }
  86. }
  87. /*┈┈┈┈┈┈┈┈┈┈函數(shù)功能:發(fā)送主程序┈┈┈┈┈┈┈┈┈┈┈┈*/
  88. void ZZ(uchar x)
  89. {
  90.         TT0(1,ms9);                   //高電平9mS
  91.         TT0(0,ms4_5);               //低電平4.5mS
  92.         /*┈ 發(fā)送4幀數(shù)據(jù) ┈*/
  93.         Z0(SBM);                                                                                                                                       
  94.         Z0(~SBM);
  95.         Z0(x);
  96.         Z0(~x);
  97.         /*┈┈ 結(jié)束碼 ┈┈*/
  98.         TT0(1,ms_65);
  99.         TT0(0,ms40);
  100.         /*┈┈ 重復(fù)碼 ┈┈*/
  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++)                     //循環(huán)8次移位
  114.         {
  115.                    
  116.                 TT0(1,ms_65);                        //高電平0.65mS         
  117.                 if(temp&0x01) TT0(0,ms1_6); //發(fā)送最低位
  118.                 else          TT0(0,ms_56);     
  119.                 temp >>= 1;                //右移一位
  120.                 }
  121.                
  122.         }


  123. /*┈┈┈┈┈┈┈┈┈38KHz脈沖發(fā)射 + 延時(shí)程序┈┈┈┈┈┈┈┈┈┈┈┈*/
  124. void TT0(bit BT,uint x)
  125. {
  126.         TH0 = x>>8;                    //輸入T0初始值
  127.         TL0 = x;
  128.         TF0=0;                                //清0
  129.         TR0=1;                                //啟動(dòng)定時(shí)器0
  130.         if(BT == 0) while(!TF0);        //BT=0時(shí)不發(fā)射38KHz脈沖只延時(shí);BT=1發(fā)射38KHz脈沖且延時(shí);
  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;                                //關(guān)閉定時(shí)器0
  149.         TF0=0;                                //標(biāo)志位溢出則清0
  150.         IR =1;                                //脈沖停止后,發(fā)射端口常態(tài)為高電平
  151. }
復(fù)制代碼

評(píng)分

參與人數(shù) 1黑幣 +30 收起 理由
admin + 30 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧洲视频一区二区 | 国产美女在线看 | 国产精品久久久久久久久久 | 国产精品不卡一区 | 久久久精品一区二区三区四季av | 欧美在线色视频 | 激情毛片 | 成人日批视频 | 老外黄色一级片 | 成人在线免费观看视频 | 紧缚调教一区二区三区视频 | 亚洲福利视频一区二区 | 久久久久国产一区二区三区 | 中文成人无字幕乱码精品 | 久久一区二区三区电影 | 中文字幕av网站 | 国产精品色一区二区三区 | 国产精品久久久久久久久久三级 | 色www精品视频在线观看 | 亚洲第一在线 | 天天综合网天天综合 | 亚洲三区在线观看 | 久热久| 青青草免费在线视频 | 久久精彩视频 | 91免费看片神器 | 久久久精品影院 | 欧美一级片免费看 | 成人毛片在线视频 | 五月婷婷亚洲 | 精品国产一区三区 | 91精品国模一区二区三区 | 免费国产黄 | 一区二区三区国产好 | 久久久久久国模大尺度人体 | 亚洲欧美在线视频 | 国产大学生情侣呻吟视频 | 成人免费视频在线观看 | 日韩中文字幕在线观看 | 国产偷录叫床高潮录音 | 妖精视频一区二区三区 |