ImageVerifierCode 换一换
格式:DOCX , 页数:38 ,大小:1.02MB ,
资源ID:3428461      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3428461.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机函数信号发生器毕业设计.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机函数信号发生器毕业设计.docx

1、单片机函数信号发生器毕业设计毕业设计(论文)论 文 摘 要本文主要用AT89C51 单片机与DAC0832构成的函数信号发生器,可产生方波、三角波、正弦波,具有线路简单、结构紧凑、性能优越等特点。本函数信号发生器可以由程序控制改波形的周期,以及不同波形的切换。用ADC0809实时对其波形电压测量。输出波形的幅值可以在05V可以调节。对于输出电压的控制,主要是用UA741放大器对其信号放大来实现的。输出波形幅值的大小,由ua741接负反馈电阻来调节,从而达到了输出波形幅值在0-5V可调。对于显示部分,本设计采用四位共阳数码管实时显示当前波形的频率,以及在按键的切换下可以显示测量的波形的电压幅值。

2、文章给出了源代码,并通过proteus软件仿真测试,然后画出PROTEL原理图和PCB板图。对应着PCB板图焊接实物电路,并下载程序做硬件调试。用示波器观察其波形。最终其性能指标达到了设计要求。 关键词:单片机;DAC0832;ADC0809;放大器;信号发生器。AbstractThis article mainly basede on the AT89C51 microcontroller and the DAC0832 function of signal generator produces a square wave, triangle wave, sine wave, with si

3、mple lines, compact structure, superior performance characteristics. Signal generator of the function can be changed by the program control period of the waveform, and waveform switching. Using ADC0809 real-time to its waveform voltage measurement. The amplitude of the output waveform can be adjuste

4、d in the 0-5V. For the control of output voltage, to achieve the UA741 amplifier on signal amplification.The size of the output waveform amplitude ua741 to the negative feedback resistor to regulate so as to achieve the output waveform amplitude in the 0-5V adjustable. Display section, the design us

5、es four common anode digital tube real-time display of the frequency of the current waveform and the voltage amplitude of the measured waveform can be displayed in the key switch. The article gives the source code, proteus software simulation testing, and then draw the the PROTEL schematic and PCB p

6、lans. Corresponds to the PCB plans to weld the physical circuit, and download the program to do hardware debugging. Observe the waveform with an oscilloscope. Ultimately, its performance meets the design requirements.Key Words:Microcontroller; DAC0832; ADC0809; amplifier; signal generator.目录绪论1.1 单片

7、机概述随着大规模集成电路技术的发展,中央处理器(CPU)、随机存取存储器(RAM)、只读储器(ROM)、(I/O)接口、定时器/计数器和串行通信接口,以及其他一些计算机外围电路等均可集成在一块芯片上构成单片微型计算机,简称为单片机。单片机具有体积小、成本低,性能稳定、使用寿命长等特点。其最明显的优势就是可以嵌入到各种仪器、设备中,这是其他计算机和网络都无法做到的。1.2 信号发生器的分类信号发生器应用广泛,种类繁多,性能各异,分类也不尽一致。按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为:

8、正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。1.3 研究内容本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、方波、正弦波的发生。根据设计的要求,对各种波形的频率进行程序的编写,通过放大器来调幅,并将所写程

9、序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。第一章 方案的设计与选择1 2 2.1 方案与比较方案一:采用单片函数发生器(如ICL8038),ICL8038可同时产生正弦波、方波等,而且方法简单易行,用运算放大器改变调制电压,也可以实现数控调整频率,但产生信号的频率稳定度不高。频率调节也不能直接由程序控制。方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,

10、且电路复杂。方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。2.2 设计原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成

11、模拟信号的方法来获得所需要的波形。89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器 RAM、只读存储器 ROM、接口电路、I/O 定时器/计数器以及串行通讯接口等,只要将 89C51 再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图 2.1 所示。89C51 是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的

