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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4348|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品1 | 在线观看日韩欧美 | 日韩免费精品视频 | 日韩av在线网址 | 日韩国产精品一区二区 | 69精品视频 | 一区二区三区四区精品 | 日本在线一区二区三区 | a视频| 国产伦精品一区二区三区免费视频 | 亚洲欧美日韩精品 | 久久99精品久久久久久国产越南 | 免费一级a毛片 | 久久久婷 | 欧美激情一区二区三区 | 欧美日韩在线观看视频 | 黄色成人在线 | 亚洲国产中文字幕 | 日韩不卡一区二区 | 小sao货撅起屁股扒开c微博 | 日本黄色三级视频 | 欧美大片91 | 日韩美女一区二区三区 | 在线播放a | 亚洲天堂色图 | 亚洲黄色一级 | 久热在线| 中文字幕在线观看网站 | 日韩精品一区在线 | 天天操免费视频 | 少妇高潮久久久久久潘金莲 | 成人在线观看网站 | 国产吃瓜黑料一区二区 | 久久久久久久久久国产精品 | 中文字幕播放 | 黄色一级视频在线观看 | 999精品视频 | 99精品在线观看 | 国产精品三 | 亚洲视频在线看 | 午夜视频免费 |