ADC0832模拟波形发生器实验报告

更新时间:2023-11-06 22:45:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

控制基础实验

课程名称 :学院(系):专 业 :班 级 :学 号 :学生姓名 :分工任务 : ——模拟波形发生器

成绩________ __ ___________

一、实验题目

1、设计一个波形发生器,使能输出锯齿波、三角波、正弦波等。

2、在proteus仿真软件中连接单片机系统硬件图,在keil c51软件中编写并 调试应用程序,使能在proteus中运行并达到预期效果。

二、实验目的

1、学会DAC0832芯片的基本知识,并掌握使用方法。

2、掌握单片机最小系统的基本知识,能设计并完成一些简单应用。 3、掌握Proteus及Keil软件在51系列单片机中的使用及调试。

4、 会根据实际功能,正确选择单片机功能接线,编制正确程序。对实验结 果能做出分析和解释,能写出符合规格的实验报告。

三、 实验工具

软件:Proteus单片机仿真软件、keil51,PC机。

四、实验内容

掌握DAC0832芯片的使用方法,在Proteus仿真软件中连接好电路图,在Keil中编写程序,使得能够输出较规范的锯齿波、三角波、正弦波。

五、实验原理

1、单片机工作原理:单片机是指一个集成在一块芯片上的完整计算机系统。 通过编程控制单片机的I/O端口、中断、定时器、寄存器等部件可以完 成很多应用。

2、DAC0832的工作原理:DAC0832是8分辨率的D/A转换集成芯片,由8位输

入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。

3、DAC0832引脚功能说明:

DI0~DI7:数据输入线,TLL电平。

ILE:数据锁存允许控制信号输入线,高电平有效。 CS:片选信号输入线,低电平有效。 WR1:为输入寄存器的写选通信号。

XFER:数据传送控制信号输入线,低电平有效。 WR2:为DAC寄存器写选通输入线。

Iout1:电流输出线。当输入全为1时Iout1最大。 Iout2: 电流输出线。其值与Iout1之和为一常数。 Rfb:反馈信号输入线,芯片内部有反馈电阻. Vcc:电源输入线 (+5v~+15v)

Vref:基准电压输入线 (-10v~+10v)

AGND:模拟地,摸拟信号和基准电源的参考地.

DGND:数字地,两种地线在基准电源处共地比较好.

4、输出形式式:单极性(本实验需要)、双极性。

单极性输出:如图所示, 由运算放大器进行电流→电压转换,使用内部反馈电阻。输出电压值VOUT和输入数字量D的关系: VOUT =-VREF ×D/256

D = 0~255, VOUT = 0~-VREF ×255/256 VREF = -5V, VOUT =0~5*+(255/256)V VREF = +5V, VOUT = 0~-(255/256)V

5、运算放大器工作原理:是一种直流耦合,差模(差 动模式)输入、通常为单端输出的高增益电压放大器。

6、运算放大器有三个特点:

⑴开环放大倍数非常高,一般为几千,甚至可高达 10万,且运算放大器所需要的输入电压非常小。

⑵输入阻抗非常大。运算放大器工作时,输入端相当 于一个很小的电压加在一个很大的输入阻抗上, 所需要的输入电流也极小。

⑶输出阻抗很小,所以,它的驱动能力非常大。

六、硬件电路设计及描述

1、硬件

AT89C52单片机、DAC0832芯片、运算放大器、电阻、模拟示波器、复位电路、总线。 2、电路图

⑴RST接复位电路,可持续12个时钟周期。

⑵P2口接DAC0832输入端作为信号源使用。

七、软件设计思想及流程

1、根据DAC0832的输出特性,VOUT =-VREF ×D/256,D = 0~255,

故当DI0~DI7输入一个不停自减的数值,减到0后自动回到255,即可在示波器观测到锯齿波;

当DI0~DI7输入一个不停自减的数值,减到0后又自加到255,即可在示波器观测到三角波;

先使用Matlab算出许多个正弦波函数的点,然后自变量DI0~DI7口输出一个自加的数值,即可在示波器观测到对应因变量形成的正弦波;

八、重要程序及源代码

1、//锯齿波

#include #define DAC0832 P2

void delay_ms(int xms) //延时函数,延时xms {

int i,j;

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

for(j=110;j>0;j--); }

void main() {

int i; while(1) {

for(i=255;i>0;i--) {

DAC0832=i; delay_ms(1); } } }

2、//三角波

#include #define DAC0832 P2

void delay_ms(int xms) //延时函数,延时xms {

int i,j;

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

for(j=110;j>0;j--); }

void main() {

int i; while(1) {

for(i=255;i>0;i--) {

DAC0832=i;

本文来源:https://www.bwwdw.com/article/4og2.html

Top