📄 rf315mhz.c
字号:
/******************************************************
DESIGN FOR RF315MHz USE
Designer: BH Zhang
Date:2006-1-11
Ver:1.0
Modify Mark:NONE
MCU IO="0" SEND MODOL="1" REC MODOL="0"
MCU IO="1" SEND MODOL="0" REC MODOL="1"
IO=1 SEND MODOL NOT WORK.
IO=0 SEND MODOL WORKING.
*******************************************************/
#include <at89x51.h>
#include "rf315mhz.h"
#include "timer.h"
//------------------------------------------------------
#define RFADDRESS 0x55
#define THIS 0x01 //send:hi target:low
//------------------------------------------------------
unsigned char RFBuf[RFSENDLEN]; //data buf
unsigned char nCodeLen; //record length per bit
//------------------------------------------------------
#define SW 3 //stop(wait) len
#define SWMIN (SW-2)
#define SWMAX (SW+SW)
#define S0 3 //0bit len
#define S0MIN (S0-2)
#define S0MAX (S0+2)
#define S1 9 //1bit len
#define S1MIN (S1-3)
#define S1MAX (S1+3)
#define ST 18 //start bit len
#define STMIN (ST-2)
#define STMAX (ST+2)
//------------------------------------------------------
//------------------------------------------------------
void SendSignal(unsigned char i){
RFTX=0;
TH0=T1OverFlow;
nCodeLen=0;
TR1=1;
while(nCodeLen<i);
RFTX=1;
i=SW;
TH0=T1OverFlow;
nCodeLen=0;
while(nCodeLen<i);
TR1=0;
}
//------------------------------------------------------
void RFSendStr(){
unsigned char i,j,tmp;
RFBuf[0]=RFADDRESS;
RFBuf[1]=THIS<<4;
RFBuf[RFSENDLEN-1]=0;
for(i=0;i<19;i++)RFBuf[RFSENDLEN-1]-=RFBuf[i];
SendSignal(S0);
SendSignal(ST);
for(i=0;i<RFSENDLEN;i++){
tmp=RFBuf[i];
for(j=0;j<8;j++){
if(tmp&0x01)SendSignal(S1);
else SendSignal(S0);
tmp>>=1;
}
}
}
//------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -