函数信号发生器设计报告Word文档格式.docx

上传人:b****1 文档编号:3462783 上传时间:2023-05-01 格式:DOCX 页数:17 大小:504.61KB
下载 相关 举报
函数信号发生器设计报告Word文档格式.docx_第1页
第1页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第2页
第2页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第3页
第3页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第4页
第4页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第5页
第5页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第6页
第6页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第7页
第7页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第8页
第8页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第9页
第9页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第10页
第10页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第11页
第11页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第12页
第12页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第13页
第13页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第14页
第14页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第15页
第15页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第16页
第16页 / 共17页
函数信号发生器设计报告Word文档格式.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

函数信号发生器设计报告Word文档格式.docx

《函数信号发生器设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《函数信号发生器设计报告Word文档格式.docx(17页珍藏版)》请在冰点文库上搜索。

函数信号发生器设计报告Word文档格式.docx

1.4硬件实现及单元电路设计

1.4.1单片机最小系统的设计

1.4.2数模转换模块设计

1.4.3显示模块的设计

1.5软件设计流程

1.6源程序

1.7.输出波形的种类与频率的测试

1.8附录

1.81参考文献

1.82总体设计图

1、系统设计

经过考虑,我确定方案如下:

利用AT89S52单片机采用程序设计方法产生正弦波、脉冲波两种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,通过另一块DAC0832控制幅度的调节,通过键盘来控制两种波形的类型选择、频率变化,幅度变化,最终输出显示其各自的类型以及数值。

1.1、设计要求

1、基本要求

(1)正弦波信号源

信号频率:

步进调整,步长为

频率稳定度:

优于

非线性失真系数

(2)脉冲波信号源

上升时间和下降时间:

平顶斜降:

脉冲占空比:

(3)上述两个信号源公共要求

信号频率可预置;

在负载为

时,输出幅度为

完成5位频率的数字显示。

2、发挥部分

(1)正弦波和脉冲波频率步长改为

(2)正弦波和脉冲波幅度可步进调整,调整范围为

,步长为

(3)正弦波和脉冲波频率可自动步进,步长为

(4)降低正弦波非线性失真系数。

1.2.1信号发生电路方案论证

方案一:

通过单片机控制D/A,输出三种波形。

此方案输出的波形不够稳定,抗干扰能力弱,不易调节。

但此方案电路简单、成本低。

方案二:

使用传统的锁相频率合成方法。

通过芯片IC145152,压控振荡器搭接的锁相环电路输出稳定性极好的正弦波,再利用过零比较器转换成方波,积分电路转换成三角波。

此方案,电路复杂,干扰因素多,不易实现。

方案三:

利用MAX038芯片组成的电路输出波形。

MAX038是精密高频波形产生电路,能够产生准确的三角波、方波和正弦波三种周期性波形。

但此方案成本高,程序复杂度高。

以上三种方案综合考虑,选择方案一。

1.2.2单片机的选择论证

AT89S52单片机是一种高性能8位单片微型计算机。

它把构成计算机的中央处理器CPU、存储器、寄存器、I/O接口制作在一块集成电路芯片中,从而构成较为完整的计算机、而且其价格便宜。

方案二:

C8051F005单片机是完全集成的混合信号系统级芯片,具有与8051兼容的微控制器内核,与MCS-51指令集完全兼容。

除了具有标准8052的数字外设部件,片内还集成了数据采集和控制系统中常用的模拟部件和其他数字外设及功能部件,而且执行速度快。

但其价格较贵

以上两种方案综合考虑,选择方案一

1.2.3显示方案论证

采用LED数码管。

LED数码管由8个发光二极管组成,每只数码管轮流显示各自的字符。

由于人眼具有视觉暂留特性,当每只数码管显示的时间间隔小于1/16s时人眼感觉不到闪动,看到的是每只数码管常亮。

使用数码管显示编程较易,占用时间较短。

采用LCD液晶显示器1602。

其功率小,效果明显,显示编程容易控制,可以显示字母,但使用液晶显示,需要较长时间的软件延迟,影响产生波形的频率。

以上两种方案综合考虑,选择方案一。

1.2.4幅度控制方案论证:

可以将送给DA的数字量乘以一个系数,这样就可以改变DA输出电流的幅度,从而改变输出电压;

但是这样做有很严重的问题,单片机在做乘法运算时需要很长的时间,这样的话输出波形的频率就会很低,达不到至少500HZ的要求;

并且该方案的输出电压做不到连续可调,当DA的输入数字量比较小时,输出的波形失真就会比较严重。

将输出电压通过一个运算放大器的放大。

这样还有个优点是幅度连续可调。

方案三:

用另外一片DA控制波形输出DA的参考电压值,以实现幅度控制。

经比较,方案三既可满足课程设计的基本要求,并且电路也挺简单

1.3总体系统设计

该系统采用单片机作为数据处理及控制核心,由单片机完成人机界面、系统控制、信号的采集分析以及信号的处理和变换,采用按键输入,利用液晶显示电路输出数字显示的方案。

