#include
unsigned char tmp;
//初始化串行口
void csh()
{
SM0=0;
SM1=1;
REN=1;
TI=0;
RI=0;//以上是初始化scon寄存器,想当于SCON=0x50;
PCON=0;//初始化电源,为波特率不增加
TH1=0xF3;
TL1=0XF3;//设置波特率为2400
TMOD=0X20;//设置定时器,定时器1工作于8位自动重载模式, 用于产生波特率
EA=1;//开总中断
ES=1;//ES-串行中断允许控制位 ES = 1 允许串行中断。
TR1=1;//启动定时器开始工作
}
void delayms(unsigned char ms)
// 延时子程序
{
unsigned char i;
while(ms--)
{
for(i = 0; i < 120; i++);
}
}
void send_char(unsigned char txd)
// 传送一个字符
{
SBUF = txd;
while(!TI); // 等特数据传送
TI = 0; // 清除数据传送标志
}
void main()
{
csh();
while(1)
{
;
}
}
void intrr() interrupt 4
{
RI = 0;
tmp = SBUF; // 暂存接收到的数据
delayms(10);
send_char(tmp); // 回传接收到的数据
}