欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機學習型紅外線遙控器制作資料 含源碼,原理圖與PCB及視頻演示 [打印本頁]

作者: xsl2008    時間: 2018-7-7 09:35
標題: 單片機學習型紅外線遙控器制作資料 含源碼,原理圖與PCB及視頻演示
分享一個學習型紅外遙控程設計資料需要的拿走


設計視頻:


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


電路原理圖如下:




元件清單:


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

  122. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼


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




作者: hnluoj    時間: 2018-7-9 09:37
學習了,謝謝樓主分享。
作者: 123646465464    時間: 2018-9-24 17:47
為什么會有兩個原理圖啊?
作者: 2018my2018    時間: 2018-11-16 09:35
如果學習多個按鍵,電路和程序如何修改?
作者: 默默大的得    時間: 2019-2-14 22:45
哈哈,非常棒啊!
作者: tigerzq    時間: 2019-3-6 10:53
這個可是個好東西,昨天晚上剛想這個,今天就找個例子了。
作者: 18371269426    時間: 2019-3-19 20:34
好東西,值得學習!
作者: 新海闊天空    時間: 2019-3-22 23:55
默默大的得 發表于 2019-2-14 22:45
哈哈,非常棒啊!

想問一下 怎么燒寫到板子上
作者: 新海闊天空    時間: 2019-3-22 23:56
18371269426 發表于 2019-3-19 20:34
好東西,值得學習!

想問一下,這個程序怎么燒寫進板子
作者: CAD板    時間: 2019-3-27 21:38
新海闊天空 發表于 2019-3-22 23:55
想問一下 怎么燒寫到板子上

R7不用管的嗎??

作者: WZCLCY    時間: 2019-8-7 18:54
空調遙控器能用嗎?
作者: 遷就    時間: 2019-8-8 19:20
謝謝分享
作者: 401342539    時間: 2019-11-25 09:09
正在自學當中
作者: luoshi133    時間: 2020-1-7 05:54
一直在找這方面的資料,謝謝樓主分享。
作者: herui2128    時間: 2020-1-27 16:57
謝謝大神分享,把12的晶振程序改11.0592的,可行嗎
作者: hxbde2012    時間: 2020-2-10 23:36
高手啊!向你學習!
作者: 太陽黑子1    時間: 2020-2-11 17:45
值得學習,謝謝!
作者: rayin    時間: 2020-11-15 16:22
不錯,值得學習。51hei有你更精彩!!
作者: liyago    時間: 2021-8-16 22:47
這個有圖有程序真的很好,我先試用一下看能不能用先
作者: liyago    時間: 2021-8-19 21:33
完全按樓主的電路搭了個電路,程序運行大概沒問題,就是學習后的波形一是反向了,另一就是有一向的信號沒截止吧,都沒分開,所以解決這兩個問題就能正常使用了,先記錄,去試驗其它帖子的程序先。

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

搭建的電路

搭建的電路

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

原波形

原波形

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

學習后的波形

學習后的波形

作者: liyago    時間: 2021-8-19 21:34
本帖最后由 liyago 于 2021-8-20 10:58 編輯



占樓

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

搭建的電路

搭建的電路

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

原波形

原波形

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

學習后的波形

學習后的波形





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1