将设计任务分解为按键电路、液晶显示电路等模块。

(1)为系统的总体框图

(1)总体方框图

1.4硬件实现及单元电路设计

1.4.1单片机最小系统的设计

89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。

用80C51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图

(2)89C51单片机最小系统所示。

由于集成度的限制,最小应用系统只能用作一些小型的控制单元。

其应用特点:

(1)有可供用户使用的大量I/O口线。

(2)内部存储器容量有限。

(3)应用系统开发具有特殊性。

(2)89C51单片机最小系统

1.4.2波形产生模块设计

由单片机采用编程方法产生三种波形、通过DA转换模块DAC0832在进过滤波放大之后输出。

其电路图如下:

图(3)数模转换模块

如上图所示,单片机的P0口连接DAC0832的八位数据输入端,DAC0832的输出端接放大器,经过放大后输出所要的波形。

DAC0832的为八位数据并行输入的,其结构图如下:

图(4)DAC0832的内部结构

1.4.3显示模块的设计

图(5)数码管显示模块

1.4.4幅度控制模块及滤波模块设计

图(6)幅度控制模块

图(6)滤波模块模块

本系统采用AT89S52单片机,用编程的方法来产生三种波形,并通过编程

来切换三种波形以及波形频率的改变。

具体功能有:

(1)各个波形的切换;

(2)各种参数的设定;

(3)频率增减等。

软件调通后,通过编程器下载到AT89S52芯片中,然后插到系统中即可独立完成所有的控制。

1.6源程序

#include<

reg52.h>

absacc.h>

intrins.h>

sbitk1=P3^0;

sbitk2=P3^1;

sbitk3=P3^3;

sbitk4=P3^4;

sbitk5=P3^5;

sbitk6=P3^7;

bitled=1;

//sbitRS=P3^4;

//sbitRW=P3^5;

//sbitE=P3^7;

/*sbitLED0=P3^0;

sbitLED1=P3^1;

sbitLED2=P3^3;

sbitLED3=P3^4;

sbitLED4=P3^5;

sbitLED5=P3^7;

*/

unsignedchari=0,k,f=14,g=255,n=0,m=0;

unsignedintj=200,num=800,num1;

unsignedcharcodesin[16]={135,176,218,245,254,243,213,170,121,72,24,3,2,20,55,102};

unsignedcharcodemai[2]={255,0};

unsignedcharcodedu[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

unsignedcharcodewe[]={0x01,0x02,0x04,0x08,0x10,0x20};

init()

{

EA=1;

EX0=1;

IT0=1;

ET0=1;

TMOD=0x01;

TH0=(65536-1)/256;

TL0=(65536-1)%256;

TR0=1;

}

main()

init();

XBYTE[0xbfff]=255;

while

(1)

{

//num=16+j*16;

if(k5==0&

&

g>

0)

{

g--;

XBYTE[0xbfff]=g;

}

if(k6==0&

g<

255)

{

g++;

XBYTE[0xbfff]=g;

if(k1==0&

j<

65535)

j+=30;

if(k2==0&

j>

j-=30;

if(led==1)

XBYTE[0x7fff]=sin[0];

for(i=0;

i<

j;

i++);

XBYTE[0x7fff]=sin[1];

XBYTE[0x7fff]=sin[2];

XBYTE[0x7fff]=sin[3];

XBYTE[0x7fff]=sin[4];

for(i=0;

XBYTE[0x7fff]=sin[5];

XBYTE[0x7fff]=sin[6];

XBYTE[0x7fff]=sin[7];

XBYTE[0x7fff]=sin[8];

XBYTE[0x7fff]=sin[9];

XBYTE[0x7fff]=sin[10];

XBYTE[0x7fff]=sin[11];

XBYTE[0x7fff]=sin[12];

XBYTE[0x7fff]=sin[13];

XBYTE[0x7fff]=sin[14];

XBYTE[0x7fff]=sin[15];

if(led==0)

{

if(k4==0&

f<

14)

{

f++;

}

if(k3==0&

f>

{

f--;

for(k=0;

k<

f;

k++)

XBYTE[0x7fff]=mai[0];

(15-f);

XBYTE[0x7fff]=mai[1];

for(i=0;

}

}

voidint0()interrupt0

{

led=~led;

voidjsq()interrupt1

P2=P2&

0xc0;

P2=P2|we[5-n];

if(n<

6)

{

m=num1%10;

num1=num1/10;

P1=du[m];

}

n++;

if(n==6)

n=0;

num1=num;

}

图(7)4000HZ正弦波输出

图(8)4000HZ脉冲波输出

1.8附录

1.81参考文献

[1]戴仙金主编51单片机及其C语言汇编程序开发实例清华大学出版社,2008

[2]高吉祥主编全国大学生电子设计竞赛培训系列教程电子工业出版社,2007

[3]杨素行主编模拟电子技术基础简明教程高等教育出版社,2007

[4]蒋辉平主编单片机原理与应用设计北京航空航天大学出版社2007

1.82总体设计图

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2