|
wujinlin(VIP会员)
头衔:社区公民
帮派:无帮无派
帖数:26
金钱:380
积分:112
注册时间:2020/12/30
|
单片机315m无线遥控开关模块 #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 编辑过」 这家伙很懒,什么也没有留下! |
等级: |
2021/1/12 21:34:35
|
sun123(普通游民)
头衔:社区公民
帮派:无帮无派
帖数:3
金钱:115
积分:6
注册时间:2023/7/14
|
|
等级: |
2023/7/14 10:30:42
|