单片机解码315M的pt2262编码的c51程序

发布者:温馨小筑最新更新时间:2012-10-17 来源: 21ic 关键字:单片机解码  pt2262  c51程序 手机看文章 扫描二维码
随时随地手机看文章
 这是一个用软件来解码pt2262信号的c51程序,经过测试是可以使用的,要注意接受模块要远离单片机的晶振 不然干扰太严重无法解码的 或者距离很近.

 

/*-----------------------------------------------------------------
;    Copyright (C) 2006  WangChanghong INTEGRATED PRODUCTS, INC.
;    All rights reserved.
;    MCU:AT89s52 ,晶体频率:12MHz
:    作者:汪长洪
:    时间:2006年08月01日
;    地点:威海
;----------------------------315M无线遥控解码程序-----------------*/ 
#include 
#define uchar unsigned char
#define uint unsigned int

/*---------------------------------变量列表-------------------------*/
uchar  ReadCode[3],GetCode;

/*---------------------------------函数列表-----------------------*/
void delay_200(void);				//200us精确延时
void delay_250(void);				//250us精确延时
void delay_131(void);				//131ms精确延时
void init(void);					//初始化子程序
void INT0_intrupt();			//中断处理子程序(解码程序)

/*-----------------------------主程序入口---------------------*/
main()
{	
	init();	    
	while(1)
    {   
      P2=~GetCode|0xf0;
    }
}

/*---------------------------------初始化子程序----------------*/
void init(void)
{
    EA=1;                      //打开CPU总中断请求
	EX0=1;                     //打开INT0中断请求   
	IT0=1;                     //设定INT0的触发方式为脉冲负边沿触发	 
}

/*-------------------------------200us精确延时-------------------*/
void delay_200(void) 
{
    uchar i,j;
	for(i=0x05;i>0;i--)
	for(j=0x12;j>0;j--);
}

/*-------------------------------250us精确延时----------------*/
void delay_250(void) 
{
    uchar i,j;
	for(i=0x05;i>0;i--)
	for(j=0x17;j>0;j--);
}

/*-------------------------------131ms精确延时---------------*/
void delay_131(void) 
{
    uchar i,j;
	for(i=0xfe;i>0;i--)
	for(j=0xfe;j>0;j--);
}

