基于单片机和DAC0832的函数信号发生器的设计

  • 格式:doc
  • 大小:1.06 MB
  • 文档页数:29

基于单片机和DAC0832的函数信号发生器的设计

摘 要: 信号发生器在生产实践和科技领域中有着广泛的应用。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。例如在通信、广播、电视系统中都需要射频发射,这就需要信号发生器,在工业、农业、生物医学等领域内,如高频感应加热、熔炼、淬火、超声诊断、核磁共振图像等,都需要功率或大或小、频率或高过低的信号。在现代社会中,自动化技术早已渗透到社会生产的各个领域中,高精度、宽频率、高稳定性的信号发生器对于所属整体系统的性能改善和提高起着至关重要的作用。多波形的函数信号发生器是电子实验室的基础设备之一,目前各类学校广泛使用的是标准产品,虽然功能齐全,性能指标高,但是价格昂贵,本文所研究的信号发生器采用单片机和DAC0832结合起来,通过数字电子电路向模拟电路转化,该系统虽然性能指标不如标准产品,但是它体积小,成本低,便于携带等特点,亦可作为电子随身设备之一。系统通过单片机产生数字信号通过DAC0832转换为模拟信号,再通过放大器LM324就可以得到双极性的各种波形,通过几个按键切换想要的波形。

关键词: 单片机,数模转换芯片DAC0832,运算放大器LM324,

1前言

1.1 题目的来源与开发意义

自20世纪90年代以来,单片机已进入了一个高速发展的阶段,世界上著名的半导体厂商都注重新型单片机的研制、生产和推广。单片机的应用已经深入到国民经济的各个领域中,由单片机控制的微型电脑产品比比皆是。单片机正朝着面向多层次用户的多品种多规格方向发展。

基于单片机和DAC0832的函数信号发生器的设计,本课题是充分运用大学期间对所学专业知识,结合现在使用的信号发生器的基本功能,完成一个系统的设计的全过程,通过单片机和模数转换芯片以及放大器产生多种波形的函数信号发生器在控制领域有着相当广泛的应用。

应用单片机控制的信号发生器的设计,整个系统控制简单,能够全方位的掌握在校期间所学的大部分知识,对单片机的学习是必不可少的,数模转换也是一个非常重要的知识,在对于数字电子和模拟电子的掌握上有非常大的应用,运算放大器的使用更加增强了对模拟模拟电路得理解,整个系统体积小,成本低廉,功能齐全,通过不同的按键,系统输出相应的波形,从而对所学的知识做了全面的深入的学习和掌握。

1.2系统功能概述

本系统中所应用的控制芯片为STC89C51,这个单片机用于产生最初的信号源,通过单片机循环产生数据,再将数据传给数模转换芯片。单片机通过内部程

序控制给出数据的频率,从而控制整个系统的信号输出频率。单片机送给数模转换芯片DAC0832的数据通过内部器件转换成模拟信号输出,这是输出的是数字信号,需要通过运算放大器转化为模拟信号,如果要得到双极性的信号,那么就要通过两级运放转化。

系统中有五个按键与单片机的P1口相连,每个按键对应不同的波形,分别为方波、锯齿波、三角波、梯形波和正弦波,当P1.0按键按下时,P1.0引脚为低电平,系统的输出波形为方波,同样的道理,以后的每个按键分别按下时则系统的输出为相应的波形,当没有按键按下时,没有任何波形的输出,从而整个系统的输入设备为与P1口相连的五个按键,输出为与按键相应的波形。

在不同的实验要求中,有不同的波形需求,本系统的设计基本能够满足实验室的各种实验,节约了成本,减小了体积,降低了功耗。

2 方案的提出及论证

方案一:

用分立元件组成的函数信号发生器通常是单函数信号发生器,且频率不高,工作不是很稳定,而且不易调试,虽然结构很简单,制作容易,但是输出的信号频率线性度差、频率稳定度低、频率稳定度低、频率分辨率低、频率变换时间比较长,相位的噪声大以及人机界面不友好等缺点。

