第13次作业参考解答 - 完整版 - 889507230

2019-06-11 19:44

第13次作业参考解答

70 .某PC/XT的D/A接口使用DAC0832。有关信号接线如图,其输出电压Vout和输入数字量之间的对应关系如表所列(线性关系)。欲使V out周期性变化如波形图所示(周期可以自定),请用汇编语言编写有关控制部分程序。

解:此题训练两方面的能力:

⑴硬件

①对系统总线的接线能分析该芯片及其中每个端口的I/O地址(用符号表示)。 ②对DAC0832根据接线知道是工作于两级缓冲方式。 ⑵软件

①对所有I/O接口的IN/OUT指令都要结合接口电路理解指令的执行效果。此处CPU用POT0执行OUT指令将待转换字节送到DAC0832的输入寄存器,CPU再用POT1执行OUT指令将DAC0832输入寄存器的内容送到转换寄存器并启动转换。

② DAC0832输入的数值变化规律决定其输出的波型,分析此题的波型,先从零点逐次递增,达到最大值后变为递减减到最小值后又重复递增……从表中可查出起点、最高点、最低点对应的数字量。至于波型的周期,可以在相邻的两次数值输出指令之间,加进若干条指令循环执行,实现软件延时,调整循环次数即改变了波型的周期。

MOV AL, 7FH ;初始电压0

LP: MOV BL, 1 ;用寄存器来作增减比直接用增减1指令便于调解步距,

; 比用立即数加减执行快,但要注意寄存器的保护。

MOV BH, -1 ;用于下降波形阶段

- 1 -

UP: MOV DX, POT0

OUT DX, AL ;从接线图看出,0832在这里工作于双缓冲方式,用POT0输出 MOV DX, POT1 ;只是把数据送到0832的输入寄存器,须再用POT1输出一次

OUT DX, AL ;才真正启动一次转换。应是加1的循环,

; 加到最大值FFH后才变成减1,减到最小值0后又重复做加1。

CALL DELAY ;把延时定义成一个过程便于调整波形周期 ADD AL, BL

CMP AL, 0FFH ;AL=FFH这个数值没有输出就转到减1 JNZ UP

DOWN: MOV DX, POT0 ; 下降。不是用POT1输出下降。同上解释,是双缓冲

OUT DX, AL MOV DX, POT1 OUT DX, AL CALL DELAY

ADD AL, BH

CMP AL, 0 JNZ DOWN

JUMP UP ;波形不停止

DELAY: MOV CX, 40 ;延时子程序 DLA: DEC CX JNE DLA RET

- 2 -


第13次作业参考解答 - 完整版 - 889507230.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2台65吨炉脱硫技术协议

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: