#include <reg320.h>
unsigned int buffer1[10];
void main()
{
SCON0=0;
TMOD=0x21;
TL0=0x00;
TH0=0xff;
ET0=1;
TL1=TH1=0xfb;
SCON1=0xd8;
PCON=0x80;
ES1=1;
EA=1;
TR0=1; //加上这句则串口1不产生中断,无法接收;去掉则完全正常?
//怎么回事?
TR1=1;
while(1);
}
void S1_recv(void) interrupt 7
{
while(RI1==0);
RI1=0;
buffer1[0]=SBUF1;
}
void main()
{
SCON0=0x00; //串口0 MODEL 0, REN=1
TMOD=0x21; //timer0, model 1,timer1, model 2
TL0=0x00;
TH0=0xff;
ET0=1; //enable timer0 int
TL1=TH1=0xfb; //9600
SCON1=0xd0; //串口1 MODEL 3, REN=1
PCON=0x80;
ES1=1;
IP=0x40;
TR0=0; //timer1 on
TR1=1; //timer1 on
EA=1;
while(1);
}
void S0_send(void) interrupt 1 //定时器0中断服务程序
{
TL0=0x00;
TH0=0xff;
T2=0;
SBUF0=0xff;
while(!TI);
T2=1; //锁存
}
void S1_recv(void) interrupt 7 // 接收中断
{
while(RI1==0);
RI1=0; // 清接收中断标
te=SBUF1;
// te_buffer[p]=SBUF1;
SBUF1=te;
}