您的位置 首页 FPGA

红外通讯—红外遥控器NEC解码程序

单片机芯片使用的stc89c52;找到要用的部分的的原理图即可这是一整个单片机开发板的电路图其他的忽略*******************************

单片机芯片运用的stc89c52;找到要用的部分的的原理图即可.这是一整个单片机开发板的电路图其他的疏忽.

/**
***********************************************************************************************
* @file main.c
* @author xr
* @date 2014年3月31日10:26:47
* @version V1.2.3
* @brief 红外通讯 NEC协议进行红外遥控器解码 显现用户码和键码到数码管上
* @note单片机STC89C52RC MCU晶振11.0592MHZ
***********************************************************************************************
*/

#include

//红外输出数据口
sbit IRD = P3^3;//外部中止引脚

bit irflag = 0;
unsigned char ircode[4];//接纳解码得到的数据

unsigned char code LedTable[] = {
0xC0, //”0″
0xF9, //”1″
0xA4, //”2″
0xB0, //”3″
0x99, //”4″
0x92, //”5″
0x82, //”6″
0xF8, //”7″
0x80, //”8″
0x90, //”9″
0x88, //”A”
0x83, //”B”
0xC6, //”C”
0xA1, //”D”
0x86, //”E”
0x8E //”F”
};

unsigned char LedBuff[6] = {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};//数码管显现缓冲区

unsigned char thr0, tlr0;

void ConfigTimer0(unsigned int xms);
void ConfigTimer1();

void main()
{
ConfigTimer0(1); //守时1ms
ConfigTimer1();

while (1)
{
if (irflag)//接纳到红外数据,则改写显现
{
LedBuff[5] = LedTable[ircode[0] >> 4];//取用户码的高4位字节
LedBuff[4] = LedTable[ircode[0] & 0x0F];//取用户码的低四位字节
LedBuff[1] = LedTable[ircode[2] >> 4];//取键码的高四位
LedBuff[0] = LedTable[ircode[2] & 0x0F];//取键码的低四位
}
}
}

/**
* @brief 守时器T0装备
* @param 守时时刻xms
* @retval 无
*/
void ConfigTimer0(unsigned int xms)
{
unsigned int tmp;
tmp = 65536-xms*11059200/12/1000;
thr0 = (unsigned char)(tmp >> 8);
tlr0 = (unsigned char)(tmp & 0x00FF);
TMOD &= 0xF0;
TMOD |= 0x01;//T0方法1
TH0 = thr0;
TL0 = tlr0;
TR0 = 1;
EA = 1;
ET0 = 1;
//设置守时器T0的中止优先级高于外部中止的优先级
//IP中止优先级寄存器 PT2 PS PT1 PX1 PT0 PX0
PT0 = 1;//进步T0的优先级,优先进行数码管改写,消除数码管显现颤动
}

/**
* @brief 数码管改写
* @param 无
* @retval 无
*/
void refresh()
{
static unsigned char j = 0;

P0 = 0xFF;//消隐
P1 = (0x08 | j);//000 0 1 ADDR2 ADDR1 ADDR0
P0 = LedBuff[j++];
if (j >= 6)
j = 0;
}

/**
* @brief T0中止服务
* @param 无
* @retval 无
*/
void Timer0_ISP() interrupt 1
{
TH0 = thr0;
TL0 = tlr0;
refresh();//数码管改写
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/fpga/254099.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部