微机第三版教材习题参考答案 马维华 下载本文

微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 25

POP BX POP AX

IRET ;中断返回

第十章作业

10-3假设一8位T型电阻网络式DAC,其参考电压为-5V, Rf=R,则将输出的数了量为68H时, 输出电压为多少? 当获得的输出电压为4V时,应该向DAC送入的数字量是多少?

n?1解:U。=?RfVref?2iDi=?RfVref?D,Vref=-5V,Rf=R,所以D=68H,U0=5×68H/256=2.03125V;

n2R2nR0U0=4V,则D=4/5*256=204.8≈205=C0H

10-4利用图10.5的电路,如果DAC0832的地址为3004H,写出产生最低点为1V,最高点为4V的三角波(波形如图10.20所示)程序片段。如果采用同样的程序,试问如果电路改为图10.7所示的双极应用,输出的波形是怎样的? 4V 1V 0V

图10.20 1-4V三角波

解:1V对应的数字量D1V=1/5*256=51.2≈51,4V对应的数字量D4V=4/5*256=204.8≈205=C0H 参考程序片段如下: DLV EQU 51 DHV EQU 205

MOV DX,3004H

MOV DX,3A9H MOV AL,DLV

REPLP1: OUT DX,AL

CMP AL,DHV JB INCDV OUT DX,AL

MOV AL,DLV CMP AL,DHV JLE INCD OUT DX,AL CMP AL,DLV JA DEC0 JMP INC0

INC0: OUT DX,AL

DEC0: DEC AL

INCD: INC AL

REPLP2 DEC AL

26 IA-32 & Intel64微机原理与接口技术(第三版) 布置的习题参考答案

CMP AL,DLV JA REPLP2 JMP REPLP1

2Vref?D?Vref2n

INCDV: INC AL

对于双极应用由式(10-2)知Vo=

D=51时,Vref=5V,因此Vo=2*5/256*51-5=-3V,

D=205时,Vref=5V,因此Vo=2*5/256*205-5=3V,因此程序不变时输出波形为-3V至+3V的三角波,输出波形如图所示。

3V0V-3V

10-5基于16位总线的压力检测系统如图10.21所示,已知8255的PA口作为A/D转换器ADC0809的接口;ADC0809的500KHz CLK时钟由8254 OUT1产生,已知8254的CLK1端接2MHz的时钟信号,GATE1接8255的PC7;DAC0832作为后向输出通道,各地址关系及与系统总线连接如图所示。系统工作过程为:采集8路压力,将其转换后的数字量一方面存放到内存缓冲区(由DATABUF指示),然后取8路压力的平均值,把平均值数字量通过逻辑取反后由DAC0832变换成模拟量输出,如果采集平均值超过Pmax值,则通过在8254的OUT0输出正脉冲为5ms的方波,如果低于Pmin,则让在8254的OUT2输出最大的负脉冲(不需要硬件触发)。

试按以下要求用编写有关程序片段:

(1) 写出8255在本应用系统中的初始化程序片段 (2) 写出供ADC0809的CLK端500KHZ方波的程序片段 (3) 根据系统工作过程写出满足要求的程序片段

(4)通过该电路,还可以扩展应用,请自行设计,说明要求,并给出参考答案。

A9A8A7

12U3374AS11654321A0A1U774AS138E3E2E1CBAY7Y6Y5Y4Y3Y2Y1Y079101112131415U8343332313029282753698356+5C1U2D0D1D2D3D4D5D6D7RDWRA0A1RESETCSPA0PA1PA2PA3PA4PA5PA6PA7PC0PC1PC2PC3PC4PC5PC6PC7PB0PB1PB2PB3PB4PB5PB6PB7432140393837141516171312111018192021222324251714158181920212524239622lsb2-82-72-62-52-42-32-2msb2-1ADDAADDBADDCOESTARTALEADC080926272812345A6A5A4A3A2IORCIOWC2MHzD7~D012U5A374AS32IN0IN1IN2IN3IN4IN5IN6IN7压力1压力2压力3压力4压力5压力6压力7压力8信号调理电路模拟信号输入+5710EOCCLOCKref(+)ref(-)121687654321222391110D0D1D2D3D4D5D6D7RDWRCLK0GATE0OUT0A0A1U18254CSCLK1OUT1GATE1OUT2GATE2CLK21920211513141716188255R1U1276541615141312lsbDI0DI1DI2DI3DI4DI5DI6msbDI7CSWR1DAC0832RfbIout1Iout2VrefXferILEWR29+511128171918-5+5U9Vo压力传感器RW模拟输出VCCVCC

