标题: 问下51hei板子配的无线解码的发射部分的晶振是多少的呢? [打印本页]

作者: ccdd    时间: 2010-9-3 15:26
标题: 问下51hei板子配的无线解码的发射部分的晶振是多少的呢?
如题
作者: admin    时间: 2010-9-3 16:48

  你说的是四键盘手持遥控器吧,那个是没有晶振的,采用pt2262芯片,在15和16脚之间有一个震荡电阻,这个电阻配合芯片内部电路产生编码信号,然后由315兆的声表面滤波器稳频 在315M的载波上发射

 

   请参考板子配套的文档,内有详细的资料

 

 


[此贴子已经被作者于2010-9-3 16:49:17编辑过]

作者: lbq691477940    时间: 2011-2-13 13:46
学习板上要用多少MHZ的晶体呢?我的没反应呢?
作者: admin    时间: 2011-2-13 16:57
多少MHZ的晶体 在程序的顶部有注释的哦,你打开源代码 看看就知道了
作者: lbq691477940    时间: 2011-2-13 18:06

我原文件给我改乱了遥不了谁能分享下程序呀LBQ691477940@126.COM

[此贴子已经被作者于2011-2-13 18:08:30编辑过]

作者: lbq691477940    时间: 2011-3-5 21:34
/******************************************
******* 文件名:Decode.c
******* 描述:对PT2262的编码信号进行解码PT2262的输出信号经三极管反向后送入单片机的中断引脚
******* 代码:A0 -- A11 中的每bit用2bit表示:0码:00 ;1码:11
******* 备注:PT2262输出数据的顺序:A0 A1 -- A10 A11+同步码+A0 A1 -- A10 A11+同步码,连续发四次
*******************************************/
#include<reg51.h> //51系列头文件
#include<intrins.h> //方便调用_nop_();做延时用;
unsigned char Receive[3] ;    //解码缓冲区:Receive[0]:A0 A1 A2 A3 ; Recdive[1]:A4 A5 A6 A7 ; Receive[2]: D3 D2 D1 D0
//Recdive[x]:xx xx xx xx 代表4bit
bit flag = 0 ;  //解码完成标志位
sbit RemPin = P3^2 ; //编码信号输入脚
/******************************************************
函数名:INT0_ISR( )
描  述: 外部中断0服务函数,实现对PT2262的解码
参  数:输入参数:无
输出参数:无
*******************************************************/
void INT0_ISR(void) interrupt 0 using 1
 {
  unsigned char i = 0 ;
  unsigned char j = 0 ;
  unsigned int temp = 0x0000;
  //EA = 0 ;
  TH0 = 0 ;
  TL0 = 0 ;
  while( !RemPin) ; //等待高电平的到来,检测同步头
  TR0 = 1 ;   //启动定时器0,开始测量高电平的宽度
  while( RemPin) 
   {
    if( TF0 == 1 ) 
     {
      goto RemExit;  //定时器超时溢出则退出
     }
   }
  TR0 = 0 ;
  temp = TH0 ;
  temp = temp << 8 ;
  temp = temp + TL0 ; //取得高电平的宽度
  if( ( 0x36B0 < temp ) && ( temp < 0x4100) )  //检测到同步头
   {
    for( j = 0 ; j < 3 ; j ++) //循环3次
     {
      for( i = 0 ; i < 8; i ++ )
       {
        TH0 = 0 ;
        TL0 = 0 ;
        while( !RemPin);//等待高电平到来
        TR0 = 1 ;  //开启定时器0 ,测量高电平的宽度
        while( RemPin) 
         {
          if( TF0 == 1 ) 
           {
            goto RemExit; //定时溢出则退出
           } 
         }
        TR0 = 0 ;
        temp = TH0 ;
        temp = temp << 8 ;
        temp = temp + TL0 ;  //取得高电平的宽度
        if( ( 1000 < temp ) && (temp< 1800 ) ) //判断得窄脉冲:1表示
         {
          Receive[j] = Receive[j] << 1 ;
          Receive[j] = Receive[j] + 0x01 ;
         }
        else if( ( 300 < temp) && (temp< 700) )//判断得宽脉冲:0表示
         {
          Receive[j] = Receive[j] << 1 ;
         }
        else 
        return;    
       }
     }
    flag = 1 ;      //表示已解码完毕
    return;
   }
  else 
   {
    goto RemExit;
   }
  RemExit:
   {
    TR0 = 0 ;
    //TR1=1;
    EA = 1 ;
    TF0 = 0 ;
    RemPin = 1 ;
    return; 
   }  
 } 






欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1