PC总线D7~D0DI7~DI0+5vILEDAC0832-aD/A转换rmD/A转换当要求多个模拟量同时输出时,可采用双重缓冲方式。
+CSWR1IOWwA9~A0地址port1译port2码port3DI7~DI0w.fpDAC0832+gaXFERWR2Vo1w+5vILECSWR1XFERWR2Vo2思考:相应的程序如何编写?
16
code SEGMENTstart: MOV AX, codeMOV DS, AXLEA SI, data_v1LEA BX, data_v2MOV CX, 10next:MOV AL, [SI] ;取V1的数据OUT port1, AL ;打开第一片0832第一级锁存MOV AL, [BX] ;取V2的数据OUT port2, AL ;打开第二片0832第一级锁存OUT port3, AL;打开两片0832的第二级锁存INC SIINC BXLOOP nextcodeMOV AH, 4CHINT 21HENDSENDstartwww.fpga-aASSUME CS: code, DS:codedatav1 DB 11h, 12h, 13h, 14h, 15h, 16h, 17h, 18h, 19h, 1Ahdatav2 DB 21h, 22h, 23h, 24h, 25h, 26h, 27h, 28h, 29h, 2Ahrm17编程:利用上图,将datav1和datav2处的两组数据,
一一对应转换成模拟量同时输出。
IOUT1IOUT2ga+-5VD0~D7+5V数据线DI0~DI7ILEWR1WR2RFB-fIOW地port1址译port2码pw.wA0~A9CSVREFXFERwDGNDPC总线DAC0832
-a例1连线如图,计算当数字量为0CDH时的输出Vo。
转换一个数据的程序段MOV AL, 0CDHMOV DX,port1OUT DX, ALMOV DX, port2OUT DX, AL18
rmVo3. 应用举例(调幅)
IOUT1IOUT2-+IOWWR1WR2地port1址译port2码VREFfpA0~A9CSXFERDGNDga-5V-aIOUT1= +5VILEREF255 VVo = -IOUT1×RFB= -256所以:当数字量为0CDH=205,VREF= -5V时:205VREF
Vo = -= 4V
256
19
www.调幅分析:当数字量为0FFH=255时,rmVoD0~D7数据线DI0~DI7RFB255VREF256RFB
以及输出的连接方法(同相还是反相)有关。
m注意:
Vo的输出与参考电压VREF、
rD0数据线DI0RFBaD7~DI7~IOUT1--+5VILEIOUT2a+VoIOWWR1g4VWR2pA0地port1~址.CSfVREF-5V-10VA9译port2码wXFERDGNDw,若VwREF接的是-10V, 则Vo = 8V若VREF接的是10V, 则Vo = -8V
8V-8V
10V
20
上例中