找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 18114|回复: 11
打印 上一主题 下一主题
收起左侧

DAC0832实现51单片机输出方波锯齿波三角波等

  [复制链接]
跳转到指定楼层
楼主
D/A转换
一、实验目的
1. 掌握DAC0832直通方式、单缓冲器方式、双缓冲器方式的编程方法
2. 掌握D/A转换程序的编程方式和调试方法
二、原理
DAC0832是8位D/A转换器,它采用CMOS工艺制作,具有双缓冲器输入结构,其引
脚排列如图所示,DAC0832各引脚功能说明:
DI0~DI7:转换数据输入端。
   CS:片选信号输入端,低电平有效。
ILE:数据锁存允许信号输入端,高电平有效。   
WR1:第一写信号输入端,低电平有效,
Xfer:数据传送控制信号输入端,低电平有效。
WR2:第二写信号输入端,低电平有效。            
Iout1:电流输出1端,当数据全为1时,输出电流最大;当数据全为0时,输出电流最小。
Iout2:电流输出2端。DAC0832具有:Iout1+Iout2=常数的特性。 Rfb:反馈电阻端。
Vref:基准电压端,是外加的高精度电压源,它与芯片内的电阻网络相连接,该电压范围为:-10V~+10V。
VCC和GND:芯片的电源端和地端。
DAC0832内部有两个寄存器,而这两个寄存器的控制信号有五个,输入寄存器由ILE、CS、WR1控制,DAC寄存器由WR2、Xref控制,用软件指令控制这五个控制端可实现三种工作方式:直通方式、单缓冲方式、双缓冲方式。
直通方式是将两个寄存器的五个控制端预先置为有效,两个寄存器都开通只要有数字信号输入就立即进入D/A转换。
单缓冲方式使DAC0832的两个输入寄存器中有一个处于直通方式,另一个处于受控方式,可以将WR2和Xfer相连在接到地上,并把WR1接到80C51的WR上,ILE接高电平,CS接高位地址或地址译码的输出端上。
双缓冲方式把DAC0832的输入寄存器和DAC寄存器都接成受控方式,这种方式可用于多路模拟量要求同时输出的情况下。
三种工作方式区别是:直通方式不需要选通,直接D/A转换;单缓冲方式一次选通;双缓冲方式二次选通
三、实验内容
    1、利用数/模转换器DAC0832分别构造2种波形:方波、锯齿波,并通过示波器来观察波形情况
    2、软件编程提示:
方波:实验要求在DOUT端输出方波信号,方波信号的周期由延时时间常数确定。 根据Vout =-〔VREF×(输入数字量的十进制数)〕/256,当数字量的十进制数为256(FFH)时,由于VREF =-5V,Vout = +5V。当数字量的十进制数为0(00H) 时, 由于VREF = - 5V,Vout = 0V。因此,只要将上述数字量写入DAC0832端口地址时,模拟电压就从DOUT 端输出 。
锯齿波:本实验在DAOUT端输出锯齿波。根据Vout = -〔VRFE×(输入数字量的十进制数)〕/256即可知道,只要将数字量0~256(00H~FFH)从0开始逐渐加1递增直至256为止,不断循环,在DOUT端就会输出连续不断的锯齿波

QQ图片20180514210853.png (26.71 KB, 下载次数: 109)

QQ图片20180514210853.png

3.rar

67.8 KB, 下载次数: 282, 下载积分: 黑币 -5

仿真和代码

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
ID:283491 发表于 2018-11-24 17:27 | 只看该作者
最后功能实现了吗,
回复

使用道具 举报

板凳
ID:643576 发表于 2019-11-24 17:32 | 只看该作者
可以这样写吗?锯齿波:int main (void)
{
uchar i;
while(1)
{
for(i=0;i<255;i++)
{
delay(10);
XBYTE[0X7fff]=i;
}
}
}
回复

使用道具 举报

地板
ID:538496 发表于 2020-3-16 23:08 | 只看该作者
感谢楼主分享
回复

使用道具 举报

5#
ID:635905 发表于 2020-3-24 09:31 | 只看该作者
仿真软件用的什么
回复

使用道具 举报

6#
ID:714939 发表于 2020-3-25 01:02 | 只看该作者

proteus
回复

使用道具 举报

7#
ID:80273 发表于 2020-4-12 14:20 | 只看该作者
感谢分享
回复

使用道具 举报

8#
ID:741305 发表于 2020-4-30 00:06 | 只看该作者
谢谢楼主
回复

使用道具 举报

9#
ID:732342 发表于 2020-7-4 15:09 | 只看该作者
请问怎么改变电压范围和频率呢
回复

使用道具 举报

10#
ID:978036 发表于 2021-11-4 23:31 | 只看该作者
单片机老司机 发表于 2019-11-24 17:32
可以这样写吗?锯齿波:int main (void)
{
uchar i;

您好,我是新手,想问有int main这个吗
回复

使用道具 举报

11#
ID:978036 发表于 2021-11-4 23:32 | 只看该作者

proteus
回复

使用道具 举报

12#
ID:978036 发表于 2021-11-4 23:34 | 只看该作者

哈罗  可以分享一下楼主的代码和仿真吗?DAC0832和AT89C51波形输出
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表