信号发生器实验报告Word下载.docx

上传人:b****1 文档编号:13854681 上传时间:2022-10-14 格式:DOCX 页数:12 大小:144.52KB
下载 相关 举报
信号发生器实验报告Word下载.docx_第1页
第1页 / 共12页
信号发生器实验报告Word下载.docx_第2页
第2页 / 共12页
信号发生器实验报告Word下载.docx_第3页
第3页 / 共12页
信号发生器实验报告Word下载.docx_第4页
第4页 / 共12页
信号发生器实验报告Word下载.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

信号发生器实验报告Word下载.docx

《信号发生器实验报告Word下载.docx》由会员分享,可在线阅读,更多相关《信号发生器实验报告Word下载.docx(12页珍藏版)》请在冰豆网上搜索。

信号发生器实验报告Word下载.docx

根据初步设计方案的分析,设计这样的一个简单的应用系统,可以选择带有EPROM的单片机,应用程序直接存贮在片内,不用在外部扩展程序存储器,电路可以简化。

ATMEL公司生产的AT89C系列单片机,AT89C系列与C51系列的单片机相比有两大优势:

第一,片内程序存储器采用闪存存储器,使程序的写入更加方便;

第二,提供了更小尺寸的芯片,使整个硬件电路的体积更小。

它以较小的体积、良好的性能价格备受亲密。

在家电产品、工业控制、计算机产品、医疗器械、汽车工业等应用方面成为用户降低成本的首选器件。

因此,我们可选用AT89C2051单片机。

该芯片的功能与MCS-系列单片机完全兼容,并且还具有程序加密等功能,物美价廉,经济实用。

AT89C2051是ATMEL公司生产的带2K字节课编程闪速存储器的8位COMS单计算机,工作电压范围为2.7~6V,全静态工作频率为0~24MHZ。

(2)调频与显示电路设计与器件的选择

调频电路的设计

单片机工作时间基准是由时钟电路提供的。

调频电路如下图。

显示电路的设计

 

DAC轮换部分

DAC0832由8位输入寄存器、8位DAC寄存器和8位D/A转换电路组成。

输入寄存器和DAC寄存器作为双缓冲,因为在CPU数据线直接接到DAC0832的输入端时,数据在输入端保持的时间仅仅是在CPU执行输出指令的瞬间内,输入寄存器可用于保存此瞬间出现的数据。

有时,微机控制系统要求同时输出多个模拟量参数,此时对应于每一种参数需要一片DAC0832,每片DAC0832的转换时间相同,就可采用DAC寄存器对CPU分时输入到输入寄存器的各参数在同一时刻开始锁存,进而同时产生各模拟信号。

通常使用的是电压信号,而DAC0832输入的是电流信号。

这就需要由运算放大器组成的电路实现转换。

其中有输出电压各自极性固定的单位性输出和在随动系统中输出电压有正负极性的双极性输出两种输出方式。

 微处理器与DAC0832之间可以不加锁存器,而是利用DAC0832内部锁存器,将CPU通过数据总线直接向DAC0832输出的停留时间很短的数据保存,直至转换结束。

 D0~D7:

数字信号输入端。

ILE:

输入寄存器允许,高电平有效。

CS:

片选信号,低电平有效。

WR1:

写信号1,低电平有效。

XFER:

传送控制信号,低电平有效。

WR2:

写信号2,低电平有效。

IOUT1、IOUT2:

DAC电流输出端。

Rfb:

是集成在片内的外接运放的反馈电阻。

Vref:

基准电压(-10~10V)。

Vcc:

是源电压(+5~+15V)。

AGND:

模拟地NGND:

数字地,可与AGND接在一起使用。

DAC0832输出的是电流,一般要求输出是电压,所以还必须经过一个外接的运算放大器转换成电压。

方波输出电路设计:

正弦波输出电路设计:

IN0~IN7:

8路模拟信号输入端。

A1、A2、A0:

地址输入端。

ALE地址锁存允许输入信号,在此脚施加正脉冲,上升沿有效,此时锁存地址码,从而选通相应的模拟信号通道,以便进行A/D转换。

START:

启动信号输入端,应在此脚施加正脉冲,当上升沿到达时,内部逐次逼近寄存器复位,在下降沿到达后,开始A/D转换过程。

EOC:

转换结束输出信号(转换接受标志),高电平有效。

OE:

输入允许信号,高电平有效。

CLOCK(CP):

时钟信号输入端,外接时钟频率一般为640kHz。

+5V单电源供电。

Vref(+),Vref(-):

基准电压的正极、负极。

一般Vref(+)接+5V电源,Vref(-)接地。

D7~D0:

数字信号输出端。

由A2、A1、A0三地址输入端选通8路模拟信号中的任何一路进行A/D转换。

电路板的设计与制作

电路板的设计

在本设计中,使用的是Protel2004来完成制作印制板的。

关于这款软件的使用方法请见有关参考书。

制板的过程及其注意事项如下:

