标题:
单片机4路遥控开关源程序 315兆
[打印本页]
作者:
51hei社区
时间:
2016-1-16 05:26
标题:
单片机4路遥控开关源程序 315兆
用的是带解码芯片的那种315m的遥控模块,所以单片机只需要用io来检测模块输出的电平即可:
#include "reg52.h"
#define ucahr unsigned char
#define uint unsigned int
uint i=0,j=0,a=0,b=0;
sbit switch1=P2^0;
sbit switch2=P2^1;
sbit switch3=P2^2;
sbit switch4=P2^3;
sbit led1=P1^4;
sbit led2=P1^5;
sbit led3=P1^6;
sbit led4=P1^7;
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void led()
{
led1=1;
delay(300);
led1=0;
led2=1;
delay(300);
led2=0;
led3=1;
delay(300);
led3=0;
led4=1;
delay(300);
led4=0;
}
void main(void)
{
led();
while(1)
{
P1=0xff; //P1口设置为输入状态 先全部写1
i=P1;
i=i&0x0f;
switch(i)
{
case 0x04://如果是0x04,则代表无线遥控器的按键A按下,执行命令
i++;
if((i%2)==0)
{
led1=0;//开关1指示灯关闭
switch1=1;//开关1关闭
}
else
{
led1=1;//
switch1=0;//开关1打开
}
case 0x01://如果是0x01,则代表无线遥控器的按键b按下,执行命令
j++;
if((j%2)==0)
{
led2=0;//开关2指示灯关闭
switch2=1;//开关2关闭
}
else
{
led2=1;//
switch2=0;//开关2打开
}
case 0x08://如果是0x08,则代表无线遥控器的按键C按下,执行命令
a++;
if((a/2)==0)
{
led3=0;//开关3指示灯关闭
switch3=1;//开关3关闭
}
else
{
led3=1;//
switch3=0;//开关3打开
}
case 0x02://如果是0x02,则代表无线遥控器的按键d按下,执行命令
b++;
if((b/2)==0)
{
led4=0;//开关4指示灯关闭
switch4=1;//开关4关闭
}
else
{
led4=1;//
switch4=0;//开关4打开
}
break;
default:led();
}
}
}
复制代码
作者:
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