实验十、8路8位AD转换器接口设计实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十、8路8位A/D转换器接口设计实验
一、实验目的
1.了解ADC0809转换器的工作原理
2.掌握51单片机与ADC0809转换器的接口电路设计及编程
二、实验设备
1.A/D转换模块(ADC0809)
2.单片机最小系统
3.静态数码管显示模块
三、实验要求
要求用单片机最小系统、A/D转换模块、数码管显示模块组成一个简单的“数字电压表”。
将实验箱上可以手动调节的电位器的1、3脚分别连接+5V和地,2脚输出的0~5V的模拟信号作为“数字电压表”的输入;通过数码管显示测得的当前电压值,精确到0.1V。
从0~5V之间取20个值进行测量,并与校准过的万用表测量值进行比较。
四、实验原理
计算机处理的信息为数字量,而对控制现场进行控制时,被控制对象一般是连续变化的模拟量,模拟量必须经过转换,变为数字量送入计算机才能进行处理,将模拟量转变为数字量的过程称为A/D转换。
1.ADC0809工作原理和结构
ADC0809单片CMOS数据采集器件,8位8通道复用,控制逻辑微处理器兼容。
8位A/D 转换器的转换技术为逐次逼近法。
具有一个高输入阻抗的比较器。
一个256R具有模拟开关树的分压电阻阵列,以便逼近输入电压。
器件不需要外部调零或满量程调整。
通过锁存、复用地址解码、TTL三态输出,可以很方便的与微处理器接口。
逻辑如图10-1。
图21-1逻辑图D 01D 2D 3D 4D 5D 6D 7
图10-1 内部逻辑图
图10-2 ADC0809引脚图
◆ 单一5V 操作
◆ 5V 参考或者外部提供参考。
◆ 非调整误差±1.2 LSB and ±1 LSB ◆ 输入单极性电压0-5V 。
◆ 低功耗15mW 。
◆ 转换时间100uS 。
DIP28封装管脚图如图10-2所示。
管脚定义如表10-1所示。
表10-1 管脚定义
2
通过地址ADD C ,ADD B 和ADD A ,选择输入的模拟电压通道,如表10-2。
表10-2
操作时序图如图10-3,典型应用如图10-4
图10-3 操作时序图
图10-4 典型应用电路图
五、实验步骤
1.电路连接
硬件连线如图10-5:
图10-5:硬件连线图
该电路由51单片机、ADC0809电路及七段数码显示电路三部分组成。
由于电路比较简单,在总线上没有其他器件,所以直接选通ADC0809,可以使用查询方式,也可以使用中断方式,EOC接-INT0。
ADC0809转换器的转换结果显示在七段数码显示电路上。
当+5V的VCC本身波动不超过ADC0809的测量精度时,可以将参考基准电压输入端直接接到VCC(Vref+)和GND(Vref-)上。
输入电压与输出的数值之间的关系为:Vin = D * Vref/256。
其中D为输出的数据值。
由于D共有256个值,因此,在0~5V范围内的测量的精度为:5/256<0.1,完全能满足实验要求。
2.软件设计
程序全速运行时,A/D转换结果的读取,必须在EOC信号有效之后。
程序若采用查询方式,则要等P3.2为低电平后才可读取,若采用中断方式,主程序启动A/D转换后,就去处理其它事务,由中断服务程序自动读取A/D转换结果,并送入显示缓冲器,中断返回前,必须再启动另一次A/D转换。
查询方式则增加一行:
JNB P3.2,$ ;循环等待。
编写好程序后,使用单片机仿真调试软件将编译程序在PC上进行调试
示例程序:
;ADD-A接T1,ADD-B,ADD-C,REF(-)接地,REF(+)接电源,ENABLE接T0,CLK接100K 时钟源
;ALE,START接int1,eoc接INT0,数据线接P2
;P1位选,P0是段选
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV P2,#0FFH
MOV 33H,#0 ;显示地址,把ALE OUTPUT ENABLE设置为低电平
CLR P3.3 ;P3.3(INT1)=>ADC0809_ALE锁存地址 ADC0809_START启动
CLR P3.4 ;P3.4(T0)==>ADC0809_OUTPUT ENABLE数据输出使能
NOP
NOP
LOOP_ADC:
CLR P3.5 ;P3.5(T1)==>ADDA 通道0 ADDB ADDC接地
MOV SP,#40H
SETB P3.3 ;P3.3(INT1)=>ADC0809_ALE锁存地址 ADC0809_START启动 CLR P3.3 ;ADC0809_ALE锁存地址 ADC0809_START启动
;把ALE START从低变高,再变低电平,启动转换
WAIT_LOW:
JB P3.2,WAIT_LOW ;等待EOC 0~8个时钟,变成低电平WAIT_FINISH:
JNB P3.2,WAIT_FINISH ;P3.2(INT0)==>EOC等待EOC变高 SETB P3.4 ;P3.4(T0)==>ADC0809_OUTPUT ENABLE数据输出使能 MOV R0,P2
;保存测试数据。
;8位数据调整为BCD十进制,方法是除以100,再除以10 MOV A,R0
MOV B,#50
DIV AB
MOV 32H,A
MOV A,B
MOV B,#5
DIV AB
MOV 31H,A
MOV A,B
RL A
MOV 30H,A
MOV R0,#33H
CALL DISP ;显示数据
;CALL DELAY
LJMP LOOP_ADC
RET
DISP: MOV R4,#02H
DISP1: MOV R3,#0H
DISPLOOP2:
mov r2,#3
disploop0:
mov r1,#01h
mov r0,#30h
mov dptr,#tab
disploop1:
mov a,@r0
movc a,@a+dptr
mov p0,a
mov p1,r1
lcall dl1ms
inc r0
mov a,r1
RL a
mov r1,a
djnz r2,disploop1
DJNZ R3,DISPLOOP2
DJNZ R4,DISP1
DL1MS:
LOOP1: MOV R6,#0FH
LOOP2: NOP
NOP
DJNZ R6,LOOP2
RET
tab: db 03h,09FH,25h,0Dh,099h,49h,41h,01Fh,01h,09h,0FDH
DELAY: ;延时子程序
MOV R3,#4H
MOV R2,#0FFH
MOV R1,#0FFH
DELAY1:
DJNZ R1,$;原地循环
DJNZ R2,DELAY1
DJNZ R3,DELAY1
RET
END
使用旋钮提供一个可变的电压,测量该电压输出。
与万用表测量的结果进行比较。
六、实验报告
1.画出接口电路原理图,简要分析电路工作原理;
2.给出针对实验要求编写程序清单、分析程序运行过程,并给予适当注释。
3.说明ADC0809的工作原理、各引脚功能;
4.ADC0809具有多大的转换精度和转换速度?。