标题: 单片机4路遥控开关源程序 315兆 [打印本页]

作者: 51hei社区    时间: 2016-1-16 05:26
标题: 单片机4路遥控开关源程序 315兆
用的是带解码芯片的那种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. }
复制代码




作者: 252622979    时间: 2016-1-25 11:23
谢谢分享,学习了!~
作者: 51busy    时间: 2017-11-1 17:54
我们的强大 源于 亲的无私奉献!!!!
作者: xbzxjks    时间: 2017-11-2 09:17
感谢楼主的无私奉献,学习了!!
作者: anoo    时间: 2018-5-7 20:50
谢谢分享,学习中




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1