我的程序的一部分,供参考
//主流程
void
main(void)
{
//系统初始化
SCON
=
0x50;
//串口方式为1,SM2=
0,TB8=
1
PCON
=
0x80;
//
SMOD=1
TMOD
=
0x22;
//设定定时器0/1的工作模式为方式2
//设置T0中断的定时时间为1/7200毫秒
TH0
=
0x00;
TL0
=
0x00;
//设置异步串口的波特率
//TH1
=
0x0f4;
//OSC
=
11.0592MHz
bps
=
4800
SMOD=1
//TL1
=
0x0f4;
TH1
=
0x0fd;
//OSC
=
11.0592MHz
bps
=
19200
SMOD=1
TL1
=
0x0fd;
//设置中断优先级,T0中断为高优先级中断,其他为低优先级中断
IP
=
0x02;
//
设置中断优先级--T0为高优先级,其他低
ET0
=
1;
//定时器0中断
ES
=
1;
//串行接口中断
EA
=
1;
//系统中断允许
TR0
=
1;
//启动定时器0
TR1
=
1;
......................
//串口接收中断处理程序
//发送采用查询处理
void
SerialComm(void)
interrupt
4
{
_pReceive[_cReceive]
=
SBUF;
_cReceive
++;
if(_cReceive
>=
RecBuffSize)
_cReceive
=
0;
RI
=
0;
}
//串口发送一个字节
//senddata:需要发送的数据
void
SendOneByte(unsigned
char
senddata)
{
ES
=
0;
TI
=
0;
SBUF
=
senddata;
while(TI
==
0);
TI
=
0;
ES
=
1;
}
温馨提示:答案为网友推荐,仅供参考