当前位置:    首页  虚拟仿真实验平台
A/D转换实验
发布部门:  发布时间: 2017-07-25  浏览次数: 266

实验项目名称:

A/D转换实验

项目介绍:

课程性质及背景:

本课程是测控技术与仪器专业的主干专业课,是一门实践性、应用性较强的课程。通过介绍智能仪器的特点、技术标准、发展概况、基本构成和先进控制技术,使学生掌握智能仪器的分析、设计、控制及选型等工作所需基本知识和技术。

实验课程特点及必要性:

实验教学是本课程的重要环节,是课堂教学的加强与提高,要充分重视学生综合能力的培养,利用实验结果和数据,分析系统的性质,提高学生的设计能力和解决实际问题能力。

项目目的:

1)掌握A/D转换与单片机的接口方法;

2)了解A/D芯片ADC0809转换性能及编程;

3)通过实验了解单片机如何进行数据采集。

面向理论课程:

智能仪器仪表设计

面向专业:

测控技术与仪器、车辆

仪器硬件设备及软件环境:

1)Proteus仿真软件1套;

2)Keil C51编程软件1套;

3)PC机1台;

实验项目功能及效果:

实验内容或任务:

实验内容或任务:

利用Proteus环境中的ADC0809做A/D转换器,由电位器提供模拟量输入,绘制电路图,并编制程序,将模拟量转换成二进制数字量,并通过数码管显示。

实验效果:

1)打开Proteus绘制电路图

2)打开Keil C51建立工程,参数设置

3)编辑源程序

4)运行和调试程序

A/D转换实验C源程序

#include <regx52.h>

#include<absacc.h>

#define uchar unsigned char

#define uint unsigned int

#define ADC0809 XBYTE[0xfffa]

//各数字的数码管段码(共阴)

uchar code DSY_CODE[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

sbit CLK=P3^0;  //时钟信号

uchar Data;

//延时

void DelayMS(uint ms)

{

uchar i;

while(ms--) for(i=0;i<120;i++);

}

//显示转换结果(结果是数字量0~255)

void Display_Result(uchar d)

{

P2=0x7f;

P1=DSY_CODE[d%10];  //第4 个数码管显示个位数

DelayMS(3);

P2=0xbf;

P1=DSY_CODE[d%100/10];  //第3 个数码管显示十位数  

DelayMS(3);

P2=0xdf;

P1=DSY_CODE[d/100];  //第2 个数码管显示百位数

DelayMS(3);

}

//主程序

void main()

{

TMOD=0x02;  //T0 工作模式 2

TH0=0x06;   

TL0=0x06;//周期1ms方波

IT1=1;//INT1边沿触发

IE=0x86;

TR0=1;

ADC0809=0; //启动 ADC0809

while(1)

{

Display_Result(Data);

}

}

//INT1 中断将 ADC0809 转换结果送数码管显示

void INT1_INT() interrupt 2

{

Data=ADC0809;

ADC0809=0;

}

//T0 定时器中断给 ADC0809 提供时钟信号

void Timer0_INT() interrupt 1

{

CLK=~CLK;


备注

要求学生有C语言编程能力



联系方式 网站地图 留言板
李立伟设计
地址:郑州市东风路5号郑州轻工业学院机电工程学院    邮编:450002    电话:0371-63556785