您的位置 首页 电源

经过串口发送红外遥控器的解码值到PC

****************************************************************************@filemainc*@authorxr*@da

/**

*************************************************************************
* @file main.c
* @author xr
* @date 2014年3月31日22:30:08
* @version V1.2.3
* @brief 串口通讯+红外通讯 经过串口发送红外遥控器的解码值到PC
* @note单片机STC89C52RC MCU晶振11.0592MHZ
*************************************************************************
*/

#include

void ConfigUart();
void UartSend(unsigned char dat);
void delayms(unsigned int xms);
extern bit irflag;
extern unsigned char ircode[4];
extern void ConfigInfrared();

void main()
{
ConfigUart();
ConfigInfrared();

while (1)
{
if (irflag) //接纳到红外数据
{
irflag = 0;
UartSend(ircode[0]); //发送用户码
delayms(100);//延时100ms
UartSend(ircode[2]); //发送键码
}
}
}

/**
* @brief 延时xms
* @param xms
* @retval 无
*/
void delayms(unsigned int xms)
{
unsigned int x, y;

for (x = 0; x < xms; x++)
for (y = 0; y < 110; y++);
}

/**
* @brief 装备串口通讯
* @param 无
* @retval 无
*/
void ConfigUart()
{
TMOD &= 0x0F;//清零T1操控位
TMOD |= 0x20;//T1方法2,八位主动重装形式
TH1 = 0xFD; //波特率 = 256-1/2^SMOD*T1溢出率 X=256-11059200/12/32/波特率
TL1 = TH1;//波特率9600bps
TR1 = 1;
ET1 = 0;//只用T1的计数
SCON |= 0x50;//串口方法1 SM0 SM1 SM2 REN TB8 RB8 TI RI 0101 0000
/*
SM0 = 0;
SM1 = 1;//方法1 SM2多机通讯位
REN = 1;//答应接纳数据
TI = 0;//发送完结中止标志
RI = 0;//接纳完结中止标志
*/
ES = 1;//开串口中止
EA = 1;//开总中止
}

/**
* @brief 串口发送一个字节数据到PC
* @param 待发送数据
* @retval 无
*/
void UartSend(unsigned char dat)
{
SBUF = dat;
//while (!TI);//等候发送完结,在中止形式下不需求等候,不然进不了中止
}

/**
* @brief 串口中止
* @param 无
* @retval 无
*/
void Uart_ISP() interrupt 4 //串口中止标号是4
{
if (TI) //等候发送完结
{ //发送完结
TI = 0;//清零
}
}

/**
**************************************************************
* @file infrared.c
* @author xr
* @date 2014年3月31日20:51:23
* @version V1.2.3
* @brief 红外通讯–红外遥控器NEC协议解码
* @note单片机STC89C52RC MCU晶振11.0592MHZ
**************************************************************
*/

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

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

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

微信扫一扫关注我们

返回顶部