您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 函数信号发生器的设计(12864实现动态波形显示)
1目录一、课程设计及要求及目的..................................................4二、设计思想及设计说明......................................................41函数发生器模块........................................................................................................42LCD液晶显示模块......................................................................................................4三、硬件设计.........................................................................5四、程序设计流程.................................................................5五、系统模块化设计.............................................................61、函数信号发生器的设计..........................................................................................61.1、DAC0832的介绍...........................................................................................61.2、发生器的功能设计.......................................................................................61.3、函数发生器的外围电路组成.......................................................................72、液晶显示模块..........................................................................................................72.1AMPIRE128X64液晶显示屏的原理介绍........................................................72.2波形汉字显示程序设计..................................................................................93、中断系统的使用............................................................................................10六、程序字节分配...............................................................10七、功能描述与设计调试总结............................................111、功能描述................................................................................................................112、设计调试总结........................................................................................................11八设计总结.........................................................................12九、参考文献.......................................................................13附录1:程序代码................................................................14附录2:设计图纸................................................................25234一、课程设计及要求及目的通过课程设计环节加深对单片机原理及应用技术的理解,提高理论结合实践的能力,提高单片机系统设计和开发的能力,初步学习一个完整的单片机系统的研发过程,并培养严谨细致的科研态度。熟悉掌握常用的单片机设计软件以及一些网上个人研发的实用小软件。例如51单片机最常用keil和protues软件以及个人研发的单片机小精灵、汉字取模软件、串口助手等。要求设计一个单片机应用系统,利用keil和proteus软件完成系统软硬件的设计及模拟调试,在有条件的情况下完成对事物的操作。本文设计了一种以STC89C51为核心的简易信号产生电路,该电路使用DAC0832数模转换器件对单片机输出的数字量进行转换,使用数组定义的方式完成不同波形的输出,并通过外部中断实现对输出波形形状和波形频率等的控制,该设计以LCD16824液晶显示屏对波形的类别、形状、频率等信息以中文或图形的方式输出显示。实验结果表明,该系统设计具有体积小,性能稳定,反应速度快,可以迅速简便的实现多种波形输出的优点。二、设计思想及设计说明该设计主要由信号发生器的设计和LCD液晶显示两部分组成,其中,信号发生器的设计为本设计的重点内容,但设计过程较为简单。LCD液晶显示为本设计的辅助模块,使的使用者对该信号发生器更容易操作,是本设计过程中耗时最多的阶段,可以说是本设计的难点。1函数发生器模块该模块使用DA转换芯片DAC0832对单片机输出的8位二进制的数字量进行数字到模拟信号的转化,由于DAC0832为电流型输出,所以在输出端口使用一级运放LM324实现将电流输出转为电压输出,之后使用二级运放实现对输出信号的放大,使输出波形的幅值可调,在设计的端口使用RC低通滤波器对输出波形进行滤波,使所得到的波形更加平滑。在软件设计方面,为了与LCD显示屏联合使用,该设计没有使用正弦、方波、三角波、锯齿波的波形函数作为输出数字量,而是使用64个单元的数组定义每一个波形,由此,也可以更加方便的增加其他波形的输出。2LCD液晶显示模块该模块使用protues中提供的AMPIRE128X64液晶显示屏,该显示屏无中英文字库,所以设计过程中需要对自己需要的字符和汉字进行取模,本设计将该显示屏分为两部分,整屏幕的前四分之一用于显示“函数”“正弦”“方波”“三角”“锯齿”“频率”和峰峰值等信息。后面的部分用于显示输出波形的形状。该模块的关键点在于AMPIRE128X64这款液晶显示屏的控制方法、矩阵排列方式以及与市场上常见的LCD16824的区别于共性和区别。共性点在于控制、读写等指令的相同,以及该端口的强大的锁存功能。区别主要在于该12864将整个屏幕分为两块,分别使用外部控制信号CS1与CS2选择开通。5三、硬件设计该设计的硬件连接图如图一所示,箭头线上为管脚的连接方式。具体的连接方式见附录1:简易信号发生器的设计图纸。51单片机DAC0832LCD16824晶振与复位两级运放LM324P1口/P3控制口P0口/P3控制口按键P3.2/P3.3图一系统硬件连接简图四、程序设计流程该程序的设计流程图如图二所示,系统首先将输出波形定义为正弦波输出,且频率定义为400HZ,并将该信息在LCD液晶显示频上显示出来,之后进入主函数,并不断调用正弦波的数组使之按照正弦波规律变化,经过外部DA转化实现正弦波输出。与此同时,外部中断随时可以打破主循环,通过外部中断0将其他波形定义为当前输出波形,每按一次,波形变化一次,循环往复,并在该中断服务程序中改变LCD显示波形、频率等信息。而在外部中断1中,只改变波形频率,只需要刷新频率显示部分即可。整个程序设计代码在附录2中:程序代码主函数main()主循环输出波形液晶显示屏初始化DAC0832初始化外部中断初始化液晶显示正弦波外部中断0改变输出波形外部中断1改变波形频率改变液晶显示波形刷新液晶显示频率图二程序流程图6五、系统模块化设计1、函数信号发生器的设计1.1、DAC0832的介绍DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。其内部结构如图三所示图三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)+128(1)该函数信号发生部分的主要程序段如下所示,P2=*(which_bx+kk);//which_bx选择哪一种波形显示,为这种波形数据的首地址kk++;if(kk==64)7kk=0;while(delay_time)delay_time--;通过调节delay_time的大小可以调节输出频率的大小,经过实际运行测得当delay_time为0时,运行一次的时间为,则频率为400hz,这是该函数信号发生器的最大输出频率。1.3、函数发生器的外围电路组成该部分使用一级运放实现对输出电流转为输出电压,并使用二级运放经过滑动变阻器放大输出电压,使得电压可调,最后通过低通滤波器RC网络进行滤波,实现波形的输出。选择二级运放的前置电阻为5K,滑动变阻器的最大阻值为10K,则最大可以将输出的峰值电压5V变为10V。电压的调节范围是(0~10V)。该模块的电路图如图所示。图四函数发生器的外围电路组成2、液晶显示模块2.1AMPIRE128X64液晶显示屏的原理介绍该AMPIRE128*64液晶显示频不自带中英文字库,是一种图形点阵液晶显示器,它主要由行主要由行驱动器/列驱动器及128×64全点阵液晶显示器组成。可完成图形显示,也可以显示8×4个(16×16点阵)汉字。其管脚定义表一所示表一AMPIRE128X64的管脚定义管脚名称LEVER管脚功能描述VSS0电源地VDD+5.0V电源电压V0——液晶显示器驱动电压D/I(RS)H/LD/I=“H”,表示DB7∽DB0为显示数据D/I=“L”,表示DB7∽DB0为显示指令数据R/WH/LR/W=“H”,E=“H”数据被读到DB7∽DB0R/W=“L”,E=“H→L”数据被写到IR或DREH/LR/W=“L”,E信号下降沿锁存DB7∽DB0R/W=“H”,E=“H”DDR
本文标题:函数信号发生器的设计(12864实现动态波形显示)
链接地址:https://www.777doc.com/doc-2641263 .html