实验6 数模转换
数模转换实验plc程序

P1=0xFF;
Delay_xus(2000000);
}
void main(void)
{
DAC_init();
while(1)
{
DAC_start();
}
}
/**********************************
平台:51最小系统板
单片机:STC89C52RC
}
}
/**********************************
平台:51最小系统板
单片机:STC89C52RC
晶振:12MHz
**********************************/
#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
数模转换实验
单片机和DAC0832组合使用,模拟方波,锯齿波和三角波
/**********************************
平台:51最小系统板
单片机:STC89C52RC
晶振:12MHz
**********************************/
#include <reg52.h>
for(j=0;j<112;j++);
}
//功能:12us延时
void Delay_xus(uint t)
{
for(;t>0;t--)
{
_nop_();//一个机器周期
}
}
void DAC_init(void)
模数转换实验报告册

模数转换实验报告册1. 引言模数转换是指把数字由一种模数表示方式转换为另外一种模数表示方式的过程,常见的模数包括二进制、十进制、十六进制等。
在计算机科学和电子工程领域中,模数转换是一项重要的技术,广泛应用于数据存储、通信传输等方面。
本实验旨在通过编程实现模数转换的功能,并通过实验验证其正确性和效果。
2. 实验原理在计算机中,数字的模数转换可以通过数学运算来实现。
以下以将十进制数转换为二进制数为例进行说明。
2.1 十进制转二进制原理十进制数转换为二进制数的步骤如下:1. 将十进制数不断除以2,直到商为0为止。
2. 每次除法运算的余数即为二进制数的最低位,从低位到高位依次排列。
3. 将排列好的二进制数作为转换结果。
例如,将十进制数13转换为二进制数的过程如下:13 / 2 = 6 余16 / 2 = 3 余03 / 2 = 1 余11 /2 = 0 余1将余数从低位到高位排列得到二进制数1101,即十进制数13的二进制表示。
2.2 实验目标本实验的目标是设计一个程序,能够将用户输入的十进制数转换为二进制数,并且能够正确处理负数的模数转换。
3. 实验步骤3.1 环境搭建1. 在计算机上安装编程环境,如在Windows系统上安装Visual Studio。
2. 创建一个新的控制台应用程序项目。
3.2 实现模数转换功能1. 在程序中添加一个函数,用于将十进制数转换为二进制数。
2. 在函数中实现十进制转二进制的转换算法,可以使用循环语句来实现。
3. 处理负数的模数转换,可以通过将负数取绝对值后再进行转换,并在结果中添加负号。
3.3 运行和测试1. 编译和运行程序。
2. 输入一个十进制数,并验证转换结果是否正确。
3. 测试负数的模数转换,确保程序能够正确处理负数。
4. 结果与讨论经过测试,本实验中设计的模数转换程序能够正确将十进制数转换为二进制数,并且能够处理负数的模数转换。
该程序在输入一个十进制数后可以立即给出转换结果,且结果准确无误。
试验六AD转换实验和DA转换实验

