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

上传人:b****6 文档编号:4395900 上传时间:2022-12-01 格式:DOCX 页数:33 大小:545.44KB
下载 相关 举报
基于单片机和DAC0832的函数信号发生器的设计.docx_第1页
第1页 / 共33页
基于单片机和DAC0832的函数信号发生器的设计.docx_第2页
第2页 / 共33页
基于单片机和DAC0832的函数信号发生器的设计.docx_第3页
第3页 / 共33页
基于单片机和DAC0832的函数信号发生器的设计.docx_第4页
第4页 / 共33页
基于单片机和DAC0832的函数信号发生器的设计.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

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

《基于单片机和DAC0832的函数信号发生器的设计.docx》由会员分享,可在线阅读,更多相关《基于单片机和DAC0832的函数信号发生器的设计.docx(33页珍藏版)》请在冰豆网上搜索。

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

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

基于单片机和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转化为模拟电压,通过按键输入给单片机控制不同波形的输出,其体积小,成本低,功率小,又达到学习的目的,因为我们选择此方案。

图2.1方案四原理框图

3系统硬件设计

3.1系统硬件总体设计概述

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

本系统提供了五种不同的波形输出,通过五个按键控制相应的方波,锯齿波,梯形波,三角波和正弦波。

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

本设计的硬件系统分为三个模块:

单片机系统模块,DA转换模块,放大器模块。

3.2系统各个模块的设计

3.2.1单片机系统模块

本系统采用的单片机芯片是ATC89C51,此芯片是一种带4K字节FLASH存储器(FPEROM—FlashProgrammableandErasableReadOnlyMemory)的低电压,高性能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.0RXD(串行输入口)

P3.1TXD(串行输出口)

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

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

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

