PT2262 PIC 单片机解码

来源:百度知道 编辑:UC知道 时间:2024/05/14 10:09:41
我使用的是无线发送接收模块,用示波器抓出了PT2262的波形,短脉冲300us,长脉冲900us,在下面的程序中,Decode 函数已经可以实现解码,想请问这种方式可靠吗?
MCU: PIC16F877A
晶振:16M
分频器分配给TMR0,1:256, 则TMR0寄存器的值加1则表示走过64us,程序中我就是通过读取TMR0的值来判断高低脉冲宽度的。

#include <pic.h>

__CONFIG(0x3f3a);

#define RECV RB0
#define FM_EN RB2

#define BYTE unsigned char
#define UINT unsigned int
#define ULONG unsigned long

static ULONG g_dwValue; // 采样得到的 32 位整数
static bit g_bNewData; // 标志是否有新数据

void Init(void)
{
TRISB0 = 1; // 作为无线信号输入
TRISB2 = 0; // 蜂鸣器输出口

// B 口弱上拉启用, 分频器分配给 TMR0, 1:256
// 这样, TMR0 的值加 1, 则表示过了 64 us
OPTION = 0x07;
}

void Decode(void)
{
BYTE i;

if (T0IF)
T0IF = 0;

g_dwValue = 0;

// 等到下降沿
while (RECV);

// 定时器清零, 计低电平宽度
TMR0 = 0x00;
while (!RECV);

if (TMR0 < 141 || TMR0 > 150)
r

好的方法就是:使用PT2272来解码。
--------------------------
如果不想用PT2272,那么连PT2262也不要用。
完全可以用单片机解决,自行编写编码、解码程序。

用它对应的解码芯片不就行了吗??怎么你非要自己搞一个?一个那样的芯片才1元钱呀!!

可靠性极差,无法实际应用。