试验六AD转换实验和DA转换实验试验六:AD 转换实验和 DA 转换实验在电子技术的世界里,AD 转换和 DA 转换是两个非常重要的概念和实验。
它们就像是电子信号世界的“翻译官”,将模拟信号和数字信号相互转换,为各种电子设备的正常运行和数据处理提供了关键的支持。
AD 转换,也就是模拟数字转换(AnalogtoDigital Conversion),其作用是把连续变化的模拟信号转换为离散的数字信号。
想象一下,我们生活中的声音、光线、温度等各种物理量都是模拟信号,它们的变化是连续且平滑的。
但计算机和数字系统只能处理数字信号,所以就需要 AD 转换器来把这些模拟量转换成计算机能够理解和处理的数字形式。
AD 转换的过程通常包括采样、量化和编码三个步骤。
采样就像是在连续的信号流中按一定的时间间隔“抓取”瞬间的值;量化则是把采样得到的值划分到有限的离散级别中;最后编码就是把量化后的级别用数字代码表示出来。
在进行 AD 转换实验时,我们会用到专门的 AD 转换芯片,比如常见的 ADC0809 。
以 ADC0809 为例,它是 8 位逐次逼近型的 AD 转换器。
在实验中,我们需要给它提供合适的输入模拟信号,设置好时钟频率、参考电压等参数,然后通过读取转换后的数字输出,来验证转换的准确性和精度。
比如说,我们要测量一个 0 5V 的模拟电压信号,将其输入到ADC0809 中。
通过设置合适的时钟和参考电压,当模拟电压为 25V 时,理想情况下转换后的数字输出应该接近 128(因为 25V 是 5V 的一半,8 位数字量的中间值就是 128)。
但实际中可能会存在一定的误差,这就需要我们分析误差的来源,是由于芯片的精度限制,还是输入信号的噪声干扰,或者是电路设计的不合理。
DA 转换,即数字模拟转换(DigitaltoAnalog Conversion),则是与AD 转换相反的过程,它把数字信号转换回模拟信号。
DA 转换在很多领域都有重要应用,比如音频播放、自动控制、通信系统等。
串行模数数模转换实验报告

串行模数/数模转换实验报告一.实验目的:1、掌握 TLC549同步串行接口的ADC模块的特性、编程原理,了解TLC5620的4种时序图以及产生波形幅度的计算方法。
2、能实现TLC549、TLC5620与MCS-51单片机的连接,分别进行数据采集和波形观测。
3、能采用Proteus ISIS软件进行串行模数转换的电路设计。
4、能运用MCS-51单片机汇编语言进行串行模数/数模转换实验的软件设计。
二.实验要求:1、将TLC549 与MCS-51单片机进行连接,利用汇编语言编写出数据采集程序,将转换的模拟电压以二进制的形式通过单片机的P0口输出显示。
1)将单片机的P0口与LED1~LED8连接起来,作为输出显示。
由于LED采用灌电流方式驱动,所以要将数据取反后再输出显示,以获得“正逻辑”效果2)利用P1口与TLC549的控制信号进行连接,TLC549的基准电压REF+端与基准电压+5V相连,将电位器的上端连接VCC、下端连接GND,抽头与TLC549的模拟输入ANIN连接。
在运行程序时,不断地调节电位器,使其抽头电压连续变化,通过LED1~LED8的状态观察ADC转换的结果。
3)运用Proteus ISIS软件完成串行模数转换实验的硬件电路设计。
4)实现KeilC与Proteus软件的联调。
2、设计软件程序,用单片机的I/O口控制TLC5620实现D/A转换,使其通道1产生一个三角波,而通道2产生一个和通道1周期、幅度均相同的方波。
1)短接B7区的电源供给跳线JP16,调节B7区的电位器W3,使其输出接线柱Verf的电压为2.6V。
2)将A2区P16、P17、T0、T1分别连接到B9区的CLK、DAT、LDAC、LOAD,将B7区Verf连接到B9区REF接线柱,短接B9区电源跳线JP13。
3)运行光盘中的相应程序,用双踪示波器的两个探头观察DACA、DACB输出的波形。
三.流水灯硬件电路图四.软件程序1. 串行模数实验程序流程图2.程序清单 1) 串行模数:SDO BIT P1.0 ;数据输出CS BIT P1.1 ;片选SCLK BIT P1.2 ;时钟ORG 8000HAJMP MAINORG 8100HMAIN: MOV SP,#60HLOOP: ACALL TLC549_ADCCPL A ;累加器A取反MOV P0,A ;数据给P0口ACALL DELAYSJMP MAINTLC549_ADC: PUSH 07HCLR A ;清零CLR SCLKMOV R6,#08H ;计数器赋初值CLR CS ;选中TLC549LOOP1:SETB SCLK ;SCLK置位,数据输出NOPNOPMOV C,SDORLC A ;累加器A循环左移CLR SCLK ;SDO=0,为读出下一位数据作准备 NOPDJNZ R6,LOOP1 ;R6-1→R6,判断R6=0SETB CS ;禁止TLC549,再次启动AD转换 SETB SCLKPOP 07HRETDELAY: PUSH 00HMOV R0,#00HDJNZ R0,$POP 00HRETEND2)串行数模:SCLA BIT P1.6SDAA BIT P1.7LOAD BIT P3.5LDAC BIT P3.4VOUTA DATA 30HVOUTB DATA 31HORG 8000HAJMP MAINORG 8100HMAIN:MOV SP,#60HNOPCLR SCLACLR SDAASETB LOADSETB LDACMOV R3,#0A2HMOV R4,#00HMOV VOUTA,#00HMOV R5,#0A2HMOV R6,#00HMOV VOUTB,#00HDACHANG:MOV R1,#01HMOV R2,VOUTALCALL DAC5620DJNZ R3,CONTINUEAMOV R3,#0A2HMOV A,R4CPL AMOV R4,ACONTINUEA:CJNE R4,#OFFH,CONTINUEB DEC R2SJMP CONTINUEC CONTINUEB:INC R2CONTINUEC:MOV VOUTA,R2MOV R1,#03HMOV R2,VOUTBLCALL DAC5620DJNC R5,CONTINUEDMOV R5,#042HMOV A,R6CPL AMOV R6,A CONTINUED:CJNE R6,#0FFH,CONTINUEE MOV R2,#OA2HSJMP CONTINUEF CONTINUEE:MOV R2,#00H CONTINUEF:MOV VOUTB,R2LJMP DACHANG DAC5620:MOV A,R1CLR SCLAMOV R7,#08HLCALL SENDBYTEMOV A,R2CLR SCLAMOV R7,#08HLCALL SENDBYTECLR LOADSETB LOADCLR LDACSETB LDACRETSENDBYTE:SETB SCLARLC AMOV SDAA,CCLR SCLADJNZ R7,SENDBYTE RETEND五.实验结果观察实验结果,可知道通过调节电位器,数字量在对应的发生改变。
数模和模数转换

