📄 send_code.c
字号:
#include <reg52.h>
#define uchar unsigned char //定义宏
#define uint unsigned int //定义宏
/********************************************************
PT2262编码 系统时间12MHz 同步码124A=16.5ms
4A = 500us 定时器溢出500次 初值=65536-500=65036=fe0c
12A =1500us 定时器溢出1500次 初值=65536-1500=64036=fa24
32A =4000us 定时器溢出4000次 初值=65536-4000=61536=f060
124A=15.5mus 定时器溢出15500次 初值=65536-15500=50036=c374
振荡电阻PT2262/1.2M=PT2272/200K组合
********************************************************/
#define BIT_4A() TH0=0xFe; TL0 = 0x04; //窄脉冲
#define BIT_12A() TH0=0xFa; TL0 = 0x24; //宽
#define BIT_124A() TH0=0xc3; TL0 = 0x74; //同步
sbit IR = P3^1;
extern unsigned char Floorh,Floorl;
extern unsigned char User;
void BIT_1 (void)
{
TF0 = 0;
IR=1;
BIT_12A();
while(TF0==0);
TF0 = 0;
IR=0;
BIT_4A();
while(TF0==0);
}
void BIT_0 (void)
{
TF0 = 0;
IR=1;
BIT_4A();
while(TF0==0);
TF0 = 0;
IR=0;
BIT_12A();
while(TF0==0);
}
void Send_Byte(void)
{
unsigned char i;
unsigned char temp1,temp2,temp3;
temp1 = Floorl;
temp2 = Floorh;
temp3 = User;
/********同步头*************/
TF0 = 0;
IR=1;
BIT_4A();
while(TF0==0);
TF0 = 0;
IR=0;
BIT_124A();
while(TF0==0);
/*********地址码H************/
for(i=0;i<8;i++)
{
if(temp1&0x01)
BIT_1();
else
BIT_0();
temp1 >>= 1; //低电平间隔
}
/*********地址码L************/
for(i=0;i<8;i++)
{
if(temp2&0x01)
BIT_1();
else
BIT_0();
temp2 >>= 1; //低电平间隔
}
/*********数据码************/
for(i=0;i<8;i++)
{
if(temp3&0x01)
BIT_1();
else
BIT_0();
temp3 >>= 1; //低电平间隔
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -