搜索
bottom↓
回复: 3

关于PT2262的单片机解码问题?大家进来帮我一下?

[复制链接]

出0入4汤圆

发表于 2012-4-24 11:06:44 | 显示全部楼层 |阅读模式
3、        厂里有一款遥控的振荡电阻是4.7M欧。
用公式
振荡频率f=2*1000*16/Rosc(单位k欧)    kHz     其中Rosc为振荡电阻
求得:f=6.8085kHz 约等于 6.8kHZ。
周期为:1.468752294e-4 s    0.000146875s   即a=147us
现在就搞不明白了,:
看了别人的程序是这样的
郁闷中,这里为什么是3471,和3983
        if( ( 0x0D8F /*3471*/ < temp ) && ( temp < 0x0F8F /*3983*/) ) //检测到同步头
这是怎么来的?
具体是怎么算出来的
还有
TL0 = 0 ; //11.0592 最大值 71111us
最大值 71111us
是怎么算出来的

如果是STC12系列的单片机,这又如何算呢?
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 ; //11.0592 最大值 71111us
        while( !RemPin)        ; //等待高电平的到来,检测同步头
        TR0 = 1 ; //启动定时器0,开始测量高电平的宽度
        while( RemPin)
        {
                if( TF0 == 1 )
                {
                        goto RemExit; //定时器超时溢出则退出
                }
        }
        TR0 = 0 ;
        temp = TH0 ;
        temp = temp << 8 ;
        temp = temp + TL0 ; //取得高电平的宽度
///////////////////////////////////////////////////////////////////////////////
郁闷中,这里为什么是3471,和3983
        if( ( 0x0D8F /*3471*/ < temp ) && ( temp < 0x0F8F /*3983*/) ) //检测到同步头
        {
                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( ( 0x60 /*96*/ < temp ) && (temp< 0x90 /*144*/ ) ) //判断得窄脉冲:1表示
                                {
                                        Receive[j] = Receive[j] << 1 ;
                                        Receive[j] = Receive[j] + 0x01 ;
                                }
                                else if( ( 0x0100 /*256*/ <temp) && (temp< 0x0200 /*512*/) ) //判断得宽脉冲:0表示
                                {
                                        Receive[j] = Receive[j] << 1 ;
                                }
                                else return;                     
                        }
                }
                flag = 1 ; //表示已解码完毕
                return;
        }
        else
        {
                goto RemExit;
        }
RemExit:
        {
                TR0 = 0 ;
                EA = 1 ;
                TF0 = 0 ;
                RemPin = 1 ;
                return;
        }               
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2012-4-24 13:47:43 | 显示全部楼层
本帖最后由 BXAK 于 2012-4-24 14:03 编辑

你看看2262的编码格式就知道了

另:那个频率公式哪来的?怎么和实测的误差那么大

出0入0汤圆

发表于 2012-4-24 14:58:40 | 显示全部楼层
晶振是很关键!!!

出0入4汤圆

 楼主| 发表于 2012-4-24 17:40:17 | 显示全部楼层
超级郁闷啊
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-19 23:46

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表