dmx512协议c语言编程

控制/MCU

1814人已加入

描述

  DMX512协议最先是由USITT(美国剧院技术协会)发展成为从控制台用标准数字接口控制调光器的方式。

  DMX512超越了模拟系统,但不能完全代替模拟系统。DMX512的简单性、可靠性(假如能够正确安装和使用的话!)以及灵活性使其迅速成为资金允许情况下选择的协议,除了调光器外,一系列不断增长的控制设备就是证据。DMX512仍然是科学上的一个新领域,具有在规则基础上产生的各种奇妙技术。

  DMX512 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;

  }

  }

  }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分