DAC0832介绍
(DAC0832是CMOS工艺制造的8位单片D/A转换器,属于R-2RT型电阻网络的8位D/A
转换器,建立时间150ms,为电流输出型,并且片内带输入数字锁存器。DAC0832与单片
机接成的是单缓冲方式,由于DAC0832是电流输出,而我们用的是模拟电压,在这种情况下,要将输出的电流转换成电压,转换电路接成同相电压输出形式,其输出电压
Vout=IR(1+R2/R1)。)
8.1 利用dac0832产生三角波
程序介绍:单片机通过DAC0832转换在LM358的7脚输
出三角波。实际应用如:函数波形发生器。 程序实例(0832shan.asm):
ORG 0000H
MAIN:
MOV DPTR,#0BFFFH ;选通地址
STR1:
MOV R6,#00H
;通过上升和下降来产生三角波/////////////////// ;电压随时间上升///////////////////////////////
STR2: MOV A,R6
MOVX @DPTR,A
INC R6
CJNE R6,#0FFH,STR2
;/////////////////////////////////////////////
;电压随时间下降///////////////////////////////
STR3: DEC R6
MOV A,R6
MOVX @DPTR,A
CJNE R6,#00H,STR3
;/////////////////////////////////////////////
AJMP STR1
END
8.2 利用dac0832产生方波
程序介绍:程序介绍:单片机通过DAC0832转换在
LM358的7脚输出方波。实际应用如:函数波形发生器。
程序实例(0832fan.asm):
ORG 0000h
MAIN: MOV DPTR,#0BFFFH
;通过高低电平地的变化来输出方波///////////
LOOP1:
MOV A,0
MOVX @DPTR,A ;向选通地址送低电平地 ACALL DELAY
MOV A,#0FFH
MOVX @DPTR,A ;向选通地址送高电平 ACALL DELAY
AJMP LOOP1
;/////////////////////////////////////////////
DELAY: MOV 30H,#0FFH ;延时,通过改变它的大小
可以改变占空比
D2: DJNZ 30H,D2
RET
END
8.3 利用dac0832产生正弦波
程序介绍:程序介绍:单片机通过DAC0832转换在
LM358的7脚输出正弦波。实际应用如:函数波形发生器。
程序实例(0832xuan.asm):
ORG 000H
MAIN: MOV R1,#00H ;取
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
格初值 LOOP1:
;在表格里取数送到指定地址///////////////////// MOV A,R1
MOV DPTR,#SETTAB
MOVC A,@A+DPTR
MOV DPTR,#0BFFFH
MOVX @DPTR,A
;/////////////////////////////////////////////
INC R1 ;表格加一
AJMP LOOP1 ;循环
SETTAB:
;正弦表格/////////////////////////////////////
DB 80H,83H,86H,89H,8DH,90H,93H,96H
DB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH
DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H DB 0C7H,0CAH,0CCH,0CFH,0D1H, 0D4H,0D6H,0D8H DB 0DAH,0DDH,0DFH,0E1H,0E3H, 0E5H,0E7H,0E9H DB 0EAH,0ECH,0EEH,0EFH,0F1H, 0F2H,0F4H,0F5H DB 0F6H,0F7H,0F8H,0F9H,0FAH, 0FBH,0FCH,0FDH DB 0FDH,0FEH,0FFH,0FFH,0FFH, 0FFH,0FFH,0FFH DB 0FFH,0FFH,0FFH,0FFH,0FFH, 0FFH,0FEH,0FDH DB 0FDH,0FCH,0FBH,0FAH,0F9H, 0F8H,0F7H,0F6H DB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH DB 0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H DB 96H, 93H, 90H, 8DH, 89H, 86H, 83H, 80H DB 80H, 7CH, 79H, 78H, 72H, 6FH, 6CH, 69H DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH DB 09H, 08H, 07H, 06H, 05H, 04H, 03H, 02H DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H DB 3AH, 3DH, 40H, 43H, 45H, 48H, 4CH, 4EH DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80H END
8.4 利用dac0832产生梯形波
程序介绍:程序介绍:单片机通过DAC0832转换在
LM358的7脚输出梯形波。实际应用如:函数波形发生器。
程序实例(0832ti.asm):
ORG 0000h
MAIN:
MOV DPTR,#0BFFFH
STEP: MOV R6,#19H
MOV R4,#0AH
MOV A,0
LOOP1: MOVX @DPTR,A ;选通地址 ACALL DELAY ;延时
ADD A,R6 ;每次以19H的梯度增加 DJNZ R4,LOOP1 ;梯度等待的时间 AJMP STEP ;循环
DELAY:
D2: MOV 31H,#0FFH
D1: DJNZ 31H,D1
RET
END