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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機學習型紅外線遙控器(接收存儲與發射源程序+原理圖+PCB)

  [復制鏈接]
跳轉到指定樓層
樓主
前言:我要黑幣啊,黑幣不夠用!

基于51單片機學習型紅外遙控器制作介紹:

     本設計思想是不考慮紅外編碼方式,對多個紅外遙控編碼的脈沖寬度進行測量,電路采用51單片機AT89S52作為主控制芯片,外圍接紅外接收解調器和發射機二極管以及電阻、電容構成。電路設計簡單,用洞洞板就可以完成設計。

功能描述:

當按下學習鍵P3.2時,處于學習狀態時,此時紅外接收電路就開始接收外來紅外信號,并將其轉換為電信號,找一個電視遙控器,電視遙控器的發射頭對著模塊的接收頭,按下任一按鍵,模塊開始接收遙控碼并存儲,當學習指示燈滅,發射指示燈亮起時,學習完畢;


Altium Designer畫的學習型紅外線遙控器電路原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機源程序如下:
  1. /*********************************************************************/
  2. //                         remote.c
  3. //                       學習型遙控器
  4. //                     使用keil c51   
  5. /*********************************************************************/
  6. //使用AT89S52單片機,12MHZ晶振,
  7. //
  8. //#pragma src(E:\remote.asm)
  9. #include"reg52.h"
  10. #include"intrins.h"     //_nop_();延時函數用
  11. //
  12. #define uchar unsigned char
  13. #define uint unsigned int
  14. //
  15. sbit  studylamp=P1^6;        //學習狀態指示燈
  16. sbit  lamp=P1^7;             //發射指示燈
  17. sbit  studykey=P3^2;         //學習鍵(中斷口)
  18. sbit  remotein=P3^4;         //遙控信號輸入口
  19. sbit  remoteout=P3^5;         // 遙控輸出口
  20. sbit  txkey=P1^0   ;           //發射鍵
  21. //
  22. //
  23. uint i,j,m=255,n,k,s;
  24. uchar idata  remotedata[206];//存肪沖寬度數據用
  25. uint   head;           //存起始位用
  26. uint   remdata;
  27. //
  28. //
  29. ////
  30. /*********1毫秒延時程序**********/
  31. delay1ms(uint t)
  32. {
  33. for(i=0;i<t;i++)
  34.    for(j=0;j<120;j++)
  35.    ;
  36. }
  37. //
  38. //
  39. /***********初始化函數**********/
  40. clearmen()
  41. {
  42. studylamp=0;           //關學習燈
  43. lamp=0;                //關發射指示
  44. remoteout=0;           //關遙控輸出
  45. remotein=1;            //
  46. for(i=0;i<206;i++)     //清內存
  47. {remotedata[i]=0x00;}
  48. IE=0x00;
  49. IP=0x01;
  50. TMOD=0x22;             //8位自動重裝模式
  51. PCON=0X00;
  52. TH1=0xf3;              //40KHZ初值
  53. TL1=0xf3;
  54. IT0=1;
  55. EX0=1;                //外中斷允許
  56. EA=1;                 //開總中斷
  57. }
  58. //
  59. //
  60. /**********鍵功能函數************/
  61. keywork()
  62. {
  63. if(txkey==0)
  64. {
  65.     while(txkey==0);     //等待鍵釋放
  66.     ET1=1;TR1=1;         //發起始位
  67.     for(i=head;i>0;i--){;}
  68.         remoteout=0;ET1=0;TR1=0;
  69.         n=0;
  70.         while(1)
  71.         {
  72.       if(remotedata[n]==0x00){delay1ms(10);break;}//數據為0結束
  73.           for(i=remotedata[n];i>0;i--){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
  74.           lamp=~lamp;n++;//偶地址不發脈沖
  75. //
  76.           ET1=1;TR1=1;  //奇地址發調制脈沖
  77.       for(i=remotedata[n];i>0;i--){;}
  78.           remoteout=0;ET1=0;TR1=0;n++;
  79.         }
  80.   }
  81. }
  82. //
  83. //
  84. /***********主函數***************/
  85. main()
  86. {
  87. clearmen();          //初始化
  88. while(1)
  89. {
  90.   keywork();       //按鍵掃描
  91.   }
  92. }
  93. //
  94. //
  95. /*********40KHZ發生器***********/
  96. //定時中斷T1
  97. void time_intt1(void) interrupt 3
  98. {
  99. remoteout=~remoteout;
  100. }
  101. //
  102. //
  103. /***********學習函數 ***********/
  104. //外中斷0
  105. void intt0(void) interrupt 0
  106. {
  107. ET1=0;TR1=0;EX0=0;EA=0;
  108. head=0;studylamp=1;lamp=0;
  109. while(studykey==0);           //等待鍵釋放
  110. while(remotein==1);           //等待遙控碼輸入
  111. head=0;                       //讀入起始位
  112. while(remotein==0){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();head++;}
  113. n=0;remdata=0x0000;
  114. while(1)
  115.          {
  116.        while(remotein==1){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();remdata++;}
  117.            if(remdata>m)                  //高電平>5毫秒退出
  118.            {remotedata[n]=0x00;EX0=1;EA=1;goto end;}
  119.            remotedata[n]=remdata;n++;     //存高電平脈寬數據
  120.        remdata=0x0000;                  //脈寬計數器清零
  121.            while(remotein==0){_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();remdata++;}  //低電平計數
  122.            remotedata[n]=remdata;n++;remdata=0x00;//存低電平脈寬數據
  123.           }
  124. end: lamp=1;studylamp=0;
  125. }
  126. //
  127. //*********************結束**************************//
復制代碼

所有資料51hei提供下載:
學習型紅外線遙控器.zip (539.5 KB, 下載次數: 335)


評分

參與人數 4黑幣 +121 收起 理由
dzbj + 4 感謝分享
CAD板 + 6 樓樓看一下R7連接哪里呢
zqy181818 + 11 很給力!
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:419018 發表于 2018-11-16 09:20 | 只看該作者
請教樓主,這個程序是學習一個按鍵的嗎?如果學習多個按鍵(比如8個),程序和電路如何改,請指教。
回復

使用道具 舉報

板凳
ID:419018 發表于 2018-11-16 09:23 | 只看該作者
菜鳥請教大師們:此程序是只學習一個按鍵嗎?如果設置多個按鍵,程序和電路如何改?
回復

使用道具 舉報

地板
ID:303383 發表于 2018-11-16 09:44 | 只看該作者
提示: 作者被禁止或刪除 內容自動屏蔽
回復

使用道具 舉報

5#
ID:182535 發表于 2019-3-11 23:31 | 只看該作者
正好需要這個東西
回復

使用道具 舉報

6#
ID:489442 發表于 2019-3-13 17:17 | 只看該作者
極強,這篇文章是非常有參考價值的
回復

使用道具 舉報

7#
ID:499283 發表于 2019-3-27 21:31 | 只看該作者
樓主能看到嗎?如果看到請說一下原理圖中R7連接哪里?
回復

使用道具 舉報

8#
ID:217448 發表于 2019-4-27 09:37 | 只看該作者
非常好的東西,學習啦
回復

使用道具 舉報

9#
ID:217448 發表于 2019-4-27 09:37 | 只看該作者
好東西,學習啦,謝謝
回復

使用道具 舉報

10#
ID:73182 發表于 2019-4-27 14:47 | 只看該作者
感謝分享
回復

使用道具 舉報

11#
ID:375715 發表于 2019-4-27 19:34 來自手機 | 只看該作者
謝謝分享
回復

使用道具 舉報

12#
ID:266802 發表于 2019-5-9 19:31 | 只看該作者
樓主,您的那個原理圖有一部分和pcb不符合啊,那個電阻R7沒有連到單片機的第9引腳,而pcb卻連上了
回復

使用道具 舉報

13#
ID:143122 發表于 2019-5-27 17:29 | 只看該作者
學習學習學習!!!!!
回復

使用道具 舉報

14#
ID:565144 發表于 2019-6-17 22:57 | 只看該作者
學習一波,好好研究一番
回復

使用道具 舉報

15#
ID:243394 發表于 2019-6-22 17:48 | 只看該作者
謝謝分享
回復

使用道具 舉報

16#
ID:377251 發表于 2019-8-27 14:29 | 只看該作者
哈哈 是哪個芯片呢
回復

使用道具 舉報

17#
ID:412391 發表于 2019-9-19 15:35 | 只看該作者
非常好的東西,學習啦
回復

使用道具 舉報

18#
ID:293063 發表于 2020-2-16 19:42 | 只看該作者
插眼
回復

使用道具 舉報

19#
ID:747044 發表于 2020-5-11 15:56 | 只看該作者
很好的分享!謝謝!
回復

使用道具 舉報

20#
ID:128463 發表于 2020-5-11 21:15 | 只看該作者

謝謝分享!!
回復

使用道具 舉報

21#
ID:762282 發表于 2020-5-27 10:48 | 只看該作者
有非常大的參考價值
回復

使用道具 舉報

22#
ID:302325 發表于 2020-6-1 02:01 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

23#
ID:1104796 發表于 2023-12-18 07:20 | 只看該作者
2018my2018 發表于 2018-11-16 09:23
菜鳥請教大師們:此程序是只學習一個按鍵嗎?如果設置多個按鍵,程序和電路如何改?

不會啊。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产免费一区二区三区演员表 | 97国产精品视频人人做人人爱 | 亚洲经典一区 | 一级电影免费看 | 中文字幕第十一页 | 午夜免费视频 | 日韩欧美精品 | 精品一区二区三区四区 | 精品视频在线观看 | 成人精品啪啪欧美成 | 五月天婷婷丁香 | a级片在线观看 | 久久久久国产精品一区二区 | av免费网站在线 | 国产无人区一区二区三区 | 福利网址 | 国产线视频精品免费观看视频 | 亚洲综合无码一区二区 | 中文字幕乱码一区二区三区 | 欧美精品一区二区免费 | av一级毛片 | 国产探花在线精品一区二区 | 国产美女一区二区 | 91在线网| 久久夜夜| 亚洲三级在线 | 91视频.| 欧美群妇大交群中文字幕 | 免费观看a级毛片在线播放 黄网站免费入口 | 国产a级毛片 | 中文字幕日韩欧美 | 天堂亚洲网 | 在线播放亚洲 | 91精品国产自产精品男人的天堂 | 免费视频成人国产精品网站 | 91就要激情 | 女同久久另类99精品国产 | 九九热在线视频免费观看 | 午夜久久久久久久久久一区二区 | 婷婷久久综合 | 国产一级一级毛片 |