10、若定时器 T1 设置成模式 2 作波特率发生器,已知 fosc=6MHz。求可能产生的最高和最 低的波特率。
解:最高波特率为T1定时最小值时,此时初值为255,并且SMOD=1,有: 最高波特率为T1定时最大值时,此时初值为0,并且SMOD=0,有: 11、串行通信的总线标准是什么?有哪些内容?
答:美国电子工业协会(EIA)正式公布的串行总线接口标准有 RS-232C,RS-422,RS-423 和 RS-485等。
在异步串行通信中应用最广的标准总线是 RD-232C。它包括了按位串行传输的电气和机械方 面的规定,如适用范围、信号特性、接口信号及引脚说明等,适用于短距离(<15m)或带调
制解调的通信场合。采用RS-422, RS-485 标准时,通信距离可达1000m。 12、简述单片几多机通信的原理。
答:当一片89C51(主机)与多片89C51(从机)通信时,所有从机的SM2 位都置1.主机首 先发送的一帧数据为地址,即某从机机号,其中第 9 位为 1,所有的从机接收到数据后,将 其中第9位装入RB8 中。各从机根据收到的第9位数据(RB8中)的值来决定从机可否再接 收主机的信息。若(RB8)=0,说明是数据帧,则使接收中断标志位RI=0,信息丢失;若(RB8) =1 说明是地址帧,数据装入 SBUF 并置 RI=1,中断所有从机,只有被寻址的目标从机清除 SM2(SM2=0),以接收主机发来的一帧数据(点对点通信)。其他从机仍然保持SM2=1. 13、当89C51串行口按工作方式1进行串行数据通信时。假定波特率为1200b/s,以中断方式 传送数据。请编写全双工通信程序。 解:设系统时钟频率fosc=6.0MHZ。查教材表 9-2可知,可取SMOD=0,T1 的计数初值为F3H。 程序如下:
ORG 0000H
AJMP MAIN ;上电,转向主程序
ORG 0023H ;串行口的中断入口地址
AJMP SERVE ;转向中断服务程序 ORG 0040H ;主程序
MAIN: MOV SP,#60H ;设置堆栈指针
MOV SCON ,#50H
MOV PCON ,#00H MOV TMOD,#20H MOV TH1,#0F3H MOV TL1,#0F3H
SETB TR1
MOV R0 ,#20H ;置发送数据区首地址
MOV R1 ,#40H ;置接收数据区首地址
MOV R7 ,#10H ;置发送字节长度
MOV R6 ,#10H ;置接收字节长度
SETB ES ;允许串行口中断 SETB EA ;CPU允许中断
- 18 -