P3.5T1(记时器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。

模式1

模式1除了使用了THn及TLn全部16位外,其它与模式0相同。

模式2

此模式下定时器寄存器作为可自动重装的8位计数器(TLn)。

TLn的溢出不仅置位TFn,而且将THn内容重新装入TLn,THn内容由软件预置。

重装时THn内容不变。

模式2的操作对于定时器0及定时器1是相同的。

模式3

在模式3中,定时器1停止计数,效果与将TR1设置为0相同。

此模式下定时器0的TL0及TH0作为两个独立的8位计数器。

TL0占用定时器0的控制位:

C/T,GATE,TR0,INT0及TF0。

TH0限定为定时器功能(计数器周期),占用定时器1的TR1及TF1。

此时TH0控制“定时器1”中断。

模式3可用于需要一个额外的8位定时器的场合。

定时器0工作于模式3时,80C51看似有3个定时器/计数器,当定时器0工作于模式3时,定时器1可通过开关进入/退出模式3,它仍可用作串行端口的波特率发生器,或者应用于任何不要求中断的场合。

串行口[8]

51单片机内部有一个全双工的串行通信口,即串行接收和发送缓冲器(SBUF),这两个在物理上独立的接收发送器,既可以接收数据也可以发送数据。

但接收缓冲器只能读出不能写入,而发送缓冲器则只能写入不能读出,它们的地址为99H。

这个通信口既可以用于网络通信,亦可实现串行异步通信,还可以构成同步移位寄存器使用。

如果在传行口的输入输出引脚上加上电平转换器,就可方便地构成标准的RS-232接口

 串行数据通信两种形式

 异步通信

    在这种通信方式中,接收器和发送器有各自的时钟,它们的工作是非同步的,异步通信用一帧来表示一个字符,其内容如下:

一个起始位,仅接着是若干个数据位。

    同步通信格式中,发送器和接收器由同一个时钟源控制,为了克服在异步通信中,每传输一帧字符都必须加上起始位和停止位,占用了传输时间,在要求传送数据量较大的场合,速度就慢得多。

同步传输方式去掉了这些起始位和停止位,只在传输数据块时先送出一个同步头(字符)标志即可。

    同步传输方式比异步传输方式速度快,这是它的优势。

但同步传输方式也有其缺点,即它必须要用一个时钟来协调收发器的工作,所以它的设备也较复杂。

串行数据通信的传输速率

    串行数据传输速率有两个概念,即每秒转送的位数bps(Bitpersecond)和每秒符号数—波特率(Bandrate),在具有调制解调器的通信中,波特率与调制速率有关。

[9]

串行口和控制寄存器

单片机串行口寄存器结构如图3.5所示。

SBUF为串行口的收发缓冲器,它是一个可寻址的专用寄存器,其中包含了接收器和发送器寄存器,可以实现全双工通信。

但这两个寄存器具有同一地址(99H)。

[10]MCS-51的串行数据传输很简单,只要向发送缓冲器写入数据即可发送数据。

而从接收缓冲器读出数据即可接收数据。

 

图3.1串行口寄存器结构图

Fig3.1Thestringgoestodepositmachineknotcomposition

串行口控制寄存器:

SCON控制寄存器,它是一个可寻址的专用寄存器,用于串行数据的通信控制,单元地址是98H,其结构格式如表3.1所示.

表3.1SCON寄存器结构

Table3.1TheSCONdepositsmachinestructure

    SCON寄存器结构

SCON

D7

D6

D5

D4

D3

D2

D1

D0

SM0

SM1

SM2

REN

TB8

RB8

TI

RI

位地址

9FH

9EH

8DH

9CH

9BH

9AH

99H

98H

SM0、SM1:

串行口工作方式控制位。

  SM0,SM1    工作方式

            00      方式0

            01      方式1

            10      方式2

            11      方式3

SM2:

多机通信控制位。

    多机通信是工作于方式2和方式3,SM2位主要用于方式2和方式3。

接收状态,当串行口工作于方式2或3,以及SM2=1时,只有当接收到第9位数据(RB8)为1时,才把接收到的前8位数据送入SBUF,且置位RI发出中断申请,否则会将接受到的数据放弃。

[11]当SM2=0时,就不管第位数据是0还是1,都难得数据送入SBUF,并发出中断申请。

    工作于方式0时,SM2必须为0。

REN:

允许接收位。

    REN用于控制数据接收的允许和禁止,REN=1时,允许接收,REN=0时,禁止接收。

 

TB8:

发送接收数据位8。

在方式2和方式3中,TB8是要发送的——即第9位数据位。

在多机

通信中同样亦要传输这一位,并且它代表传输的地址还是数据,TB8=0为数据,TB8=1时为地址。

TI:

发送中断标志位。

可寻址标志位。

方式0时,发送完第8位数据后,由硬件置位,其它方式下,在发送或停止位之前由硬件置位,因此,TI=1表示帧发送结束,TI可由软件清“0”。

 RI:

接收中断标志位。

    可寻址标志位。

接收完第8位数据后,该位由硬件置位,在其他工作方式下,该位由硬件置位,RI=1表示帧接收完成。

电源管理寄存器PCON

    PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器,单元地址是87H,其结构格式如表3.2所示。

表3.2PCON电源管理寄存器结构

Table3.2ThePCONpowersupplymanagementdepositsmachinestructure

    PCON电源管理寄存器结构

PCON

D7

D6

D5

D4

D3

D2

D1

D0

位符号

SMOD

-

-

-

GF1

GF0

PD

IDL

在CHMOS型单片机中,除SMOD位外,其他位均为虚设的,SMOD是串行口波特率倍增位,当SMOD=1时,串行口波特率加倍。

系统复位默认为SMOD=0。

3.2.2晶振时钟模块

单片机的工作过程是:

取一条指令、译码、进行微操作,再取一条指令、译码、进行微操作,这样自动的、一步一步的由微操作依序完成相应的指令规定的功能。

各指令的微操作在时间上有严格的次序,这种微操作的时间次序称作时序。

89C51单片机的时钟信号通常由两种方式产生。

一是内部时钟方式,二是外部时钟方式。

内部时钟方式如图3.2(a)所示。

只要在单片机的XTAL1和XTAL2引脚外接晶振即可。

图中,电容C1和C2的作用是稳定频率和快速起振,电容值在5-30pF,典型值为30pF。

晶振CYS的震荡频率要小于12MHz,典型值6MHz、12MHz或11.0592MHz。

外部时钟方式是把外部已有的时钟信号引入到单片机内,如图3.2(b)所示。

此方式用于多片89C51单片机同时工作,并要求各单片机同步运行的场合。

 

图3.289C51单片机时钟方式

Fig3.2ClockmodeofMicrocomputer89C51

实际应用中通常采用外接晶振的内部时钟方式,晶振的频率高一些时可以提高指令的执行速度,但相应的功耗和噪声也会增加,在满足系统功能的前提下,应选择低一些的晶振频率。

当系统要与PC机通信时,应选择11.0592MHz的晶振,这样便于将波特率设定为标称值。

3.2.3复位电路模块

复位是使单片机或系统中的其他部件处于某种确定的厨师状态。

单片机的工作就是从复位开始的。

当80C51的RST引脚加高电平复位信号(保持2个以上机器周期)时,单片机内部就执行复位操作。

复位信号变低时,单片机开始执行程序。

实际操作中,复位操作有两种基本形式:

一种是上电复位,另一种是上电与按键均有效的复位,如图3.3所示

图3.3单片机复位电路

Fig3.3ResetcircuitofMicrocomputer89C51

上电复位要求接通电源后,单片机自动实现复位操作。

常用的上电复位电路如图3.3(a)所示,上电瞬间RST引脚获得高电平,随着电容C1的充电,RST引脚的高电平将逐渐下降。

RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。

该电路得典型的电阻和电容参数为:

晶振:

12MHz时,C1为10uF,R1为8.2KΩ;晶振为6MHz时,C1为22uF,R1为1KΩ。

按键与上电均有效的复位电路如图3.3(b)所示,上电复位原理与图3.3(a)相同,另外在单片机运行期间,还可以利用按键完成复位操作。

晶振为6MHz时,R2为200Ω。

实际应用中如果单片机断电后,有可能在较短的时间内再次加电,可以在R1上并接一个放电二极管,这样可以有效的提高此种情况下复位的可能性。

3.2.4数模转换模块

数模转换器的工作原理

数模转换器是将数字量信号转换成与此数值成正比的模拟量。

需要转换的数字量由一个二进制数字表示,每位二进制数字都有一定的权,在转换中,应将二进制数的每一位按照权的大小转换成相应的模拟量输出分量,然后将各个输出分量叠加,总和就是与数字量成正比的模拟量数值。

上述D/A的转换,常用如图3.4所示的倒T形解码网络加以实现。

图3.4倒T形电阻网络D/A转换器

电路设计如图3.4所示,包括由R-2R组成的电阻网络、模拟电子开关和集成运算放大器。

对于电阻网络,无论从哪个R-2R节点看,等效电阻都是R,因此,从参考电压端输入的电流为:

IR=VREF/R

根据分流公式,各支路电流为:

I7=I/21I6=I/22I5=I/23I4=I/24I3=I/25I2=I/26I1=I/27I0=I/28

于是,经过运算放大器输出的模拟电压VO为:

VO=-RF∑Ii=-RfbVREF/R×28(D7×27+D6×26+D5×25+

D4×24+D3×23+D2×22+D1×21+D0×20)

其中VREF进行D/A转换的系统提供的参考电压,Rfb为集成运算放大器的反馈电阻,D7~D0取值为0或1,0表示切换开关与地相连,1表示与参考电压相连。

通过上述电路,即完成了二进制数字信号到模拟电压信号的转换。

数模转换器的主要技术指标

D/A转换器的指标有很多,使用者最关心的几个指标如下。

(1)分辨率

分辨率指输入给D/A转换器的单位数字量引起的模拟量输出的变化,通常定义为输出满刻度值与2n之比(n为D/A转换器的二进制位数)。

显然,二进制位数越多,分辨率越高,即D/A转换器对输入量变化的敏感程度越高。

例如,8位的D/A转换器,若满量程输出为10V,根据分辨率定义,则分辨率为10V/2n,分辨率为10V/256=39.1mV,即输入的二进制最低位的变化可引起输出的模拟电压变化39.1mV,该值占满量程的0.391%,常用1LSB表示。

同理:

10位D/A转换1LSB=9.77mV=0.1%满量程

12位D/A转换1LSB=2.44mV=0.024%满量程

16位D/A转换1LSB=0.076Mv=0.00076%满量程

使用时,应根据对D/A转换器分辨率的需要来选定D/A转换器的位数。

(2)转换精度

转换精度以最大的静态转换误差的形式给出。

这个转换误差包含非线性误差、比例系数误差以及飘逸误差等综合误差。

应该注意,精度和分辨率是两个概念。

精度是指转换后所得的实际值对于理想值的接近成都,而分辨率是指能够对转换结果发生影响的最小输入量,分辨率很高的D/A转换器并不一定具有很高的精度。

(3)相对精度

相对精度是指在满刻度已经校准的前提下,在整个刻度范围内,对应于任一数码的模拟量输出与它的理论值之差。

通常用偏差几个LSB来表示和该偏差相对满刻度的百分比表示。

(4)建立时间

建立时间是描述D/A转换器转换快慢的一个参数,用于表明转换时间或转换速度。

其值为从输入数字量到输出达到种植误差±(1/2)LSB(最低有效位)时所需的时间。

电流输出的转换时间较短,而电压的转换器,由于要加上完成I-V转换的运算放大器的延迟时间,因此转换时间要长一些。

快速D/A转换器的转换时间可控制在1us以下。

(5)线性度

通常用非线性误差的大小表示D/A转换器的线性度,输入输出特性的偏差与满刻度输出之比的百分数表示非线性误差。

一定温度下的最大非线性误差一般为0.01%~0.03%.

DAC0832芯片主要特性与结构

DAC083

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 数学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1