您现在的位置: 范文先生网 >> 理工论文 >> 电子通信论文 >> 正文

通用异步串口扩展芯片GM8123/25的原理和应用

时间:2007-1-20栏目:电子通信论文

有效。复位后默认子串口工作波特率为1200bps,数据长度为11位(带校验位);
MS:模式选择引脚,控制芯片工作在多通道模式下还是单通道模式下。多通道模式下兼做读/写命令字选择引脚;
SRADD0~2:接收子串口地址线;
STADD0~2:发送子串口地址线;
RXD0、TXD0:母串口收/发引脚;
RXD1~5、TXD1~5:子串口1~5收/发引脚;

下面给出主机发送和接收的控制程序,以C51为例:

#include <reg51.h>
sbit MS=P3^6;                     //GM8125工作模式控制
sbit RESET=P3^7;           &

nbsp;  //GM8125复位引脚控制
unsigned char SendBuff[5]={0xaa,0x45,0x67,0xbc,0xc9};
unsigned char ReceiveBuff0;
。。。。。。
unsigned char Contr_data;
unsigned char ADD;
unsigned char i=0;
。。。。。。

void main(void)
{
  TMOD = 0x20;    //指定定时器1工作在方式2
  IE = 0x90;         //开串行口中断
SCON=0xc0;         //串行口工作在方式3
TH1 = 0xf8;      //装入定时器1初值,设置主机工作波特率为7200bps
TL1 = 0xf8;
PCON=0x00;
  。。。。。。
  RESET=0;     //对GM8125进行复位操作
Delay();       //延时子程序
  RESET=1;
Delay();     

  Contr_data=0xfc;             //装入命令字初值
  TR1=1;      //启动定时器1
  MS=0;         //GM8125工作在写命令字模式下
  P0=0x00;     //置GM8125命令字地址
  SBUF=Contr_data;    //设置GM8125子串口波特率为19200bps,母串口波特率为115200bps
  while(TI==0);
  TI=0;
  Delay();
(可读取命令字的内容验证写入结果是否正确)

  TR1=0;       //定时器1停止
  TH1 = 0xff;    //装入定时器1初值,设置主控MCU工作波特率为115200bps
  TL1 = 0xff;
  PCON=0x80;         
TR1=1;         //启动定时器1

/*主控MCU发送/接收程序*/
ADD=0x1f;        //子通道1发送地址
  P1=ADD;              //选择GM8125子通道1发送
  SBUF=SendBuff[i];
  while(TI==0);
  TI=0;
i++;

(以此方式分别向5个子串口

上一页  [1] [2] [3] 下一页

下页更精彩:1 2 3 4 下一页