4.8251A的程序设置
(1)综述
8251A的使用采用控制寄存器。控制寄存器写入方式字和命令字。方式字设定通信方式与通信条件;命令字确定通信中控制线的控制等。
8251A方式字与命令字各位意义如图6.31和图6.32所示。加电时用硬件复位,8251A控制寄存器为读取命令字状态。这时,命令字把复位命令(40H)提供给命令字;初始时为方式字读取状态。
接着是方式字的指定,但其内容是异步(位1和位0内容不是00)时,下次照样变为接收命令字状态。同步时,仅接收SYNC字符数的SYNC字符状态,其后变为接收命令字状态。再次改写方式字时,必须送复位命令,方法是可以在8251A操作期间的数据块的任何时刻写入8251A,命令中提供1位(D。),使该位置位将引起8251A的内部复位操作,从而可以不用外部复位操作,来实现对方式字的重新设置。这些控制寄存器的使用如图6.33所示。
值得注意的是,向8251A写入命令是对发送数据/命令缓冲寄存器写入方式字、同步字符和命令字。对此缓冲器写入命令时,要严格遵守下列顺序:同步方式的顺序为,方式字一同步字符→命令字;异步方式的顺序为,方式字→命令字。
8251A工作时通过编程使其初始化,其后查看状态寄存器,如图6.34所示,把数据写入寄存器或者从数据寄存器中读取数据,即可进行通信。
(2)编程举例
1)异步方式下的初始化编程举例
①方式选择控制字的设定。例如,设定8251A工作于异步方式,波特率因子为64,每字符7个数据位,偶校验,2位停止位,则方式选择控制字为:11111011B(FBH)。
②操作命令控制字的设定。例如,使8251A的发送器允许,接收器允许,使状态寄存器中的3个错误标志位复位,使数据终端准备好信号正输出低电平(有效),则操作命令控制字为:00010111B(17H)。
如前所述,“方式选择控制字”和“操作命令控制字”应使用同一个端口地址(即控制口地址)按先后次序写入8251A之中。若将8251A的C/D输入端接地址总线的A。位,则CPU需用奇地址访向控制口(C/D=1),用偶地址访向数据口(C/D=0)。现假定8251A的控制口地址为51H,数据口地址为50H,则本例的初始化程序如下:
MOV AL,OFBH:输出方式选择字,使8251A工作于异步方式,波特率因子为64
OUT 51H,AL 每字符7个数据位,偶校验,2位停止位
MOV AL, 17H:输出操作命令字,使发送器允许,接收器允许,使错误标志复位,
OUT 51H,AL:使DTR输出有效信号
CPU执行了上述程序段之后,即完成了对8251A异步方式的初始化编程。