串口发送,查询接收:
#include<reg52.h>
//11.0592M 9600
void Delay(void);
void chuankou_init(void);
unsigned char Receive(void);
void Send(unsigned char dat);
unsigned int kk;
void main()
{
chuankou_init() ;
kk=0x0103;
while(1)
{
Delay();
Send('A');
//Send(Receive()+1);
}
}
void chuankou_init()
{
TMOD=0x20; //定时器T1工作于方式2 ,8位自动重装
SCON=0x50; //SCON=0101 0000B,串口工作方式1,允许接收(REN=1)
PCON=0x00; //PCON=0000 0000B,波特率9600
TH1=0xFD ; //根据规定给定时器T1赋初值
TL1=0xFD; //根据规定给定时器T1赋初值
TR1=1; //启动定时器T1
REN=1; //允许接收
}
void Send(unsigned char dat)
{
SBUF=dat;
while(TI==0) //等待发送完毕
;
TI=0;
Delay();
}
unsigned char Receive(void)
{
unsigned char dat;
while(RI==0) //只要接收中断标志位RI没有被置“1”
; //等待,直至接收完毕(RI=1)
RI=0; //为了接收下一帧数据,需将RI清0
dat=SBUF; //将接收缓冲器中的数据存于dat
return dat;
}
void Delay()
{
unsigned char i,j;
for(i=0;i<250;i++)
for(j=0;j<250;j++)
;
}
完整资料打包