单片机应用技术项目式教程课件:DAC转换及其应用_第1页
单片机应用技术项目式教程课件:DAC转换及其应用_第2页
单片机应用技术项目式教程课件:DAC转换及其应用_第3页
单片机应用技术项目式教程课件:DAC转换及其应用_第4页
单片机应用技术项目式教程课件:DAC转换及其应用_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机应用技术项目式教程—基于Proteus和KeilCSINGLE-CHIP

COMPUTER

APPLICATION

TECHNOLOGY

DAC转换及其应用SAR型ADC的工作原01STC15W4K32S4单片机的基于PWM模块的DA转换02STC15W4K32S4单片机的外扩TLC5615方案03应用STC15W4K32S4单片机生成三角波和正弦波04知识要点数字电压表的设计掌握STC15W4K32S4单片机的基于PWM的DA设计方法01掌握STC15W4K32S4单片机的TLC5615的驱动方法02掌握应用STC15W4K32S4单片机和TLC5615生成常见波形的方法03学习要求数模转换器(DAC)是将数字量转换成模拟量,完成这个转换的器件叫做数模转换器(DigitaltoAnalogConverter)。常见的DAC有8位,10位,12位,16位等,从结构上说,有权重电阻型、R-2R、Delta-Sigma等结构。集成DAC的主要技术指标可以分为静态指标和动态指标。数模转换器(DAC)是将数字量转换成模拟量,完成这个转换的器件叫做数模转换器(DigitaltoAnalogConverter)。常见的DAC有8位,10位,12位,16位等,从结构上说,有权重电阻型、R-2R、Delta-Sigma等结构。集成DAC的主要技术指标可以分为静态指标和动态指标。静态指标05增益误差07零点误差09DNL是微分线性度02满量程输出电压UFSR/电流IFSR08积分非线性误差10D/A的温度灵敏度0304转换精度分辨率01最小输出电压ULSB/电流ILSB06失调误差动态指标动态指标D/A转换时间转换速率9.1基于PWM的DAC转换

当MCU需要产生模拟信号时,通常采用集成或独立的D/A转换器实现。但是在要求低成本的场合,可以通过PWM信号产生系统需要的直流和交流信号。9.1.1PWM原理PWM(PulseWidthModulation),脉冲宽度调制,它是通过调节脉冲占空比的变化来调节直流幅值、能量等的变化。占空比就是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比,例如方波的占空比就是50%。图9.3PWM原理9.1基于PWM的DAC转换9.1.2PWM设计原理图图9.4基于STC15W4K单片机的PWMDAC的设计为了提高精度和反应速度,设计STC15W4K的输出PWM波频率为100KHz,使用其内部的RC振荡器,程序下载时候频率设定为12MHz。9.1基于PWM的DAC转换9.1.2PWMDAC设计

选用PWM3作为输出,输出引脚为P2.1,它对应的定时器1的初值为0,当系统时钟为12MHz,输出100KHz的PWM波,定时器2的初值为120。#include<system.h>#defineSYSTEMCLOCK12000000L//系统时钟为12MHz#definePWMCLOCK100000L//PWM频率为100KHz#defineFreValueSYSTEMCLOCK/PWMCLOCK//PWM定时器2的初值

voidFlashDuty(unsignedcharDuty)//调整占空比{P_SW2|=0x80;//使能访问位于扩展RAM中的特殊功能寄存器PWM3T2H=((unsignedint)(FreValue*1.0*Duty/100))>>8;//PWM3的T2定时器高字节PWM3T2L=(unsignedint)(FreValue*1.0*Duty/100);//PWM3的T2定时器低字节P_SW2&=~0x80;//禁止访问位于扩展RAM中的特殊寄存器}

9.1基于PWM的DAC转换9.1.2PWMDAC设计voidFlashFreq(unsignedintFreVal)//调整频率{P_SW2|=0x80;PWMCH=FreVal>>8;//获取频率的高8位PWMCL=FreVal;//获取频率的低8位P_SW2&=~0x80;}voidmain(void){ unsignedcharduty=0;P2M1=0x00;P2M0=0x00;P_SW2|=0x80;PWM3T1H=0;PWM3T1L=0;PWM3CR=0;PWMCR|=0x02;PWMCKS=0;P_SW2&=~0x80;9.1基于PWM的DAC转换9.1.2PWMDAC设计FlashFreq(FreValue);//设定PWM频率FlashDuty(10);//初始化占空比PWMCR&=~0x40;//当PWM3的计数器为0时候,禁止中断PWMCR|=0x80;//运行PWM while(1)//三角波输出{ FlashDuty(duty); //delay_ms(10); duty++; if(duty==101) duty=0;}}9.1基于PWM的DAC转换9.1.2PWMDAC仿真图图9.5PWMDAC的模拟输出从图9.5中可以看出,锯齿波的下降沿处出现放电现象,不够垂直。9.2基于TCL5615的锯齿波和正弦波的设计TLC5615是德州仪器公司生产的一款10位D/A转换器,单路电压输出,输出电压可达到基准电压的两倍,可带最小2K欧姆的负载。芯片带有上电复位功能,采用四线制串行总线接口,兼容SPI通信,最大转换时间为12.5微秒(输入从0x000变为0x3ff或者从0x3ff变为0x000),还能多片级联使用。图9.6TLC5615的原理图参数含义最小值标准值最大值单位tsu(DS)建立时间,DIN准好到SCLK为高45

nSth(DH)SCLK为高后DIN保持时间0

nSth(CSS)建立时间,CS为低到SCLK为高1

nStsu(CS1)建立时间,CS为高到SCLK为高50

nSth(CSH0)保持时间,SCLK为低到CS为低1

nSth(CSH1)保持时间,SCLK为低到CS为高0

nStw(CS)片选为1(不使能)最小时间20

nStw(CL)脉冲为低最小时间25

nStw(CH)脉冲为高最小时间25

nS表9.3TLC5615参数说明9.2基于TCL5615的锯齿波和正弦波的设计图9.7TLC5615时序图9.2.1TLC5615的编程要点输入量(二进制)输出/V1111__1111__11(00)2∗Vrefin∗1023/10241000_0000_01(00)2∗Vrefin∗513/10241000_0000_00(00)2∗Vrefin∗512/10240111__1111__11(00)2∗Vrefin∗511/10240000_0000_01(00)2∗Vrefin∗1/10240000000000(00)2∗Vrefin∗0/1024表9.2输入和输出的关系9.2.2锯齿波发生器的设计图9.8硬件设计原理图如图9.8,TLC5615电源电压为5V,电压基准为LM385,它产生1.25V的带隙基准电压#include<system.h>#include<intrins.h>sbitsclk=P0^0;//定义串行时钟sbitcs=P0^1;//定义片选端sbitdin=P0^2;//定义数据输入端sbitdout=P0^3;//定义数据输出端

#definecshcs=1//宏定义,为了方便移植#definecslcs=0#definesclkhsclk=1#definesclklsclk=0#definedinhdin=1#definedinldin=0#defineGE1ns_nop_();//th(CSH0)#defineGE45ns_nop_();//tsu(DH)#defineGE25ns_nop_();//tw(CH),tw(CL)#defineGE33ns_nop_();//tw(CS)>20ns;实践中建议大于tw(CS)+ts>=20nS+12.5us

unsignedintdacdata=0,mid;unsignedchari;

main() { CLK_DIV&=~0x07;//systemclock=fosc/1@12MHz P0M1=0x00;P0M0=0x00;//端口为上拉模式 P1M1=0x00;P1M0=0x00;

while(1){csh; dinh; GE33ns; dinl; GE1ns; csl; mid=dacdata<<6;for(i=1;i<=10;i++)//send10bitsDA{if(mid&0x8000) dinh; else dinl; GE45ns;//tsu(DH)sclk=1; GE25ns;//tw(CH)>=25nsmid<<=1; sclk=0; GE25ns;//tw(CL)>=25ns}or(i=1;i<=2;i++)//sendtwo0{ dinl; GE45ns;//tsu(DH) sclkh; GE25ns;//tw(CH)>=25ns sclk=0; GE25ns;//tw(CL)>=25ns} dacdata++;if(dacdata==0x400)dacdata=0;} }仿真结果图9.9仿真波形9.2.3正弦波发生器的设计图9.10正弦波发生器的硬件设计图9.11SPWM软件生成正弦波数组#include<system.h>#include<intrins.h>sbitsclk=P0^0;//定义对应的端口sbitcs=P0^1;//sbitdin=P0^2;//sbitdout=P0^3;//#definecshcs=1#definecslcs=0#definesclkhsclk=1#definesclklsclk=0#definedinhdin=1#definedinldin=0#defineGE1ns_nop_();//th(CSH0)#defineGE45ns_nop_();//tsu(DH)#defineGE25ns_nop_();//tw(CH),tw(CL)#defineGE33ns_nop_();//tw(CS)+tsts>12.5usunsignedintdacdata=0,mid;unsignedchari;//在ROM区生成对应的正弦波数组codeSinVal[200]={512,524,537,549,562,574,586,599,611,623,635,647,659,670,682,693,704,715,726,736,747,757,766,776,785,794,803,812,820,828,835,842,849,856,862,868,873,879,883,888,892,896,899,902,904,907,908,910,911,911,912,911,911,910,908,907,904,902,899,896,892,888,883,879,873,868,862,856,849,842,835,828,820,812,803,794,785,776,766,757,747,736,726,715,704,693,682,670,659,647,635,623,611,599,586,574,562,549,537,524,512,499,486,474,461,449,437,424,412,400,388,376,364,353,341,330,319,308,297,287,276,266,257,247,238,229,220,211,203,195,188,181,174,167,161,155,150,144,140,135,131,127,124,121,119,116,115,113,112,112,112,112,112,113,115,116,119,121,124,127,131,135,140,144,150,155,161,167,174,181,188,195,203,211,220,229,238,247,257,266,276,287,297,308,319,330,341,353,364,376,388,400,412,424,437,449,461,474,486,499};voidDAC_Conv(unsignedintdacdata){csh;dinh;GE33ns;dinl;GE1ns;csl; mid=dacdata<<6;

for(i=1;i<=10;i++)//send10bitsDA{if(mid&0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论