打印

DMX512信号

[复制链接]
1603|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
kxc2008|  楼主 | 2011-12-7 21:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 kxc2008 于 2011-12-7 21:24 编辑

最简单的一个DMX512接收程序,各位高手看下有没有什么问题。[local]1[/local]
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp;
uchar data m[1];//接收数据缓存
uint address;
uint n=0;
uchar b1,b2;
sbit RE_RXD=P2^2;
sbit d1=P3^7;
sbit d2=P2^4;
void init();
void main()
{
init();
d1=0;
d2=0;
while(1)
  {
b1=m[0];b2=m[1];
if(b1>100)
d1=1;
else
d1=0;        
if(b2>100)
d2=1;
else
d2=0;   
  }
}
void init()
{
PCON=0x00;
SM0=1;  //串行口工作方式2,9位 固定波特率250K ,使用16MHZ晶振
SM1=0;
SM2=0;
REN=1;
IP=0x10;
EA=1;
ES=1;
address=1;
RE_RXD=0;
temp=0;
n=0;
}   
/***DMX512接收程序*****/
void serial() interrupt 4 using 0
{
RI=0;
if(RB8==0)
  {n=0;
   return;
  }
if(n<address)
  {
  n++;
  return;
  }
else if(n>address+1)
  {
  n++;
  return;
  }
else         
  {      
  m[n-address]=SBUF;
  n++;      
  }
}

相关帖子

沙发
llz20052333| | 2012-6-30 00:00 | 只看该作者
新手学习啊

使用特权

评论回复
板凳
llz20052333| | 2012-6-30 00:00 | 只看该作者
新手学习啊!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

220

帖子

0

粉丝