SBUF=ACC; If(i==50)
SendOver=1; } Else {
RI=0;
ACC=SBUF; If(RB8==p) { RecvBuffer[j++]=ACC;
If(ACC==’S’)
RecvOver=1;
} } }
2、对89c52单片机编写程序,使串行口以方式1查询方式自收自发(接收和发送都需要查询),波特率为4800b/s。设单片机的晶振为11.0592MHz。 #include
Unsigned char c; TMOD=0x20; TH1=0xfa; TL1=0xfa; TR1=1;
SCON=0x50; While(1) {
While(RI==0) RI=0; C=SBUF; SBUF=c; While(TI==0) TI=0; } }
3、设89c52单片机的晶振为11.0592MHz,串行口工作于方式3做数据收发,波特率为9600b/s.完成以下串行通信的初始化工作: (1)、写出T1以模式2定时作为波特率发生器的模式字 (2)、计算T1的计数初值
(3)、写出串行口控制寄存器的控制字;
(4)、写出初始化程序段(包括定时器和串行口) 解:
(1)、TMOD=0x20 (2)、0xfa
(3)、SCON=0xc0 (4)、TMOD=0x20
TH1=0xfd; TL1=0xfd; TR1=1;
SCON=0xc0;