一.实验要求
利用实验板上的ADC0809做A/D转换器,利用实验板上的电位器W1提供模拟量输入.编制程序,将模拟量转换成二进制数字量,用发光二极管显示.
二.实验目的
1.掌握A/D转换与单片机的接口方法.
2.了解A/D芯片ADC0809转换性能及编程.
3.通过实验了解单片机如何进行数据采集.
三.实验电路及连线
500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/19/1090307795.jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg,t_20');}" onmousewheel="return imgzoom(this);">
CS0809接8000H. 模块电位器V-OUT点(即中心抽头)接至ADC0809的IN0(通道0).EOC连P3.2(INT0).将单片机的P1.0~P1.7接至八位发光二极管L1 -- L8.
四.实验说明
ADC0809是八位逐次逼近法A/D转换器,每采集一次一般需100us.中断方式下,A/D转换结束后会自动产生EOC信号,经一级74LS14反向后与8031的INT0相接.
本示例程序采取了中断处理来正确读取A/D转换的结果.用户也可以用延时来保证A/D转换完成.读取结果由P1口送至八位发光二极管显示.
五.实验程序框图
500) {this.resized=true; this.width=500; this.alt='这是一张缩略图,点击可放大。\n按住CTRL,滚动鼠标滚轮可自由缩放';this.style.cursor='hand'}" onclick="if(!this.resized) {return true;} else {window.open('http://u.dianyuan.com/bbs/u/19/1090307871.jpg?x-oss-process=image/watermark,g_center,image_YXJ0aWNsZS9wdWJsaWMvd2F0ZXJtYXJrLnBuZz94LW9zcy1wcm9jZXNzPWltYWdlL3Jlc2l6ZSxQXzQwCg,t_20');}" onmousewheel="return imgzoom(this);">
六.实验程序
A_DPORT EQU 8000H ;0809通道0地址
ORG 0000H
LJMP START
ORG 0003H
LJMP INT_0
ORG 0040H
START:
MOV SP,#60H
MOV R7,#0FFH ;初始化
SETB IT0
SETB EA
SETB EX0 ;INT0 允许
A_D:
MOV DPTR,#A_DPORT
MOVX @DPTR,A ;启动 A_D
CJNE R7,#00H,$ ;等待 A_D 转换结束
CPL A
MOV P1,A ;数据输出
MOV R7,#0FFH ;清读数标志
SJMP A_D
INT_0:
MOVX A,@DPTR ;读 A_D 数据
MOV R7,#00H ;置读数标志
RETI
END