1、STC51单片机的函数信号发生器(c语言) 作者: 日期:16 基于51单片机的函数信号发生器设计报告 摘 要 本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,能产生10Hz10kHz的波形。通过键盘来控制四种波形的类型选择、拨码开关控制频率的变化,并通过液晶屏1602显示其各自的类型以及数值,系统大致包括信号发生部分、数/模转换部分以及液晶显示部分三部分,其中尤其对数/模转换部分和波形产生和变化部分进行详细论述。关键词:单片机AT89S52、DAC0832、液晶1
2、602目录1. 系统设计1.1 设计要求 1.2方案设计与论证 1.2.1 信号发生电路方案论证 1.2.2 单片机的选择论证 1.2.3 显示方案论证 1.2.4 键盘方案论证 1.3 总体系统设计 1.4 硬件实现及单元电路设计 1.4.1 单片机最小系统的设计1.4.2 波形产生模块设计 1.4.3 显示模块的设计 1.4.4 键盘模块的设计1.5 软件设计流程 1.6 源程序2. 输出波形的种类与频率的测试2.1 测试仪器及测试说明2.2 测试结果3、附录 3.1 参考文献3.2 附图1、 系统设计 经过考虑,我们确定方案如下:利用AT89C52单片机采用程序设计方法产生锯齿波、三角波
3、、正弦波、方波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过键盘来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。1.1、设计要求 1)、利用单片机采用软件设计方法产生四种波形 2)、四种波形可通过键盘选择 3)、波形频率可调 4)、需显示波形的种类及其频率1.2方案设计与论证 1.2.1 信号发生电路方案论证 方案一:通过单片机控制D/A,输出四种波形。此方案输出的波形不够稳定,抗干扰能力弱,不易调节。但此方案电路简单、成本低。 方案二:使用传统的锁相频率合成方法。通过芯片IC145152,压控振荡器搭接的锁相环电
4、路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。此方案,电路复杂,干扰因素多,不易实现。 方案三:利用MAX038芯片组成的电路输出波形。MAX038是精密高频波形产生电路,能够产生准确的锯齿波、三角波、方波和正弦波四种周期性波形。但此方案成本高,程序复杂度高。以上三种方案综合考虑,选择方案一。1.2.2 单片机的选择论证 方案一:AT89C52单片机是一种高性能8位单片微型计算机。它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。方案二:C8051F005单片机是完全集成的混合信号系统级
5、芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。但其价格较贵以上两种方案综合考虑,选择方案一 1.2.3 显示方案论证 方案一:采用LED数码管。LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。使用数码管显示编程较易,但要显示内容多,而且数码管不能显示字母。 方案二:采用LCD液晶显示器1602。其功率小,效果明显,显示编程容
6、易控制,可以显示字母。以上两种方案综合考虑,选择方案二。1.2.4 键盘方案论证方案一:矩阵式键盘。矩阵式键盘的按键触点接于由行、列母线构成的矩阵电路的交叉处。当键盘上没有键闭合时,所有的行和列线都断开,行线都呈高电平。当某一个键闭合时,该键所对应的行线和列线被短路。方案二:独立式键盘。独立式键盘具有硬件与软件相对简单的特点,其缺点是按键数量较多时,要占用大量口线。以上两种方案综合考虑,选择方案二。1.3总体系统设计该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。将设计任务分解为按键电
7、路、液晶显示电路等模块。图(1)为系统的总体框图 图(1) 总体方框图1.4硬件实现及单元电路设计 1.4.1单片机最小系统的设计AT89C52是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单可靠。用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图(2) 89C51单片机最小系统所示。由于集成度的限制,最小应用系统只能用作一些小型的控制单元。其应用特点:(1) 有可供用户使用的大量I/O口线。(2) 内部存储器容量有限。(3) 应用系统开发具有特殊性。图(2) 89C51单片机最小系统1.4.2 波形产生模块设计 由单片机采用编程方法产生三种
8、波形、通过DA转换模块DAC0832在进过滤波放大之后输出。其电路图如下: 图(3)波形产生电路如上图所示,单片机的P0口连接DAC0832的八位数据输入端,DAC0832的输出端接放大器,经过放大后输出所要的波形。DAC0832的为八位数据并行输入的,其结构图如下:图(4)DAC0832的内部结构1.4.3 显示模块的设计通过液晶1602显示输出的波形、频率,其电路图如下:图(5)液晶显示如上图所示,1602的八位数据端接单片机的P2口,其三个使能端RS、RW、E分别接单片机的P1.6P1.4。通过软件控制液晶屏可以显示波形的种类以及波形的频率。1.4.4 键盘显示模块的设计由于本系统所用按
9、键少,所以采用独立键盘,其连接电路图如下:图(6)键盘图中独立键盘引出的四根线分别接单片机的P1.0、P1.1、P1.2、P1.3,另一端接地。各开关的功能如图所示。1.5 软件设计流程本系统采用AT89C52单片机,用编程的方法来产生四种波形,并通过编程来切换四种波形以及波形频率的改变。具体功能有:(1)各个波形的切换;(2)各种参数的设定;(3)频率增减等。软件调试后,通过编程器下载到AT89C52芯片中,然后插到系统中即可独立完成所有的控制。软件的流程图如下:生成波形有无按键按下有无频率变化显示频率显示波形键盘扫描是否有按键按下 开始调用初始化程序锯齿波三角波 正弦波 方波是否有其它按键
10、按下图(7)1.6源程序2、输出波形的种类与频率的测试2.1、测量仪器及测试说明测量说明:正弦波、矩形波、三角波和方波信号的输出,通过对独立键盘来实现其不同波形的输出以及用拨码开关改变其频率。2.2测试过程 当程序下进去时经过初始化,液晶屏的上只显示“wave:”和“f:”,当开关1按下是此时输出波形为方波,当开关2按下是此时输出波形为锯齿波,当开关3按下是此时输出波形为三角波,当开关4按下是此时输出波形为正弦波。本系统采用8脚的拨码开关来改变频率。频率范围如下:方 波:1010KHZ锯齿波:三角波:10HZ正弦波:103.3KHZ四种波形的仿真波形图如下:图(8)方波图(9)锯齿波图(10)三角波图(11)正弦波3、附录 3.1 参考文献1 康华光主编 电子技术基础模拟部分(第四版) 高的教育出版社,20042 余小平 奚大顺主编 电子系统设计基础篇(第二版) 北京航空航天大学出版社,20103 张毅坤 陈善久 裘雪红 主编 单片微型计算机原理及应用 西安电子科技大学出版社,20043.2 附图图(12)总体原理设计图