




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武汉理工大学计算机控制技术课程设计课程设计说明书学 号: 0121211360601课 程 设 计题 目基于数模转换的波形发生器学 院自动化专 业自动化班 级1201姓 名葛尧指导教师石云2015年6月1日课程设计任务书学生姓名: 葛尧 专业班级: 自动化1201 指导教师: 石云 工作单位: 武汉理工大学 题 目: 基于数模转换的波形发生器初始条件:设计一个能产生方波,三角波的波形发生器。分别设两个开关对应输出波形的产生,波形要在模拟示波器上显示出来。要求完成的主要任务: 1 输出模拟信号幅值为05VDC;2 输出模拟信号频率为50HZ;3 采用DAC芯片完成数模转换; 4 完成软件流程及各
2、程序模块设计并用仿真演示;5 完成符合要求的设计说明书时间安排:2012年4月28日2012年5月29日前言波形发生器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都学要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器被广泛运用在了电子测量领域。它可以产生多种波形信号,如正弦波,三角波,方波等,因而也被广泛用于通信、雷达、导航、宇航等领域。随着集成电路的迅速发展,波形发生器可以实现小型化,方便使用。而且,利用集成电路
3、所构成各种信号波形发生器与传统的信号波形发生器相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。本次设计是以AT89C51单片机、DAC0832芯片及LM358运算放大器为核心应用常用电子器件通过搭建单片机最小系统及扩展电路最终实现三角波、方波的波形的产生。目录1 设计意义及要求41.1设计意义41.2 设计要求42 波形发生器的原理53 硬件电路的设计53.1 元器件的介绍53.2 通过Proteus仿真的电路64 软件设计64.1 设计思路6主程序7中断函数7方波函数7三角波函数8延时函数85 仿真与调试96 总结与体会10参考文献111 设计意义及要求1.1设计意义波形发生
4、器作为一种常用的信号源,是现代测试领域内应用最为广泛的通用仪器之一。在研制、生产、测试和维修各种电子元件、部件以及整机设备时,都学要有信号源,由它产生不同频率不同波形的电压、电流信号并加到被测器件或设备上,用其他仪器观察、测量被测仪器的输出响应,以分析确定它们的性能参数。信号发生器被广泛运用在了电子测量领域。它可以产生多种波形信号,如正弦波,三角波,方波等,因而也被广泛用于通信、雷达、导航、宇航等领域。随着集成电路的迅速发展,波形发生器可以实现小型化,方便使用。而且,利用集成电路所构成各种信号波形发生器与传统的信号波形发生器相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。1.2
5、 设计要求设计一个能产生方波,三角波的波形发生器。分别设两个开关对应输出波形的产生,波形要在模拟示波器上显示出来。波形发生器输出波形满足一下条件:1.输出模拟信号幅值为05VDC;2.输出模拟信号频率为50HZ;3.采用DAC芯片完成数模转换;4.完成软件流程及各程序模块设计并用仿真演示;5.完成符合要求的设计说明书。2 波形发生器的原理波形发生器以单片机AT89C51、芯片DAC0832以及运算放大器为主要元器件,通过单片机运行波形发生程序,经过DAC0832芯片实现D/A转换,将数字信号转换成模拟信号,最后通过运算放大器输出波形。波形发生器系统原理图如下所示:按键DAC0832AT89C5
6、1 波形输出运放电路 图2-1 波形发生器系统原理图波形发生器所要求的幅值要求,可以通过DAC0832芯片的VREF管脚的输入电压大小来确定。此设计要求的幅值为05VDC,故VREF管脚接-5V电压。至于波形发生器的频率,则可以通过程序中的延时程序的编写来实现3 硬件电路的设计3.1 元器件的介绍AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、
7、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。3.2 通过Proteus仿真的电路通过系统原理图,可以在Proteus软件中设计并绘制出波形发生器的硬件电路。单片机P2口接两个按键作为波形选择的输入信号,P0口作为数字信号的输出,直接接到DAC0832芯片的D0D7管脚。特别注意,我没有使用P0口作为控制输入,因为P0口需要上拉电阻,增加接线的复杂性。具体电路如下图所示:4 软件设计4.1 设计思路利用中断,当2个开关中有任意一个被按下时,跳转至中断程序,在中断程序中判断是哪一个按键闭合,赋
8、值给choice这一个全局变量,供主函数调用,主函数根据choice的值,选择执行输出的波形。每执行一次方波程序,以及三角波的每一次延时前,都会判断choice是否符合当前正在执行的方波函数的值。我设置,choice=0对应方波, choice=1对应三角波。主程序/*主函数*/ void main() EA = 1;/中断允许总开关打开 EX0 = 1;/允许外部中断0 IT0 = 1;/外部中断0采用跳沿触发方式 P1 = 0x00; P2 = 0x00; while(1) switch(choice) case 0:fangbo();break; case 1:sanjiaoboxia(
9、);sanjiaoboshang();break; 可以看到,核心语句是一个switch()函数,根据choice的值,来选择执行的波形函数。而三角波的实现,我采用了2个函数,以避免编译器带来的各种各样的问题。中断函数/*外部中断0中断服务子函数*/void int0() interrupt 0 switch (P2) case 0x01: choice=0;break; case 0x02: choice=1;break; 中断函数也十分简洁,直接通过P2口的值,选择给choice赋值。特别说明的是,由于采用了或非门,在每按下一次按键,都会执行一次中断函数,同时判断当前案件情况,给choic
10、e赋予相应的值。方波函数void fangbo() P1 = 0x00; delay1(); P1 =0xff; delay1();简单易读,赋值取反。三角波函数/*三角波下降*/void sanjiaoboxia() unsigned char a; P1=0xff; delay2(); for(a=0;a<255;a+) P1-; delay2();/*三角波上升*/void sanjiaoboshang() unsigned char a; P1=0x00; delay2(); for(a=0;a<255;a+) P1+; delay2();三角波函数是我本次课设花费最久的函
11、数,一开始走了些弯路,后来终于确定成型。基本思路是,首先给P1口赋初值,随机开始减法运算,直至为0。 上升沿原理类似。一开始,我采用一个函数来写这个三角波,但是一直不能得到理想的结果,上升和下降,总是只能得到一个结果,输出为锯齿波而非三角波,最终变选定了用两个函数来实现,效果也非常好。延时函数/*延时程序*/void delay1()/方波函数延时用 unsigned char j,i; for(j=0;j<31;j+) for(i=0;i<255;i+);void delay2()/三角波函数延时用 unsigned char j; for(j=0;j<30;j+) ;50
12、HZ,即对延时有一定要求,经计算得出循环次数,同时结合其余程序语句所需时间,最终确定了以上数据。5 仿真与调试很可惜,一开始我并没有得到完美的波形。方波波形如下三角波波形如下与目标有较大预期。随后,我对程序进行了再次检查,终于发现,是我的对DAC的理解出现了偏差,我最初以为,三角波的上升与下降,是流水灯的效果,遍依次改变P1的八个口来实现“三角波”,随后发现,正确的算法应当是累加与累减,而非流水灯似的依次点亮与熄灭。正确波形如下6 总结与体会此次课程设计,我被分到四号题,相对于别的题目来说,我的题目相对简单,于是决定不靠网络的帮助,自己来解决他。从中学到了不少知识,也应对了实践出真知的道理。走
13、了一些弯路,主要在于软件编写。一开始的时候,由于不是很熟悉,也是因为单片机作业2的缘故,我没有选择使用中断功能,试图仅用一个主函数来完成功能,后来发现,此次课设与作业二最大区别在于,这里要有循环,而不借助中断,是很难跳出波形输出的循环,来重新选择波形,也很难实现要求的“两个按键,分别对应两种波形”暗示的打断功能。还好,不久,就放弃了这一想法。当我已经决心使用中断以后,我又面临一个问题,思维被局限在2个开关,两个输入接口上面,没有使用或非门,仅有的P2_0,P2_1这两个变量也很难满足我的要求,我开始陷入了同级中断如何相互打断的问题中,绞尽脑汁也没有想出合理的解决办法,既可以循环输出波形,又可以
14、实现打断选择,我也不知道break语句可以用来结束for(;);循环,所以算是走了第二次弯路。同时,编译器的不稳定表现,让我彻底放弃了2个中断函数这一念头。在与同伴相交流以后,他提示我使用一个逻辑门关系来实现中断,顿时有豁然开朗的感觉,同时,我也发现,把波形函数设计成 非无限循环函数 更有利于实现所要求的功能,这样就可以迅速从子函数回归到母函数中,尽管会造成一些效率低下的情况(因为完成一轮波形输出都要回到主函数重新查询choice的值。同时最后时刻发现了我的波形的问题,使得我对DAC0832的理解有了更深的体会。总之,通过此次完全不作弊,不欺骗的课设,我学到了很多东西,在今后的学习与生活中,我
15、会更加注重知识与实践的结合,增强动手能力,把只是转换为经验。参考文献1 毅刚,彭喜元. 单片机原理与应用设计. 北京:电子工业出版社. 2(美)Richard Blum著;马朝晖等译;汇编语言程序设计 北京:机械工业出版社3 边春远,王志强,MCS-51单片机应用开发实用子程序M.北京:人民邮电出版社.4 李朝青主编,单片机原理及接口技术(第3版)M. 北京:航空航天大学出版社.5 廖先芸,电子技术实践与实训M.北京:高等教育出版社.课程设计成绩评定表姓 名葛尧性 别男专业、班级自动化1201课程设计题目:基于数模转换的波形发生器课程设计答辩或质疑记录:1 三角波的波形为何会出现一开始的错误。 答:对于DAC0832的理解不是很深刻,同时犯了一些低级的思维问题。2 为何采用C语言而非汇编 答:C语言和汇编语言各有优势,C语言简单易读,易于思考,而汇编则更加底层。在编程方面,汇编可能会用到MOVX的程序,使得单片机的WR口电
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 厦门市大同中学2025年高三下学期适应性训练(四)物理试题含解析
- 辽宁省葫芦岛第六高级中学2024-2025学年高考模拟考试英语试题理工类试卷含解析
- 山东省聊城市茌平县第二中学2025年高三年级七校联考历史试题含解析
- 上海市同济大附属存志校2025届初三4月第一次周练数学试题含解析
- 陕西省合阳县2025届初三统一抽考试题英语试题含答案
- 山东省滨州市联考2025年初三下学期第二次验收语文试题文试卷含解析
- 西藏西藏达孜县达标名校2024-2025学年初三备考第二次模拟考试语文试题含解析
- 西安交通工程学院《在财务管理中的应用》2023-2024学年第二学期期末试卷
- 酒泉市重点中学2025年初三二诊模拟数学试题含解析
- 2025-2030市政工程行业发展分析及投资战略研究报告
- 2025届山东省济南市一模生物试题(原卷版+解析版)
- 海南地理会考试卷及答案2024
- 全国河大音像版初中信息技术八年级上册第三章第三节《循环结构程序设计》教学设计
- 企业健康管理计划规划方案讨论
- 隧道高空作业施工方案
- 危险性较大的分部分项工程专项施工方案严重缺陷清单(试行)
- 深信服超融合HCI技术白皮书-20230213
- 2025年陕西省土地工程建设集团有限责任公司招聘笔试参考题库附带答案详解
- 《多样的中国民间美术》课件 2024-2025学年人美版(2024)初中美术七年级下册
- 人教版 七年级 下册 语文 第四单元《青春之光》课件
- 2024物业管理数字化升级服务合同
评论
0/150
提交评论