您所在位置: 网站首页 / 串行DA转换实验.doc / 文档详情
串行DA转换实验.doc 立即下载
2024-11-03
约3.8千字
约6页
0
1.8MB
举报 版权申诉
预览加载中,请您耐心等待几秒...

串行DA转换实验.doc

串行DA转换实验.doc

预览

免费试读已结束,剩余 1 页请下载文档后查看

10 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

实验一串行D/A转换实验
实验目的
1、了解串行D/ATLC5615的功能与特性
2、理解串行D/ATLC5615的工作时序
3、掌握串行D/ATLC5615驱动程序编程
实验仪器
单片机开发板、万利仿真机、稳压电源、计算机
实验原理
TLC5615功能与特性
TLC5615为美国德州仪器公司1999年推出的产品,是具有串行接口的数模转换器,其输出为电压型,最大输出电压是基准电压值的两倍。带有上电复位功能,即把DAC寄存器复位至全零。其特点有:
(1)10位CMOS电压输出;
(2)5V单电源供电;
(3)与CPU三线串行接口;
(4)最大输出电压可达基准电压的二倍;
(5)输出电压具有和基准电压相同极性;
(6)建立时间12.5μs;
(7)内部上电复位;
(8)低功耗,最大仅1.75mW。
TLC5615内部结构图如图4-34所示。










图4-34TLC5615内部结构图
TLC5615的时序
TLC5615接口时序兼容SPI、QSPI、WSPI、Microwire。如图4-35所示。








图4-35TLC5615接口时序图
当片选信号有效时,串行接口可以输入数据。从图可知看出,当SCLK的正脉冲锁存输入的数据。串行数模转换器TLC5615的使用有两种方式,即级联方式和非级联方式。如不使用级联方式,DIN只需输入12位数据。DIN输入的12位数据中,前10位为TLC5615输入的D/A转换数据,且输入时高位在前,低位在后,后两位必须写入数值为零的低于LSB的位,因为TLC5615的DAC输入锁存器为12位宽。如果使用TL5615的级联功能,来自DOUT的数据需要输入16位时钟下降沿,因此完成一次数据输入需要16个时钟周期,输入的数据也应为16位。输入的数据中,前4位为高虚拟位,中间10位为D/A转换数据,最后2位为低于LSB的位为零。如图4-36所示。

图4-36TLC5615数据格式
TLC5615串行D/A电路连接
图4-37TLC5615电路板
实验电路如图4-37所示。TLC5615的片选信号由P2口经74LS138译码后给定。时钟线,数据线分别接P1.7、P1.5。参考电源为2.048V,这时输出电压最大值是4.096V。当需要级联时,只需把TLC5615的第4脚接到第2片的数据输入,时钟端、片选端只需并联即可。

TLC5615驱动程序设计
TLC5615的驱动程序主要是用软件模拟SPI接口(也可以用STC12C系例单片机的SPI接口输出)。首先设计出一次串行输出8位的SPI子程序,然后再按TLC5615规定的格式输出数据。流程图如图4-38所示。
软件SPI
输出一位数据
产生正脉冲
传输完成?
返回
Y
N
非级连D/A输出
输出高2位数据
输出低8位数据
输出2位0
返回
级连D/A输出
输出高2位数据
输出低8位数据
输出2位0
返回
输出4位0













图4-38TLC5615驱动程序流程图

实验内容
	1、三角波程序:
#include<reg52.h>
#include<intrins.h>
#defineuintunsignedint
#defineucharunsignedchar
#defineCS_1P2=0xff;//片选信号关
#defineCS_0P2=0x00;	//开
sbitSCLK=P1^7;//时钟输入位
sbitDIN=P1^5;
uintDAvalue=0;//数据输入位
/*********************************
	DA转换函数
**********************************/
voidDA_conver(uintDAdata)
{
	uchari;
	DAdata<<=6;			//移除高6位
	CS_1;					//片选无效
	SCLK=0;
	DIN=0;
	CS_0;					//片选有效
	for(i=0;i<12;i++)		//移入12位数据
	{
		DIN=(bit)(DAdata&0x8000);//取最高位
		SCLK=1;
		DAdata<<=1;		//准备下一位
		SCLK=0;		//准备下一个上升沿
	}
	CS_1;				//将10位有效数据压入寄存器中进行D/A转换
	//P2=0xff;
	SCLK=0;	
}
/****************************************
	主函数
*****************************************/
voidmain()
{
//	DAvalue=512;
	while(1)
	{
		for(DAvalue=16;DAvalue<99
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

串行DA转换实验

文档大小:1.8MB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用