(3) TEC-2 机监制程序对串行口的初始化

  接下来,让我们看一看监控程序的前几条指令的作用,即监控程序的第1~6条指令:

   MOV R0,  4Hh
   OUT PORT1C
   OUT PORT2C
   MOV R0,  37h
   OUT PORT1C
   OUT PORT2C

  这几条指令的作用是对2个串行口完成初始化。PORT1C和PORT2C的值为81h和83h,是两个串行口芯片的控制寄存器的端口地址。

  04Eh,即0100 1110, 八位码送2个串行口的控制寄存器,完成2串行口的方式设定。

  D1、D0(最低两位)为10,设定/TxC与/RxC的工作频率为数据传送波特率的16倍。教学机中的 /TxC与 /RxC的工作频率为921.6KHz/6,即153.6KHz, 故可算得8251的数据传送波特率为153.6KHz/16,即9.6K波特。
  D3、D2两位为11,表明字符长度为8 bits。
  D5、D4两位为00,表明不执行奇偶校验检查。
  D7、D6两位为01,表明使用1位停止位。

  037h, 即0011 0111,八位码送2个串行口,完成2个串行口的命令设定并使其运行。
  最低3位的3个1信号,使8251A处于可以接收与可发送状态。
  D3为0,使串行口进入正常工作方式。
  D4位的1信号,使8251A初始化,即清除8251A芯片内的出错标志。
  D5位的1信号,表明CPU请求发送。

  上述6条指令完成对2个串行口的工作方式设定、命令设定并使其进入运行状态。请注意,方式设定只能跟在RTSET硬件复位信号或程序复位命令 (即软件RESET,命令指令的IR位为1) 之后下才能执行一次。命令指令则不要求一定跟在硬或软RESET信号之后,通常可在方式设定之多次执行命令指令。