资源简介

STC51单片机红外解码,其中代码亲测可用,没有任何问题

资源截图

代码片段和文件信息

/**************************************************************************************
*               红外通信实验   *
实现现象: 具体接线操作请参考视频
下载程序后,数码管显示红外遥控键值数据
注意事项: 红外遥控模块的短接片J1短接,
红外遥控器内的电池绝缘片一定要抽掉   
***************************************************************************************/

#include “reg52.h“  //此文件中定义了单片机的一些特殊功能寄存器


typedef unsigned int u16;   //对数据类型进行声明定义
typedef unsigned char u8;

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;

sbit IRIN=P3^2;
sbit DJ=P1^5;
u8 IrValue[6];
u8 Time;

u8 DisplayData[8];
u8 code smgduan[17]={
0x3f0x060x5b0x4f0x660x6d0x7d0x07
0x7f0x6f0x770x7c0x390x5e0x790x710X76};
//0、1、2、3、4、5、6、7、8、9、A、b、C、d、E、F、H的显示码

/*******************************************************************************
* 函 数 名         : delay
* 函数功能    : 延时函数,i=1时,大约延时10us
*******************************************************************************/
void delay(u16 i)
{
while(i--);
}


/*******************************************************************************
* 函数名         :DigDisplay()
* 函数功能  :数码管显示函数
* 输入           : 无
* 输出           : 无
*******************************************************************************
void DigDisplay()
{
u8 i;
for(i=0;i<3;i++)
{
switch(i)  //位选,选择点亮的数码管,
{
case(0):
LSA=0;LSB=0;LSC=0; break;//显示第0位
case(1):
LSA=1;LSB=0;LSC=0; break;//显示第1位
case(2):
LSA=0;LSB=1;LSC=0; break;//显示第2位
}
P0=DisplayData[i];//发送数据
delay(100); //间隔一段时间扫描
P0=0x00;//消隐
}
}


/*******************************************************************************
* 函数名         : IrInit()
* 函数功能    : 初始化红外线接收
* 输入           : 无
* 输出           : 无
*******************************************************************************/

void IrInit()
{
IT0=1;//下降沿触发
EX0=1;//打开中断0允许
EA=1; //打开总中断

IRIN=1;//初始化端口
}
/********************************/
void Delay1ms(uint y)

评论

共有 条评论