|
之前買了快315m的無線模塊 一直沒用,不知道干點什么好,閑著沒事呢就用它做了個無線開關遙控模塊,開關數是兩路,每路是250v10a,功率很足嘛,
        源代碼 #include<reg51.h> sbit datout=P2^0; sbit k1=P2^1; sbit k2=P2^2; //sbit k1=P3^3; //sbit k2=P3^4; sbit led1=P2^3; sbit led2=P2^4; sbit bell=P2^0; void delay(int t) { char i; while(t--) { for(i=0;i<100;i++); } } void timerinit() { PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位數據,可變波特率 TMOD &= 0x0F; //清除定時器1模式位 TMOD |= 0x20; //設定定時器1為8位自動重裝方式 TL1 = 0xe8; //設定定時初值 //1200 TH1 = 0xe8; //設定定時器重裝值 ET1 = 0; //禁止定時器1中斷 TR1 = 1; //啟動定時器1 EA=1; } void main() { int i; timerinit(); while(1) { if(k1==0) { delay(10); if(k1==0) //按鍵動作被接受 { while(k1==0); //等待松手 bell=0;led1=~led1; //按鍵指示部分 delay(10); bell=1; for(i=0;i<5;i++) //發送按鍵1的編碼f0發送5次 { SBUF=0xf0; while(TI==0); TI=0; } } } if(k2==0) { delay(10); if(k2==0) { while(k2==0); bell=0;led2=~led2; delay(10); for(i=0;i<5;i++)//按鍵2的編碼0f,發送5次 { SBUF=0x0f; while(TI==0); TI=0; } } } } } 幫頂的,有代碼你更不會回帖,對此說呵呵 接收端的代碼 #include<reg51.h> sbit jk1=P2^0; sbit jk2=P2^1; sbit led1=P2^6; sbit led2=P2^7; void delay(int t) { char i; while(t--) { for(i=0;i<100;i++); } } void timerinit() { PCON &= 0x7F; //波特率不倍速 SCON = 0x50; //8位數據,可變波特率 TMOD &= 0x0F; //清除定時器1模式位 TMOD |= 0x20; //設定定時器1為8位自動重裝方式 TL1 = 0xe8; //設定定時初值 //1200 TH1 = 0xe8; //設定定時器重裝值 ET1 = 0; //禁止定時器1中斷 TR1 = 1; //啟動定時器1 ES=1; EA=1; } void main() { timerinit(); while(1) { } } /*串口接收*/ void uart() interrupt 4 { static unsigned char dat; if(RI) //接收中斷 { RI=0; //讀取接受到的數據 dat=SBUF; } //如果是按鍵1的編碼 if(dat==0xf0) { REN=0; //繼電器開關受控做出反應 times=0; delay(200); //延時確保受控電器不致于頻繁開關 jk1=~jk1; led1=~led1; //開關指示燈狀態 ,燈滅斷開,燈亮接通 dat=0; REN=1; } if(dat==0x0f) { REN=0; delay(200); jk2=~jk2; led2=~led2; dat=0; } }
|
評分
-
查看全部評分
|