实验四 ADC0809实验
一、实验目的
1.了解模/数转换器ADC0809的工作原理及性能; 2.掌握单片机与ADC0809的接口及编程方法; 3.通过实验了解单片机如何进行数据采集。
二、实验内容
利用实验系统上的ADC0809做A/D转换器,实验系统上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,通过数码管显示出来。
三、实验接线图
四、实验程序框图
21
五、程序清单 文件名:DPJ04.ASM
ORG 0000H LJMP SE11 ORG 0590H SE11: MOV SP,#53H MOV P2,#0FFH MOV A,#43H MOV DPTR,#0FF20H MOVX @DPTR,A
MOV 7EH,#00H MOV 7DH,#08H MOV 7CH,#00H MOV 7BH,#09H MOV 7AH,#10H MOV 79H,#10H LO18: LCALL SSEE MOV A,#00H
MOV DPTR,#8000H MOVX @DPTR,A L019: JNB P3.2,L019 MOVX A,@DPTR
;命令字(停止计时,PA、PB输出,PC输入) ;FF20H为8155控制口地址 ;‘0’ →7EH ;‘8’ →7DH ;‘0’ →7CH ;‘9’ →7BH ;‘灭’→7AH ;‘灭’→79H ;调显示子程序
; 8000H为A/D转换器地址 ;启动A/D转换 ;读转换结果
22
MOV R0,#79H ;显示缓冲区首地址→R0 LCALL PTDS ;调拆字子程序 SJMP LO18
PTDS: MOV R1,A ;拆字子程序 ACALL PTDS1 MOV A,R1 SWAP A
PTDS1: ANL A,#0FH MOV @R0,A INC R0 RET
SSEE: SETB RS1 ;切换工作寄存器区 MOV R5,#05H ;
SSE2: MOV 30H,#20H ;20H=00100000B位选码 MOV 31H,#7EH ;显示区首地址7EH送31H MOV R7,#06H ;循环计数器置初值,6位显示 SSE1: MOV R1,#21H ;FF21H为8155A口地址(字位口) MOV A,30H ;取出位选码 CPL A ;取反11011111B
MOVX @R1,A ;输出位选码(扫描字) MOV R0,31H ;显示区首地址7EH送R0 MOV A,@R0 ;取待显示数据 MOV DPTR,#DDFF ;表首地址送DPTR
MOVC A,@A+DPTR ;查表得待显示数据的ASC2码
MOV R1,#22H ;FF22H为8155B口地址(字形口) MOVX @R1,A ;输出待显示数据的ASC2码(字形码) MOV A,30H ;
RR A ;修改扫描字 MOV 30H,A ;保存扫描字
DEC 31H ;修改待显示数据地址 MOV A,#0FFH ;“灭” MOVX @R1,A ;关显示器
DJNZ R7,SSE1 ;6位显示完否?未完继续 DJNZ R5,SSE2 ;刷新5次
CLR RS1 ;返回原工作寄存器区 RET
DDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;0~9共阳极
DB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH ;AbcdEF‘灭’PH┌ END
23
六、实验步骤
接线: 500k→CLK Vin→+5V IN0→Vout
JX6(ADC0809的D0~D7)→JX0(P0) WR→/IOWR RD→/IORD ADDA→A0 ADDB→A1 ADDC→A2 CS4→8000H
启动IN0~IN7各通道进行A/D转换的地址对应为8000H~8007H。
运行程序,数码管上显示0809.XX,后二位显示当前采集的电压转换的数字量,调节RW1(可调电压),该二位将随着电压变化而相应变化。
七、思考
修改程序,用其它通道轮流采样显示。
24
实验五 DAC0832实验
一、实验目的
1.掌握DAC0832与单片机的接口方法; 2.掌握DAC0832的性能及编程方法;
3.了解单片机系统中扩展D/A转换芯片的基本方法。
二、实验内容
利用DAC0832输出一周期三角波,其电压范围为0~5V。
三、实验接线图
单缓冲型接口电路
四、实验程序框图
25