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

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8805|回復(fù): 20
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)學(xué)習(xí)型紅外線遙控器制作資料 含源碼,原理圖與PCB及視頻演示

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
分享一個(gè)學(xué)習(xí)型紅外遙控程設(shè)計(jì)資料需要的拿走


設(shè)計(jì)視頻:


Altium Designer畫的學(xué)習(xí)型紅外線遙控器的PCB圖如下:(51hei附件中可下載工程文件)


電路原理圖如下:




元件清單:


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

  122. …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼


所有資料51hei提供下載:
學(xué)習(xí)型紅外線遙控.rar (9.89 MB, 下載次數(shù): 229)



評(píng)分

參與人數(shù) 2黑幣 +55 收起 理由
高行者 + 5
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:367656 發(fā)表于 2018-7-9 09:37 | 只看該作者
學(xué)習(xí)了,謝謝樓主分享。
回復(fù)

使用道具 舉報(bào)

板凳
ID:340878 發(fā)表于 2018-9-24 17:47 | 只看該作者
為什么會(huì)有兩個(gè)原理圖。
回復(fù)

使用道具 舉報(bào)

地板
ID:419018 發(fā)表于 2018-11-16 09:35 | 只看該作者
如果學(xué)習(xí)多個(gè)按鍵,電路和程序如何修改?
回復(fù)

使用道具 舉報(bào)

5#
ID:462106 發(fā)表于 2019-2-14 22:45 來(lái)自手機(jī) | 只看該作者
哈哈,非常棒啊!
回復(fù)

使用道具 舉報(bào)

6#
ID:471632 發(fā)表于 2019-3-6 10:53 | 只看該作者
這個(gè)可是個(gè)好東西,昨天晚上剛想這個(gè),今天就找個(gè)例子了。
回復(fù)

使用道具 舉報(bào)

7#
ID:494207 發(fā)表于 2019-3-19 20:34 | 只看該作者
好東西,值得學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

8#
ID:304839 發(fā)表于 2019-3-22 23:55 | 只看該作者

想問(wèn)一下 怎么燒寫到板子上
回復(fù)

使用道具 舉報(bào)

9#
ID:304839 發(fā)表于 2019-3-22 23:56 | 只看該作者
18371269426 發(fā)表于 2019-3-19 20:34
好東西,值得學(xué)習(xí)!

想問(wèn)一下,這個(gè)程序怎么燒寫進(jìn)板子
回復(fù)

使用道具 舉報(bào)

10#
ID:499283 發(fā)表于 2019-3-27 21:38 | 只看該作者
新海闊天空 發(fā)表于 2019-3-22 23:55
想問(wèn)一下 怎么燒寫到板子上

R7不用管的嗎??
回復(fù)

使用道具 舉報(bào)

11#
ID:255472 發(fā)表于 2019-8-7 18:54 來(lái)自手機(jī) | 只看該作者
空調(diào)遙控器能用嗎?
回復(fù)

使用道具 舉報(bào)

12#
ID:484435 發(fā)表于 2019-8-8 19:20 | 只看該作者
謝謝分享
回復(fù)

使用道具 舉報(bào)

13#
ID:636697 發(fā)表于 2019-11-25 09:09 | 只看該作者
正在自學(xué)當(dāng)中
回復(fù)

使用道具 舉報(bào)

14#
ID:385168 發(fā)表于 2020-1-7 05:54 | 只看該作者
一直在找這方面的資料,謝謝樓主分享。
回復(fù)

使用道具 舉報(bào)

15#
ID:398219 發(fā)表于 2020-1-27 16:57 | 只看該作者
謝謝大神分享,把12的晶振程序改11.0592的,可行嗎
回復(fù)

使用道具 舉報(bào)

16#
ID:34637 發(fā)表于 2020-2-10 23:36 來(lái)自手機(jī) | 只看該作者
高手啊!向你學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

17#
ID:305511 發(fā)表于 2020-2-11 17:45 | 只看該作者
值得學(xué)習(xí),謝謝!
回復(fù)

使用道具 舉報(bào)

18#
ID:517951 發(fā)表于 2020-11-15 16:22 | 只看該作者
不錯(cuò),值得學(xué)習(xí)。51hei有你更精彩!
回復(fù)

使用道具 舉報(bào)

19#
ID:95375 發(fā)表于 2021-8-16 22:47 | 只看該作者
這個(gè)有圖有程序真的很好,我先試用一下看能不能用先
回復(fù)

使用道具 舉報(bào)

20#
ID:95375 發(fā)表于 2021-8-19 21:33 | 只看該作者
完全按樓主的電路搭了個(gè)電路,程序運(yùn)行大概沒(méi)問(wèn)題,就是學(xué)習(xí)后的波形一是反向了,另一就是有一向的信號(hào)沒(méi)截止吧,都沒(méi)分開(kāi),所以解決這兩個(gè)問(wèn)題就能正常使用了,先記錄,去試驗(yàn)其它帖子的程序先。

1.jpg (3.02 MB, 下載次數(shù): 62)

搭建的電路

搭建的電路

2.jpg (2.98 MB, 下載次數(shù): 55)

原波形

原波形

3.jpg (2.77 MB, 下載次數(shù): 60)

學(xué)習(xí)后的波形

學(xué)習(xí)后的波形
回復(fù)

使用道具 舉報(bào)

21#
ID:95375 發(fā)表于 2021-8-19 21:34 | 只看該作者
本帖最后由 liyago 于 2021-8-20 10:58 編輯



占樓

1.jpg (3.02 MB, 下載次數(shù): 65)

搭建的電路

搭建的電路

2.jpg (2.98 MB, 下載次數(shù): 72)

原波形

原波形

3.jpg (2.77 MB, 下載次數(shù): 81)

學(xué)習(xí)后的波形

學(xué)習(xí)后的波形
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表