(1)根据仿真电路图正确的画出制板原理图,在画的过程中要注意

用元件的型号,以及元件的电气特性如耐压值,耐流值等,最要的是要设置元件参数的大小,来实现电路的功能。

画完的时候要进行电气特性规则检查,检查自己所画的电路图是够正确。

如果有些元件在库里找不到的话,就需要自己要制作元件,这时候要注意与实际元件的引脚和大小要相一致,最后要注意元件的封装形式。

(2)在自己画好的原理图的基础上,建立网络表。

把网络表放在同一个工程文件下面。

(3)接着建立一个PCB文件,根据向导设置相应参数的值,其中要设置板实际的大小,焊盘的孔径和外径,一定要准确的设置,不然做印制板的时候要出现问题。

板大小的确定要根据实际情况,尽可能不要浪费材料。

(4)将原理图转换到PCB文件中去,然后进行印制板的布局,布局的原则是,元件与元件的之间距离不要太疏远,一些打功率的元件尽可能的放在边上,或者装散热片。

(5)完成了元件的布局后,接着就进行元件的布线。

布线前应该设置布线规则,线的大小,走线的模式及相关的设置。

软件自动布线完成后,要根据产品的工作的实际要求,对有些线的大小要重新设置一下,有些线之间的距离太小需要手动的调节一下。

以下是各部分电路的PCB印制板:

电路板的制作

(1)将设计的PCB图用复写纸通过激光打印机打印出来,然后将复写纸铺在敷铜板上,放在转印机上进行转印,转印后如果有些线不清楚用黑笔画出来。

(2)然后将铜板放在加热的三氯化铁溶液中腐蚀,注意溶液的温度不要太高,一般在60-70度左右,如果反应的很慢,可能溶液的浓度太低,需要加点三氯化铁。

反应完后就可以板拿出来了,用清水冲洗一下。

(3)板的钻孔:

钻孔的位置一定要准确,不要把焊盘的外径钻掉了,就会造成电路的断路。

电路安装、焊接、调试

印制板做好以后就进行元件的安装、焊接、和产品的调试。

(1)元件的安装:

根据电路原理图选取元件,注意元件的型号,对应电路图正确放在电路板上,注意正负极不要弄反了。

(2)焊接元件:

先在电路板上涂一点松香水,这样更有利于焊接。

焊接应注意不要把元件烧掉了,比如晶体管的耐温字比较低,也不要造成电路断路和短路。

(3)整体调试:

把各部分电路图连接起来,看是否能达到设计的效果。

若不能,要分析为什么并找出原因,进行不断的改进,直到成功为止。

软件部分的设计

本设计单片机控制和显示程序采用的汇编语言和C语言混合编写的,就是C52.程序代码如下:

#include<

reg52.h>

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlong

sbitp27=P2^7;

sbitp10=P1^0;

sbitp11=P1^1;

sbitp12=P1^2;

sbitp13=P1^3;

sbitp20=P2^0;

sbitp21=P2^1;

sbitp22=P2^2;

ucharm1,m2,m3,m4,m5;

ucharcodedisply[]={"

F=:

00000HZ"

};

ucharmn=1;

ulongm=20,z,y=50;

ulongx,n;

voiddelay(ucharx)

{uchari,j;

for(i=x;

i>

0;

i--)

for(j=110;

j>

j--);

}

voidwr_cmd(ucharb)

{p21=0;

p20=0;

P0=b;

delay

(1);

p21=0;

p21=1;

voidwr_dat(uchara)

p20=1;

P0=a;

voidinit()

{

uchare;

wr_cmd(0x38);

wr_cmd(0x0c);

wr_cmd(0x06);

wr_cmd(0x01);

wr_cmd(0x80);

delay(10);

for(e=0;

e<

10;

e++)

{wr_dat(disply[e]);

}

voidmain()

{

init();

x=1000000/m;

z=x*y*0.01;

n=x-z;

p27=1;

TMOD=0x11;

TH0=(65536-z)/256;

TL0=(65536-z)%256;

TH1=(65536-n)/256;

TL1=(65536-n)%256;

EA=1;

ET0=1;

ET1=1;

TR0=1;

while

(1)

{if(p10==0)

{delay(10);

if(p10==0)

{mn=1;

while(!

p10);

if(p13==0)

{mn=0;

p13);

if(p11==0)

{if(mn==1)

{m=m+10;

if(m==20010)

{m=20;

}}

if(mn==0)

{y=y+5;

if(y==100)

{y=10;

p11);

if(p12==0)

{m=m-10;

if(m==20)

{m=20000;

{y=y-5;

if(y==0)

{y=90;

p12);

m1=m/10000;

m2=(m%10000)/1000;

m3=(m%1000)/100;

m4=(m%100)/10;

m5=m%10;

wr_cmd(0x87);

wr_dat(m1+0x30);

wr_dat(m2+0x30);

wr_dat(m3+0x30);

wr_dat(m4+0x30);

wr_dat

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

当前位置:首页 > 解决方案 > 学习计划

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

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