欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

单片机 DAC0832数模转换实验

程序员文章站 2022-06-26 14:58:47
1、描述DA0832实现DA转换的基本原理1、DAC0832是一个八位D/A转换器,D/A转换电路是一个R-2RT型电阻网络,可实现8位数据的转换。2、数据总线——DI7~DI0:转换数据输入控制总线(控制输入寄存器的打开)——ILE(数据锁存允许信号,高电平有效),CS(片选信号,低电平有效),WR1(写信号,低电平有效)控制DAC寄存器的写入——WR2(写信号,低电平有效),XFER(数据传输控制信号,低电平有效)3、通过对两个输入寄存器进行控制,可以采用双缓冲、单缓冲、直通的输入方式。...

电路图如下:
单片机  DAC0832数模转换实验

1、描述DA0832实现DA转换的基本原理
1、
DAC0832是一个八位D/A转换器,D/A转换电路是一个R-2RT型电阻网络,可实现8位数据的转换。
2、
数据总线——DI7~DI0:转换数据输入
控制总线(控制输入寄存器的打开)——ILE(数据锁存允许信号,高电平有效),CS(片选信号,低电平有效),WR1(写信号,低电平有效)
控制DAC寄存器的写入——WR2(写信号,低电平有效),XFER(数据传输控制信号,低电平有效)
3、
通过对两个输入寄存器进行控制,可以采用双缓冲、单缓冲、直通的输入方式。
4、
输入信号通过一个8位D/A转换器输出Iout1和Iout2,然后两路输出电流外接一个运算放大器(单极性输出或者双极性输出),最后输出一个模拟电压。单极性输出电压:Vout=-Vref*D/256(D=0~255)
例如:双缓冲
(1)CPU执行输出指令,输出8位数据给DAC0832
(2)在CPU这行输出指令的同时,使ILE,CS,WR1三个控制信号都有效,8位数据锁存在8位输入寄存器中
(3)当WR2,XFER两个控制信号也都有效时,8位数据再次被锁存到DAC寄存器,这时8位D/A转化器开始工作,8位数据转换为相对应的模拟电流,从Iout1和Iout2输出。

2、要求DAC0832编写程序产生一个三角波。三角波的频率为0.5HZ,利用定时器定时,需要有理论计算过程,并有结果显示截图。
(1)给出定时器工作方式,计数初值,及其初值计算方法。
单片机  DAC0832数模转换实验
(2)代码如下:

/** 功能描述:   **/ #include "reg52.h" #define uchar unsigned char #define uint unsigned int /***********端口定义********************************/ #define out P1
sbit dac_cs=P2^0; sbit dac_wr=P2^1; /***********函数申明***********************************/ void dac_change(uchar dac_data); /***********变量定义********************************/ bit flag=0;//状态量的思想   =0,上升;=1,下降 uchar counter=0;//软件计数 uchar i=200;//输入量D void main(void) { uchar timer0_peroid=200; TMOD=0x02;//in mode 2 TH0=0-timer0_peroid;//56 TL0=0-timer0_peroid;//56 TR0=1;//启动T0 PT0=1;//高级中断 ET0=1;//允许T0中断 EA=1;//打开中断总开关 while(1) { if(counter==25){ counter=0; if(flag==0){ dac_change(i);//波形上升 i--; if(i==0) flag=1; }else{ dac_change(i);//波形下降 i++; if(i==200) flag=0; } } } } //timer0中断函数 void timer_0 () interrupt 1{ counter++; } //DAC转换 void dac_change(uchar dac_data) { out=dac_data; dac_cs=0; dac_wr=0; dac_cs=1; dac_wr=1; } 

(3)示波器三角波示意图:
单片机  DAC0832数模转换实验

本文地址:https://blog.csdn.net/qq_45653763/article/details/107910330

相关标签: 单片机