12、输出波形。2.3 设计思想(1)向DAC0832送对应的数字量就能得到相应的模拟信号。(2)将一个周期的信号分离成 256 个点(按 X 轴等分),每两点之间的时间间隔为T,用单片机向ADC0832推送数组得到函数信号。T作为调频的延时,嵌入在256个数据之间。改变T就能调节波形的频率。(3)方波的模拟产生: 数字量为0x00时推入DAC0832输出为低电平 数字量为0xff时推入DAC0832输出为高电平(方波便于对频率的测量,也取256个数据。这与三角波,正弦波数据表统一。所以三种波形的频率一样。(4)三角波模拟信号由D/A转换器的模拟量输出:向DAC0832送数据0255后,再送数据25

13、50的连续数据就能够得上一个周期的完整三角波。因为只取256个数据点,所以波形前半只取0255中的奇数(128个数);波形后半周期只取2550的偶数部分(128个数)。由此较准确的取下了256个数据。(5)正弦波的模拟信号由 D/A 转换器的模拟量输出的计算公式为:Y=(A/2sint)+A/2 (其中 A=VREF)t=NT (N=1256) 那么对应着存放在计算机里的这一点的数据为:正弦函数DA数据表,可以用“VsinTab正弦波表生成器”生成所需要的数据表。如图2.3所示。图2.3(6)一个周期被分离成 256 个点,对应的三种波形的256个数据存分别放在以fangboTAB256,sa

14、njiaoboTAB256,zhengxianboTAB256为起始地址的存储器中。(7)ADC0832转换得到的模拟量为电流输出,Iout1+Iout2为常数。电流很微弱,必须通过放大器放大。本设计中采用2个ua741,一个ua741对其信号放大,但是电压现在是负值。不能达到输出电压为0-5V可调的设计要求。所以还得加一个ua741作为反向器,得到正压值。对于设计中的输出电压0-5V可调,可以采用调节放大器的负反馈电阻来实现调幅。(8)实时函数信号的幅值测量:本设计是通过ADC0809放大器输出端口的信号幅值电压的测量。因为产生的信号不是直流,是属于高频信号。所以得加三极管和一个RC滤波电路

15、对其测量幅值。2.4 设计功能(1)本方案有4个独立式按键,4位 LED 共阳数码管显示器。其中“S1”号键单片机复位,“S2”号键波形输出切换,“S3”号键调节输出波形的频率,“S4”号键测量电压幅值。4位 LED 共阳数码管用来显示当前波形的频率和电压的幅值。(2)DAC0832产生需要的函数信号,ADC0809测量函数信号实时幅值。(3)74LS74把单片机ALE端口2MHZ信号4分频为500K,作为ADC0809的时钟信号。(4)用一个ua741把DAC0832的Iout1与Iout2电流输出端口的信号的放大,用另一个ua741作为反向器,把前一级放大了的信号反向,把幅值变成正值。(4

16、)频率范围:30210Hz。(5)输出波形幅度为 05V。第二章 硬件设计3 3.1 硬件原理框图硬件原理方框图如图 3.1 所示。3.2 主控电路AT89C51 单处机内部设置两个16 位可编程的定时器/计数器 T0 和 T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。在波形发生器中,将其作定时器使用,用中断来控制数码管的动态扫描。这样可以达到不失真的产生函数信号波形。模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了

17、紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器计数器溢出时产生的中断请求,即是在AT89C51 点亮一样数码管,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着点关闭当前位数码管亮下一位数码管,如此循环达到动态扫描的显示功能。AT89C51从P2口接收来自键盘的信号。如果有键按下,则在读控制端会产生一个读信号,使单片机读入信号并且存储相应的键值。按下S0时,单片机复位。按下S1时,输出波形切换。按下S2时,输出波形调整。按下S3时,测量输出波形电压幅值。3.3 显示电路在本设

18、计中,采用4位数码管来显示频率和电压。由PNP三极管驱动可以获得高亮度的显示。当产生一个周期的波形需要把256个数组推送到DAC0832中,数据量大,所以不能产生很高的频率。用4位的数码管就够用。显示接口如图 3.3所示。图 3.33.4 数/模转换电路由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器DAC0832。DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存

19、器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:直通方式、单缓冲方式和双缓冲方式。DAC0832引脚功能说明:DI0DI7:数据输入线,TLL电平。ILE:数据锁存允许控制信号输入线,高电平有效。CS:片选信号输入线,低电平有效。WR1:为输入寄存器的写选通信号。XFER:数据传送控制信号输入线,低电平有效。WR2:为DAC寄存器写选通输入线。Iout1:电流输出线。当输入全为1时Iout1最大。Iout2: 电流输出线。其值与Iout1之和为一常数Rfb:反馈信号输入线,芯片内部有反馈电

20、阻。Vcc:电源输入线 (+5v+15v)。Vref:基准电压输入线 (-10v+10v)。AGND:模拟地。DGND:数字地。在本设计中,采用的是直通模式。因为接口简单。占用单片机口接口少。当数据送入DAC0832立即转换。电路图如图3.4所示。图3.43.5 放大、分频电路 放大电路741放大器输出入脚位图图3.51在本设计中用到了两个ua741如图3.52。第1级放大器,用于信号的放大。第2级放大器,用于信号的反向,从而得到正电压。图3.52第一级放大器(U5)输出电压的计算公式为:第一级反向器(U6)输出电为:VOUT2=-VOUT1 4分频电路74LS74芯片由两个独立的上升沿触发的

21、维持阻塞D触发器组成。引脚功能说明:图3.611CP、2CP:时钟输入端1D、2D:数据输入端1Q、2Q、1/Q、2/Q:输出端CLR1、CLR2:直接复位端(低电平有效)PR1、PR2:直接置位端(低电平有效)功能表:图3.62在本设计需要一个4分频电路,中如图3.63所示。就可以得到一个4分频电路。实际设计中将用来把单片机ALE引角上的信号(2MHZ)分为500KHZ用来提供ADC0809的时钟。图3.633.6 模/数转换电路 ADC0809概述ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码

22、后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片。 主要特性1)8路输入通道,8位A/D转换器,即分辨率为8位。2)具有转换起停控制端。3)转换时间为100s(时钟为640kHz时),130s(时钟为500kHz时)4)单个+5V电源供电5)模拟输入电压范围0+5V,不需零点和满刻度校准。6)工作温度范围为-40+85摄氏度7)低功耗,约15mW。 外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图3.71所示。下面说明各引脚功能。图3.71IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADD

