电子烟厂家
免费服务热线

Free service

hotline

010-00000000
电子烟厂家
热门搜索:
技术资讯
当前位置:首页 > 技术资讯

用51单片机中断法解码pt2262无线遥控器

发布时间:2020-07-21 18:44:43 阅读: 来源:电子烟厂家

/***********************************************pt2262解码软件修正版使用了位操作代替前版本的位寻址,使用三个字节变量存储获取的数据,便于以后将地址和数据进行操作增加了两次数据比对的功能,降低误码的干扰2007.8.24接受模块的信号输出端接INT0中断口。。。P1.0,p1.1上接LED显示接受的情况。。。用pt2262无线遥控器解码测试通过。。。注意:使用的是4M的晶振以减少mcu对接受模块的干扰。。。程序开发:运行平台:51hei单片机开发板+315m无线模块,用杜邦线连接.使用时可能要改变检测的特征值,视遥控的中心频率而定,可以通过pt2262上的电阻改变*********************************************/

#include reg52.h>unsigned int tmp,t1=0;unsigned char i9=0,t2;char *dataTMP;unsigned char dataTMP0,dataTMP1,dataTMP2,datacheck;unsigned char bdata oeCON;sbit UD0=oeCON^0;sbit UD1=oeCON^1;sbit OC0=oeCON^2;sbit OC1=oeCON^3;sbit p10=P1^0;sbit p11=P1^1;sbit p32=P3^2;bit flagF=1,press;void up_down();void open_close();void delay(unsigned char);

void main(){IT0=1;EX0=1;TMOD=0x09;EA=1;TR0=1;P3=0xff;

UD0=1;UD1=0;OC0=1;OC1=0;while(1){p10=p32;if(datacheck==0xff){/**********编码解析后执行代码*******************

***********************/}}/*************************************************************中断服务程序通过探头flagF的值判断是否接收到sync信号接收到的数据存入dataTMP的三个变量中连续按键的确认: 等待i9的值变为0;延时 再次检测i9的值是否为0; 是0则认为按键中止。*************************************************************/int0() interrupt 0 {tmp=TH0*256+TL0;TH0=0x0;TL0=0x0;if(flagF){if(tmp>1295tmp1300){p11=~p11;flagF=0;}}else{if(i99) dataTMP=dataTMP0; else{dataTMP=i917?(dataTMP1):(dataTMP2);}(*dataTMP)=1;if(tmp>100tmp150)(*dataTMP)=(*dataTMP)|0x01;else if(!(tmp>10tmp100)){flagF=1;i9=0;} if(i9==24){if(datacheck!=dataTMP2)datacheck=dataTMP2;elsedatacheck=0xff;/*按键确认*/}i9++;}}

/*******************延时函数 时间:1-2s*******************/void delay(unsigned char k){unsigned char i;for(i=0;ik;i++)for(tmp=0;tmp10300;tmp++);}

红外遥控器相关文章:红外遥控器原理万能遥控器相关文章:万能遥控器代码

51单片机相关文章:51单片机教程

调试方案

Wiki宝典

Spring Boot 日志管理

Java 表达式、语句和块