您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 单片机函数发生器课程设计报告参考
1广东第二师范学院单片机课程设计报告物理系09级BTEC专业题目单片机函数发生器设计姓名吴剑锋学号096606703016指导教师谢丽英2011年4月10日2目录单片机函数发生器设计.......................................................................31引言...................................................................................................32设计任务和要求...............................................................................32.1方案设计与论证.........................................................................32.2单元电路设计与参数计算.........................................................33总原理图及及主要模块的流程图..................................................63.1总原理图及元器件清单...........................................................83.2主要流程图..................................................................................94性能测试与分析.............................................................................105结论与心得.....................................................................................13参考文献.............................................................................................13附录.....................................................................................................14致谢.....................................................................................................153单片机函数发生器设计摘要:本设计中主要是运用单片机与DAC0832的组合从而产生信号。本次运用了汇编语言来完成设计,所以具有一定的局限性。关键字:AT89C51;DAC0832;独立式键盘1引言函数发生器是一种多波形的信号源。它可以产生正弦波、方波、三角波、锯齿波,甚至任意波形。它的用途很广泛。可以用于生产测试、仪器维修和实验室,还广泛使用在其它科技领域,如医学、教育、化学、通讯、地球物理学、工业控制、军事和宇航等。2设计任务和要求设计任务:以单片机为基础,设计并开发能输出多种波形(正弦波、三角波、锯齿波、梯形波等),且频率、幅度可变的函数发生器。设计要求:1.设计借口电路,将这些外设构成一个简单的单片机应用系统,画出接口的连接图和仿真图。2.编写下列控制程序,程序要求有注释:(1)能输出正弦波、三角波、锯齿波、梯形波(2)能根据键盘命令进行波形切换2.1方案设计与论证本方案是基于AT89C51与DAC0832的单缓冲方式接口电路来设计。单缓冲式接口电路具有过程简单,容易实现。由于本设计运用汇编的编程语言,导致用独立式键盘来实现简单控制。本方案所产生的信号频率稳定性高,精确度高。而且在硬件方面它所选的元器件比较常见。所以总的来说本方案的性价比高。2.2单元电路设计与参数计算(1)主控电路AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压、高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。[1]AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器/计数器溢出时产生的中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个采样点信号,如此循环产生4所需要的信号波形。如图所示2.1,AT89C51所在电路中的工作情况。图2.1AT89C51工作情况P1口接独立式按键电路,P2口部分接译码器,P0口接锁存器。(2)独立式键盘电路独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其它输入线上的工作状态。因此,通过检测输入线的电平状态就可以很容易的判断按键是否被按下了。独立式键盘电路配置灵活,软件结构简单。但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂,故此种键盘适用于按键较少或操作速度较高的场合。如图2.2所示,独立式按键电路。[2]5图2.2独立式按键电路按键与AT89C51的P1口连接。KEY1是监测是否输出锯齿波按键;KEY2是监测是否输出三角波按键;KEY3监测是否输出梯形波按键;KEY4监测是否输出正弦波按键;KEY5是调频按键。(3)数/模转换电路DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。由于AT89C51所产生的是数字信号,所以通过DAC0832把数字信号转换成模拟信号。DAC0832输出的模拟量是电流,为了转换成电压,所以在它后面接入一个运放器。如图2.3,DAC0832工作电路。图2.3,DAC0832工作电路(4)驱动电路74HC138作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。674HC573数据锁存器。主要用于数码管、按键等等的控制。如图2.4所示,74HC138加74HC573的工作电路。[3]如图2.4所示,74HC138加74HC573的工作电路3总原理图及及主要模块的流程图7总电路图如3.0所示:图3.0总电路图各功能模块的功能及作用如表1所示:表1各功能模块的功能及作用模块名称图示功能及作用主控制模块产生数字信号8键盘模块命令产生何种信号数/模转换模块数字信号转换为模拟信号3.1总原理图及元器件清单总原理方框图如图3.1所示图3.1总原理方框图元器件清单如表2所示单片机键盘电路驱动电路数/模转换电路放大电路波形输出9表2元器件清单元器件名称个数AT89C51芯片X174HC573芯片X174HC138芯片X1BUTTONX5OP1PX2VCCX2GROUNDX3DC0832X1RESX73.2主要流程图主程序的流程图如图3.2所示,开始时判断是否调频,然后判断是否调用锯齿波程序,然后判断是否调用三角波程序,然后判断是否调用梯形波程序,然后判断是否调用正弦波程序,最后在循环回到判断是否调频。10图3.2主流程图4性能测试与分析(1)调用锯齿波程序如图4.1,开始否是调频P1.5是否为1P1.0是否为1否是调用锯齿波程序P1.1是否为1调用三角波程序否是P1.2是否为1否是P1.2是否为1否是调用梯形波程序调用正弦波程序11图4.1锯齿波(2)调频后的锯齿波如图4.2所示图4.2调频后的锯齿波(3)调用三角波程序如图4.3所示12图4.3三角波(4)调用梯形波程序如图4.4所示图4.4梯形波(5)调用正弦波程序如图4.5所示13图4.5正弦波通过调试分析,这个程序锯齿波,三角波,梯形波,正弦波,都可以用键盘自由切换。这个程序频率调试成功,但幅度与理想中的还是有一定的差距。5结论与心得回顾起此次单片机课程设计,我仍感慨颇多,的确,从选题到定稿,从理论到实践,在好几个星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说不懂一些元器件的使用方法,对单片机汇编语言掌握得不好……通过这次课程设计之后,一定把以前所学过的知识重新温故。参考文献[1]梁炳东.单片机原理与应用.北京:人民邮电出版社,2009[2]周杰,张樱枝.单片机C语言及汇编语言实用程序设计.北京:电子工业出版社,2009[3]李学礼.基于Proteus的8051单片机实例教程.北京:电子工业出版社,200814附录源代码及注析ORG0000H;程序开始MOVSP,#60H;设置堆栈MOVDPTR,#7FFH;0832的地址LOP:MOVP1,#0FFHMOVA,P1JNBP1.5,FM;是否需要调频MOVR6,#01H;设置步长MOVR5,#01HSTART:JNBP1.0,ST;输出锯齿波程序JNBP1.1,TRIANGLE;输出三角波程序JNBP1.2,TXING;输出梯形波程序JNBP1.3,SINE;输出正弦波程序SJMPLOP;循环检测;------------------------ST:MOVA,#00H;设置初值LOOP:MOVX@DPTR,A;把数据送到端口转换ADDA,R6;通过步长改变数据,上升波形CJNEA,#00H,LOOP;A值是否到最高点DJNZR5,LOOPSJMPLOP;---------------------------TRIANGLE:MOVA,#00H;设置初值LOOP3:MOVX@DPTR,A;把数据送到端口转换ADDA,R6;通过步长改变数据上升波形CJNEA,#00H,LOOP3;A值是否到最高点DECA;减少步长改变数据下降波形LOOP2:MOVX@DPTR,A;把数据送到端口转换DECA;减少步长改变数据下降波形CJNEA,#00H,LOOP2;A值是否到最低点
本文标题:单片机函数发生器课程设计报告参考
链接地址:https://www.777doc.com/doc-5163530 .html