输出方式在微机应用系统中,通常使用的是电压信号,而DAC0832输出的是电流信号,这就需要由运算放大器组成的电路实现转换。运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。
待转换的8位数字量由芯片的8位数据输入线D0~D7输入,经DAC0832转换后,通过2个电流输出端IOUT1和IOUT2输出,IOUT1是逻辑电平为\的各位输出电流之和,IOUT2是逻辑电平为\的各位输出电流之和。另外,ILE、
、
和
是控制转换的控制信号。
、
DAC0832同CPU的接口如图3-19所示。
图 3-19 DAC0832单缓冲方式 波形幅值可调的实现与双极性电压输出
实际应用时,有许多场合要用双极性电压,这时只要将IOUT1接入一个运算放大器即可,其接口逻辑如图3-20所示为一种用两级运算放大器组成的模拟电压输出电路。从第一个运放输出为单极性模拟电压,从第二个运放输出为双极性模拟电压。如果参考电压为+5V,则OUUT1输出电压为0~-5V,OUT2输出电压为±5V。
28
图3-20实现波形幅值可调
DAC0832输出的电流,经过运放的作用,变成0V~-5V的电压信号。调节电路中的电位器R,就可以改变波形的幅值。 系统D/A转换电路图3-21。
10kAB4210k6319LMC6001AXTAL118XTAL27CD10k42379LMC6001ARSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617629303111121314151617181920IOUT1GNDIOUT2RFBDI7VREFDI6DI0DI5DI1DI4DI2XFERDI3WR2GNDILE(BY1/BY2)WR1VCCCSDAC0832U8(VCC)10987654321PSENALEEA12345678P1.0/T2P1.1/T2EXP1.2/ECIP1.3/CEX0P1.4/CEX1P1.5/CEX2P1.6/CEX3P1.7/CEX4P87C51FAU8
29
图 3-21 D/A转换双极性电压输出电路
第三章 软件设计
3.1软件设计主流程图
开始 初始化 调用显示程序 调用键盘扫描程序 Y 监视键盘输入 N 确定按键的键号 实现按键功能
本系统的软件编程包括以下几个程序模块:初始化程序;显示程序;键盘扫描程序与处理程序;正弦波发生程序及其服务程序;三角波发生程序;方波发生程序;锯齿波发生程序。
30
3.2软件功能编程
初始化程序:
ORG 0000H
MAIN: MOV SP, #60H ;置堆栈地址60H MOV DPTR,#E003H ;DPTR指向8255命令口 MOV A, #89H ;8255初始化 MOVX @DPTR,A DISP: ACALL DISPLY ACALL KEYCO CJNE A,#0FFH,NEXT SJMP DSP NEXT: CJNE A,#10H,DIS MOV DPTR, #JTAB SUBB A, #10H RL A
JMP @A+DPTR JTAB: AJMP MEM MEM: MOV @DPTR, A SJMP KEY
SJMP DISP RET 显示子程序: DISPLY: MOV R0,#78H MOV R3,#01H MOV A,R3
LDP: MOV DPTR,#EOO1H MOVX
@DPTR,A
MOV DPTR,#EOOOH
MOV A,@R0
;令AB为出C为入口 ;调显示子程序
;调键盘扫描子程序 ;若有键按下,则NEXT ;若无,则DSP
;是否为数字键
;若是功能键,则JTAB送到DPTR ;在A中形成JTAB表地址偏移量 ;MEM程序段 ;显示缓冲区首地址 ;位选码的初值送R3 ;先输出位码 ;取待显示的数
31
;转入相应功能键子程序;转功能处理程序
ADD A,#13 MOVC MOVX
;加上偏移量
;取段码 ;输出段码
A,@A+PC @DPTR,A
ACALL DELAY1 ;延时 INC MOV
R0
;取下一个要显示的数
A, R3
JB ACC.7,DEND ;8位显示完了吗? RL A MOV R3,A AJMP
;下一个位码
;点亮下一个数码管
;子程序结束
LDP
DEND:RET
DATA: DB 0C0H,0F9H,0A4H,0B0H,99H ;段码表 0 1 2 3 4
DB 92H,82H,0F8H,80H,90H ;5 6 7 8 9 DB 88H,83H,0C6H,0A1H,86H,8EH;A B C D E F DB 0FFH
延时程序: DELAY1:
MOV R7, #0E8H MOV R5, #07H
MS2: MOV R6, #0FFH MS1: DJNZ R6, MS1 DJNZ R7, MS2 DJNZ R5, DELAY1 RET 键扫描子程序: KEYCO:
PUSH PSW PUSH ACC PUSH DPL PUSH DPH
32