/*----------------------------------------------------------------
AT89S52串口中断驱动程序
--------------------------------------------------------------*/
#include <AT89X52.h>
#include <stdio.h>
#define XTAL 11059200
#define baudrate 9600
#define OLEN 8 //串行发送缓冲区大小
unsigned char ostart; //发送缓冲区起始索引
unsigned char oend; //发送缓冲区结束索引
char idata outbuf[OLEN]; //发送缓冲区存储数组
#define ILEN 8 //串行接收缓冲区大小
unsigned char istart; //接收缓冲区起始索引
unsigned char iend; //接收缓冲区结束索引
char idata inbuf[ILEN]; //接收缓冲存储数组
bit bdata sendfull; //发送缓冲区满标志
bit bdata sendactive; //发送有效标志
/*串行中断服务程序*/
static void com_isr(void) interrupt 4 using 1 //串口中断
{
//-------------接收数据中断--------------
char c;
if(RI) //接收中断
{
c=SBUF; //读字符
RI=0; //清接收中断请求标志