[国产单片机] 单片机高手进来帮我看看RS485的通信程序

[复制链接]
2471|1
 楼主| hewei123 发表于 2008-7-16 10:21 | 显示全部楼层 |阅读模式
#include "reg51.h"
sbit control=P1^7;
void de1ms(void)
{
   unsigned char temp;
   temp=0x7f;
   while(temp--);
    //wd_reload();
    return;
}//void serial_init (void)
void init_serial(void)
{
  SCON=0X50;
  TMOD=0X20;// count way;
  TH1=0XFA;//baurate 9600;
  PCON=0X80;
  TR1=1;
 
}
void init_t0(void)
{
  TMOD=TMOD|0X05;
  TR0=1;
  TH0=0XFF;//clr count
  TL0=0XFF;//clr
}
void init_int0(void)
{
  EA=1;
  EX0=1;
  IT0=1;
}
void send_byte(unsigned char x)
{
  control=0;  //反向
  SBUF=x;
  while(TI==0);//WAIT
  TI=0;//CLR
  control=1;  //反向
}
void send_8byte(void)
{
 send_byte(0xfe);//about 1.05ms
 send_byte(0xfb);
 send_byte(0xfb);
 send_byte(0xfb);
 send_byte(0xfb);//count_high
 send_byte(0xfb);
 send_byte(0xfb);
 send_byte(0xfe);
}
void main(void)

 init_serial();
 init_t0();
 init_int0();
 while(0);
 {
 send_8byte();
 }
}
RS485通信的IC用的是75176
P1.7 是用来控制75176的使能端的
上电复位时使能端为0发送是为1
但是通过串口传上来的数据和发送的数据就是不一样
请各位高手帮忙看看,谢谢各位!!!
net_walker 发表于 2008-7-16 12:37 | 显示全部楼层

re

void send_byte(unsigned char x)
{
  control=1;  //反向
  SBUF=x;
  while(TI==0);//WAIT
  TI=0;//CLR
  control=0;  //反向
}

您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

6

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部