GM8123驱动程序
时间:10-02
整理:3721RD
点击:
#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++;
}
}
哪位高手帮指点下哪有问题吖?串口调不通吖
#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++;
}
}
哪位高手帮指点下哪有问题吖?串口调不通吖
我给你支持,我也不是很懂