实验七函数信号发生器设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验七函数信号发生器设计

实验七 函数信号发生器设计 一、实验目的 1. 掌握单片机片内DAC的使用及应用程序设计 二、实验内容 内DAC设计制作一个发生器,该发生器能产生正弦波、方波、三角波。输出波形的频率范围为100Hz~20kHz;频率可调,频率步进间隔≤100Hz。 输出波形幅度范围0~V(峰-峰值)。 具有显示输出波形的类型、频率的功能。三、实验说明 通过本实验,掌握单片机片内DAC使用方法,掌握基于单片机的工作原理与设计方法。 必须用模块化方法进行C语言程序设计。 四、实验仪器和设备 PC机、Keil uVision2软件,C8051F330单片机,EC3在线仿真器。 五、实验原理 内DACvoid main () { unsigned char i; SysClkIn(); //配置系统时钟频率 dog_set(); //看门狗配置 Port_Init() ; //端口初始化 DAC_Init(); // DAC初始化 interrupt_Init(); //中断初始化 timer_init(); DelayMs(300); //延时300ms,等待ZLG7289 复位完毕 ZLG7289_Init(500); //调用ZLG7289 的初始化函数 while(1) { if(key==10) //输入频率启动键 { TR1=0; key=0xff; for(i=0;i5;i++) //输入频率 { while(key==0xff ); a[i]=key; ZLG7289_Download(1,i,1,a[i]); sum=sum*10+a[i]; //显示频率; key=0xff; } if(sum=100sum800) {counter=100000/sum; counter1=(65536-counter+16)/256; counter2=(65536-counter+16)%256; sum=0;} else if(sum=800sum2000) { counter=100000/sum; counter1=(65536-counter+10)/256; counter2=(65536-counter+10)%256;} else if(sum=2000) { counter=100000/sum; counter1=(65536-counter+3)/256; counter2=(65536-counter+3)%256; sum=0;}} else if(key==11) TR1=1; else if(key==12) { for(i=0;i=20;i++) { b1[i]=(int)(511*sin(2*3.14*i/20)+513)/4; b2[i]=(int)(511*sin(2*3.14*i/20)+513)%4; } ZLG7289_Download(1,5,1,key-11); key=0xff; } else if(key==13) { for(i=0;i=10;i++) { b1[i]=(1023*i/10)/4; b2[i]=(1023*i/10)%4; } for(i=11;i=20;i++) { b1[i]=(1023*(20-i)/10)/4; b2[i]=(1023*(20-i)/10)%4; } ZLG7289_Download(1,5,1,key-11); key=0xff; } else if(key==14) { for(i=0;i=20;i++) { if(i=10) { b1[i]=0,b2[i]=0; } else { b1[i]=255,b2[i]=3; } } ZLG7289_Download(1,5,1,key-11); key=0xff; } } } void keyinterrupt() interrupt 0 //按键中断产生的单片机外部中断0 { key=ZLG7289_Key();

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档