//注意,这里以控制台灯举例,实际上不一定是用来控制台灯的,
//增加多路请对比1路的程序和两路的程序,按照同样的方法修改程序。
//使用此程序前,模块要设置好关键词。
#include
#define kai 0; //定义字符串kai代表低电平0
#define guan 1;//定义字符串guan代表高电平1
unsigned char a;//a用来存放串口接收到的数据(即模块的返回值)
sbit JDQ=P2^7; //继电器接P2.7,P2.7脚出来接一个10K电阻再接到S8550三极管的基极
//集电极接地,发射极接继电器的线圈到5V电源上,
//线圈两脚之间接一个IN4007二极管,注意二极管的负极要接5V电压处
//正极接三极管的发射极。
sbit JDQ2=P2^6; //第二路继电器接P2.6,P2.6脚出来接一个10K电阻再接到S8550三极管的基极
//集电极接地,发射极接继电器的线圈到5V电源上,
//线圈两脚之间接一个IN4007二极管,注意二极管的负极要接5V电压处
//正极接三极管的发射极。 下同... 请参照控制1路的源码根目录下的原理图。
sbit JDQ3=P2^5;
sbit JDQ4=P2^4;
sbit JDQ5=P2^3;
sbit JDQ6=P2^2;
sbit JDQ7=P2^1;
sbit JDQ8=P2^0;
sbit JDQ9=P1^7;
sbit JDQ10=P1^6;
main()
{
TMOD=0x20;//定时器1使用初值自动重装方式,方式2
TH1=0xfd;
TL1=0xfd;//9600波特率初值
TR1=1;//允许定时器计数
SM0=0;//方式1设置
SM1=1;
REN=1; //允许串口接收
EA=1; //开总中断
ES=1; //开串口中断
while(1)
{
//======================================================//
if(a==1)//如果a=1,P1.7=0,继电器吸合,台灯打开
{
JDQ=kai; //P1.7=0,
}
else if(a==2)//如果a=2,P1.7=1,继电器松开,台灯关闭
{
JDQ=guan;//P1.7=1,
}
//=====================================================//
else if(a==3)
{
JDQ2=kai;//如果a=3,第二路开
}
else if(a==4)
{
JDQ2=guan;//如果a=4,第二路关
}
//====================================================//
else if(a==5)
{
JDQ3=kai;//如果a=3,第三路开
}
else if(a==6)
{
JDQ3=guan;//如果a=4,第三路关
}
//====================================================//
else if(a==7)
{
JDQ4=kai;//如果a=3,第四路开
}
else if(a==8)
{
JDQ4=guan;//如果a=4,第四路关
}
//====================================================//
else if(a==9)
{
JDQ5=kai;//如果a=3,第五路开
}
else if(a==10)
{
JDQ5=guan;//如果a=4,第五路关
}
//====================================================//
else if(a==11)
{
JDQ6=kai;//如果a=3,第六路开
}
else if(a==12)
{
JDQ6=guan;//如果a=4,第六路关
}
//====================================================//
else if(a==13)
{
JDQ7=kai;//如果a=3,第七路开
}
else if(a==14)
{
JDQ7=guan;//如果a=4,第七路关
}
//====================================================//
else if(a==15)
{
JDQ8=kai;//如果a=3,第八路开
}
else if(a==16)
{
JDQ8=guan;//如果a=4,第八路关
}
//====================================================//
else if(a==17)
{
JDQ9=kai;//如果a=3,第九路开
}
else if(a==18)
{
JDQ9=guan;//如果a=4,第九路关
}
//====================================================//
else if(a==19)
{
JDQ10=kai;//如果a=3,第十路开
}
else if(a==20)
{
JDQ10=guan;//如果a=4,第十路关
}
else ;
//也可以用switch语句写,各人喜好吧...
}
}
void serial() interrupt 4 //中断法
{
if(RI==1)//如果是接收中断,进行下面工作
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………