找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2510|回复: 4
打印 上一主题 下一主题
收起左侧

单片机4路遥控开关源程序 315兆

[复制链接]
跳转到指定楼层
楼主
ID:102668 发表于 2016-1-16 05:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用的是带解码芯片的那种315m的遥控模块,所以单片机只需要用io来检测模块输出的电平即可:
  1. #include "reg52.h"
  2. #define ucahr unsigned char
  3. #define uint unsigned int
  4. uint i=0,j=0,a=0,b=0;
  5. sbit switch1=P2^0;
  6. sbit switch2=P2^1;
  7. sbit switch3=P2^2;
  8. sbit switch4=P2^3;
  9. sbit led1=P1^4;
  10. sbit led2=P1^5;
  11. sbit led3=P1^6;
  12. sbit led4=P1^7;
  13. void delay(uint z)
  14. {
  15. uint x,y;
  16. for(x=z;x>0;x--)
  17. for(y=110;y>0;y--);
  18. }
  19. void led()
  20. {
  21. led1=1;
  22. delay(300);
  23. led1=0;
  24. led2=1;
  25. delay(300);
  26. led2=0;
  27. led3=1;
  28. delay(300);
  29. led3=0;
  30. led4=1;
  31. delay(300);
  32. led4=0;
  33. }
  34. void main(void)
  35. {
  36. led();
  37. while(1)
  38. {
  39. P1=0xff; //P1口设置为输入状态 先全部写1
  40. i=P1;
  41. i=i&0x0f;
  42. switch(i)
  43. {
  44. case 0x04://如果是0x04,则代表无线遥控器的按键A按下,执行命令
  45.          
  46.           i++;
  47.           if((i%2)==0)
  48.           {
  49.             led1=0;//开关1指示灯关闭
  50.             switch1=1;//开关1关闭
  51.           }
  52.          else
  53.           {
  54.            led1=1;//
  55.            switch1=0;//开关1打开
  56.           }
  57.         
  58. case 0x01://如果是0x01,则代表无线遥控器的按键b按下,执行命令


  59.           j++;
  60.           if((j%2)==0)
  61.           {
  62.             led2=0;//开关2指示灯关闭
  63.             switch2=1;//开关2关闭
  64.           }
  65.          else
  66.           {
  67.            led2=1;//
  68.            switch2=0;//开关2打开
  69.           }
  70.         
  71. case 0x08://如果是0x08,则代表无线遥控器的按键C按下,执行命令

  72.          
  73.           a++;
  74.           if((a/2)==0)
  75.           {
  76.             led3=0;//开关3指示灯关闭
  77.             switch3=1;//开关3关闭
  78.           }
  79.          else
  80.           {
  81.            led3=1;//
  82.            switch3=0;//开关3打开
  83.           }
  84.         
  85. case 0x02://如果是0x02,则代表无线遥控器的按键d按下,执行命令
  86.          
  87.           b++;
  88.           if((b/2)==0)
  89.           {
  90.             led4=0;//开关4指示灯关闭
  91.             switch4=1;//开关4关闭
  92.           }
  93.          else
  94.           {
  95.            led4=1;//
  96.            switch4=0;//开关4打开
  97.           }
  98.     break;
  99. default:led();
  100.         
  101.     }
  102.   }
  103. }
复制代码



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏3 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:85865 发表于 2016-1-25 11:23 | 只看该作者
谢谢分享,学习了!~
回复

使用道具 举报

板凳
ID:223127 发表于 2017-11-1 17:54 | 只看该作者
我们的强大 源于 亲的无私奉献!!!!
回复

使用道具 举报

地板
ID:244951 发表于 2017-11-2 09:17 | 只看该作者
感谢楼主的无私奉献,学习了!!
回复

使用道具 举报

5#
ID:149866 发表于 2018-5-7 20:50 | 只看该作者
谢谢分享,学习中
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表