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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機學習型紅外線遙控器程序原理圖與PCB文件

  [復制鏈接]
跳轉到指定樓層
樓主
制作出來的遙控器實物圖如下:

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


學習型紅外線遙控器  元器件   
   
AT89C52單片機及底座   
NPN 三極管      9013系列4個
發光二極管    3個
紅外線發射二極管    2個
電阻  560    3個
電阻  10K    5個
電阻  10    2個
電阻  4K7    2個
電容  1uf    2個,有正負極
電容  10uf    2個,有正負極
電容  20uf,3v    2個,有正負極
電容  30pf    3個,無正負極
12MHz晶振    1個
按鍵開關    3個
電視機三端一體紅外接收解調器    1個
大塊萬用板    1塊
導線若干   

單片機源程序如下:
  1. /*********************************************************************/
  2. //                         remote.c
  3. //                       學習型遙控器
  4. //                     使用keil c51
  5. /*********************************************************************/
  6. //使用AT89C52單片機,12MHZ晶振,
  7. //
  8. //#pragma src(E:\remote.asm)
  9. #include "reg51.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. ……………………

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

所有資料51hei附件下載:
PCB原理圖程序.7z (1.98 MB, 下載次數: 87)
視頻.7z (9.48 MB, 下載次數: 44)

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

使用道具 舉報

沙發
ID:262 發表于 2022-1-21 07:04 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:403447 發表于 2023-6-9 10:14 | 只看該作者
好東西,準備手工做個試試,有問題回來請教樓主
回復

使用道具 舉報

地板
ID:403447 發表于 2023-7-11 19:26 | 只看該作者
這個程序有錯吧?
在學習函數里,“while(studykey==0);    //等待鍵釋放” ,但在鍵掃描函數里,并沒有studykey按下的指令,也就是無“等待鍵釋放”狀態。而該函數,只有要該鍵被按下,才為0,然后等非0時,while(studykey==0)才會結束。而如果該鍵從來未被按下過,就一直非0了。也就是說,這條指令是沒任何意義的。
請教樓主,這樣分析是否正確?
回復

使用道具 舉報

5#
ID:398219 發表于 2023-7-21 11:29 | 只看該作者
有成功了的沒
回復

使用道具 舉報

6#
ID:513213 發表于 2023-7-21 17:16 | 只看該作者
大米861 發表于 2023-7-11 19:26
這個程序有錯吧?
在學習函數里,“while(studykey==0);    //等待鍵釋放” ,但在鍵掃描函數里,并沒有st ...

studykey=P3^2;         //學習鍵(中斷口)

他是中斷口
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美在线a | 国产精品欧美一区二区三区不卡 | 激情在线视频网站 | 日本91av视频 | 偷拍第一页| 中文字幕av网 | 日韩视频精品 | 国产精品亚洲综合 | 在线欧美一区二区 | 日韩插插| 国产精品久久久久久久久久久久久 | av永久免费 | 成人在线电影网站 | 91亚洲精品国偷拍自产在线观看 | 超碰美女在线 | 91久久电影 | 亚洲视频一区在线 | 性精品| 国产欧美日韩一区 | 久久国产一区二区三区 | 日韩免费av | 69视频在线播放 | www.久久.com | 色.com| 国产一区久久久 | 国产精品一区在线观看 | 欧美影院 | 超碰97干| 日本视频在线播放 | 99久久精品国产一区二区三区 | 国产精品视频一二三区 | 91久久精品国产 | h在线 | 成人精品鲁一区一区二区 | 成人一区二区三区在线观看 | 免费黄色网址视频 | 欧美日韩一区二区三区四区 | 久久精品亚洲一区 | 久久精品国产99国产精品 | 91亚洲国产成人久久精品网站 | www.99精品 |