GM8123驱动程序

2019-07-16 03:07发布

#include <reg52.h>
#define DELAY_tiME 60000 //Delay time
sbit MS=P3^6;   //GM8123 工作模式控制
sbit RESET=P3^7; //GM8123 复位引脚控制
sbit STADD0=P1^4; //GM8123 发送地址线0
sbit STADD1=P1^5; //GM8123 发送地址线1
sbit SRADD0=P1^6; //GM8123 接受地址线0
sbit SRADD1=P1^7; //GM8123 接受地址线1
unsigned char i=0,j=0,k=1,c=0;
unsigned char SendBuff[5]={0xaa,0x45,0x67,0xbc,0xc9};
unsigned char ReceiveBuff[5]={0x00,0x00,0x00,0x00,0x00};
/*************函数功能: 延时程序******************/
void delay(unsigned int m)
{
unsigned int n;
n=0;
while(n < m)
{n++;}
return;
}
void main(void)
{
TMOD=0x20;//定时期工作方式2
//TH1=0xfd;
// TL1=0xfd;
//PCON=0x00;
SCON=0xc0;?//串口工作方式3
IE=0x90;
for(c=0;c<3;c++)//选择3个子串口以不同波特率工作
{
  switch(c)
  {
   case 0:{
           TH1=0xe8;//装入定时器1初值,设置为1200
     TL1=0xe8;
     PCON=0x00;
     P1=0x50;//选择8123子通道1工作
     break;
           }
   case 1:{
           TH1=0xf4;//装入定时器1初值,设置为2400
     TL1=0xf4;
     PCON=0x00;
     P1=0xA0;
     break;
           }
   case 2:{
           TH1=0xfa;//装入定时器1初值,设置为4800
     TL1=0xfa;
     PCON=0x00;
     P1=0xF0;
     break;
           }
   default:
      break;
  }
  TR1=1;
  MS=1;
  SBUF=SendBuff[i];
  while(TI==0);
  TI=0;
  i++;
  REN=1;
  while(j!=k);
  REN=0;
  k++;
  TR1=0;
}
}
void CommReceive(void) interrupt 4
{
if(RI)
{
  ReceiveBuff[j]=SBUF;
  RI=0;
  j++;
}
}
哪位高手帮指点下哪有问题吖??串口调不通吖
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。