找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6020|回復: 1
收起左側(cè)

單片機無線遙控開關,包含原理圖pcb和源代碼,需要的朋友可以試試啦

[復制鏈接]
ID:107189 發(fā)表于 2016-3-4 21:00 | 顯示全部樓層 |閱讀模式
之前買了快315m的無線模塊
一直沒用,不知道干點什么好,閑著沒事呢就用它做了個無線開關遙控模塊,開關數(shù)是兩路,每路是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位數(shù)據(jù),可變波特率    
    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++)  //發(fā)送按鍵1的編碼f0發(fā)送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,發(fā)送5次
                {
                    SBUF=0x0f;
                    while(TI==0);
                    TI=0;
                }            
            }
        }
     }
}
幫頂?shù)?有代碼你更不會回帖,對此說呵呵
接收端的代碼

#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位數(shù)據(jù),可變波特率    
    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;                           //讀取接受到的數(shù)據(jù)
        dat=SBUF;
    }                                   //如果是按鍵1的編碼
    if(dat==0xf0)
    {                          
        REN=0;                        //繼電器開關受控做出反應                 times=0;    
        delay(200);                    //延時確保受控電器不致于頻繁開關            
        jk1=~jk1;
        led1=~led1;                   //開關指示燈狀態(tài)    ,燈滅斷開,燈亮接通
        dat=0;
        REN=1;    
    }
    if(dat==0x0f)
    {                
        REN=0;
        delay(200);                
        jk2=~jk2;
        led2=~led2;
        dat=0;

    }
}
您還沒有安裝flash播放器,請點擊這里安裝

評分

參與人數(shù) 1黑幣 +3 收起 理由
mslong + 3 很給力!

查看全部評分

回復

使用道具 舉報

ID:635039 發(fā)表于 2021-10-6 11:28 | 顯示全部樓層
為什么看不到了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表