实验十 D/A转换
一、实验目的
1、了解D/A转换与单片机的接口方法
2、了解D/A转换芯片0832性能及编程方法
3、了解单片机系统中扩展D/A转换芯片的基本方法
二、实验内容
利用0832输出一个0V开始逐渐升至5V,再降至0V的正弦波电压,数码管显示送入的数字量值
三、实验程序框图及源程序
输入是否到 FF ? N
Y
输 入 是 否减 N 到
Y 开 始 0832初始化 显 示 转换显示加1 转换显示减1
ORG 0740H
HA6S: MOV SP,#53H MOV 7EH,#00H MOV 7DH,#08H MOV 7CH,#03H MOV 7BH,#02H HA6S1: MOV R6,#00H
HA6S2: MOV DPTR,#0FE20H MOV A,R6 MOVX @DPTR,A MOV R0,#79H LCALL CWOR LCALL DISP MOV R2,#08H LCALL DELAY INC R6 CJNE R6,#0FFH,HA6S2 HA6S3: MOV DPTR,#0FE20H DEC R6 MOV A,R6 MOVX @DPTR,A MOV R0,#79H LCALL CWOR LCALL DISP MOV R2,#08H LCALL DELAY CJNE R6,#00H,HA6S3 SJMP HA6S1 CWOR: MOV R1,A ACALL CWOR1 MOV A,R1 SWAP A
CWOR1:ANL A,#0FH MOV @R0,A INC R0 RET
DISP: SETB 0D4H MOV R1,#7EH MOV R2,#20H MOV R3,#00H
DISP1: MOV DPTR,#0FF21H MOV A,R2 MOVX @DPTR,A MOV DPTR,#CDATA MOV A,@R1 MOVC A,@A+DPTR MOV DPTR,#0FF22H MOVX @DPTR,A DISP2: DJNZ R3,DISP2 DEC R1 CLR C MOV A,R2 RRC A MOV R2,A
CDATA:
JNZ DISP1 MOV A,#0FFH MOV DPTR,#0FF22H MOVX @DPTR,A CLR 0D4H RET
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH
DELAY: PUSH 02H DELAY1: PUSH 02H DELAY2: PUSH 02H
DELAY3: DJNZ R2,DELAY3
POP 02H DJNZ R2,DELAY2 POP 02H DJNZ R2,DELAY1 POP 02H DJNZ R2,DELAY RET
四、实验接线图
五、实验步骤
1 当DVCC仿真实验系统联PC机时 (1)在闪动“P.”状态,按PCDBG键
(2)进入PC机C盘DV598子目录下,输入DBUG回车,选择PE子菜单,进入全屏幕编辑,输入实验源程序后,按F2或F3存盘,F4退出,文件名为HA6S.ASM。 (3)再进入主菜单选择Assemble子菜单,进行源程序的交叉汇编。
(4)再选择Load装入HEX(HEX)file代码文件,待传送结束后按回车键, (5)按F7键显示指令代码,用F3命令将PC值修改为06D0H (6)把0832片选线0832CS(CS5)接至片选FE00插孔 (7)调节W3使0832第8脚为-5V
(8)从起始地址0740H开始连续运行程序
(9)数码管上显示不断加大或减小的数字量,万用表测试D/A输出孔AOUT应也能测出不断加大或减小的电压量
[思考题]:
产生锯齿波程序:
DAC: MOV R0,#0DFH
MOV A,#00H ACALL DELAY INC A
SJMP LOOP
LOOP: MOVX @R0,A

