课程设计(论文)任务书电气与电子工程学院系自动化专业13—2班级一、课程设计(论文)题目简易信号发生器的设计二、课程设计(论文)工作自2016年1月5日起至2016年1月14日止。三、课程设计(论文)的内容要求:课程设计不仅仅要求学生完成所规定的题目要求,同时还要培养学生良好的科学态度和严谨的设计习惯。课程设计报告要求内容如下:(1)设计思想和设计说明(2)硬件原理框图(3)硬件原理图与软件配合介绍(4)程序存储器和数据存储器的单元分配(5)程序流程图(6)系统功能描述(7)设计调试过程总结(8)附录里面包括:芯片资料、源程序清单和符合制图规范的硬件原理图的图纸。设计要求内容:用D/A实现正弦信号,三角波信号,方波信号的输出,并且在LCD上显示出当前波形。要求输出信号的频率和幅度可调。设计内容:(1)满足设计要求内容。(2)扩展锯齿波波形输出。(3)汉字显示当前波形形状与当前频率的大小学生签名年月日课程设计(论文)评审意见(1)题目复杂程度:复杂()、较复杂()、一般()、简单()(2)总体方案的选择是否正确:正确()、较正确()、欠正确()、不正确()(3)系统能否满足任务要求:满足()、较满足()、欠满足()、不满足()(4)元器件选择是否合理:合理()、较合理()、欠合理()、不太合理()(5)学习实践态度:好()、较好()、一般()、不太好()(6)独立工作能力:强()、较强()、一般()、较差()(7)回答问题是否正确:正确()、较正确()、基本正确()、大多不正确()(8)图表是否符合标准:符合()、较符合()、基本符合()、大多不符合()(9)撰写是否规范整洁:规范整洁()、较规范()、欠规范()、不太规范()总评成绩:优()、良()、中()、及格()、不及格()评阅人职称副教授2016年1月日1目录一、课程设计及要求及目的..................................................2二、设计思想及设计说明......................................................21函数发生器模块........................................................................................................22LCD液晶显示模块......................................................................................................2三、硬件设计.........................................................................3四、程序设计流程.................................................................3五、系统模块化设计.............................................................41、函数信号发生器的设计..........................................................................................41.1、DAC0832的介绍...........................................................................................41.2、发生器的功能设计.......................................................................................51.3、函数发生器的外围电路组成.......................................................................62、液晶显示模块..........................................................................................................62.1AMPIRE128X64液晶显示屏的原理介绍........................................................62.2波形汉字显示程序设计..................................................................................83、中断系统的使用............................................................................................10六、程序字节分配...............................................................10七、功能描述与设计调试总结............................................111、功能描述................................................................................................................112、设计调试总结........................................................................................................11八设计总结.........................................................................13九、参考文献.......................................................................14附录1:程序代码................................................................15附录2:设计图纸................................................................282一、课程设计及要求及目的通过课程设计环节加深对单片机原理及应用技术的理解,提高理论结合实践的能力,提高单片机系统设计和开发的能力,初步学习一个完整的单片机系统的研发过程,并培养严谨细致的科研态度。熟悉掌握常用的单片机设计软件以及一些网上个人研发的实用小软件。例如51单片机最常用keil和protues软件以及个人研发的单片机小精灵、汉字取模软件、串口助手等。要求设计一个单片机应用系统,利用keil和proteus软件完成系统软硬件的设计及模拟调试,在有条件的情况下完成对事物的操作。本文设计了一种以STC89C51为核心的简易信号产生电路,该电路使用DAC0832数模转换器件对单片机输出的数字量进行转换,使用数组定义的方式完成不同波形的输出,并通过外部中断实现对输出波形形状和波形频率等的控制,该设计以LCD16824液晶显示屏对波形的类别、形状、频率等信息以中文或图形的方式输出显示。实验结果表明,该系统设计具有体积小,性能稳定,反应速度快,可以迅速简便的实现多种波形输出的优点。二、设计思想及设计说明该设计主要由信号发生器的设计和LCD液晶显示两部分组成,其中,信号发生器的设计为本设计的重点内容,但设计过程较为简单。LCD液晶显示为本设计的辅助模块,使的使用者对该信号发生器更容易操作,是本设计过程中耗时最多的阶段,可以说是本设计的难点。1函数发生器模块该模块使用DA转换芯片DAC0832对单片机输出的8位二进制的数字量进行数字到模拟信号的转化,由于DAC0832为电流型输出,所以在输出端口使用一级运放LM324实现将电流输出转为电压输出,之后使用二级运放实现对输出信号的放大,使输出波形的幅值可调,在设计的端口使用RC低通滤波器对输出波形进行滤波,使所得到的波形更加平滑。在软件设计方面,为了与LCD显示屏联合使用,该设计没有使用正弦、方波、三角波、锯齿波的波形函数作为输出数字量,而是使用64个单元的数组定义每一个波形,由此,也可以更加方便的增加其他波形的输出。2LCD液晶显示模块该模块使用protues中提供的AMPIRE128X64液晶显示屏,该显示屏无中英文字库,所以设计过程中需要对自己需要的字符和汉字进行取模,本3设计将该显示屏分为两部分,整屏幕的前四分之一用于显示“函数”“正弦”“方波”“三角”“锯齿”“频率”和峰峰值等信息。后面的部分用于显示输出波形的形状。该模块的关键点在于AMPIRE128X64这款液晶显示屏的控制方法、矩阵排列方式以及与市场上常见的LCD16824的区别于共性和区别。共性点在于控制、读写等指令的相同,以及该端口的强大的锁存功能。区别主要在于该12864将整个屏幕分为两块,分别使用外部控制信号CS1与CS2选择开通。三、硬件设计该设计的硬件连接图如图一所示,箭头线上为管脚的连接方式。具体的连接方式见附录1:简易信号发生器的设计图纸。51单片机DAC0832LCD16824晶振与复位两级运放LM324P1口/P3控制口P0口/P3控制口按键P3.2/P3.3图一系统硬件连接简图四、程序设计流程该程序的设计流程图如图二所示,系统首先将输出波形定义为正弦波输出,且频率定义为400HZ,并将该信息在LCD液晶显示频上显示出来,之后进入主函数,并不断调用正弦波的数组使之按照正弦波规律变化,经过外部DA转化实现正弦波输出。与此同时,外部中断随时可以打破主循环,通过外部中断0将其他波形定义为当前输出波形,每按一次,波形变化一次,循环往复,并在该中断服务程序中改变LCD显示波形、频率等信息。而在外部中断1中,只改变波形频率,只需要刷新频率显示部分即可。整个程序设计代码在附录2中:程序代码4主函数main()主循环输出波形液晶显示屏初始化DAC0832初始化外部中断初始化液晶显示正弦波外部中断0改变输出波形外部中断1改变波形频率改变液晶显示波形刷新液晶显示频率图二程序流程图五、系统模块化设计1、函数信号发生器的设计1.1、DAC0832的介绍DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。其内部结构如图三所示5图三DAC0832的结构图该芯片有三种工作方式,分别为但缓冲、双缓冲和直通方式。在该控制系统中使用其直通方式。接线方式为将数据口与单片机P1口相连、XREF、WR2、WR1、CS控制端口全部接地,ILE接高电平。在这种接线方式下,只要数据端口接收到数据立刻就能转化为模拟信号输出,使得系统的实时性好,响应速度快。1.2、发生器的功能设计89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从按键接收改变数据,进行各种功能波形的转换。当数字信号电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。波形的输出通过波形数据表完成,该波形数据表是将信号一个周期等间距地分离成64个点,储存在单片机得ROM内。这些数据可以通过MATLAB软件生成,例如正弦表,MATLAB生成的程序如下:x=0:2*pi/64:2*pi;y=round(sin(x)*127)+12