色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 通過(guò)串口發(fā)送紅外遙控器的解碼值到PC

          通過(guò)串口發(fā)送紅外遙控器的解碼值到PC

          作者: 時(shí)間:2016-12-02 來(lái)源:網(wǎng)絡(luò) 收藏
          /**

          *************************************************************************
          * @file main.c
          * @author xr
          * @date 2014年3月31日22:30:08
          * @version V1.2.3
          * @brief 串口通信+紅外通信 通過(guò)串口發(fā)送紅外遙控器的解碼值到PC
          * @note單片機(jī)STC89C52RC MCU晶振11.0592MHZ
          *************************************************************************
          */

          本文引用地址:http://cafeforensic.com/article/201612/324709.htm

          #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) //接收到紅外數(shù)據(jù)
          {
          irflag = 0;
          UartSend(ircode[0]); //發(fā)送用戶碼
          delayms(100);//延時(shí)100ms
          UartSend(ircode[2]); //發(fā)送鍵碼
          }
          }
          }

          /**
          * @brief 延時(shí)xms
          * @param xms
          * @retval 無(wú)
          */
          void delayms(unsigned int xms)
          {
          unsigned int x, y;

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

          /**
          * @brief 配置串口通信
          * @param 無(wú)
          * @retval 無(wú)
          */
          void ConfigUart()
          {
          TMOD &= 0x0F;//清零T1控制位
          TMOD |= 0x20;//T1方式2,八位自動(dòng)重裝模式
          TH1 = 0xFD; //波特率 = 256-1/2^SMOD*T1溢出率 X=256-11059200/12/32/波特率
          TL1 = TH1;//波特率9600bps
          TR1 = 1;
          ET1 = 0;//只用T1的計(jì)數(shù)
          SCON |= 0x50;//串口方式1 SM0 SM1 SM2 REN TB8 RB8 TI RI 0101 0000
          /*
          SM0 = 0;
          SM1 = 1;//方式1 SM2多機(jī)通信位
          REN = 1;//允許接收數(shù)據(jù)
          TI = 0;//發(fā)送完成中斷標(biāo)志
          RI = 0;//接收完成中斷標(biāo)志
          */
          ES = 1;//開(kāi)串口中斷
          EA = 1;//開(kāi)總中斷
          }

          /**
          * @brief 串口發(fā)送一個(gè)字節(jié)數(shù)據(jù)到PC
          * @param 待發(fā)送數(shù)據(jù)
          * @retval 無(wú)
          */
          void UartSend(unsigned char dat)
          {
          SBUF = dat;
          //while (!TI);//等待發(fā)送完成,在中斷模式下不需要等待,否則進(jìn)不了中斷
          }

          /**
          * @brief 串口中斷
          * @param 無(wú)
          * @retval 無(wú)
          */
          void Uart_ISP() interrupt 4 //串口中斷標(biāo)號(hào)是4
          {
          if (TI) //等待發(fā)送完成
          { //發(fā)送完成
          TI = 0;//清零
          }
          }


          /**
          **************************************************************
          * @file infrared.c
          * @author xr
          * @date 2014年3月31日20:51:23
          * @version V1.2.3
          * @brief 紅外通信--紅外遙控器NEC協(xié)議解碼
          * @note單片機(jī)STC89C52RC MCU晶振11.0592MHZ
          **************************************************************
          */


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