AD转换应用数字电压表的设计
实验五 AD转换应用-数字电压表的设计 一、实验要求
1.利用ADC0808/(0809)做A/D 转换器,由实验板上的电位器提供模拟量输入,编制程序将模拟量转换成数字量,用码数码管将转换结果显示出来。
2.设计数字电压表:测量范围为0~5V,精确到0.001V,并将数码管显示值与用万用表测量实际值比较,相对误差不超过多少,(自己编程)
二、实验目的
1、了解A/D 转换与单片机的接口方法;
2、了解ADC0809 转换性能及编程方法;
3、通过实验了解单片机如何进行数据采集。
三、实验原理图
四、硬件连接表
CPU板 005板 004板
P1.0~P1.3 BCD_A~BCD_D
P3.0~P3.3 Seg4~seg1
P0.0~P0.7 D0~D7
P2.0 AD_CLK
P2.1 AD_ST,AD_ALE
P2.3 AD_EOC
P2.4 ADD_A
P2.5 ADD_B
P2.6 ADD_C
P2.7 AD_OE
+5V +5V +5V
GND GND GND
五、程序设计
开始
选择输入通道
启动转换
等待转换结果
读取转换结果
六、实验步骤
1(建立实验程序并编译,加载*.hex文件;
2. 硬件验证
a(用ISP 下载hex 程序到MCU
b(按连接表连接电路
c(检查验证结果
3(实验数据记录(参考电压= V)
(1)调节电位器RV1,使IN0通道输入的电压不同的电压0V、0.5V、1V、1.5V、2V、2.5V、3V、3.5V、4V、4.5V、5V,观察由数码管输出的对应的转换结果。将记入下表. 输入电压值 转换结果 理论计算值 输入电压值 转换结果 理论计算值
0V 3V
0.5V 3.5V
1V 4V
1.5V 4.5V
2V 5V
2.5V
(2)设计数字电压表:测量范围为0~5V,精确到0.001V,并将数码管显示值与用万用表测量实际值比较,相对误差不超过多少,实验数据记入下表(记11个数). 实际电压值 测量电压值 实际电压值 测量电压值 (万用表测得) (数码管显示) (万用表测得) (数码管显示)
八、源程序
#include
#define uchar unsigned char
#define uint unsigned int #define adcdata P0 #define led P1
#define clock P2_0 #define start P2_1 #define eoc P2_3
#define adda P2_4 #define addb P2_5 #define addc P2_6 #define oe P2_7
uchar temp;
float temp1;
uint temp2;
void delay(uchar xms) {
uchar i,j;
for(i=xms;i>0;i--)
for(j=120;j>0;j--); }
void leddisply()
{
P3_3=0;//关闭量左端的数码管
P1=temp/100;P3_2=1;delay(10);P3_2=0;
temp=temp%100;
P1=temp/10;P3_1=1;delay(10);P3_1=0;
P1=temp%10;P3_0=1;delay(10);P3_0=0;
}
main()
{ adda=0;
addb=0;
addc=0;
led=0;
start=0;
start=1;
start=0;
while(1)
{
clock=~clock;
adcdata=0xff;
if (eoc==1)
{ oe=1;
temp=adcdata;
oe=0;
leddisply();
start=0;
start=1;
start=0;
}
}
}