4 7
您的位置: 电子制作DIY -> 单片机 -> 51单片机 -> 单片机315m无线遥控开关模块
本帖共有684个阅读者
发表帖子 发表投票 回复主题
单片机315m无线遥控开关模块
尊贵身份标志
wujinlin(VIP会员)
wujinlin
头衔:社区公民
帮派:无帮无派
帖数:26
金钱:380
积分:112
注册时间:2020/12/30
楼主信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
单片机315m无线遥控开关模块
  20211122154226.jpg [ 40.98 KB 832×474 ] (缩略时请点击查看原图)

 
  202111221544226.jpg [ 46.63 KB 938×409 ] (缩略时请点击查看原图)

 
  202111221552026.jpg [ 41.90 KB 585×337 ] (缩略时请点击查看原图)

 

源代码

#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;

    }
}


「该帖子被 wujinlin 在 2021/1/12 21:55:46 编辑过」

这家伙很懒,什么也没有留下!
等级:VIP会员 参考IP地址:*.*.*.*
2021/1/12 21:34:35
sun123(普通游民)
sun123
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:115
积分:6
注册时间:2023/7/14
1信息 | 留言 | Email | 主页 | 编辑 | 管理 | 离线
天空与开奖网大海相爱了,却无法牵手,它们无法让超级大乐透爱继续。天空哭了,泪水洒落海面。即使受到惩罚,天空也要将灵魂福彩七乐彩寄给大海。从此,海比天更蓝。


开奖网
等级:普通游民 参考IP地址:*.*.*.*
2023/7/14 10:30:42
Copyright © 2011 电子制作DIY. All rights reserved.电子制作DIY8013 Call, 1 Queries, Processed in 187.500 millisecond(2),