23、B、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。ALE:地址锁存允许信号,输入,高电平有效。START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-):基准电压。Vcc:电源,单一+5V。GND:地。 ADC0809的工

24、作过程首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 转换数据的传送A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。(1)定时传送方式对于一种A/D转换器来说,转

25、换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。(2)查询方式A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。(3)中断方式把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,O

26、E信号即有效,把转换数据送上数据口,供单片机接收。在本设计中,因为单片机的资源有限。为了节约单片机接口,所以采用第一种定时传送方式。ADC0809的OE端直接接高电平,当数据转换完成立即送到数据口。单片机每隔一定的时间来读取数据口的数据。如图3.72所示。ADC0809在本设计中是用来对输出的波形的实时电压的测量的作用。其转换测量的公式:X就是我们需要计算出来的当前的电压值。5代表5伏的基准电压。28是ADC0809的转换分辨率。P3是针对我的当前设计写的,就是ADC0809数据总线的数据。图3.723.7 按键、复位、时钟电路 键盘电路本设计中采用的是3个独立的功能按键。S2用来切换现在产生

27、的波形。当没有按下S2时信号发生器产生方波信号。第一次按下S2时,将切换成三角波信号。第二次按下S2时,将切换产生正弦波信号。第三次按下S2时,又产生方波信号。这样一直循环。S3用来调节输出的函数信号的频率。当没有按下S3时,产生的函数信号最高。当按下S3时,波形频率降低,同时还要对应向LED显示缓冲区给定一个频率值提供当前频率显示所需要的数据。S3按7次一个循环。当第7次按下时恢复到最高频率输出。S4用来启动对输出的函数信号的电压值的测量。当S4没有按下时,单片机只向DAC0832送波形数据表和显示当前波形的频率。按下S4后,单片机除了向DAC0832送波形数据表外,还要每隔一小段时间对读取

28、ADC0809转换的电压值,并且换算出来,送给LED显示当前电压。此时不再显示当前波形的频率。图3.7 复位电路单片机的复位是靠外部电路实现的,在时钟电器工作以后,只要在RESET端加上大于10MS的高电平,单片机便能实现复位。若RESET保持高电平,单片机循环复位。单片机一般要求在上电时,或者按复位键时复位。所以复位电路又分为上电复位和按键复位两种。在本设计中用到的就是按键复位。如图3.91所示。图3.91 时钟电路单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器,并产生振荡时钟。晶体在1.212MHZ选择。时钟电路如图3.92所示。其中C2,C3起稳定振荡的作用,电容选一

29、般633PF。图3.92第三章 软件设计4 4.1 主程序流程图4.2 中断程序流程图4.3 程序代码#include reg51.h#define uchar unsigned char#define DA P1 /DAC0832数据口#define AD P3 /ADC0809数据口#define LED_DATA P0 /LED显示数据口sbitbaiwei=P27; /定义数码管阳级控制脚(百位)sbitshiwei=P26; /定义数码管阳级控制脚(十位)sbitgewei=P25; /定义数码管阳级控制脚(个位)sbittiaobo=P24; /波形切换sbittiaopin=P2

30、3; /调频sbitdianya=P22; /测电压sbit START=P21; /启动ADuchar a=0,b=0,c=0,i=0,l=0,n=0;code uchar celiang1ma10=0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10;/带小点段码code uchar celiang2ma10=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/不带小点段码/共阳 0 1 2 3 4 5 6 7 8 9data uchar dianyaTAB2=0x24,0x90; /电压值存数

31、组code ucharpinlv18=0xa4,0xf9,0xb0, /213 不同频率下的显示数据0xf9,0xc0,0xf8, /107 0xff,0xf8,0xf9, /71 0xff,0x92,0xb0, /53 0xff,0x99,0xb0, /43 0xff,0xb0,0x82; /36/*方波数据表*/code ucharfangboTAB256=0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00

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

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