项目数字信号发生器解决方案.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
任务3 正弦波发生器 3.软件分析 void main() //主函数 { unsigned char i=0;//请思考,去掉unsigned会如何? while(1) { P1=sin[i];//从一维数组里取数字量,送0832 i++; } } 任务3 正弦波发生器 3.软件分析 一维数组定义格式: 数据类型 数组名[数量]={数值1,数值2…数值n}; 试试看: char sin[256]= {0x7F,0x82,0x85,0x88,0x8B,0x8F,0x92,0x95,0x98,0x9B,0x9E,0xA1,0xA4,0xA7,0xAA,0xAD, … 0x4E,0x51,0x54,0x57,0x5A,0x5D,0x60,0x63,0x66,0x69,0x6C,0x6F,0x73,0x76,0x79,0x7C} 任务3 正弦波发生器 注意:数组默认定义在单片机的RAM中,89C51的RAM只有128字节,当数组数量太多时,就会放不开。 修改:加入关键字 CODE 将数组存入ROM中(4K字节容量)。 数据类型 CODE 数组名[数量]={数值1,数值2…数值n}; 任务3 正弦波发生器 三、任务实施 任务3 正弦波发生器 四、任务扩展 如何输出更加平滑的正弦波? 请介绍下TLC5615 项目1 数字信号发生器设计与调试 子项目3 串行DAC实现数字信号发生器 教学目标 掌握TLC5615用法; 掌握常用波形产生方法。 任务1 锯齿波发生器 二、任务分析 1.锯齿波特征分析 输出信号由0v开始按照一定速率增大,形成坡面,TLC5615输出电压增加1024次后,输出达到峰值。此时直接降到0v,形成垂直面,然后往复循环。 一、任务说明 利用单片机控制TLC5615输出频率为5赫兹的锯齿波信号。 0V 4.4V 任务1 锯齿波发生器 TLC5615引脚图 任务1 锯齿波发生器 TLC5615结构图 10位有效数字量 2位填充位 输入控制 数字量串行输入端 电压输出端 任务1 锯齿波发生器 (2)仿真电路图 电压输出型,直接观察波形 串行输入,只需连接3跟线 任务1 锯齿波发生器 任务1 锯齿波发生器 TLC5615工作时序图 任务1 锯齿波发生器 TLC5615进行一次DA转换流程图 循环 10次 循环2次 dat=6 sbit定义引脚 if((dat0x8000)= =0) DIN=0; Else DIN=1; 任务1 锯齿波发生器 void main() { int i,j; while(1) //循环输出锯齿波 { for(i=0;i1024;i++) //数字量增加1024次回零 //模拟量爬坡到最大值后回零(锯齿波) { m=i; tlc5615( ); //调用DA转换子函数 }}} 任务1 锯齿波发生器 三、任务实施 任务1 锯齿波发生器 结果分析:T=380ms,频率f=2.6Hz,无法实现5Hz 380ms 任务1 锯齿波发生器 如何实现5Hz锯齿波? 方法二: 改用汇编语言设计程序。 方法一: 修改主程序,减少数字量修改次数,步长加大,。 任务1 锯齿波发生器 四、任务拓展 利用单片机控制TLC5615产生最大电压4.0V,频率1H z三角波 任务2 正弦波发生器 一、任务说明 利用单片机控制TLC5615输出频率为5赫兹的正弦波信号。 任务2 正弦波发生器 二、任务分析 正弦波数据生成器 1.正弦波的采样 利用工具软件把一个周期的正弦波采样成数字量,采样点数越多正弦波约平滑。使用TLC5615产生正弦波,输出精度设定10位,采样数据为1024个。 任务2 正弦波发生器 2.仿真电路图 任务2 正弦波发生器 3.软件分析 void main() //主函数 { unsigned int i=0; while(1) { for(i=0;i1023;i++) { m=sin[i];//从一维数组里取数字量,调用tlc5615 Tlc5615();}}} 任务3 正弦波发生器 (2)定义正弦数据 在程序中定义一维数组 int code sin[1024]={……} 编译出错: LIMIT: 0800H BYTES 错误原因: keil运行ROM有2K限制 修改方法: 设置Code Rom Size为64K 能否定义c

文档评论(0)

知识宝库 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档