D/A转换器的类型很多。输入数据一般为并行数据,也有串行数据。并行输入的数据有8位、10位、12位等。D/A转换器的直接输出是电流量,若片内有输出放大器,则能输出电压量,并能实现单极性或双极性电压输出。D/A转换器的转换速度较快,一般其电流建立时间为1μs。有些D/A转换器具有其它功能,如能输出多路模拟量、输出工业控制用的标准电流信号。典型的D/A转换器如8位通用型DAC0832、12位的DAC1208、电压输出型的AD558和多路输出型AD7528。
DAC0832是8位分辨率的D/A转换集成芯片,由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成,外部是20引脚的双列直插式芯片,片内有三态输入缓冲器(可以直接连接CPU的数据总线,使工作方式更加灵活)。因为其转换控制方便、价格低廉等特点,在微机系统中得到广泛应用。
DAC0832内部有两个寄存器,能实现三种工作方式。在双缓冲工作方式下,利用输入寄存器暂存数据,给使用带来方便,可以实现多路数字量的同步转换输出。(地是点位零点,但电平的高低是相对而言的,对于负电平来说地就是高电平。一般来说,接地就是低电平。)
DAC0832以电流形式输出转换结果,得到电压形式需外加I/V转换的电路,常采用运算放大器。下图是DAC0832的电压输出电路。
(a) 单极性输出; (b) 双极性输出
把LE2的引脚直接接地了,LE1信号的引脚是可控制的,其中ILE直接接高电平,WR1和CS是可以控制的,输出端有放大器,输出电压信号。
利用DAC0832实现D/A变换。0832工作在单缓冲方式,设0832端口地址PORT,待转换数据在DATA单元中,这个芯片不需要初始化,就是将数据送到接口芯片的端口就按照其工作方式开始转换了。
程序段:
MOV AL, DATA
MOV DX, PORT
OUT DX, AL
HLT ;暂停
CS,WR1,ILE这三个引脚控制了第一个寄存器的开关,XFER,WR2这两个引脚控制了第二个寄存器的输入开关,所以这两组开关在这个线路中都是可控的,因此是双缓冲工作方式。
(1)当被转化的数据放到数据线上,片选信号开关打开即CS来一个低脉冲,CPU再给WR1一个低脉冲信号,这两个信号是同时,ILE一直保持高电平,这时数据就被锁存到第一个寄存器中了。WR2和XEFR同时给个低脉冲数据被锁存到第二个寄存器即DAC寄存器,进而被送到转换寄存器转换。
(2)双缓冲工作方式
MOV AL DATA
MOV DX, PORT1
OUT DX,AL
MOV DX, PORT2
OUT DX,AL
HLT
DAC0832的应用一:
根据下图的电路连接,编写一个输出锯齿波的程序,周期任意。DC0832工作在单缓冲方式,端口地址为0278H。
题目分析:
正向锯齿波的规律是电压从最小值开始逐渐上升,上升到最大值时立刻跳变为最小值,如此循环(反向锯齿波正好相反,先从最小值跳变为最大值,然后逐渐下降到最小值)。所以只要从0开始往0832输人数据,每次加1,直到最大值FFH,然后再从0开始下一个周期。这个过程循环执行即可在0832输出端得到一个正向锯齿波。以下是产生反向锯齿波的程序段,这里使用了一个技巧,用0减1直接得到最大值FFH,这样在锯齿波的齿
根部可以少做一次判断。
程序设计如下:
MOV DX, 0278H ;端口地址送DX
MOV AL,0 ;初始值送AL
NEXT: OUT DX,AL ;输出数字量到D/A转换器
DEC AL ;数字量减1
JMP NEXT ;循环
DAC0832的应用二:
已知0832输出电压范围为0~5V,现希望输出电压为1-4V,周期任意的正向锯齿波。如何输出正向锯齿波?
题目分析:
考虑到输出波形应能够停止,程序中增加了在有任意键按下时则停止输出的功能。由题知,已知当输出为5V时,输入数字量为最大值255,则1V电压对应的数字量=1X255/5=51=33H,4V电压对应的数字量是4*255/5=204=CCH
程序设计如下:
MOV DX, 0278H ;0832的端口地址送DX
NEXT1: MOV AL, 33H ;最低输出电压对应的数字量送AL
NEXT2: OUT DX, AL ;输出数字量到0832
INC AL ;数字量加1
CALL DELAY ;调用延时子程序
CMP AL, OCCH ;到最大值(输出4V电压)否?
JNA NEXT2 ;若没有到最大值继续输出
MOV AH, 1 ;达到最大输出则判断有无任意键按下
INT 16H ;键盘中断调用
J2 NEXT1 ;若无任意键按下则重新开始下一个周期
HLT ;有键按下则退出
DELAY PROC
MOV CX,100 ;延时子程序(延时常数可修改)
DELAYI:LOOP DELAY1
RET
DELAY ENDP
DAC0832的应用三:
(1)D/A转换产生一个如图所示踞齿波:
MOV DX,PORTA
MOV AL,OFFH
ROTATE: INC AL
OUT DX,AL
JMP ROTATE
MOV DX,PORTA
MOV AL,O0H
ROTATE: DEC AL
OUT DX,AL
JMP ROTATE
MOV DX,PORT
MOV AL,OFFH
DON1: INC AL
OUT DX,AL
CMP AL,0FFH ;直接比较是否相等,不相等循环
JNZ DON1
DON2: DEC AL
OUT DX, AL
CMP AL, 0
JNZ DON2
JMP DON1 ;无条件跳变,产生周期波型