ADC综合应用实验设计.docx

上传人:b****7 文档编号:23398455 上传时间:2023-05-16 格式:DOCX 页数:12 大小:148.34KB
下载 相关 举报
ADC综合应用实验设计.docx_第1页
第1页 / 共12页
ADC综合应用实验设计.docx_第2页
第2页 / 共12页
ADC综合应用实验设计.docx_第3页
第3页 / 共12页
ADC综合应用实验设计.docx_第4页
第4页 / 共12页
ADC综合应用实验设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

ADC综合应用实验设计.docx

《ADC综合应用实验设计.docx》由会员分享,可在线阅读,更多相关《ADC综合应用实验设计.docx(12页珍藏版)》请在冰豆网上搜索。

ADC综合应用实验设计.docx

ADC综合应用实验设计

南京信息工程大学单片机实验报告

实验(实习)名称ADC及显示实验日期2013.6.20得分指导教师毛鹏

系信控专业电气工程年级2010级班次2姓名李来学号20101340055

一、实验任务:

利用单片机STC89C52与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,两位数码显示。

二、实验设备:

STC89C52单片机、ADC0809芯片、2个共阴极数码管、5V电源、面包板、导线若干、晶振、电容

三、实验内容:

以89C51单片机为核心,借助ADC0809芯片,实现对模拟电压的取样转换(取样点的电压在0~5V之间可调),并通过2位8段共阴极LED数码管进行显示,即实时显示出当前的模拟电压大小。

1.ADC0809规格及引脚分配图如下图所示:

ADC0809引脚图

(1)它的主要功能:

18位分辨率

28路模拟输入选通转换

3可锁存三态输出,与TTL兼容,和微机接口方便

4最大不可调误差小于±1LSB

5不必进行零点和满度调整

6CMOS工艺、功耗为15mW

7单一+5V电源工作

8转换速率取决于芯片的时钟频率

(2)引脚功能分析:

START:

A/D转换启东控制端,加正脉冲后转换开始

IN0-IN7:

8路模拟输入端

D0-D7:

8路数字量输出

EOC:

转换结束信号输出端,当A/D转换开始后,EOC变低电平,而转换结束时,EOC返回高电平。

该信号可作为中断请求信号。

ALE:

地址锁存控制端,ALE上升沿将A、B、C的输入地址打入地址锁存器。

OE:

输入允许控制端,当OE端的电平由低变高时,三态输出锁存器打开。

该信号一般由片选和读信号产生。

CLK:

时钟输入端。

ADDA、ADDB、ADDC:

8路模拟开关的选通地址输入端,用以选择8个通道中的一个模拟量进行A/D转换。

2.STC89C52各个引脚分布如下图所示:

STC89C52引脚图

3.硬件接线方式及目的

(a)把“单片机系统”区域中的P3.0与”模数转换模块ADC0809“区域中的ST端子用导线相连接。

目的:

A/D转换启东控制端,加正脉冲后转换开始。

(b)把“单片机系统”区域中的P3.1与”模数转换模块ADC0809“区域中的ALE端子用导线相连接。

目的:

地址锁存控制端,ALE上升沿将A、B、C的输入地址打入地址锁存器。

(c)把“单片机系统”区域中的P3.2与”模数转换模块ADC0809“区域中的OE端子用导线相连接。

目的:

输入允许控制端,当OE端的电平由低变高时,三态输出锁存器打开。

该信号一般由片选和读信号产生。

(d)把“单片机系统”区域中的P3.6与”模数转换模块ADC0809“区域中的EOC端子用导线相连接。

目的:

转换结束信号输出端,当A/D转换开始后,EOC变低电平,而转换结束时,EOC返回高电平。

该信号可作为中断请求信号。

(e)把“单片机系统”区域中的P3.7与”模数转换模块ADC0809“区域中的CLK端子用导线相连接。

目的:

时钟输入端,用来提供时钟信号。

(f)把“模数转换模块ADC0809”区域中的ADDA、ADDB、ADDC端子用导线连接到单片机的VCC端子上。

