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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于51單片機的紅外遙控燈 原理圖及程序

  [復制鏈接]
跳轉到指定樓層
樓主
紅外遙控燈單片機原理圖:




單片機源程序:
  1. //頭函數
  2. #include <reg52.h>
  3. //宏定義
  4. #define uint unsigned int
  5. #define uchar unsigned char

  6. //時間計算
  7. #define Imax 14000    //此處為晶振為11.0592時的取值,
  8. #define Imin 8000    //如用其它頻率的晶振時,
  9. #define Inum1 1450    //要改變相應的取值。
  10. #define Inum2 700
  11. #define Inum3 3000
  12. sbit led1=P2^3;
  13. sbit led2=P2^0;
  14. //解碼變量
  15. unsigned char Im[4]={0x00,0x00,0x00,0x00};

  16. //全局變量
  17. uchar f;
  18. unsigned long m,Tc;
  19. unsigned char IrOK;


  20. //主函數
  21. void main()
  22. {
  23.         P2=0xff;
  24.        
  25.         EA=1;//開啟總中斷
  26.          
  27.         IT1=1;//下降沿有效
  28.         EX1=1;//外部中斷1開
  29.          
  30.         TMOD=0x01;//定時器初始化  
  31.         TH0=0;//T0賦初值
  32.         TL0=0;
  33.         TR0=0;//t0開始計時
  34.         while(1)
  35.         {
  36.                 if(IrOK==1)
  37.                 {
  38.                         //1鍵
  39.                         if(Im[2]==0x0c)
  40.                         {
  41.                            P2=0x00;
  42.                  led1=0;
  43.                         }
  44.                         //2鍵
  45.                         else if(Im[2]==0x18)
  46.                         {
  47.                            //P2=0xa2;
  48.                                     led1=1;
  49.                         }
  50.                         //3鍵
  51.                         else if(Im[2]==0x5e)
  52.                         {
  53.                            P2=0xb0;
  54.                         }
  55.                         //4
  56.                         else if(Im[2]==0x08)
  57.                         {
  58.                           // P2=0x08;
  59.                                    led2=0;
  60.                         }
  61.                         //5
  62.                         else if(Im[2]==0x1c)
  63.                         {
  64.                           // P2=0x91;
  65.                                    led2=1;
  66.                         }
  67.                         //6
  68.                         else if(Im[2]==0x5a)
  69.                         {
  70.                            P2=0x8c;
  71.                         }
  72.                         //7鍵
  73.                         else if(Im[2]==0x42)
  74.                         {
  75.                            P2=0xf8;
  76.                         }
  77.                         //8
  78.                         else if(Im[2]==0x52)
  79.                         {
  80.                            P2=0x80;
  81.                         }
  82.                         //9
  83.                         else if(Im[2]==0x4a)
  84.                         {
  85.                            P2=0x90;
  86.                         }
  87.                         //0
  88.                         else if(Im[2]==0x16)
  89.                         {
  90.                            P2=0xc0;
  91.                         }
  92.                         //關機
  93.                         else if(Im[2]==0x45)
  94.                         {
  95.                            P2=0xff;
  96.                         }
  97.                    IrOK=0;          
  98.                 }
  99.         }
  100. }

  101. //外部中斷解碼程序_外部中斷1
  102. void intersvr1(void) interrupt 2 using 1
  103. {
  104. TR0=1;
  105. Tc=TH0*256+TL0;//提取中斷時間間隔時長
  106. TH0=0;
  107. TL0=0;         //定時中斷重新置零
  108. if((Tc>Imin)&&(Tc<Imax))
  109. {
  110.         m=0;
  111.         f=1;
  112.         return;
  113. }       //找到啟始碼
  114. if(f==1)
  115. {
  116.     if(Tc>Inum1&&Tc<Inum3)
  117.     {
  118.            Im[m/8]=Im[m/8]>>1|0x80; m++;
  119.     }
  120.     if(Tc>Inum2&&Tc<Inum1)
  121.     {
  122.       Im[m/8]=Im[m/8]>>1; m++; //取碼
  123.            }
  124.            if(m==32)
  125.     {
  126.       m=0;  
  127.       f=0;
  128.       if(Im[2]==~Im[3])
  129.       {
  130.            IrOK=1;
  131.                           TR0=0;
  132.            }
  133.       else IrOK=0;   //取碼完成后判斷讀碼是否正確


  134. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
完整源碼下載:
1-程序.rar (19.54 KB, 下載次數: 334)


評分

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

查看全部評分

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

使用道具 舉報

沙發
ID:292215 發表于 2018-4-12 09:33 | 只看該作者
請問紅外遙控接收頭發送頭怎么找的呢,謝謝了
回復

使用道具 舉報

板凳
ID:310329 發表于 2018-4-17 20:03 | 只看該作者
程序都是全的嗎?
回復

使用道具 舉報

地板
ID:89217 發表于 2018-6-18 01:15 | 只看該作者
謝謝樓主,這個剛剛好需要,簡直就是及時雨的存在,謝謝
回復

使用道具 舉報

5#
ID:347864 發表于 2018-6-23 16:32 | 只看該作者
不錯,如果把if語句改為swich,程序看起來就舒服點了
回復

使用道具 舉報

6#
ID:326450 發表于 2018-10-25 18:17 | 只看該作者
是發射和接收兩個程序么?
回復

使用道具 舉報

7#
ID:275076 發表于 2018-10-25 21:52 | 只看該作者
內容不錯,學習了
回復

使用道具 舉報

8#
ID:438777 發表于 2018-12-5 20:53 來自觸屏版 | 只看該作者
正好是我現在需要的,謝謝了
回復

使用道具 舉報

9#
ID:466506 發表于 2019-1-11 15:28 | 只看該作者
可以,很完整
回復

使用道具 舉報

10#
ID:468666 發表于 2019-1-15 17:50 | 只看該作者
紅外是用什么元器件啊?
回復

使用道具 舉報

11#
ID:573271 發表于 2019-6-27 12:51 | 只看該作者
程序都是全的嗎?
回復

使用道具 舉報

12#
ID:155987 發表于 2019-12-25 09:31 | 只看該作者
根本沒用
回復

使用道具 舉報

13#
ID:134608 發表于 2020-5-13 22:59 | 只看該作者
謝謝分享。
回復

使用道具 舉報

14#
ID:969758 發表于 2021-10-6 20:44 | 只看該作者
P1在哪里,軟件上找不到
回復

使用道具 舉報

15#
ID:970710 發表于 2021-10-9 16:59 | 只看該作者
有原理圖有代碼,贊一下樓主!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 伦理午夜电影免费观看 | 日本三级网址 | 在线观看成年人视频 | 国产一级片 | 九九热这里 | 久久久91精品国产一区二区三区 | 精品成人在线 | 国产在线拍偷自揄拍视频 | 国产成人精品一区二区三区视频 | 毛片链接 | 国产一在线观看 | 久久99精品久久久久久 | 三级免费 | av黄色在线| 超碰免费在线观看 | 日韩久久精品 | 国产2区| 日韩三级电影一区二区 | 国产精品视频一区二区三区不卡 | 精品国产精品三级精品av网址 | 久久草在线视频 | 中文字幕国产精品视频 | 中文字幕一区二区三区四区五区 | 精品国产亚洲一区二区三区大结局 | 美日韩中文字幕 | 美女一区二区在线观看 | 国产精品久久久久久久久久久久 | 免费在线观看一区二区 | 一区二区三区欧美在线 | 久久久91精品国产一区二区三区 | av永久| 亚洲精品一二区 | 性色av网站 | 成人av电影在线观看 | 羞羞视频免费在线观看 | 999视频在线播放 | 欧美一区二区视频 | 亚洲成av人影片在线观看 | 99精品国产一区二区青青牛奶 | 韩日有码| 99久久99|