⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dmx512.c

📁 DMX512接收数据原码,控制RGB灯显示。
💻 C
字号:
#include "reg51.h"

sfr T2CON =0XC8;
sfr T2MOD =0XC9;
sfr RCAPL2=0XCA;
sfr RCAPH2=0XCB;
sfr TH2   =0XCC;
sfr TL2   =0XCD;


sbit GREEN = P1^0;
sbit BLUK  = P1^1;
sbit YELLOW= P1^2;
sbit RED   = P1^3;
sbit LED   = P1^5;

bit revfg;
unsigned char start,ribit;
unsigned char  cdata[6];

void initUart(void)
{
 T2CON=0X34;
 TH2=0XFF;
 TL2=0XFE;
 RCAPH2=0XFF;
 RCAPL2=0XFE;
 SCON=0XD0;
}
void bps(void) interrupt 4 using 1
{
 if(RI)
   {
    RI=0;
    if((RB8==0)&&(SBUF==0)){start=1;revfg=0;}
    else if((start==1)&&(revfg==0)){revfg=1;ribit=0;}

    if(revfg==1)
    {
     cdata[ribit]=SBUF;
     ribit++;
     if(ribit>=5){ribit=0;revfg=0;start=0;}
     }
    }
  else if(TI==1)TI=0;
}                   
     
    
void main(void)
{



initUart();
EA=1;
ES=1;
RED=1;
GREEN=1;
BLUK=1;
YELLOW=1;
while(1)
{
if(cdata[0]==0)LED=1;
if(cdata[1]<50)
{
 RED=0;
 GREEN=0;
 BLUK=0;
 YELLOW=0;
 }
 
if((cdata[1]>=50)&&(cdata[1]<100))
 {
  RED=1;
  GREEN=0;
  BLUK=0;
  YELLOW=0;
  }
if((cdata[1]>=100)&&(cdata[1]<200))
 {
  RED=0;
  GREEN=1;
  BLUK=0;
  YELLOW=0;
  }
if(cdata[1]>=200)
  {
   RED=1;
   GREEN=1;
   BLUK=1;
   YELLOW=1;
  }
}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -