版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主编:李文华“十四五”职业教育国家规划教材经全国职业教育教材审定委员会审定制作波形发生器任务16
单片机的fosc=11.0592MHz,用P1.0、P1.1、P1.2三根I/O口线分别充当SPI总线的数据线、时钟线和片选线,外接带有SPI总线接口的串行D/A转换芯片TLC5615,用单片机控制TLC5615产生频率为100Hz、最大值为4V、最小值为0V的正弦波。任务要求相关知识1、D/A转换器的基础知识
⑴分辨率:输入数字量变化1时,对应的输出模拟量的变化量。分辨率反映了输出模拟量的最小变化值。设DAC的数字量的位数为n,则DAC的分辨率=满量程电压/(2n-1)。对于同等的满量程电压,DAC的位数越多,则分辨率越高。因此,分辨率也常用DAC的数字量的位数来表示。
⑵转换时间:从数字量输入至DAC开始到DAC完成转换并输出对应的模拟量所需要的时间。转换时间反映了DAC的转换速度。
⑶满刻度误差:数字量输入为满刻度(全1时),实际输出的模拟量与理论值的偏差。2.TLC5615的应用特性TLC5615是TI公司生产的10位串行电压输出型D/A转换器,数据更新率高达1.21MHz,采用+5V单电源供电,最大功耗为1.75mW,具有简化的SPI总线接口,转换结果采用缓冲电压输出,可变输出电压为0~5V,最大线性误差为±1/2LSB。(1)TLC5615的引脚功能引脚分布如图串行数据输入串行时钟输入片选级联数据输出模拟地参考电压输入转换电压输出电源电压输入2.TLC5615的应用特性⑵TLC5615与单片机的接口电路TLC5615的时钟脚、片选脚、数据输入脚分别与单片机的I/O口线相接2.TLC5615的应用特性⑶TLC5615的内部结构
由16位的移位寄存器、10位的DAC寄存器、D/A转换器DAC、2倍电压放大器、控制逻辑等几部分组成。16位的移位寄存器是TLC5615与外部交换数据的寄存器,在CS、SCLK的作用下,DIN引脚输入的数据被移入16位移位寄存器,同时将移位寄存器内部的数据从DOUT引脚移出。数据移位的方向是高位在先低位在后。高4位无效,可为任意数,低2位为0,中间的10位(D2~D11位)为DAC转换代码。单片机向TLC5615写数时(数据移入TLC5615),每次写入的数据可为12~16位中的任意一种形式,常用的是一次写入12位或者16位;如果要同时向TLC5615写数和读数,则每次传输的数位必须是16位。2.带有SPI接口的D/A转换器TLC5615的应用特性⑶TLC5615的内部结构从上图可以看出:①16位的移位寄存器是TLC5615与外部交换数据的寄存器,在
、SCLK的作用下,DIN引脚输入的数据被移入16位移位寄存器,同时将移位寄存器内部的数据从DOUT引脚移出。数据移位的方向是高位在先低位在后。②在16位移位寄存器中,高4位无效,可为任意数,低2位为0,中间的10位(D2~D11位)为DAC转换代码。单片机向TLC5615写数时(数据移入TLC5615),每次写入的数据可为12~16位中的任意一种形式,常用的是一次写入12位或者16位;如果要同时向TLC5615写数和读数,则每次传输的数位必须是16位。2.带有SPI接口的D/A转换器TLC5615的应用特性⑶TLC5615的内部结构
③设10位转换数位于变量daval中,采用12位移位输入数据时,应先将daval左移6位,以保证daval中有效的DA转换数据的最高位位于daval的最高位,12位传输后刚好位于移位寄存器的MSB位。其实现代码如下:
daval=daval<<6; //获取采用12位移位输入的正确数据采用16位输入数据时,应先将daval左移2位,其实现代码如下:
daval=daval<<2; //获取采用16位移位输入的正确数据2.带有SPI接口的D/A转换器TLC5615的应用特性⑶TLC5615的内部结构
④TLC5615内部带有2倍电压放大器,设REFIN引脚输入的参考电压为VREF,10位的DAC转换代码的值为daval,则TLC5615的转换输出电压VOUT为:
由于输出电压VOUT的最大值为5V,在实际应用中,参考电压的输入值不得高于2.5V。2.带有SPI接口的D/A转换器TLC5615的应用特性⑷TLC5615的操作时序
所谓操作时序,是指单片机对接口芯片进行读写操作时,接口芯片的各引脚信号之间的时序关系。包括上升沿、下降沿出现的先后次序、间隔的时间、数据线上出现数据的时刻及先后次序等。芯片的时序图是编写芯片访问程序的依据。2.带有SPI接口的D/A转换器TLC5615的应用特性⑷TLC5615的操作时序TLC5615的时序参数参数含义参数值单位最小典型最大tCSS片选建立时间1
nstCSH0SCLK下降沿到片选下降沿保持时间1
nstCSH1SCLK下降沿到片选上升沿保持时间0
nstCHSCLK高电平宽度25
nstCLSCLK低电平宽度25
nstDSDIN建立时间45
nstDHDIN保持时间0
nstDODOUT(级联输出)传输延时间
50nstCSW片选高电平宽度20
nstCS1片选上升沿到SCLK上升沿建立的时间间隔50
ns2.带有SPI接口的D/A转换器TLC5615的应用特性⑷TLC5615的操作时序时序图的含义
①CS=1时,DIN引脚上的数据不能移入TLC5615,只有CS=0时,数据才能移入TLC5615;出现上升沿时,TLC5615将内部16位移位寄存器中的DAC转换代码(移位寄存器寄存器中的D2~D11位)传输至10位的DAC寄存器,并更新DAC。2.带有SPI接口的D/A转换器TLC5615的应用特性⑷TLC5615的操作时序②CS的下降沿之前,SCLK为低电平,SCLK的下降沿与下降沿的时间间隔为tCSH0(至少为1ns);上升沿之前SCLK也为低电平,SCLK的下降沿与下降沿的时间间隔tCSH1(至少0ns)。在启动数据传输时,应先产生SCKL下降沿,延时tCSH0时间后再产生的下降沿,在结束数据传输时,应先产生SCLK下降沿,延时tCSH1时间后再产生上升沿。
③CS=0时,在SCLK的上升沿TLC5615将DIN引脚上的数据移入内部移位寄存器,DIN数据的建立时间为tDS。所以向TLC5615写数时,应先将数位写入DIN引脚上,延时tDS时间后,再产生SCLK的上升沿。2.带有SPI接口的D/A转换器TLC5615的应用特性⑷TLC5615的操作时序④CS=0时,在SCLK的下降沿TLC5615将移位寄存器的最高位移至DOUT引脚上,DOUT的数据建立时间为tDOUT(最大50ns)。从TLC5615中读取数据时,应先产生时钟上降沿,延时tDOUT时间后,再从DOUT引脚上读数。⑤TLC5615的移位的次序为高位在先,低位在后。将daval中的数据写入TLC5615时,每发送一位数据后应将daval中的数据左移一位;从TLC5615读取数据时,每接收一位数,应将保存接收数据的变量左移一位。2.带有SPI接口的D/A转换器TLC5615的应用特性⑷TLC5615的操作时序
⑥时钟(SCLK)的高低电平持续时间的最小值为25ns。时钟上升沿后,至少要过25ns才能产生时钟的下降沿;时钟的下降沿后,至少要过25ns才能产生时钟的上升沿。如果单片机的速度过快,指令周期小于25ns,必须在产生时钟的上升沿、下降沿的语句之间适当地加入若干条“_nop_();”语句进行延时,以保证时钟脉冲的宽度符合要求。2.带有SPI接口的D/A转换器TLC5615的应用特性(5)TLC5615的访问程序编写原则:按照TLC5615的操作时序来编写编写方法:用软件模拟产正确的片选信号和时钟信号,并在恰当的时间将待写入的数据发送到DIN线上。例子:采用12位方式传输,将m中的10位D/A转换数据写入TLC5615的流程图如图所示,将m中的D/A转换数据写入TLC5615,同时将TLC5615中前次转换的数据读入n中的流程图2.带有SPI接口的D/A转换器TLC5615的应用特性(5)TLC5615的访问程序程序代码:void TLC5615(uint m){uchar i; m=m<<6;CS=1;SCLK=0;CS=0;for(i=0;i<12;i++) //循环12次。{ DIN=(bit)(m&0x8000);
SCLK=1;
SCLK=0;
m=m<<1;}CS=1;}2.带有SPI接口的D/A转换器TLC5615的应用特性(5)TLC5615的访问程序例子:采用16位方式传输,将m中的D/A转换数据写入TLC5615,同时将TLC5615中前次转换的数据读入n中的流程图2.带有SPI接口的D/A转换器TLC5615的应用特性(5)TLC5615的访问程序程序代码:uint tlc5615(uint m) { uchar i,n;
m=m<<2; CS=1;
SCLK=0; CS=0;
for(i=0;i<16;i++) //循环16次 { DIN=(bit)(m&0x8000);
SCLK=1;
n=n<<1; SCLK=0;
DOUT=1;
if(DOUT) n++; m=m<<1;
}
CS=1; n=(n&0x0fff)>>2;
return n;}任务实施1、搭建硬件电路电路图如下:
图中,TLC5615的参考电压取自可调电阻VR的滑线端,调节VR使TLC5615的参考电压为2V,这样,当daval=1023时,TLC5615的输出电压为最大值4V。任务实施2、编写软件程序编写波形发生器程序的一般方法和步骤①写出波形函数的关系式②根据波形函数的关系式写出对应的D/A转换值随时间变化的关系式
③将一个周期等分为N个时间片段,并设每个时时间片段的时长为t0,则对应的周期为Nt0,一个周期内共划分有N+1个时间点,④求出t=nt0(n=0、1、2、…、N-1)共N个时间点的D/A转换值,
⑤每隔t0时间向DAC写入t=nt0时间点的D/A转换值。其中,t0的长短决定了波形的频率,N值的大小决定了输出波形的平滑度,N值一定,t0越长,输出波的频率越低,t0一定,N值越大,一个周期内输出点越多,输出波形越平滑。任务实施2、编写软件程序设计分析任务17中,正弦波的周期T=10ms,最大值Vmax=4V,最小值Vmin=0V,其波形函数为:TLC5615的参考电压为2V,Vmax、Vmin对应的D/A转换值分别为damax=1023,damin=0,产生正弦波的D/A的转换值随时间变化的关系式为:将一个周期等分为100个片段,则每个时间片段的时长t0=T/100=0.1ms,t=nt0时间点的D/A转换值为:任务实施2、编写软件程序实现方法
每隔0.1ms向TLC5615依次写入n=0、1、…、99的D/A转换值,TLC5615的VOUT引脚就会输出任务17所要求的正弦波。其中,各时间点的D/A转换值可以事先计算好,然后存放在数组SINWAV[100]中,在需要输出时通过查表获得,其具体的方法可参考任务10中字符笔型表的建立方法,另一种方法是在程序中通过上式计算获得。0.1ms的延时可以用定时中断实现,也可以用软件延时来实现。本任务中,各时间点的D/A转换值我们用程序计算法实现,0.1ms的延时用T0中断来实现,任务实施2、编写软件程序(1)流程图:任务实施2、编写软件程序⑵程序代码#include<reg51.h>//1包含reg51.h文件:因程序中要使用特殊功能寄存器#include<math.h>//2包含math.h文件:因程序中要使用sin函数#define ucharunsignedchar //3用uchar代表unsignedchar#define uintunsignedint //4用uint代表unsignedint#define PI3.1415926 //5常数定义,用PI代表3.1415926sbit DIN=P1^0; //6TLC5615引脚定义:DIN接P1.0sbit CS=P1^1; //7CS接P1.1sbit SCLK=P1^2; //8SCLK接P1.2void tlc5615(uint); //9函数说明任务实施2、编写软件程序⑵程序代码//---------------------------------------------------------------voidmain() //10{TMOD=0x01;//11T0初始化,定时模式、方式2、 TL0=(65536-922)%256; //12T0赋初值,1ms TH0=(65536-922)/256; //13T0赋初值,1ms ET0=1; //14开T0中断 EA=1; //15开全局中断 TR0=1; //16启动T0 while(1) ; //17CPU空运行} //18任务实施2、编写软件程序//---------------------------------------------------------------Voidtim0(void)interrupt1using1 //19T0中断服务函数{ static uchar cnt=0; //20定义静态局部变量,cnt:0.1ms中断次数 uintdaval; //21D/A转换值 TL0=(65536-922)%256; //22重置初值,1ms TH0=(65536-922)/256; //23 daval=(sin(PI*cnt/50)+1)*1023/2;//24计算当前的D/A转换值 tlc5615(daval); //25调用tlc5615函数,对当前D/A转换值进行D/A转换 cnt++; //26中断次数加1 if(cnt>99)cnt=0; //27若中断次数达到100次(已产生了一个周期的正弦波)则回0} //28//---------------------------------------------------------------void tlc5615(uint m) //29D/A转换程序{ /*详见TLC5615访问程序中的程序代码*/ }任务实施2、编写软件程序程序运行的结果应用总结与拓展SPI总线接口SPI总线接口是Motorola公司推出的一种同步串行外设接口,用于单片机与各种外设以串行方式进行数据通信。标准的SPI总线有SCK、MISO、MOSI、/CS四根线,简化的SPI总线只有SCK、/CS和DIO三根线,它将MISO、MOSI线合并成DIO线。线名功能SCK串行时钟线。传送由单片机产生的时钟信号,控制SPI接口芯片内部的移位寄存器的移位操作,使数据传输同步。/CS片选线。控制芯片的选择,低电平有效。MISO(或DIO)主机输入从机输出数据线。用于传输从芯片传往单片机的数据MOSI(或DIO)主机输出从机输入数据线。用于传输从单片机传往芯片的数据。各线的功能
应用总结与拓展⑴接口电路具有SPI接口的单片机扩展SPI接口芯片的连接电路连接方法:在单片机中用若干根I/O口线作芯片的片选线,分别与各芯片的/CS线相接,单片机的SCL脚、MOSI脚、MISO脚分别与各SPI接口芯片的SCK、MOSI、MISO引脚相接。如果芯片为简化的SPI总线接口,则将芯片的DIO引脚既接到单片机的MISO引脚上,又接到单片机的MOSI引脚上。应用总结与拓展⑴接口电路无SPI接口的单片机扩展SPI接口芯片的电路
连接方法:各芯片的数据输入/输出脚分别连接在一起,然后接至单片机的某根I/O口线上,各芯片的时钟脚接在一起然后接到单片机另一根I/O口线上,每个芯片的片选脚单独接一根I/O口线。应用总结与拓展⑵访问程序
具有SPI接口的单片机扩展SPI接口芯片时,SPI操作由单片机内部的硬件电路完成,使用者仅需设置单片机内部的相关的特殊功能寄存器,可以不了解SPI的操作过。其具体的设置方法可查阅相关单片机(例如STC15F2K60S2)的使用手册。
无SPI接口的单片机扩展SPI接口芯片时,需要使用者弄清楚SPI总线操作时序,然后用软件模拟SPI总线时序。编写从芯片中读数程序是根据芯片的发送数据时序图编写的,编写向芯片写数程序是根据芯片接收数据时序图编写的。应用总结与拓展⑵访问程序
①/CS的下降沿前后的时钟信号(SCLK)状态,/CS的上升沿前后的时钟信号的状态。它们是编写初始化读写数据和结束读写数据程序的根据。研究芯片时序图需要注意的问题
②芯片发送数据时,是在时钟的上升沿或者下降沿将内部移位寄存器中的数据移出的,数据出现在数据线上存在时间延迟。编写读数程序时要注意芯片是在何时移出数据,只有在数据线上出现了有效数据后才能从数据线上读数。应用总结与拓展⑵访问程序
如果芯片是上升沿发送数据,则单片机产生时钟上升沿后,再产生时钟下降沿,接着从数据线上读数,如图读一位数据的程序段如下:sclk=1; //产生时钟上升沿,芯片发送数据至数据线(dio)上。m=m<<1; //预接收0sclk=0 //产生时钟下降沿if(dio) m++; //读数据线上数据,若为1,则接收1应用总结与拓展⑵访问程序
如果芯片是在时钟下降沿发送数据,则单片机产生时钟下降沿后,再产生时钟上升沿,接着从数据线上读数,如图读一位数据的程序段如下:sclk=0; //产生时钟下降沿,芯片发送数据至数据线(dio)上。m=m<<1; //预接收0sclk=1 //产生时
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年小学六年级数学应用题
- 2026年内蒙古兴安盟单招职业适应性测试题库附答案详解(a卷)
- 2026年南京工业职业技术大学单招职业适应性考试题库含答案详解(研优卷)
- 2026年南昌影视传播职业学院单招职业倾向性测试题库及一套完整答案详解
- 2026年内蒙古美术职业学院单招职业适应性考试题库附答案详解(精练)
- 2026年南充职业技术学院单招职业技能考试题库附参考答案详解(培优)
- 2026年内蒙古交通职业技术学院单招职业适应性考试题库及答案详解(有一套)
- 2026年南京交通职业技术学院单招职业倾向性考试题库附参考答案详解(典型题)
- 2026年南充文化旅游职业学院单招综合素质考试题库参考答案详解
- 2026年内蒙古民族幼儿师范高等专科学校单招职业技能测试题库附参考答案详解(培优)
- 甘肃省2025年中考数学真题试卷三套附答案
- 校车安全管理培训宣传课件
- 2025年河北单招第三类考试题及答案
- 面料知识培训大全课件
- 退伍老兵茶话会
- 糖尿病酮症酸中毒合并急性胰腺炎护理查房
- 物料分级现场管理办法
- 2025年江苏省常州市中考化学试卷真题(含答案)
- 水上安全救援技术培训教材
- 高中面试实战:新面试题目及应对策略
- 监理安全管理制度汇编
评论
0/150
提交评论