/*-------------------------外部中断0子程序(解码程序)-------------*/
void INT0_intrupt(void) interrupt 0 using 1
{
	uchar i,j;
	bit BitState_2;                                           
	EX0=0; 
////////////////////找起始位////////////////////////
	for(i=0;i<50;i++);
	if(P3_2==1)  goto kk;

	while(P3_2==0);
	for(i=0;i<50;i++);
	if(P3_2==0)  goto kk; 
		
	delay_200();
	if(P3_2==1)  goto kk;

	for(i=15;i>0;i--) 	//重复20次,检测在3750微秒内出现高电平就退出解码程序
	{    
		delay_200();                    
		if(P3_2==1) goto kk;
	}                                   
	
	while(P3_2==0);

//////////////////////接收数据/////////////////////////
    

	for(j=0;j<3;j++)                    
	{
		for(i=0;i<8;i++)
		{ 
            delay_250();
			BitState_2=P3_2;		
			ReadCode[j]=ReadCode[j]<<1;
			ReadCode[j]=ReadCode[j]|BitState_2; 
			if(P3_2==1) while(P3_2==1);
			while(P3_2==0);
		   				
		}
	}
////////////////////校验及运算数据///////////////////////////
    for(i=0;i<3;i++)
    {
       if((~(ReadCode[i]|0x55))&((ReadCode[i]&0x55)<<1)!=0x00)goto kk; //校验
    } 
    GetCode=0x00;
    for(i=0;i<8;i++)
    {
      GetCode |=((ReadCode[2]>>i)&(ReadCode[2]>>(i+1))&0x01<				   
关键字:单片机解码  pt2262  c51程序 引用地址:单片机解码315M的pt2262编码的c51程序

上一篇:20天89C51单片机总结
下一篇:基于单片机定时器中断的时钟程序

推荐阅读最新更新时间:2024-03-16 13:10

C51的串口中断处理子程序
此串口处理程序是基于以下的协议写成的: 帧内容FRAME=帧头FA+帧长度len(不包括帧头帧尾)+数据流data+帧尾FB。 串口中断子程序里对整个数据流进行处理,而不是一个字节一个字节地处理,在中断中等待处理完所有的字节。 void Uart_Int(void) interrupt 4 //串口要加帧头与FA帧尾FB { unsigned char len, i; unsigned int j=0; unsigned char serialStart; if(RI) //收到数据 { serialStart=SBUF; RI=0; if(serialStart==0xFA) { w
[单片机]
一个简单的流水灯c51程序
//代码 #include reg52.h //头文件 #define uchar unsigned char //宏定义 #define uint unsigned int void delay(uint x) //延时函数(控制灯亮与灭的间隔) {  uint i,j; for(i=500;i 0;i--) for(j=x;j 0;j--); } void main() //主函数 {   uchar i; //定义局部变量   P2=0x00; //关闭所有发光二极管   while(1) //死循环   {    P2=0xfe; //第一个二极管亮    delay(100); //延时     fo
[单片机]
24C01的IIC 读写的C51程序
/*------------------------------------------------------------------------------ 为了安全起见,程序中很多NOP是冗余的,希望读者能进一步精简,但必须经过验证。 Atmel 24C01 比较特殊,为简约型. 51晶振为11.0592MHz 〖参考〗 http://www.c51bbs.com 〖版本〗V1.00A Build 0918 -----------------------------------------------------------------------------*/ #include reg51.h #incl
[单片机]
lcd液晶12232F的串口C51程序
由于12232F这个显示器用得比较平常,但平常见到的是一些并口的汇编程序,并且也没有对应于12232F的并口程序,串口的C51程序极少见,为了方便大家使用,所以本站把它调试了一个出来,大家多多指教! 由于12232F这个显示器用得比较平常,但平常见到的是一些并口的汇编程序,并且也没有对应于12232F的并口程序,串口的C51程序极少见,为了方便大家使用,所以本站把它调试了一个出来,大家多多指教! /******************************************************/ /* 12232F串口驱动程序C51,11.0592M晶振 */ /*使用这款LCD应该要注意的问题: */ z /
[单片机]
C51 INT0中断方式键盘扫描程序
//中断方式键盘扫描程序,P1.0接二极管,P3.2 按键接INT0中断输入。按一次键P1.0翻转一次。 #include reg52.h void delay(unsigned int x); sbit led=P1^0; main() { IT0=1; EA=1; EX0=1; while(1) { } } void delay(unsigned int x) { unsigned int i; for(i=0;i x;i++) { } } void int0() interrupt 0 { EX0=0; //关中断, led=~led; delay(30000); IE0=0; //
[单片机]
C51通用串口收发数据C语言程序
#include reg52.h //C51通用串口收发数据C语言程序模块 #define uchar unsigned char #define uint unsigned int uchar shu; bit i; sbit led1=P0^0; void delayms(uint xms) //1ms; { uint i,j; for(i=xms;i 0;i--) for(j=110;j 0;j--) ; } /************************************************************************/ void UART_ini
[单片机]
基于51单片机红外编码解码的C语言程序
当学习键按下后,红外接收头便可将接受到的信号存储到单片机中。在接受到通用遥控器发出的信号后,如果按下发射键,单片机将调出刚刚储存的信息,通过红外发射头发射出和遥控器一样的信号来达到控制的作用。 #include reg52.h #include intrins.h #define uchar unsigned char #define uint unsigned int sbit studylamp=P2^7; sbit lamp=P2^6; sbit studykey=P3^2; sbit remotein=P1^1;
[单片机]
单片机实现十六按键电子琴C51程序
//------------------------------------------------------------- //矩阵键盘十六按键电子琴源程序.C //硬件说明:51Hei单片机开发板,12M晶振 //编写人:胡琴 //网站:http://www.51hei.com //------------------------------------------------------------- #include AT89X51.H //包含头文件 #define uchar unsigned char //宏定义 #define uint unsigned int //宏定义 uint a,b; //定义全局变量
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
  • ARM裸机篇--按键中断
    先看看GPOI的输入实验:按键电路图:GPF1管教的功能:EINT1要使用GPF1作为EINT1的功能时,只要将GPFCON的3:2位配置成10就可以了!GPF1先配 ...
  • 网上下的--ARM入门笔记
    简单的介绍打今天起菜鸟的ARM笔记算是开张了,也算给我的这些笔记找个存的地方。为什么要发布出来?也许是大家感兴趣的,其实这些笔记之所 ...
  • 学习ARM开发(23)
    三个任务准备与运行结果下来看看创建任务和任运的栈空间怎么样的,以及运行输出。Made in china by UCSDN(caijunsheng)Lichee 1 0 0 ...
  • 学习ARM开发(22)
    关闭中断与打开中断中断是一种高效的对话机制,但有时并不想程序运行的过程中中断运行,比如正在打印东西,但程序突然中断了,又让另外一个 ...
  • 学习ARM开发(21)
    先要声明任务指针,因为后面需要使用。 任务指针 volatile TASK_TCB* volatile g_pCurrentTask = NULL;volatile TASK_TCB* vol ...
  • 学习ARM开发(20)
  • 学习ARM开发(19)
  • 学习ARM开发(14)
  • 学习ARM开发(15)
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved