一、实验目的
1、理解A/D转换的工作原理;
2、理解掌握ADC0809的A/D转换原理和并行A/D转换器接口的编程方法;
3、学习使用并行模/数转换芯片ADC0809进行电压信号的采集和数据处理。
二、设计任务书
河南农业大学单片机课程设计任务书
题目:A/D转换设计及实验
三、实验内容描述
利用已有的实验系统上的0809 A/D转换器,实验电位器提供模拟量输入,编制程序,将模拟量转换成数字,通过数码管显示出来。
四、硬件接线图
五、程序设计流程图
六、程序清单
#include"reg51.h"
#include<absacc.h>
#include<intrins.h>
#define uchar unsigned char
#define com8255 XBYTE[0xff23]
#define pa8255 XBYTE[0xff20]
#define pb8255 XBYTE[0xff21]
#define ad0809 XBYTE[0xff80]
unsigned char code mon51[3] _at_ 0x3b;//保留0X3B开始三个程序空间作全速中断用
void delay(unsigned int i);
void main(void)
{ uchar idata disbuf[6]={0,8,0,9,0,0};
uchar code table[20]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E,0xFF,0x0C,0x89,0xDE};
com8255=0x81;
while(1)
{uchar x=6,y=0x20,m,n,t=0x0f;
y=~y;
ad0809=0x00;
delay(1);
m=ad0809;
n=m;
m=m&t; //low 4 bit
disbuf[5]=m;
n=n>>4; //high 4 bit
disbuf[4]=n;
for(x=0;x<6;x++) //led display
{pb8255=table[disbuf[x]];
pa8255=y;
delay(2);
y=_cror_(y,1);
}
}
}
void delay(unsigned int i)
{
unsigned int j,k;
for(k=0;k<i;k++){
for(j=0;j<100;j++); }
}
七、调试过程中的难点及解决思路
1、在实验室的电脑上没有找到SST89516RD2,最开始用其他型号的单片机做实验,最终发现用SST89E554RC可以仿真。
2、在用keil4仿真的时候,软件不稳定,有时会无法单步运行,最后必须把软件关闭再打开才可以。
3、读程序的时候,遇到一些不懂得地方找学长请教。
八、课程设计总结与体会
在这次的实验中,我成功的理解掌握了ADC0809的A/D转换原理和并行A/D转换器接口的编程方法,也学习了并行模/数转换芯片ADC0809进行电压信号的采集和数据处理的使用方法。。最重要的一点是,我在这次设计中培养了自己的学习能力。由于好多知识超出了我们的课本范围,这就要求我们自己通过资料来增加我们的知识,解决遇到的一些问题。在短时间内从书本资料中筛选出我们所需要的知识,对我们的自主学习能力有很大的帮助。
九、参考文献
[1]《新概念51单片机C语言教程》郭天祥
[2]《单片机原理与接口技术》邓宏贵
[3]《数字电子技术基础》阎石
[4]《模拟电子技术基础》童诗白
[5]《基于AT89C51的多功能智能实验测试仪器的设计与实现》王正兰
第二篇:单片机实验AD转换实验
实验报告
课程名称: 单片机原理及应用
实验项目: A/D转换实验
专业班级:
姓 名: 学 号:
实验室号: 实验组号:
实验时间: 批阅时间:
指导教师: 成 绩:
沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级: 学号: 姓名:
实验名称:A/D转换实验
附件A 沈阳工业大学实验报告
(适用计算机程序设计类)
专业班级: 学号: 姓名:
实验步骤或程序:
实验原理:
A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。
实验用的ADC0809属第二类,是八位A/D转换器。每采集一次需100us。
ADC0809 START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号。实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,故启动A/D转换只需如下两条指令:
MOV DPTR,#PORT
MOVX @DPTR,A
A中为何内容并不重要,这是一次虚拟写。
在中断方式下,A/D转换结束后会自动产生EOC信号,将其与8031CPU板上的INT0相连接。在中断处理程序中,使用如下指令即可读取A/D转换的结果:
MOV DPTR,#PORT
MOVX A,@DPTR
实验步骤:
1、0809的片选信号CS0809接CS0。
2、电位器的输出信号AN0接0809的ADIN0。
3、EOC接CPU板的INT0.
程序框图:
运行结果
程序调试运行后,手调电位器,随着电位器的变化,看到数码管显示的数字电压值也在随之变化。