13
方式2:PA口为双向选通输入/输出或叫双向应答式输入/输出。
9.2 8255A的方式选择控制字和C口按位控制字的端口地址是否一样?8255A怎样区分这两种控制字?写出端口A作为基本输入,端口B作为基本输出的初始化程序。
【解答】8255A的方式选择控制字和C口按位控制字的端口地址是一样的,通过控制字的最高位D7进行区分:D7=1时,为方式选择控制字;D7=0时,为C口按位控制字。
初始化程序段如下:
MOV DX,PORT ;PORT为端口地址 MOV AL,10010000B OUT DX,AL
9.5 采用8255A作为两台计算机并行通信的接口电路,请画出查询式输入/输出方式工作的接口电路,并写出查询式输入/输出方式的程序。
【解答】甲机的8255A是方式1发送,端口PA为输出,发送数据,而PC7和PC6引脚分别固定作联络线OBF和ACK。乙机的8255A是方式0接收数据,故把端口PA定义为输入,另外,选用引脚PC7和PC3作为联络线。接口电路如图9-2:
方式08255A乙(接收)CPUPA7~PA0PC7PC3ACK方式0OBF8255APA7~PA0PC7PC6甲(发送)CPU
图9-2 查询方式的双机通信
查询式输入/输出方式的程序如下:
;甲机发送的程序段
MOV DX,303H ; 8255A命令端口 MOV AL,l010000B ; 初始化工作方式字 OUT DX,AL
MOV AL,0DH ;置发送允许INTEA=1 OUT DX,AL
MOV SI,OFFSET BUFS ; 设置发送数据区的指针 OUT CX,3FFH ; 发送字节数
MOV DX,300H ; 向端口A写第1个数,产生第1个OBF信号 MOV AL,[SI] ; 送给乙机,以便获取乙机的ACK信号 OUT DX,AL
INC SI ; 内存地址加1 DEC CX ; 传送字节数减1
LOP:MOV DX,302H ; 8255A状态端口(端口C)
IN AL,DX ; 查发送中断请求INTRSA=1 AND AL,08H ; 是否PC3=l
JZ LOP ; 若无中断请求则等待;若有向端口A写数 MOV DX,300H ; 8255A端口PA地址 MOV AL,[SI] ; 从内存取数
OUT DX,AL ; 通过端口A向乙机发送第2个数据
14
INC SI ; 内存地址加1 DEC CX ; 字节数减1
JNZ LOP ; 字节未完,继续 MOV AH,4CH ; 己完,退出 INT 21H ;返回DOS
BUFS DB ? ; 定义1024个数据
;乙机接收的程序段
MOV DX,303H ; 8255A命令端口 MOV AL,l0011000B ; 初始化工作方式字 OUT DX,AL
MOV AL,00000111B ; 置ACK=1(PC3=1) OUT DX,AL
MOV DI,OFFSET BUFR ; 设置接收数据区的指针 MOV CX,3FFH ; 接收字节数 L1: MOV DX,302H ; 8255A端口PC
IN AL,DX ; 查甲机的OBF=0?(乙机的PC7=0) AND AL,80H ; 查甲机是否有数据发来
JNZ L1 ; 若无数据发来,则等待;若有数据,则从端口A读数 MOV DX,300H ; 8255A端口PA地址 IN AL,DX ; 从端口A读入数据 MOV [DI],AL ; 存入内存
MOV DX,303H ; 产生ACK信号,并发回给甲机 MOV DX,00000110B ; PC3置“0” OUT DX,AL
INC DI ; 内存地址加1 DEC CX ; 字节数减1
JNZ L1 ; 字节未完,则继续 MOV AX,4C00H ; 己完,退出 INT 21H ; 返回DOS
BUFR DB l024 DUP(?) ; 接收数据缓冲区
习题10
10.1 什么叫异步通信?什么叫同步通信?画出异步串行通信的字符编码格式。
【解答】异步通信是指通信中两个字符之间的时间间隔是不固定的,而在一个字符内各位的时间间隔是固定的。
同步通信是指在约定的数据通信速率下,发送方和接收方的时钟信号频率和相位始终保持一致(同步),这就保证了通信双方在发送数据和接收数据时具有完全一致的定时关系。
异步串行通信的字符编码格式:
字符起始位1数据位校验位停止位1空闲位1100/10/1字符15
00/10/10/10/10/10/10/10/11低位高位
图10-1 异步串行通信格式
10.2 试分析波特率和数据传输率的区别和联系。
【解答】波特率是指每秒传输字符的位数,单位为“位/秒”。
数据传输率为每秒传输的字符数,单位为“字符/秒”,每个字符包括起始位、数据位和停止位。 两者间的联系为:
波特率(位/秒)= 二进制位数/字符(位/字符)×数据传输率(字符/秒)
习题11
12.1 模拟量输入输出通道主要由哪几个部件组成?各部件的主要功能有哪些? 【解答】
(1)传感器:把外部的物理量转换成电流或电压信号。
(2)A/D转换器:是输入通道的核心部件,将电压表示的模拟量转换成数字量,并送计算机进行相应的处理。
(3)信号处理部件:放大传感器输出的信号,加入接滤波电路,滤去干扰安装在现场的传感器及其传输线路的信号。
(4)多路开关:实际控制现场需要监测或控制的模拟量多于一个时,使用多路模拟开关轮流接通其中的一路,使多个模拟信号共用一个ADC进行A/D转换。
(5)采样/保持电路:A/D转换期间保持输入信号不变。转换开始之前,采样;转换进行过程中,向A/D转换器保持固定的输出(保持)。如果处理的是缓慢变化的模拟量,采样/保持电路可以省去不用。
(6)D/A转换器:将成数字量转换成模拟量输出。 12.2 A/D和D/A转换在微机应用系统中分别起什么作用?
【解答】A/D转换把从现场采集的模拟量转换成便于计算机存储和加工的数字量。D/A转换就是按照一定的解码方式将计算机存储和加工的数字量转换成现场能处理的模拟量。
12.3 D/A转换的基本工作原理是什么?描述D/A转换器的性能指标有哪些主要参数?
【解答】D/A转换器的模拟量输出(电流或电压)与参考量(电流或电压)以及二进制数成比例,—般来说,可用下面的式子表示模拟量输出和参考量及二进制数的关系:
X?K?VREF?B
X为模拟量输出,K为比例常数,VREF为参考量(电压或电流),B为待转换的二进制数,通常B
16
的位数为8位、12位等。
描述D/A转换器的性能指标的D/A参数主要有:绝对精度、相对精度、分辨率、建立时间、温度系数和非线性误差。
12.4 DAC0832转换器有哪些特点?其内部结构由哪几部分组成?
【解答】DAC0832是8位分辨率的D/A转换集成芯片,其明显特点是与微机连接简单、转换控制方便、价格低廉等,在微机系统中得到了广泛的应用。
DAC0832的内部结构由8位输入锁存器、8位DAC寄存器、8位DAC转换器及转换控制电路组成。 12.5 在实现D/A转换器和微机的接口中,要解决的关键问题是什么? 【解答】D/A转换器与主机的连接比较简单,主要是处理好数据总线的连接。
12.7 如果一个8位D/A转换器的满量程(对应于数字量255)为10V,分别确定模拟量为2.0V和8.0V所对应的数字量是多少?
【解答】设模拟量为2.0V和8.0V所对应的数字量分别是X和Y,则列方程得: 10/255 = 2/X = 8/Y
解方程得:X = 51,Y = 204
12.8 简述A/D转换的基本原理和主要性能参数?
【解答】以逐次逼近型A/D转换器为例,其基本原理为:
工作时,置数选择逻辑电路给逐次逼近比较寄存器置数,经D/A转换器转换成模拟量并和输入的模拟信号比较,当输入模拟电压大于或等于D/A转换器的输出电压时,比较器置“1”,否则置“0”。置数选择逻辑电路根据比较器的结果修正逐次逼近比较寄存器的数值,使所置数据转换后得到的模拟电压逐渐逼近输入电压,经过N次修改后,逐次逼近比较寄存器中的数值就是A/D转换的最终结果。
主要性能参数:分辨率、转换时间、绝对精度、相对精度。 12.9 ADC0809转换器有哪些特点?其内部结构由哪几部分组成?
【解答】ADC0809是逐次逼近型A/D转换器,分辨率为8位,具有8通道,数字量输出三态,可以直接与微机总线相连接。ADC0809采用单一的+5V电源供电,外接工作时钟。当时钟为500kHz时,转换时间大约为128ms,工作时钟为640kHz时,转换时间大约为100ms。允许模拟输人为单极性,无需零点和满刻度调节。
ADC0809内部有8个锁存器控制的模拟开关,可以编程选择8个通道中的一个。ADC0809没有片选引脚,需要外接逻辑门将对A/D0809进行读/写的信号与端口地址组合起来实现编址。
内部由256R电阻分压器、树状模拟开关(这两部分组成一个D/A变换器)、电压比较器、逐次逼近寄存器、逻辑控制和定时电路组成。
12.13 若ADC输入模拟电压信号的最高频率为100KHZ,采样频率的下限是多少?完成一次A/D转换时间的上限是多少?
【解答】根据采样定理可知,采样频率要大于等于输入频率的2倍,所以采样频率的下限是2×100=200KHZ。
完成一次A/D转换时间的上限是1÷200KHZ = 5μs。
相关推荐: