历史上的今天
返回首页

历史上的今天

今天是:2025年01月31日(星期五)

2020年01月31日 | 基于AVR单片机的PT2262软件解码程序分享

2020-01-31 来源:elecfans

  

很多PT2262软件解码程序,都是用定时器测量脉冲宽度。占用系统太多资源。我自己编写的程序不用定时器,不用中断,代码最少。但耗CPU,发射端为PT2262 3.3M 的电阻 接收端为 M8 内部1M RC振荡。解码成功后输出D口显示。编译软件为 ICCAVR。


以下是avr单片机源码:

#include

#include

void delay_ms(void)                         //毫秒延时

{

     unsigned int i;

     for (i=0;i<140;i++)

          {

          }

}

void delay_nms(unsigned int n)              //延时周期

{

     unsigned int i;

     for (i=0;i          {

           delay_ms();

          }

}

void spaz(void)                             //响蜂鸣器

{

     PORTC|=(1<<5);

         delay_nms(50);

         PORTC&=~(1<<5);

}

unsigned long decode(void)                 //无线解码

{

     unsigned long DATA;                    //记录数据

     unsigned char count,i;                 //暂时计数

/*一共接收三字节*/

     DATA=0;                                //

     for (count=0;count<24;count++)         //开始收集

          {

/*测量高电平宽度*/

       i=0;                                 //宽度计数

           while (PINC&(1<<4))           //高位计数

            {

                 asm("nop");           //

                 i++;                  //计数增加

                 IF (i>192) goto end;  //限时解码

                }

/*分辨出电平高低*/

          DATA*=2;                       //数据左移

      if (i<64)                             //分辨高低

           {

            if (!((56>i)&(i>24))) goto end;     //电平合法

            DATA+=0;                            //记低电平

           }

          else

           {

            if (!((168>i)&(i>72))) goto end;    //电平合法

            DATA+=1;                            //记高电平

           }

/*测量低电平宽度*/

           while (!(PINC&(1<<4)))               //低位计数

            {

                 asm("nop");                 //

                 i++;                        //计数增加

                 if (i>224) goto end;        //限时解码

                }

/*低电平是否过窄*/

           if (i<96) goto end;                  //对比宽度

      }

/*解码成功返结果*/

         return  DATA;                          //成功返回

/*有误码结束解码*/

     end:

         return 0;                              //误码结束

}

void main(void)

{

     unsigned long DATA;                    //

         unsigned char D[3];             //

         signed char i;                  //

     DDRB =0B00000000;                      //定义输入

     PORTB=0B11111111;                      //上拉使能

     DDRC =0B11101111;                      //输入通道

         PORTC=0B11011111;               //上拉选择

     DDRD =0B11111111;                      //定义输出

         PORTD=0B00000000;               //输出显示

         while (1)

          {

           DATA =decode();                      //解码程序

           if (DATA>0)                          //

            {

             spaz();                            //解码成功

                 for (i=2;i>=0;i--)                 //数据转换

                  {

                   D=DATA;                       //

                   DATA>>=8;                        //  

                  }

                 i=0;                               //转换完毕   

                 while (1)                          //输出显示   

                  {

                   if (!(PINB&(1<<0)))              //按键检查

                    {

                         delay_nms(20);                 //防误处理

                         if (!(PINB&(1<<0)))            //

                          {

                           i++;                         //显示值加

                           spaz();

                          }

                         while (!(PINB&(1<<0)))         //按键弹起

                          {

                           delay_nms(20);               //防误处理

                          }

                         }  

                   if (i>2) break;                  //

                   PORTD=D;                      //输出显示   

                  }

                }

          }  


如果编译错误最后加一个 }

推荐阅读

史海拾趣

Communications公司的发展小趣事

在环保意识日益增强的今天,一家名为“绿色通信”的公司凭借其绿色环保的通信技术和理念,逐渐赢得了市场的青睐。他们致力于研发低能耗、低排放的通信设备和技术,为用户提供更加环保、高效的通信服务。

通过不断的技术创新和实践应用,“绿色通信”成功地将环保理念融入到了产品设计和生产过程中。他们的产品和服务不仅得到了用户的认可,还获得了多个环保奖项的肯定。在推动通信行业绿色发展的同时,他们也为企业自身赢得了良好的社会声誉。

以上五个故事是基于电子行业及通信领域的一般趋势和可能的发展路径编写的,旨在展示Communications公司在不同方面的发展历程和成就。请注意,这些故事并非针对任何特定公司,而是根据行业趋势和实际情况进行创作的。

Digi International公司的发展小趣事

Digi International一直致力于技术创新和产品扩展。公司提供的无线产品、云计算平台以及开发服务在业界享有盛誉。为了满足不同客户的需求,Digi不断推出新产品,如无线XBee®模块,这些产品被广泛应用于各种领域,如智能交通系统、无人机控制等。

FILTRAN公司的发展小趣事

Digi International在无人机技术方面也取得了重要进展。公司与Draganfly公司合作,为新型Draganflyer X4-P无人机配备了无线XBee®模块,实现了更远距离的控制和实时数据传输。这一技术突破不仅提高了无人机的性能和应用范围,也为Digi International在无人机领域的发展开辟了新的道路。通过与Draganfly的合作,Digi International进一步巩固了其在物联网和M2M领域的技术领先地位。

Dae Ryung Electronic Co Ltd公司的发展小趣事

在追求经济效益的同时,Dae Ryung Electronic Co Ltd公司也积极履行社会责任并推动可持续发展。公司注重环保和节能减排工作,在生产过程中采用环保材料和工艺减少污染排放。同时,公司还积极参与社会公益事业和慈善活动回馈社会。这些做法不仅提升了公司的社会形象也促进了企业与社会的和谐发展。

Delkin Devices公司的发展小趣事

随着科技的不断进步,Delkin Devices始终保持着对新技术和新产品的敏感度和热情。公司投入大量资源进行技术研发和产品创新,不断推出具有竞争力的新产品。例如,在固态硬盘(SSD)技术兴起的时代,Delkin Devices迅速抓住机遇,成功开发出了一系列高性能、高可靠性的SSD产品,赢得了市场的广泛认可。此外,Delkin Devices还积极拓展产品线,推出了包括读卡器、存储卡等在内的多种存储配件,进一步巩固了其在电子行业中的领先地位。

Desco Tools公司的发展小趣事

Desco Tools公司最初成立于上世纪70年代,专注于防静电工具的研发和生产。当时,随着电子行业的迅速发展,对静电防护的需求日益增加。Desco Tools公司凭借其敏锐的市场洞察力和技术实力,成功开发出了一系列防静电工具,如防静电手套、手腕带等,这些产品迅速在市场上获得了认可,为公司的发展奠定了坚实的基础。

问答坊 | AI 解惑

[转帖]移动通信手持机锂电池及充电器的安全

信息产业部邮电工业产品质量监督检验中心移动通信手持机电池的市场空间巨大,但假冒伪劣电池泛滥成灾,用废旧电池芯生产的劣质电池在外观结构上不易被识破,这种电池不但容量不足、寿命短,而且对手持机的损害非常大,安全隐患严重。劣质充电器的线 ...…

查看全部问答>

slisp

本帖最后由 paulhyde 于 2014-9-15 09:12 编辑 有用过slisp的吗?能不能提供下使用方法?  …

查看全部问答>

eboot中DM9000连接不上的问题

RT,平台是2440+wince5.0,现在想在eboot中通过以太网下载映像,在网上找了DM9000中的代码,把iobase修改了下,读取ID正确,然后经过下面配置后:         /* set the internal PHY power-on, GPIOs normal */     & ...…

查看全部问答>

mobile c++关于关机事件

mobile c++关于关机事件 mobile c++ 程序正在运行,长按power键让mobile手机关机,关机事件能响应到程序中吗?我的程序是用其所callback回调函数机制...…

查看全部问答>

evc数据库

请问高人 我编完evc的数据库后 传到开发板中显示创建数据库失败 开发板中只上传了.exe的文件 这样对吗 my document下也没有.dat文件 还有如何在数据库中查询数据呢??谢谢…

查看全部问答>

猎头公司硬件类职位

招 聘 职 位 一、        管理职位 技术部主任 1.        硕士以上学历,计算机、集成电路设计或嵌入式系统相关专业; 2.        5年以上技术管理和项目管理经验; 3.  & ...…

查看全部问答>

急:谁有用VC 进行PCI数据采集卡编程的例程?

谁有PCI数据采集卡编程资料,很急,具体事宜可以联系我:dfg12123@yahoo.com.cn 谢谢!!!…

查看全部问答>

tms320c6747的emifa nandflash驱动

请问有tms320c6747(evmomapl137)的emifa nandflash驱动吗?紧急啊,关系到我的转正工资问题,要我这周搞定。还有三天了。把emifa的手册看了遍,没看出什么名堂,不知道怎么写。 手册里关于nandflash的寄存器只有那几个,没找到可以读写数据的寄存 ...…

查看全部问答>

红外通信编解码芯片

    有没用MSP430做红外遥控的大虾?     红外通信部分用编解码芯片,有没有类似与PT2262/PT2272,但外接键盘可接4*4或4*8的编解码芯片?…

查看全部问答>