把“模数转换模块ADC0809”区域中IN7与外接输入电压相连。

目的:

8路模拟开关的选通地址输入端,用以选择8个通道中的一个模拟量进行A/D转换。

(g)把“单片机系统”区域中的P2.0-P2.7连接到“模数转换模块ADC0809”区域中D0D1D2D3D4D5D6D7端子上。

目的:

将ADC8路数字量输出作为单片机P2端口的输入。

(h)把“单片机系统”区域中的P1.0-P1.7连接到两个“数码管”区域中ABCDEFG端子上。

目的:

将单片机的P1口输出到数码管上显示

(i)把“单片机系统”区域中的P0.0-P0.1连接到“数码管”区域中com端口。

目的:

片选信号,用于分别选中数码管1、数码管2

4.电路原理图

电路原理图

5.程序流图

 

四.实验程序

C语言源程序

#include

sbitALE=P3^1;

sbitST=P3^0;

sbitEOC=P3^2;

sbitOE=P3^6;

sbitCLK=P3^7;

sbitwexuan1=P0^0;

sbitwexuan2=P0^1;

//sbitIN1=P0^5;

//sbitIN2=P0^6;

//sbitIN3=P0^7;

unsignedintcodetable[]={

0xc0,0xf9,0xa4,0xb0,

0x99,0x92,0x82,0xf8,

0x80,0x90};//段码表

unsignedintn=0,flag1=1,flag=1,ad_data,num1=0,num2=0;

voiddelay(xms)

{

unsignedintx,y;

for(x=xms;x>0;x--)

for(y=110;y>0;y--);

}

voiddisplay()//2位数码管显示

{

floata;

a=(float)ad_data/256*5*1000;

num1=(int)a/1000;

num2=(int)a/100-num1*10;

P1=table[num1];

wexuan1=1;

delay

(1);

wexuan1=0;

P1=0xff;

P1=0x7f;//小数点

wexuan1=1;

delay

(1);

wexuan1=0;

P1=0xff;

P1=table[num2];

wexuan2=1;

delay

(1);

wexuan2=0;

P1=0xff;

}

voidinit()

{

ST=0;

ALE=0;

OE=0;

CLK=0;

//_EOC=1;

TMOD=0x12;IP=0x09;

TH0=(65536-22)/256;

TL0=(65536-22)%256;

TH1=(65536-45872)/256;

TL1=(65536-45872)%256;

EA=1;

ET0=1;ET1=1;

TR0=1;TR1=1;

EX0=1;//打开外部中断

IT0=1;//从高到低的负跳变有效

P0=0x00;

}

voidstart()//inta,intb,intc)//选择通道

{

//IN1=a;IN2=b;IN3=c;

ALE=0;ALE=1;

ST=0;ST=1;

ALE=0;ST=0;

display();

delay(10);

}

intread()

{

unsignedintdat;

P2=0xff;

OE=1;

display();

dat=P2;

OE=0;

return(dat);

}

voidmain()

{

init();

while

(1)

{ST=0;

ST=1;

ST=0;

if(n==20)

{

flag=1;

//display();

//start();

//while(EOC==0);//转换结束(EOC=1)读出数据后显示

//_EOC=0;

ad_data=read();

flag=0;

display();

//n=0;

//display();

//_EOC=1;

}

display();//显示的是if中的电压值

}

}

voidINTR_0()interrupt0

{

while

(1)

{

ad_data=read();

flag=0;

display();}

}

voidtimer0()interrupt1//输出500kHz方波

{

CLK=~CLK;

}

voidtimer1()interrupt3

{

TH1=(65536-45872)/256;

TL1=(65536-45872)%256;

n++;

flag1=0;

}

5.实验总结

单片机是一门实践性非常强的学科,只看教程,光说不练是永远也学不会的,买一块开发板,就是买一个平台,有了单片机的实验平台,才能去实验更多的程序,才能日积月累,积累更多的开发经验和思路,才能踏进单片机开发的大门,通过本次实践,我体会到了实践的重要性以及必要性,要学会理论联系实践,脚踏实地的进行实验。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1