习题8习题解答 818255A的方式0一般使用在什么场合?在方式0时,如果要使用查询方式进行输入 输出,应该如果处理? 解:方式0的使用场合有两种,一种是同步传送,另一种是查询式传送。在方式0情况 下,没有规定固定的应答信号,所以,这时,将端口A和端口B作为数据端口,把端口C 的4个数位(高4位或者是低4位均可)规定为输出口,用来输出一些控制信号,而把端口 C的另外4个数位规定为输入口,用来读入外设的状态,即利用端口C来配合端口A和端 口B的输入/输出操作。使用查询方式进行输入输出时,可利用端口C的某一位作査询,只 有当该位为1时,方可以将数据送到输入或输出端口去 82设8255A的4个端口地址分别为0COH、OC1H、0C2H和0C3H,要求用按位置位/ 复位控制字使PC6输出方波信号,试编程实现。 解: MOV DX,0C3H MOV AL, SOH OUT DX, AL LI: MOV AL, OCH OUT DX, AL NOP NOP MOV AL, ODH OUT DX, AL NOP NOP J MP LI 83设8255A接到系统中,端口A、B、C及控制口地址分别为220H、221H、222H及 3H,工作在方式0,试编程将端口B的数据输入后,从端口C输出,同时,将其取反后 从端口A输出 解: MOV DX,223H MOV AL, 82H OUT DX, AL MOV DX, AL
习题 8 习题解答 8.1 8255A 的方式 0 一般使用在什么场合?在方式 0 时,如果要使用查询方式进行输入 输出,应该如果处理? 解:方式 0 的使用场合有两种,一种是同步传送,另一种是查询式传送。在方式 0 情况 下,没有规定固定的应答信号,所以,这时,将端口 A 和端口 B 作为数据端口,把端口 C 的 4 个数位(高 4 位或者是低 4 位均可)规定为输出口,用来输出一些控制信号,而把端口 C 的另外 4 个数位规定为输入口,用来读入外设的状态,即利用端口 C 来配合端口 A 和端 口 B 的输入/输出操作。使用查询方式进行输入输出时,可利用端口 C 的某一位作查询,只 有当该位为 1 时,方可以将数据送到输入或输出端口去。 8.2 设 8255A 的 4 个端口地址分别为 0C0H、0C1H、0C2H 和 0C3H,要求用按位置位/ 复位控制字使 PC6 输出方波信号,试编程实现。 解:MOV DX,0C3H MOV AL,80H OUT DX,AL L1:MOV AL,0CH OUT DX,AL NOP NOP MOV AL,0DH OUT DX,AL NOP NOP JMP L1 8.3 设 8255A 接到系统中,端口 A、B、C 及控制口地址分别为 220H、221H、222H 及 223H,工作在方式 0,试编程将端口 B 的数据输入后,从端口 C 输出,同时,将其取反后 从端口 A 输出。 解:MOV DX,223H MOV AL,82H OUT DX,AL MOV DX,AL
MOV AL, 221H AL, DX MOV DX, 222H UT DX, AL NOT AL MOV DX, 220H OUT DX, AL 84对8255A的控制口写入BOH,其端口C的PC3引脚是什么作用的信号线?试分析 8255A各端口的工作状态 解:当控制字为BOH时,即10110000B 即8255A的端口A工作在方式1,作输入,端口C的上半部作输出,B端口工作在方 式0,作输出,端口C的低4位作输出 根据上述分析可得知,当8255A的端口A工作在方式1下作输入时,PC5的引脚作状 态信号IBFA,即输入缓冲器满信号 85并行通信和串行通信各有什么特点? 解:并行通信就是把一个字符的各数位用几条线同时进行传输 ·并行接口最基本的特点是在多根数据线上以数据字节为单位与LO设备或被控对象 传送信息。 ·在并行接口中,除了少数场合之外,一般都要求在接口与外设之间设置并行数据线 的同时,至少还要设置两根联络信号,以便互锁异步握手方式的通信 在并行接口中,每次以8位或16位为单位进行同时传送。因此,当采用并行接口与 外设交换数据时,即使是只用到其中的一位,也要一次输入输出8位或16位 并行传送的信息,不要求固定的格式。 并行接口的优点是传输速率高,但由于需要多根数据线,因此不适合远距离数据传输 般用于近距离传送的场合 串行通信就是指通信的发送方和接收方之间的数据在单根通信线上逐位顺序传送 计算机和外设之间只使用一根信号线传输信息,数据在一根数据信号线上一位 位地进行传输,每一位数据都占据一个固定的时间长度。 ·串行通信在一根线上既要传送数据,还要传送联络信号,因此,串行通信有一定 的数据格式的约定,分为异步和同步数据格式 串行传输的速率需要控制,通信双方要约定相同的波特率实现通信。由于受波特 率上限的约束,串行通信速度慢。 信号的逻辑定义与TL电平不相同 86“由于按位置位/复位命令是对C口进行操作,所以可以写到C口”,这句话对吗? 为什么? 解:不对。这是因为按位置位/复位是一个命令,它就要按命令的定义格式来处理每 位,如果把它写入端口C,就会按端口C的数据格式来处理。这两种定义完全不同的格式 是不能互换的,所以,它只能写到命令端口中,按命令定义来处理
MOV AL,221H IN AL,DX MOV DX,222H OUT DX,AL NOT AL MOV DX,220H OUT DX,AL 8.4 对 8255A 的控制口写入 B0H,其端口 C 的 PC5 引脚是什么作用的信号线?试分析 8255A 各端口的工作状态。 解:当控制字为 B0H 时,即 10110000B 即 8255A 的端口 A 工作在方式 1,作输入,端口 C 的上半部作输出,B 端口工作在方 式 0,作输出,端口 C 的低 4 位作输出。 根据上述分析可得知,当 8255A 的端口 A 工作在方式 1 下作输入时,PC5 的引脚作状 态信号 IBFA,即输入缓冲器满信号。 8.5 并行通信和串行通信各有什么特点? 解:并行通信就是把一个字符的各数位用几条线同时进行传输。 • 并行接口最基本的特点是在多根数据线上以数据字节为单位与 I/O 设备或被控对象 传送信息。 • 在并行接口中,除了少数场合之外,一般都要求在接口与外设之间设置并行数据线 的同时,至少还要设置两根联络信号,以便互锁异步握手方式的通信。 • 在并行接口中,每次以 8 位或 16 位为单位进行同时传送。因此,当采用并行接口与 外设交换数据时,即使是只用到其中的一位,也要一次输入/输出 8 位或 16 位。 • 并行传送的信息,不要求固定的格式。 并行接口的优点是传输速率高,但由于需要多根数据线,因此不适合远距离数据传输, 一般用于近距离传送的场合。 串行通信就是指通信的发送方和接收方之间的数据在单根通信线上逐位顺序传送。 • 计算机和外设之间只使用一根信号线传输信息,数据在一根数据信号线上一位一 位地进行传输,每一位数据都占据一个固定的时间长度。 • 串行通信在一根线上既要传送数据,还要传送联络信号,因此,串行通信有一定 的数据格式的约定,分为异步和同步数据格式。 • 串行传输的速率需要控制,通信双方要约定相同的波特率实现通信。由于受波特 率上限的约束,串行通信速度慢。 信号的逻辑定义与 TTL 电平不相同。 8.6“由于按位置位/复位命令是对 C 口进行操作,所以可以写到 C 口”,这句话对吗? 为什么? 解:不对。这是因为按位置位/复位是一个命令,它就要按命令的定义格式来处理每一 位,如果把它写入端口 C,就会按端口 C 的数据格式来处理。这两种定义完全不同的格式 是不能互换的,所以,它只能写到命令端口中,按命令定义来处理
87什么叫同步通信方式?什么叫异步通信方式?它们各有什么区别? 解:同步通信,即将许多字符组成一个信息组,字符一个接一个地传输,每组信息的开 始要加上同步字符,没有信息传输出时,要填上空字符,同步通信不允许有间隙。异步通信, 两个字符之间的传输间隔是任意的,每个字符的前后都要用一些数位作为分隔位。比较起来, 在传输率相同时,同步通信方式下的传输效率要比异步方式下的高,因为同步方式下的非数 据信息比例要较小。但是,在同步方式下,要求进行信息传输双方必须用同一个时间进行协 调,在传输数据的同时,还必须传输时钟信号。而在异步方式下,接收方的时钟频率和发送 方的时钟频率不必完全一样 88什么叫波特率因子?什么叫波特率?设波特率因子为64,波特率为1200,那么时钟 频率为多少? 解:发送时钟与接收时钟的频率与位传输率的比称为波特率因子,而位传输率称为波特 发送/接收时钟频率=n×发送/接收波特率 =64×1200 76800Hz 76.8KHZ 时钟频率为76.8KHz 89设异步传输时,一帧信息包括1位起始位、7位信息位、1位奇偶校验位和1位停止 位,如果波特率为9600bps,则每秒能传输多少个字符? 解:即9600/(1+7+1+1) =960个 ∴每秒能传输960个字符 8.10两台PC机采用异步串行通信方式传送数据。帧格式为:字符数据位7位,停止位 1位,用偶校验方式,波特率为2400bps。选用8250芯片,编写发送数据和接收数据的初始 化程序段 MOv DX, 3FBH MOV AL, 80H OUT DX, AL MOV DX, 3F8H MOV AL, 30H OUT DX, AL MOV AL, AL, OOH OUT DX, AL MOV DX, 3FBH MOV AL, IAH OUT DX, AL MOv DX, 3FCH MOV AL, 03H
8.7 什么叫同步通信方式?什么叫异步通信方式?它们各有什么区别? 解:同步通信,即将许多字符组成一个信息组,字符一个接一个地传输,每组信息的开 始要加上同步字符,没有信息传输出时,要填上空字符,同步通信不允许有间隙。异步通信, 两个字符之间的传输间隔是任意的,每个字符的前后都要用一些数位作为分隔位。比较起来, 在传输率相同时,同步通信方式下的传输效率要比异步方式下的高,因为同步方式下的非数 据信息比例要较小。但是,在同步方式下,要求进行信息传输双方必须用同一个时间进行协 调,在传输数据的同时,还必须传输时钟信号。而在异步方式下,接收方的时钟频率和发送 方的时钟频率不必完全一样。 8.8 什么叫波特率因子?什么叫波特率?设波特率因子为 64,波特率为 1200,那么时钟 频率为多少? 解:发送时钟与接收时钟的频率与位传输率的比称为波特率因子,而位传输率称为波特 率。 发送/接收时钟频率=n×发送/接收波特率 =64×1200 =76800Hz =76.8KHz ∴时钟频率为 76.8KHz 8.9 设异步传输时,一帧信息包括 1 位起始位、7 位信息位、1 位奇偶校验位和 1 位停止 位,如果波特率为 9600bps,则每秒能传输多少个字符? 解:即 9600/(1+7+1+1) =9600/10 =960 个 ∴每秒能传输 960 个字符 8.10 两台 PC 机采用异步串行通信方式传送数据。帧格式为:字符数据位 7 位,停止位 1 位,用偶校验方式,波特率为 2400bps。选用 8250 芯片,编写发送数据和接收数据的初始 化程序段。 解: MOV DX,3FBH MOV AL,80H OUT DX,AL MOV DX,3F8H MOV AL,30H OUT DX,AL INC DX MOV AL,AL,00H OUT DX,AL MOV DX,3FBH MOV AL,1AH OUT DX,AL MOV DX,3FCH MOV AL,03H
OUT DX, AL MOV DX, 3F9H MOV AL, OOH OUT FOREVER: MOV DX. 3FDH AL, DX TEST AL, IEH JNZ ERROR TEST AL, OlH JNZ RECEIVE TEST AL, 20H NZ RECEIVE MOV AHOlH 读键盘缓冲器内容,若有键按下,则ZF=0,且AL =字符码 16H JZ FOREVER MOV DX, 3F8H OUT DX,AL:读入接收字符 J MP FOREVER RECEIVE: MOV DX, 3F8H AND AL, 7FH MOV AH, 14H 10H J MP FOREVER 8.11选用8251A进行同步方式的通信,规定用内同步方式,同步字符为2位,用奇校 验,7位数据位,端口地址为166H和167H,试对8251A进行初始化编程。 解: MOV MOV AL, I X8L OUT MOV AL, 16H OUT DX, AL OUT DX, AL MOV AL, OB7H OUT DX, AL 8.12选用8251A进行异步方式的通信,发送100个字符,规定波特率因子为64,7位 数据位,1位停止位,用偶校验,端口地址为140H、141H,缓冲区首址为2000H:300H, 试对8251A编程 解:发送程序 START: MOV DX, 141H MOV AL, 7BH OUT DX, AL
OUT DX,AL MOV DX,3F9H MOV AL,00H OUT DX,AL FOREVER: MOV DX,3FDH IN AL,DX TEST AL,1EH JNZ ERROR TEST AL,01H JNZ RECEIVE TEST AL,20H JNZ RECEIVE MOV AH,01H ;读键盘缓冲器内容,若有键按下,则 ZF=0,且 AL =字符码 INT 16H JZ FOREVER MOV DX,3F8H OUT DX,AL ;读入接收字符 JMP FOREVER RECEIVE: MOV DX,3F8H IN DX,AL AND AL,7FH MOV AH,14H INT 10H JMP FOREVER 8.11 选用 8251A 进行同步方式的通信,规定用内同步方式,同步字符为 2 位,用奇校 验,7 位数据位,端口地址为 166H 和 167H,试对 8251A 进行初始化编程。 解: MOV DX,167H MOV AL,18H OUT DX,AL MOV AL,16H OUT DX,AL OUT DX,AL MOV AL,0B7H OUT DX,AL 8.12 选用 8251A 进行异步方式的通信,发送 100 个字符,规定波特率因子为 64,7 位 数据位,1 位停止位,用偶校验,端口地址为 140H、141H,缓冲区首址为 2000H:3000H, 试对 8251A 编程。 解:发送程序: START:MOV DX,141H MOV AL,7BH OUT DX,AL
MOV AL, 37H OUT DX, AL MOV DI, 3000H CX,100 LI: MOV DX, 141H ANd AL, OlH MOV DX, 140H MOv AL, [DI] OUT DX, AL LOOP LI MOV AX, 4C00H INT 21H 接收程序: BEGIN MOV DX, 141H MOV AL, 7BH OUT DX, AL MOV AL, 14H OUT DX, AL MOV SI, 2000H L2: MOV DX, 141H AL, DX TEST AL, 38H JNZ ERI AND AL, 02H MOV DX, 140H MOV [SI, AL ERR: CALL ERR OUT(略) L3: MOV AX, 4C00H INT
MOV AL,37H OUT DX,AL MOV DI,3000H MOV CX,100 L1:MOV DX,141H IN AL,DX AND AL,01H JZ L1 MOV DX,140H MOV AL,[DI] OUT DX,AL INC DI LOOP L1 MOV AX,4C00H INT 21H 接收程序: BEGIN: MOV DX,141H MOV AL,7BH OUT DX,AL MOV AL,14H OUT DX,AL MOV SI,2000H MOV CX,100 L2:MOV DX,141H IN AL,DX TEST AL,38H JNZ ERR AND AL,02H MOV DX,140H IN AL,DX MOV [SI],AL INC SI LOOP L2 JMP L3 ERR:CALL ERR_OUT(略) L3:MOV AX,4C00H INT 21H