自动控制系统
通过模数转换,实现模拟信号与数字信号之 间的转换,构建自动控制系统。
05
数模和模数转换的挑战与未 来发展
精度和分辨率的提高
总结词
随着技术的发展,对数模和模数转换 的精度和分辨率的要求越来越高。
详细描述
为了满足高精度和分辨率的需求,需 要采用先进的工艺、算法和校准技术, 以提高转换器的性能。这涉及到对噪 声抑制、非线性校正等方面的深入研 究和技术创新。
重要性
实现数字信号和模拟信号之间的相互转换,使得数字系统和模拟系统能够进行有效 的信息交互。
在信号处理中,数模和模数转换是实现信号滤波、放大、调制解调等操作的基础。
在通信中,数模和模数转换是实现信号传输、编解码、调制解调等操作的关键环节。
历史背景
早期的数模和模数转换器主要依 赖于机械和电子元件,精度和稳
于长距离传输和低功耗应用。
Σ-Δ DAC
03
Σ-Δ DAC采用过采样和噪声整形技术,具有高分辨率和低噪声
的特点,适用于音频和其他高精度应用。
DAC的应用
音频处理
DAC可将数字音频信号转换为模拟音频信号,用 于音频播放和处理。
仪器仪表
DAC可用于将数字信号转换为模拟信号,实现各 种物理量的测量和输出。
测量仪器
ADC在测量仪器中应用广泛,如电压表、电 流表、温度计等。
控制系统
ADC在控制系统中用于实时监测和调节系统 参数,如工业控制、汽车电子等。
音频处理
ADC在音频处理中用于将模拟音频信号转换 为数字信号,便于存储、传输和处理。
04
数模和模数转换的应用场景
音频处理
第6章数模和模数转换讲述

