打印

DMX512通信问题(有程序)

[复制链接]
2787|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
takina|  楼主 | 2011-4-29 12:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题如下,请各位帮忙看看是怎么回事??


//单片机用STC12C5608AD,此程序只有一个通道,address用于设置本机地址,RE_RXD是SN75176接收使能。程序的结果是:
//在8个LED灯一起频闪,推控台时并不影响。并不是预期的结果。请各位看看到底是什么问题??
//硬件电路没有问题
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar temp;
uint address;
uint n;
sbit RE_RXD=P2^2;
sbit d1=P1^0;
sbit d2=P1^1;
sbit d3=P1^2;
sbit d4=P1^3;
sbit d5=P1^4;
sbit d6=P1^5;
sbit d7=P1^6;
sbit d8=P2^1;
void init();
main()
{
init();
d1=0;
d2=0;
d3=0;
d4=0;
d5=0;
d6=0;
d7=0;
d8=0;
while(1)
{
  if(temp>3)d1=1;    ///将收到的数据反映到LED灯上
  else
  d1=0;
  if(temp>32)d2=1;
  else
  d2=0;
  if(temp>64)d3=1;
  else
  d3=0;
  if(temp>96)d4=1;
  else
  d4=0;
  if(temp>128)d5=1;
  else
  d5=0;
  if(temp>160)d6=1;
  else
  d6=0;
  if(temp>192)d7=1;
  else
  d7=0;
  if(temp>224)d8=1;
  else
  d8=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)
{
  temp=SBUF;
  return;
}
}

相关帖子

沙发
xcyycx| | 2014-2-24 11:18 | 只看该作者

使用特权

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

本版积分规则

22

主题

61

帖子

1

粉丝