您的位置 首页 电路

51单片机+315M无线射频模块发射程序

用的就是那种最普通的最便宜的大约几块钱的315兆的无线模块接受发射,不带解码的,433m的程序也是一样的不用修改压缩包中的内容:上

用的便是那种最一般的 最廉价的 大约几块钱 的315兆的无线模块承受发射,不带解码的,433m的程序也是相同的不必修正

压缩包中的内容:


上位机以及完好程序在文件夹中,我们可自己下载
地址是:http://www.51hei.com/bbs/dpj-19033-1.html

下面是发射端的源代码:
#include

#include “string.h”
sbit LED1 = P1^1;
sbit LED2 = P1^2;
sbit W_IN = P2^2; //电路是用11.0592MHz晶振
sbit W_OUT = P2^0;
sbit DQ =P2^1; //DS18B20数据口
unsigned char Te=0;//温度整数部分
unsigned char Te_D=0;//温度小数部分
unsigned char T0_last;
unsigned char w_data;//接纳时用于存储两次上升沿之间的时长,发送时存储前半周
unsigned char send_busy = 0;//存储发送时后半周
unsigned char recv_timer = 0;
bit w_stat, last_w_stat;
unsigned char jiffies=0;

//界说通讯端口
//延时函数

void delay(unsigned int i)
{
while(i–);

}
//初始化函数
Init_DS18B20(void)
{
unsigned char x=0;
DQ = 1; //DQ复位
delay(8); //稍做延时
DQ = 0; //单片机将DQ拉低
delay(50); //准确延时 大于 480us
DQ = 1; //拉高总线
delay(14);
x=DQ; //稍做延时后 假如x=0则初始化成功 x=1则初始化失利
delay(20);
}
//读一个字节
ReadOneChar(void)
{
unsigned char i=0;
unsigned char dat = 0;
for (i=8;i>0;i–)
{
DQ = 0; // 给脉冲信号
dat>>=1;
DQ = 1; // 给脉冲信号
if(DQ)
dat|=0x80;
delay(4);
}
return(dat);
}
//写一个字节
WriteOneChar(unsigned char dat)
{
unsigned char i=0;
for (i=8; i>0; i–)
{
DQ = 0;
DQ = dat&0x01;
delay(5);
DQ = 1;
dat>>=1;
}
delay(4);
}
//读取温度
void ReadTemperature(void)
{
unsigned char a=0;
unsigned char b=0;
unsigned char e=0;
//unsigned char t;
unsigned char c,d;

//unsigned char t=0;
Init_DS18B20();
WriteOneChar(0xCC); // 越过读序号列号的操作
WriteOneChar(0x44); // 发动温度转化
Init_DS18B20();
WriteOneChar(0xCC); //越过读序号列号的操作
WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个便是温度
a=ReadOneChar(); //读取温度值低位
b=ReadOneChar(); //读取温度值高位

e=a&0x0f;//小数部分
c=(e*10)/16;
d=((e*10)%16)*10/16;
Te_D=c*10+d;
a=a>>4;
Te=b<<4;
Te=Te|a;

}

void clock_timer(void) interrupt 1 using 1{

if (send_busy){
if(w_data){
w_data–;
w_stat = 0;
}else{
send_busy–;
w_stat = 1;
}
W_OUT = w_stat;
}else{
w_stat = W_IN;
if (w_stat != last_w_stat){
last_w_stat = w_stat;
if (w_stat){
w_data = recv_timer;
recv_timer = 0;
}
}
if (~recv_timer)//if(recv_busy != 0xff)
recv_timer++;
}
jiffies++;
T0_last=TL0;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/dianlu/318075.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部