6.2.2 D/A转换器的构成
1.二进制权电阻网络 D/A 转换器
+VREF IREF R S3 I3 2R S2 I2 4R S1 I1 8R S0 i - + d3 d2 d1 d0 uo I0 iF RF
不论模拟开关接到运算放大器的反相输入端(虚地)还是接到地, 也就是不论输入数字信号是1还是0,各支路的电流不变的。
2.倒 T 型电阻网络 D/A 转换器
+VREF IREF A I' 3 2R S3 I3 R 2R S2 B I' 2 I2 C R 2R S1 D I' 1 I1 R 2R S0 I' 0 I0 2R iF - i + d3 d2 d1 d0 uo RF
①分别从虚线A、B、C、D处向右看的二端网络等效电阻都是R。 ②不论模拟开关接到运算放大器的反相输入端(虚地)还是接 到地,也就是不论输入数字信号是 1还是0,各支路的电流不变。
第6章 数模和模数转换
学习要点:
• 数模和模数转换的基本原理
2019/2/4
华东交通大学电气学院 付智辉
1
第6章 数模和模数转换
6.1 概述
6.2 D/A转换器
6.3 A/D转换器 退出
2019/2/4
华东交通大学电气学院 付智辉
2
6.1 概述
能将模拟量转换为数字量的电路称为模数转换器,简称 A/D转换器或ADC;能将数字量转换为模拟量的电路称为 数模转换器,简称D/A转换器或DAC。ADC和DAC是沟通 模拟电路和数字电路的桥梁,也可称之为两者之间的接口。
D/A转换器的转换特性,是指其输出模拟量和输入数字量之 间的转换关系。图示是输入为3位二进制数时的D/A转换器的 转换特性。理想的 D/A转换器的转换特性,应是输出模拟量 与输入数字量成正比。即:输出模拟电压 uo=Ku×D或输出模 拟电流io=Ki×D。其中Ku或Ki为电压或电流转换比例系数,D 为输入二进制数所代表的十进制数。如果输入为 n 位二进制 数dn-1dn-2…d1d0,则输出模拟电压为:
南昌大学计算机控制实验报告数/模转换实验汇编
南昌大学实验报告学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期:实验成绩:实验一数/模转换实验一.实验要求掌握DAC0832芯片的性能、使用方法及对应的硬件电路。
编写程序控制D/A输出的波形,使其输出周期性的三角波。
二.实验说明电路实现见主板模块B1,具体说明请见用户手册。
DAC0832的片选CS0832接00H,观察输出端OUTl(B1部分)产生三角波由数字量的增减来控制,同时要注意三角波要分两段来产生。
三.实验步骤1、接线:此处无需接线。
2、示例程序:见Cpl源文件,程序流程如下图所示。
3、运行虚拟示波器方法:打开LCAACT软件中“设置”一>“实验机”,将其中的程序段地址设为8100,偏移地址0000。
然后选择“设置”一>“环境参数”一>“普通示波”,选择“工具”一>“加载目标文件”,本实验加载C:\AEDK\LCAACT\试验软件\CPI.EXE,然后选择在“工具”栏中“软件示波器”中“普通示波”,点击开始示波器即程序运行。
以后每个实验中的虚拟示波器运行方法同上。
只是加载的程4、现象:程序执行,用虚拟示波器(CHl)观察输出点OUT(B1数模转换中),可以测量到连续的周期性三角波。
通过实验结果的图片,我们可以知道得出来的三角波的幅值为U=(3.01V+1.95V)=4.96V。
T=1.3s模拟输出来的幅值和我们输入的5V有一定的偏差。
相对误差为(5-4.96)/5=0.8%,因为0832是8为的,所以分辨率为1/256即0.004。
相比较一下本次实验的误差只有0.8%,相当于掉了两个单位的分辨率。
在允许的误差范围之内。
所以本次实验的结果还算是比较成功的。
四、实验小结通过本次实验,我对数模转换的知识理解得更加透彻,以及如何使用DAC0832进行数模转换把数字量转换为模拟量并以三角波形式输出。
还知道实践和理论是有一定差距的南昌大学实验报告学生姓名:学号:专业班级:实验类型:■验证□综合□设计□创新实验日期:实验成绩:实验二模/数转换实验一.实验要求了解A/D芯片ADC0809转换性能及编程。
数模、模数转换
数/模、模/数转换8.1 实训概要D/A转换和A/D转换是计算机与外部进行数据交换的必要的手段。
在D/A转换和A/D转换过程中转换精度、转换速度都是很重要的技术指标。
目前单片DAC的转换时间约为105微秒;单片ADC的转换时间约为100微秒;8.1.1实训总体要求通过实训,要进一步理解D/A转换器和A/D转换器的工作原理;进一步理解D/A转换器和A/D转换器的主要技术指标;要进一步理解D/A转换器和A/D转换器的分类、特点和用途。
8.1.2 实训重点通过实训,要了解D/A转换器的转换特性和A/D转换器的转换特性;熟悉D/A转换器和A/D转换器的使用方法,了解DAC0832、ADC0809、LM324等芯片的性能特点、电路接线和参数测量方法。
8.1.3实训知识准备1.预习数/模转换芯片DAC0832的工作原理和性能特点;2.预习集成运算放大器LM324的工作原理和性能特点;3.预习模/数转换芯片ADC0809的工作原理和性能特点。
8.1.4实训考核标准1.了解数/模转换芯片DAC0832的结构特点及工作原理;2.了解数/模转换芯片DAC0832的接线方法和参数的测定方法;3.了解模/数转换芯片ADC0809的结构特点及工作原理;4.了解模/数转换芯片ADC0809的接线方法和参数的测定方法。
8.2 实训案例操作分析8.2.1案例题目:锯齿波发生器8.2.2实训目的熟悉数/模转换芯片DAC0832的特性和使用方法;通过锯齿波发生器的实训进一步了解D/A转换器的应用。
8.2.3实训原理数/模转换芯片DAC0832是一个8位的D/A转换器,它有两种工作方式:单缓冲器方式和双缓冲器方式。
单缓冲器方式适用于只有一路模拟量输出的场合或几路模拟量不是同时输出的场合;双缓冲器方式则适用于几路模拟量同时输出的场合。
8.2.4实训仪器和设备S303-4型(或其它型号)数字电路实训箱一只;SR8(或其它型号)双踪示波器一只;直流稳压电源一台;数/模转换芯片 DAC0832 1片;集成运算放大器 LM324 1片;四位计数器 7493 2片。
数模模数转换原理
到变从。地参,也考就电是压不论端输输入入数字的信电号流是1为还:是0I,R各EF支=路的V电RRE流F REF
I'3 R
I'2 R
I'1 R
I'0
+VREF
I3
I2
I1
I0
2R
2R
2R
2R
2R
S3
S2
S1
S0
iF RF
-
i
uo
+
d3
拟电流io=Ki×D。其中Ku或Ki为电压或电流转换比例系数,D
为输入二进制数所代表的十进制数。如果输入为n位二进制 数dn-1dn-2…d1d0,则输出模拟电压为:
uo = Ku (dn−1 ⋅ 2n−1 + dn−2 ⋅ 2n−2 + L + d1 ⋅ 21 + d0 ⋅ 20 )
2.D/A 转换器的主要技术指标
FF5 1D
Q4
Q4
&
C1
FF4 Q3 1D
&
C1
FF3 1D
Q2
Q2 C1
FF2 1D
Q1
&
d1 VREF/14≤ui < 3VREF/14
&
时,7个比较器中只有C1
输出为1,CP到来后,只
有 触 发 器 FF1 置 1 , 其 余 触发器仍为0。经编码器
编码后输出的二进制代
& d0 码为d2d1d0=001。
S0
i
设RF=R/2
iF RF
- uo
+
d3
d2
d1
电路数模转换与模数转换理解模拟与数字信号的转换
电路数模转换与模数转换理解模拟与数字信号的转换在现代电子技术中,模拟信号和数字信号的转换是非常重要的。
模拟信号是连续变化的,它可以应用于音频、视频和传感器等领域。
而数字信号是离散的,能够以二进制形式表示,广泛应用于计算机和通信系统。
为了实现模拟和数字信号之间的转换,人们发展了数模转换和模数转换技术。
1. 数模转换数模转换是将数字信号转换为模拟信号的过程。
在这个过程中,将离散的数字信号转换为连续变化的模拟信号。
数模转换器(DAC)是实现这一转换的关键设备。
数模转换的基本原理是根据数字信号的大小,控制输出信号的幅度。
数模转换器内部存储有一系列的数字值,通过选择合适的数字值,即可获得所需的输出模拟信号。
数模转换器通常包括采样和保持电路、数字/模拟转换电路和滤波电路。
2. 模数转换模数转换是将模拟信号转换为数字信号的过程。
在这个过程中,将连续变化的模拟信号转换为离散的二进制数字信号。
模数转换器(ADC)是实现这一转换的关键设备。
模数转换的基本原理是通过对模拟信号进行采样和量化,再将采样和量化数据编码为二进制形式。
模数转换器通常包括滤波电路、采样电路、量化电路和编码电路。
3. 模拟与数字信号的转换应用模拟与数字信号的转换应用广泛,下面以音频和通信领域为例进行讨论。
3.1 音频领域在音频领域,模拟与数字信号的转换被广泛应用于音频播放和录制设备中。
通过ADC将声音转换为数字信号后,可以方便地进行数字处理和存储。
而通过DAC将数字信号转换为模拟信号后,可以驱动扬声器产生声音。
3.2 通信领域在通信领域,模拟与数字信号的转换被广泛应用于调制解调器和通信系统中。
调制解调器通过模数转换将模拟信号转换为数字信号用于传输,再通过数模转换将数字信号转换为模拟信号用于接收。
这种方式可以有效地提高通信系统的抗干扰性能和信息传输速率。
总结:电路中的数模转换和模数转换是实现模拟与数字信号转换的重要技术。
数模转换器和模数转换器在音频、通信等领域具有广泛的应用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验6 数模转换(DAC)实验 一、实验目的 1.掌握数模转换芯片TLC7528的原理及使用方法; 2.掌握ICETEK-DM6437-A板扩展的DAC模块的原理和具体实现方式; 3.掌握数模转换的程序设计。
二、实验设备 1.PC 兼容机; 2.WIN7 操作系统; 3.Code Composer Studio v5; 4.ICETEK-DM6437-A实验箱(如选择脱离实验箱测试,则配备ICETEK-XDS100v2+仿真器和ICETEK-DM6437-A,+5V电源); 5.标准USB A口转Mini口电缆一条; 6.示波器一台(20M或以上)。
三、实验原理 1. 数模(D/A)转换 数模(D/A)转换:将数字信号转换为相应的模拟信号。实现数模转换的电子器件称为数模转换器件(DAC)。 数模转换用途:数模转换可以帮助计算机更好地与受控对象进行接口,按照受控对象的特点来控制它们。可以应用于电脑控制电子乐曲(实现各种音高音色)、照明(均匀缓慢变化)、温度调节(逐渐升温和降温)、电机控制等。 举例来说:通过我们前面实验的学习,我们了解了DM6437控制发光二极管,可以实现其点亮或者熄灭,对于发光二极管这种设备来说,点亮/熄灭正好对应计算机的数字量输出,因此可以不需要DAC器件辅助,也能完成。当我们需要调节发光二极管的亮度时,就会遇到一些困难,发光二极管无法实现半开半闭的中间状态,于是我们让计算机以很快的频率输出开和关,实现类似于中间状态的半明半暗的效果,由于LED这种器件可以适合于高速的开关操作,所以这种效果还是可以接受的,人眼分辨不了非常高速的闪烁,但仍然会造成一定困扰,比如发光二极管台灯闪烁的速率相对较低时会使眼睛在不知不觉中出现视疲劳,因此市场上还出现了提供更高频率的“护眼”台灯。如果使用DAC器件,能控制流过发光二极管的电流稳定(而不是时开时断),这样产生的照明效果将也是稳定的,不会闪烁。 2. AD转换芯片-TLC7528 TLC7528可以将收到的8位数字信号转换成相应的模拟输出,每次转换最高速率是0.1微秒,可以支持两路模拟量输出。其接口管脚定义如下图。
其中,DB7~DB0管脚用于输入要转换的数字量(8位二进制数据),CS和WR的信号负责提供转换开始时刻,DACA/DACB控制转换后结果的输出管脚是A通道还是B通道,REFA、RFBA、OUTA属于A通道输出管脚及相关控制信号,同样地REFB、RFBB、OUTB属于B通道。 3.TLC7528与DM6437的接口 TLC7528与DM6437的接口比较简单,请参看下面的接口示意图。
图中左侧矩形框代表DSP,右侧矩形框是TLC7528。DSP的数据线(Data Bus)信号D0~D7直接连接到TLC7528,DSP的地址线(Address Bus)信号A0~A15,连同写信号(WR)、选择信号(IORQ),生成TLC7528所需的片选信号(CS)、通道选择信号(DACA/DACB)、写使能信号(WR)。 ICETEK-DM6437-A使用两个外部扩展地址来软件连接TLC7528:0x44004000和0x44004001。当ICETEK-DM6437-A中的程序给这两个地址发送(写)数据时,TLC7528的片选信号(CS)、写信号(WR)有效,并且通道选择信号与地址线最低位提供(因此地址0x44004000对应通道A,0x44004001对应通道B),于是TLC7528开始锁存DB0~DB7的输入信号,并将它转换成模拟量输出到输出管脚A或B。由于在ICETEK-DM6437-A板上的TLC7528的电源是+5V的,所输出的信号范围是0V~+4V,对应DB7:DB0的数字量00H~FFH。ICETEK-DM6437-A的DA输出信号连接到扩展插座P2的Pin25(DACA)和Pin26(DACB)。 举例:我们想在ICETEK-DM6437-A板的P2插座Pin25针(对应通道A)上输出1.2V的电压信号,则可以设计程序,向地址0x44004000写入75,经过0.1us的转换时延后,测量P2的Pin25管脚,它和模拟输出地(AGND)管脚(P2的Pin34)之间的电压即为1.2V。计算过程(理想过程):8位DAC可转换的数字量范围是0~255共256个电压;DAC最低输出0V,最高输出+4V;4V分成255份,每份对应4V/255=0.016V;要实现1.2V输出,则要计算输出几份电压:1.2V/0.016V=75。 4.实验程序流程图
四、实验步骤 1.实验准备 实验程序:本实验的程序已经安装在C:\ICETEK\ICETEK-DM6437-A\Lab0207-DA目录中。如未发现实验程序目录或相关实验程序文件,请重新安装ICETEK-DM6437-A板实验。 仿真连接:检查ICETEK-XDS100仿真器插头是否连接到ICETEK-DM6437-KB板的仿真插头J1。确保正确连接,所有插针都插入到插座之中。使用实验箱附带的USB电缆连接PC机USB插座和仿真器USB接口插座,ICETEK-XDS100仿真器上红色电源指示灯点亮。 连接示波器:将示波器探头地线连接到实验箱右下角的AGND测试点,接通示波器电源。 连接实验箱电源:关闭实验箱左上角电源开关后,使用实验箱附带的电源线连接实验箱左侧电源插座和电源接线板。 接通电源:将实验箱左上角电源总开关拨动到“开”的位置,将实验箱右下角控制ICETEK-DM6437-A板电源的评估板电源开关拨动到“开”的位置。接通电源后,ICETEK-DM6437-A板上电源模块指示灯(红色)D2点亮。 2.启动CCS:点击桌面上相应图标启动CCS5 3.导入实验工程 在CCS5窗口中选择菜单项Project->Import Existing CCS Eclipse Project 点击Select search-directory右侧的Browse按钮 选择C:\ICETEK\ICETEK-DM6437-A\Lab0207-DA,点击“确定”按钮 点击Finish按钮 CCS5窗口左侧的工程浏览窗口中会增加一项:Lab0207-DA,点击它使之处于激活状态,项目激活时会显示成粗体的Lab0207-DA [Active - Debug] 展开工程,双击其中的main.c和DA.c打开这两个源程序文件,浏览内容 main.c 实验程序入口函数main()位于此文件[52行] 首先调用EVMDM6437_init()对ICETEK-DM6437-A进行初始化工作。这个函数属于ICETEK-DM6437-A的板级支持库(BSL),在编译连接时使用这个库文件:C:\ICETEK\ICETEK-DM6437-A\common\lib\Debug\evmdm6437bsl.lib,EVMDM6437_init()函数位于源文件C:\ICETEK\ICETEK-DM6437-A\common\lib\evmdm6437.c 初始化完成后,main函数调用TEST_execute,启动指向位于DA.c中的函数DA() DA.c 此文件定义了对应ICETEK-DM6437-A板上TLC7528的通道A和通道B的两个无符号字节型寄存器DA_DATA1和DA_DATA2,其地址取值见前面实验原理所述。 通过循环向这两个寄存器不断发送要转换的数据 ► 通道A的数据取值从0开始变到255,然后又回到0,再增加,每次增加1。也就是说通道A先输出0V,然后每次循环增加4V/255=0.016V,直到增加到4V为止,这样得到的波形,将会是个锯齿形,最低点0V,然后斜坡增加电压到4V,然后马上降到0V再逐渐增加...... ► 通道B的初始值是100,DA_DATA2=100;则DACB通道首先会输出100*0.016V=1.6V,然后经过一个延时后,输出0V,DA_DATA2=0;则,随着循环的进行,在通道B上会出现方波,方波的最高电压1.6V最低0V,高电平和低电平延续的时长相同。这是这个程序能输出的频率最高的波形了。 为了保证TLC7528有足够的时间将数据转换成模拟输出(最小转换时间0.1us),程序中用Delay函数实现延时等待。 程序利用循环交通在两个DA通道上输出模拟信号,这些模拟信号在下一次转换之前会一直保持输出不变。 4.编译程序:选择菜单项Project->Build Project,注意观察编译完成后,Console窗口没有编译错误提示,最终显示'Finished building target: da.out' 5.启动Debug并下载程序:选择菜单项Run->Debug 6.运行程序:在Debug窗口中选择菜单项Run->Resume 7.测量输出信号 用示波器探头测量实验箱右下角测试点DAC1和DAC2的波形 观察波形的最大值和最小值 波形的形状及变化规律 测量波形的频率 将测得的数据与前面实验原理和实验步骤中的分析计算进行交换对照验证 8.自由测试:令DA通道B的高电平输出在1.2V(原来程序设置在1.6V) 停止程序运行:在Debug窗口中选择菜单Run->Suspend 退出Debug方式:在Debug窗口中选择菜单Run->Terminate 修改DA.c中第9行的DA_DATA2=100;改成DA_DATA2=75; 具体取值计算见实验原理部分 重新编译程序、下载运行、测量DAC2的波形,看是否按照意图波形有所改变 9.结束实验 停止程序运行:在Debug窗口中选择菜单Run->Suspend 退出Debug方式:在Debug窗口中选择菜单Run->Terminate 退出CCS5 关闭实验箱总电源:将实验箱左上角的实验箱总电源设置到“关”的状态 关闭示波器电源后摘除探头 五、实验结果及分析 测量的结果有可能与下面的有少量的不同,这些不同有可能是测量设备、实验室电环境、测量时环境温度、测量手段及运用等方面差异造成的,但结果不应存在很大差别。 1.DAC1波形
DA波形最小值:-40mV。说明ICETEK-DM6437-A板的AGND与DA输出的地存在少量误差。