第13章答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13.2 如果将DAC0832接成直通工作方式,画图说明其数字接口引脚如何连接。
答:
数字接口引脚连接如图13-2所示:
图13-2 数字接口引脚连接图
13.3 对应13.2.4节的图13-9a电路,编写输出一个12位数字量的程序段。假定这12位数据在BX的低12位中。
图13-9a 2级锁存接口电路
答:
假设第1级低8位锁存的端口地址为PORT1,第1级高4位锁存的端口地址为PORT2,第2级12位锁存的端口地址为PORT3,则程序段如下:
MOV AL,BL ;取低8位数字量输出
OUT DX,AL
MOV DX,PORT2
MOV AL,BH ;取高位数字量输出
OUT DX,AL
MOV DX,PORT3 ;将12位数据同时送给DAC进行转换
OUT DX,AL
13.6 某控制接口电路如图13-16所示。需要控制时,8255A的PC7输出一个正脉冲信号,START启动A/D转换;ADC转换结束在提供一个低脉冲结束信号EOC的同时送出数字量。CPU采集该数据,进行处理,产生控制信号。现已存在一个处理子程序ADPRCS,其入口参数是在AL寄存器存入待处理的数字量,出口参数为AL寄存器给出处理后的数字量。假定8255A端口A、B、C及控制端口的地址依次为FFF8H~FFFBH,要求8255A的端口A为方式1输入、端口B为方式0输出。编写采用查询方式读取数据,实现上述功能的程序段。
图13-16 习题13.6图
答:
采用查询方式读取数据,实现上述功能的程序段如下:
;8255A初始化
MOV DX,0FFFBH
;10110000B,8255A的A组为方式1输入,端口B为方式0输出,C口高位输出MOV AL,0B0H
OUT DX,AL
;PC7口产生正脉冲,启动A/D转换
;00001110B,PC7复位
MOV AL,0EH
OUT DX,AL
;00001111B,PC7置位
MOV AL,0FH
OUT DX,AL
CALL DELAY ;保证正脉冲具有一定的宽度
;00001110B,PC7复位
MOV AL,0EH
OUT DX,AL
;查询PC4口的状态,判断A/D转换是否结束
MOV DX,0FFFAH
CHECK:
IN AL,DX
TEST AL,10H
JNZ CHECK
;A/D转换结束,读取A/D转换的结果
MOV DX,0FFF8H
IN AL,DX
;将A/D转换结果进行处理,产生控制信号
CALL ADPRCS
;启动D/A转换,进行控制
MOV DX,0FFF9H
OUT DX,AL
13.7 假设系统扩展一片8255A供用户使用,请设计一个用8255A与ADC0809接口的电路连接图,并给出启动转换、读取结果的程序段。为简化设计,可只使用ADC0809的一个模拟输入端,例如IN0。
答:
8255A与ADC0809接口的电路连接图如图13-7所示:
图13-7 8255A与ADC0809接口的电路连接图
假定8255A端口A、B、C及控制端口的地址依次为FFF8H~FFFBH。启动转换、读取结果的程序段如下:
;8255A初始化
MOV DX,0FFFBH
;10110000B,8255A的端口A为方式1输入,端口B为方式0输出,C口高位输出MOV AL,0B0H
OUT DX,AL
;PC7口产生正脉冲,启动A/D转换
;00001110B,PC7复位
MOV AL,0EH
OUT DX,AL
;00001111B,PC7置位
MOV AL,0FH
OUT DX,AL
CALL DELAY ;保证正脉冲具有一定的宽度
;00001110B,PC7复位
MOV AL,0EH
OUT DX,AL
;查询PC4口的状态,判断A/D转换是否结束
MOV DX,0FFFAH
CHECK1:
IN AL,DX
TEST AL,10H
JNZ CHECK1
CHECK2:
IN AL,DX
TEST AL,10H
JZ CHECK2
;A/D转换结束,读取A/D转换的结果
MOV DX,0FFF8H
IN AL,DX
13.2、13.3、13.6、13.7