方案二:

可以由晶体管、运放IC等通用器件制作,更过的则是应用专门的函数信号发生器IC,如8038等,它们功能较少而且精度不高,频率上限不高,调节方式也不够灵活,频率和占空比也不能独立调节,二者相互影响。

方案三:

利用专用直接数字合成DDS芯片的函数信号发生器,能产生任意波形并能达到很高的频率,但是成本较高,从成本上考虑,不适合选择这么昂贵的芯片。

方案四:

利用常用的单片机ATC89C51和常用的数模转换芯片DAC0832结合,在利用运放LM324转化为模拟电压,通过按键输入给单片机控制不同波形的输出,其体积小,成本低,功率小,又达到学习的目的,因为我们选择此方案。

89C51数模转换极性转换波形输出按键输入复位电路晶振电路

图2.1方案四原理框图

3 系统硬件设计

3.1 系统硬件总体设计概述

本系统主要是应用在实验室的信号的地要求,对于不同的实验需要有不同的波形需求,在实验条件要求不高的情况下,比如一定的脉宽调制,需要一定频率的方波进行调节,这时需要一个简单的方波,而本系统正好能够提供这样一种波形,还有其他一些条件下都可以通过本系统的控制来调节。

本系统提供了五种不同的波形输出,通过五个按键控制相应的方波,锯齿波,梯形波,三角波和正弦波。每次只能有一个键按下,没有按键按下时没有波形产生,按键输入信号给单片机,单片机对按键的情况进行处理,例如第一个按键按下时,系统需要产生一个方波,那么单片机循环输出0和1,那么通过DAC0832就通过运放循环输出高低电平,这样系统就能够输出方波,同样的道理,锯齿波、三角波、正弦波的产生也可以采用相似的道理。

本设计的硬件系统分为三个模块:单片机系统模块,DA转换模块,放大器模块。

3.2 系统各个模块的设计

3.2.1 单片机系统模块

本系统采用的单片机芯片是ATC89C51,此芯片是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory )的低电压,高性能CMOS8位微处理器,俗称单片机。ATC89C51是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATC89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案

主要特性:

与MCS-51 兼容

4K字节可编程闪烁存储器 ,

寿命:1000写/擦循环,数据保留时间:10年

全静态工作:0Hz-24Hz

三级程序存储器锁定

128*8位内部RAM

32可编程I/O线

两个16位定时器/计数器

5个中断源

可编程串行通道低功耗的闲置和掉电模式

片内振荡器和时钟电路

管脚说明:

VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏极开路双向I/O口,每脚可吸收8TTL门电流。

P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接

收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

管脚 备选功能

P3.0 RXD (串行输入口)

P3.1 TXD (串行输出口)

P3.2 /INT0 (外部中断0)

P3.3 /INT1(外部中断1)

P3.4 T0 (记时器0外部输入)

P3.5 T1 (记时器1外部输入)

P3.6 /WR (外部数据存储器写选通)

P3.7 /RD (外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平

时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

XTAL2:来自反向振荡器的输出。

定时器0和1的操作

定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择。这两个定时/计数器有4种操作模式,通过TMOD的M1和M0选择。两个定时/计数器的模式0、1和2都相同,模式3不同。如下所述:

模式0

将定时器设置成模式0时类似8048定时器,即8位计数器带32分频的预分频器。

此模式下,定时器寄存器配置为13位寄存器。当计数从全为“1”翻转为全为“0”时,定时器中断标志位TFn置位。当TRn=1同时GATE=0或INTn=1时定时器计数。置位GATE时允许由外部输入INTn控制定时器,这样可实现脉宽测量。TRn为TCON寄存器内的控制位。

该13位寄存器包含THn全部8个位及TLn的低5位。TLn的高3位不定,可将其忽略。置位运行标志(TRn)不能清零此寄存器。模式0的操作对于定时器0及定时器1都是相同的。两个不同的GATE位(TMOD.7和TMOD.3)分别分配给定时器0及定时器1。