请高手提供一个51单片机例程,关于串口和定时器中断共存

STC89C51RC。11.0592M。
那位高手提供一个可调通的例程,可以让串口收发和定时器中断同时正常工作,用到两个中断,我怎么调都不行,网上也找不到相关例程,麻烦的。谢谢了,要是可以加倍送分。谢谢!

#include <reg52.h> // 改了一下 试试, 主要是 串口
void system_Ini() // 可以试试 自发 自收 TXD 与 RXD 连接起来
{ // P2 口 接 8 路 开关 信号 , P1 口输出 接收信号
TMOD|=0x21 ; //定时器T1工作方式2(自动装载初值的8位定时器),T0方式1
SCON = 0x50; //REN=1允许串行接受状态,串口工作模式1 (全双工方式)
PCON|=0x80; //SMOD=1,波特率加倍
TH1=0xfa; // 波特率9600、数据位8、停止位1。效验位无 (11.0592M)
TL1=0xfa;
TR1 = 1;
TH0 = 0xD8; //10ms
TL0 = 0xF0;
ET0=1;
TR0= 1;
ES= 1; //开串口中断
EA=1;
}
void main()
{
system_Ini();
while(1)
{
SBUF=P2; // 把P2 口的 数据 发送
while(!TI); // 等特数据传送(TI发送中断标志)
TI=0;
}
}
void T0zd(void) interrupt 1 //定时器0中断
{
TH0 = 0xD8; //10ms 可以处理
TL0 = 0xF0;
}
void ser() interrupt 4 // 串口中断
{
if(RI)
{
RI=0;
P1=SBUF; // P1 口 为接收 数据。
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-26
正好有这样的一个程序,留个联系方式吧
第2个回答  2013-03-26
把你自己的程序贴出来,大家可以帮你找找问题。