基于单片机的信号源设计毕设论文Word格式文档下载.docx
《基于单片机的信号源设计毕设论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《基于单片机的信号源设计毕设论文Word格式文档下载.docx(24页珍藏版)》请在冰豆网上搜索。
逻辑信号源输出数字码形。
混和信号源又可分为函数信号发生器和任意波形/函数发生器,其中函数信号发生器输出标准波形,如正弦波、方波等,任意波/函数发生器输出用户自定义的任意波形;
逻辑信号发生器又可分为脉冲信号发生器和码型发生器,其中脉冲信号发生器驱动较小个数的的方波或脉冲波输出,码型发生器生成许多通道的数字码型。
如泰克生产的AFG3000系列就包括函数信号发生器、任意波形/函数信号发生器、脉冲信号发生器的功能。
另外,信号源还可以按照输出信号的类型分类,如射频信号发生器、扫描信号发生器、频率合成器、噪声信号发生器、脉冲信号发生器等等。
信号源也可以按照使用频段分类,不同频段的信号源对应不同应用领域。
1.2研究的意义与目的
随着科学技术的不断发展,研究设计新型的信号源在工业生产与科研中已经显得十分之必要。
信号源是现代电子设备特别是测试设备的必备部分,其产生各种基准信号给被测设备,用来分析和研究被测设备的性能状况,被广泛应用于航空航天设备的电子测试、通信技术、医学成像、测量和科研等各个领域中,而且数字化、软件化是测试设备的发展趋势。
在工业生产和科研中利用信号源输出的信号,可以对元器件的性能及参数进行测量,还可以对电工和电子产品进行指数验证、参数调整及性能鉴定。
本设计所介绍的基于单片机的信号源,采用DAC0832将单片机产生的数字信号经D/A转换以后生成模拟信号,可输出电压值为0~5V,频率为0~1000Hz的方波、锯齿波、三角波和正弦波等波形信号。
2信号源的硬件设计
2.1硬件总体设计
信号源电路设计总体设计方框图如图1所示,控制器采用单片机AT89c51,数据转换电路采用DAC0832,用LED共阴七段数码管实现静态显示,通信接口利用MAX232实现与外部设备的连接,通过键盘实现各种波形间的切换等。
图2-1硬件电路整体框图
2.1.1主控芯片的选择
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的单片机。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
1.主要特性:
·
兼容MCS-51指令系统
4k可反复擦写(>
1000次)ISPFlashROM
32个双向I/O口
4.5-5.5V工作电压
2个16位可编程定时/计数器
时钟频率0-33MHz
全双工UART串行中断口线
128x8bit内部RAM
5个中断源
低功耗空闲和省电模式
中断唤醒省电模式
3级加密位
看门狗(WDT)电路
软件设置空闲和省电功能
灵活的ISP字节和分页编程
双数据寄存器指针
表2-1AT89C52的主要特性
2.管脚说明:
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口同时为闪烁编程和编程校验接收一些控制信号。
口线
替代的第2功能
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(外部数据存储器读选通)
表2-2P3个口线与第二功能表
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:
来自反向振荡器的输出。
3.振荡器特性:
XTAL1和XTAL2分别为反向放大器的输入和输出。
该反向放大器可以配置为片内振荡器。
石晶振荡和陶瓷振荡均可采用。
如采用外部时钟源驱动器件,XTAL2应不接。
有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
4.芯片擦除:
整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。
在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。
此外,AT89C51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。
在闲置模式下,CPU停止工作。
但RAM,定时器,计数器,串口和中断系统仍在工作。
在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。
2.1.2D/A转换芯片
DAC0832是采用CMOS工艺制成的单片直流输出型8位D/A转换器。
主要由两个8位寄存器(输入寄存器和DAC寄存器)和一个8位D/A转换器组成。
常用八位的D/A转换器DAC0832内部结构资料:
芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。
D/A转换结果采用电流形式输出。
要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。
运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接。
该片逻辑输入满足TTL电压电平范围,可直接与TTL电路或微机电路相接,下面是芯片电路原理图
DAC0832引脚图和内部结构电路图
图2-2DAC0832的引脚图和内部结构图
1.DAC0832各引脚功能:
1)D0~D7:
数字信号输入端。
2)ILE:
输入寄存器允许,高电平有效。
3)CS:
片选信号,低电平有效。
4)WR1:
写信号1,低电平有效。
5)XFER:
传送控制信号,低电平有效。
6)WR2:
写信号2,低电平有效。
7)IOUT1、IOUT2:
DAC电流输出端。
8)Rfb:
是集成在片内的外接运放的反馈电阻。
9)Vref:
基准电压输入线(-10~10V)。
10)Vcc:
工作电源(+5~+15V)。
11)AGND:
模拟地NGND:
数字地
D/A转换芯片输入时数字量,输出为模拟量。
模拟信号很容易收到电源和数字信号等干扰二引起波动。
为提高稳定性和减小误差,一般把数字地和模拟地分开。
DAC0832采用二次缓冲方式。
这样可以在输出的同时,采集下一个数据,从而提高转换速度,更重要的是能够在多个转换器同时工作时,实现多通道D/A的同步转换输出。
2.主要的特性参数如下:
1)分辨率为8位。
2)只需在满量程下调整其线性度。
3)可与所有的单片机或微处理器直接接口,需要时也可与微处理器连接而单独使用。
4)电流稳定时间为1us。
5)可双缓冲、单缓冲或直通数据输入。
6)功耗低,约为200mW。
7)逻辑电平输入与TTL兼容。
8)单电源供电(+5~+15V)。
2.1.3显示部分芯片
1.利用74HC138对数码管实现位选
74HC138为3线-8线译码器,其工作原理如下:
当一个选通端(G1)为高电平,另两个选通端(/(G2A)和/(G2B))为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端以低电平译出。
74LS138功能:
利用G1、/(G2A)和/(G2B)可级联扩展成24线译码器;
若外接一个反相器还可级联扩展成32线译码器。
若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。
图3-374HC138的引脚结构
3线-8线译码器74LS138的功能
输入
输出
G1
/G2A+/G2B
CBA
/Y0/Y1/Y2/Y3/Y4/Y5/Y6/Y7
X
XXX
11111111
1
000
01111111
001
10111111
010
11011111
011
11101111
100
11110111
101
11111011
110
11111101
111
11111110
表3-374ls138真值表功能表
无论从逻辑图还是功能表我们都可以看到74LS138的八个输出管脚,任何时刻要么全为高电平1—芯片处于不工作状态,要么只有一个为低电平0,其余7个输出管脚全为高电平1。
如果出现两个输出管脚在同一个时间为0的情况,说明该芯片已经损坏。
当附加控制门的输出为高电平(G1=1)时,可写出
图3-474LS逻辑表达式
由上式可以看出,在同一个时间又是这三个变量的全部最小项的译码输出,所以也把这种译码器叫做最小项译码器。
71LS138有三个附加的控制端。
当输出输出为高电平(G1=1)时,译码器处于工作状态。
否则,译码器被禁止,所有的输出端被封锁在高电平,如表2-2所示。
这三个控制端也叫做“片选”输入端,利用片选的作用可以将多篇连接起来以扩展译码器的功能。
2.利用74LS48对数码管实现段选
74LS48芯片是一种常用的七段数码管译码器驱动器,常用在各种数字电路和单片机系统的显示系统中。
引脚功能:
灭灯输入/灭零输出(BI/RBO):
作为输入端使用时,成为灭灯输入控制端。
只要加入灭灯控制信号BI=0,无论A、B、C、D的状态是什么,定可将被驱动数码管的各段同时熄灭。
作为输出端使用时,成为灭零输出端。
只有当输入A=B=C=D=0,而且有灭零输入信号(RBI=0)时,RBO′才会给出低电平。
图3-574LS48的引脚结构
灯测试输入(LT):
当LT′=0时,输出全部为高电平,是被驱动数码管的的七段同时点亮,以检查该数码管能否正常发光。
平时应该置LT′为高电平。
灭零输入端(RBI):
设置灭零输入信号RBI的目的是为了能把不希望显示的零熄灭。
BCD码输入端(A、B、C、D):
输入要显示的BCD码
显示输出端(a、b、c、d、e、f、g):
输出显示输入端的字形
真值表:
数字
DCBA
YaYbYcYdYeYfYg
字形
0000
1111110
0001
0110000
0010
1101101
2
0011
1111001
3
0100
0110011
4
0101
1011011
5
0110
0011111
6
0111
1110000
7
1000
1111111
8
1001
1110011
9
表2-374LS48的真值表
2.2系统硬件电路设计
2.2.1D/A转换部分
D/A0832直接输出的量为电流,而实际应用中需要的却是模拟电压,这样就需要有将电流转换成电压的电路。
设计中为了实现模拟电压的输出,因此采用如下电路。
图3-3D/A转换电路
从图中我们可以看出,当Vref接+5V时,输出电压OUT的范围是0~5V;
当接+10V时,输出电压OUT的范围是0~10V;
输入数字量的变化,将引起模拟量输出的变化。
2.2.2显示模块
在显示模块部分,如下图,通过74LS138和74LS48实现对七段数码管的显示控制。
首先74LS138能够对数码管实现位选,在某一时刻选中其中一个七段数码管,使其显示数字;
其次利用74LS48将单片机输出的二进制数或者BCD码,作为其输入,并经过转换输出七段数码管的显示字型码。
本设计中数码管显示的主要参数有1)当前波形的数字代号;
2)当前波形的输出频率;
3)当前输出波形的峰值。
图2-4数码管显示电路
2.2.3人机接口电路
为了实现计算机与单片机系统的数据通信与下载,本设计中采用MAX232实现,如下图所示。
MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的接口电路,使用+5v单电源供电。
内部结构基本可分三个部分:
第一部分是电荷泵电路。
由1、2、3、4、5、6脚和4只电容构成。
功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。
第二部分是数据转换通道。
由7、8、9、10、11、12、13、14脚构成两个数据通道。
其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。
8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。
TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;
DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。
第三部分是供电。
15脚GND、16脚VCC(+5v)。
图2-5MAX232的接口电路
2.2.4单片机时钟及复位电路
复位电路分为上电自动复位和手动复位,在程序跑飞时,使用复位电路可使程序恢复正常工作状态。
本系统采用图2-6中的按健手动复位电路。
图2-6单片机时钟及复位电路
最简单的上电自动复位如图3-7所示。
上电自动复位是通过外部复位电路的电容充电来实现的。
当电源接通时只要Vcc的上升时间不超过1ms,就可以实现自动上电复位。
图2-7上电自动复位
2.2.5电源电路
为了给单片机的Vcc(40引脚)提供稳定的+5V电源,本设计中采用如图2-8电源电路给电路提供电源。
图2-8电源电路
2.2.6整体硬件电路
根据硬件总体设计的方框图,设计出实际电路图如下图所示,电路中利用AT89C51单片机系统产生各种波形的控制信号;
通过DAC0832转换电路,实现对数字信号转换成模拟的电压信号输出;
并通过数码管显示电路,将某一时刻输出的波形数字代号、频率,以及该波形的峰值显示出来。
图3-2信号源电路整体硬件电路图
3系统程序的设计
3.1系统主程序
主程序的主要功能是在拨动不同的拨码开关1、2、3、4时,使P1口的地址发生变化,继而通过判断P1口的地址调用不同的波形子程序,从而实现不同波形间的切换。
利用D\A转换部分分别输出方波、锯齿波、三角波、正弦波四种波形;
确定波形形状后,然后调用显示部分的的子程序,将所选的波形的数字代号、频率和以及幅度实时的显示在七段数码管上面,要求在同一时间只限拨动一个开关。
程序流程图如图3-1所示。
图3-1主程序流程图
显示部分一共选择五位来进行表示:
第一位
第三位
第四位
第五位
第八位
波形代号
波形频率
波形幅度
表3.1数码管各位的显示内容
波形类型表示方法:
波形类型
方波
锯齿波
三角波
正弦波
数字代码
表3.2拨码开关各位代表的波形
3.2方波相关子程序
3.2.1方波程序总流程
方波相关子程序基本分为两个部分,第一部分