图10.21 一数据采集与处理系统原理示意图

解:地址分配: 8254:300H~303H 8255:304H~307H

微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 27

DAC0832:314H~317H任何一个地址均可 P8254_0 P8254_1 P8254_2 P8254_C P8255A P8255B P8255C PDAC0832

EQU 300H EQU 301H EQU 302H EQU 304H EQU 305H EQU 306H EQU 314H

; 8254-0通道 ; 8254-1通道 ; 8254-2通道 ; 8255A口 ; 8255B口 ; 8255C口 ;DAC0832地址

;8255控制端口 ;92H

EQU 303H ; 8254控制口

P8255Ctrl EQU 307H ; 8255控制口

(1)8255初始化要做的工作就是确定工作方式:A方式0输入、B方式0输入、C口输出

MOV DX,P8255Ctrl MOV AL,10010010B OUT DX,AL

计数值初=2MHz/500KHz=2000/500=4 MOV DX,P8255Ctrl MOV AL,00001111B OUT DX,AL

;PC7=1(GATE1=1) ;8254控制端口地址

;8254通道1设置为8位读写,二进制计数 ;初值

MOV DX,P8254_C MOV AL,01010110B OUT DX,AL MOV AL,4 OUT DX,AL

MOV DX,P8254_1 ;8254通道1口地址

(2)8254产生500KHz方波

(3)

对ADC0809的操作依据三个步骤进行,即启动并锁存地址、查询EOC状态以及转换读取结果,然参考程序如下:

PROC MOV MOV MOV MOV INC OUT MOV MOV OUT MOV

NEAR CX,8 DX, P8255C BL,80H AL,BL BL

DX,AL

;8255的C端口地址

;通道0(低3位,高位1为GATE1) ;选择ADC0809通道 ;指向下一通道

;ALE、START、OE=0,选中INi

MOV SI,OFFSET DATABUF

后根据结果确定DAC0832的输出波形。假设初始化工作已经做完如(1)和(2) ADCS

START:

REPEATL:

DX,P8255Ctrl

AL,00001011B ;ALE=1 DX,AL

AL,00001001B ;START=1

28 IA-32 & Intel64微机原理与接口技术(第三版) 布置的习题参考答案

OUT NOP NOP MOV OUT MOV OUT MOV DX,AL

AL,00001010B ;ALE=0 DX,AL

AL,00001000B ;START=0 DX,AL DX,P8255B AL,DX

;指向8255的B端口

ADCWAIT: IN

RP2:

CALLSUB1:CALLSUB2:AND AL,01 JZ ADCWAIT

;判断EOC是否为1

MOV DX,P8255Ctrl

MOV AL,00000111B ;OE=1 MOV DX,P8255A ;8255的A口地址 IN AL,DX ;读取转换结果 MOV [SI],AL

;存结果 INC SI LOOP REPEATL MOV SI,OFFSET DATABUF MOV CX,8 MOV AX,0

MOV BH,0 MOV AL,[SI] ADD AX,BX INC SI LOOP RP2

MOV BL,8 DIV BL

CMP AL,Pmin JB CALLSUB1 ;低于Pmin产生最大的负脉冲 CMP AL,Pmax

;

JA CALLSUB2

;超过Pmax产生5ms为高电平的方波JMP START NOT AL

MOV DX,PDAC0832 ;DAC0832口地址(E14H~E17H) OUT DX,AL JMP START CALL SUB1 JMP

START CALL

SUB2 JMP

START