波形发生器设计Word下载.docx

上传人:b****5 文档编号:21004159 上传时间:2023-01-26 格式:DOCX 页数:25 大小:966.80KB
下载 相关 举报
波形发生器设计Word下载.docx_第1页
第1页 / 共25页
波形发生器设计Word下载.docx_第2页
第2页 / 共25页
波形发生器设计Word下载.docx_第3页
第3页 / 共25页
波形发生器设计Word下载.docx_第4页
第4页 / 共25页
波形发生器设计Word下载.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

波形发生器设计Word下载.docx

《波形发生器设计Word下载.docx》由会员分享,可在线阅读,更多相关《波形发生器设计Word下载.docx(25页珍藏版)》请在冰豆网上搜索。

波形发生器设计Word下载.docx

3.程序流程图

程序的主流程图如下:

主流程图

4.课程设计报告内容

4.1波形图思路

在8051单片机的控制下,产生三角波,锯齿波,方波,梯形波以及正弦波,各种波形所采用的硬件接口都是一样的,由于控制程序不同而产生不同的波形

4.2波形图设计过程

将该任务分成六个模块进行设计,分别为:

锯齿波模块,三角波模块,方波模块,正弦波模块,,梯形波模块,将所有模块拼合成总体模块。

我们所涉及的电路:

4.2.1DAC0832

DAC0832是8位分辨率D/A转换集成芯片,与处理器完全兼容,具有价格低廉,接口简单,转换控制容易等优点,在单片机应用系统中得到广泛的应用。

D/A转换器由八位输入锁存器、八位DAC寄存器、八位D/A转换电路以及转换电路构成。

DAC0832输出是电流型的,但实际应用中往往需要电压输出信号,所以还必须一个外接的运算放大器转换称电压。

其引脚如下图1所示:

图1:

DAC0832引脚图

•D0~D7:

八位数据输入线

•ILE:

数据锁存允许控制信号输入线,高电平有效

•CS:

片选信号输入线,低电平有效

•WR1:

输入寄存器的写选通信号,低电平有效

•XFER:

数据传送控制信号输入线,低电平有效

•WR2:

DAC寄存器写选通输入线,低电平有效

•IOUT1:

电流输出线。

当输入全为1时IOUT1最大

•IOUT2:

其值与OUT1之和为一常数

•RFB:

反馈信号输入线,芯片内部有反馈电阻

•Vcc:

电源输入线(+5~+15V)

•Vref:

基准电压输入线(-10~+10V)

•AGND:

模拟地,模拟信号和基准电源的查考地

•DGND:

数字地,两种地线在基准电源共处比较好

根据对DAC0832的数据锁存器和DAC寄存器的不同的控制方式,DAC0832有三种工作方式:

直通方式、单缓冲方式和双缓冲方式,可用软件指令控制这5个控制端:

ILE、CS、WR1、WR2、XFER。

•直通工作方式:

5个控制端均有效,直接D/A转换

•单缓冲工作方式:

5个控制端一次选通,即两个输入寄存器中任意一个处于直通方式,另一个工作于受控方式

•双缓冲工作方式:

5个控制端分二次选通。

即两个锁存器都处于受控状态

本次设计我们让DAC0832工作于单缓冲器方式,它的ILE接+5V。

/CS和/XFER相连后由8051的P2.7控制,/WR1和/WR2相连后由8051的/WR控制DAC0832的地址为7FFFH,工作于单缓冲器方式,执行一次对DAC0832的写入操作即可完成一次D/A转换。

4.2.274LS47芯片

74LS47是BCD-7段数码管译码器/驱动器,74LS47的功能用于将BCD码转化成数码块中的数字,通过它的解码,可以直接把数字转换为数码管的显示数字,从而简化了程序,节约了单片机的I/O开销。

因而是一个很好的芯片。

引脚图2如下:

图2:

74LS47引脚图

•D、C、B、A:

BCD码输入引脚

•a、b、c、d、e、f、g:

7段LED数码管的输出引脚

•LT:

测试引脚,当本引脚输入低电平时,所连接的7段数码管全亮。

正常情况下,应输入高电平

•RBI:

涟波淹没输入引脚。

•BI/RBO:

淹没输入或涟波淹没输出引脚。

正常显示下,应输入高电平或空接。

若本引脚输入低电平,且D、C、B、A引脚输入为0,则该位数不显示,这项功能用于消除前置0或者消除尾端0.

4.2.37段数码管

7段数码管一般有8个发光二极管组成,其中有7个细长的发光二极管组成数字显示,另外一个圆形的发光二极管显示小数点。

当发光二极管导通时,相应的一个点或一个笔画发光。

控制相应的二极管导通,就能显示各种字符。

发光二极管的阳极连在一起称为共阳极数码管,阴极连在一起称为共阴极数码管。

图3:

七段数码管引脚图

4.3波型分析及流程图

4.3.1锯齿波模块

8051单片机的累加器A从0开始循环增量,每增量一次向DAC0832写入一个数据,得到一个输出电压,这样可以获得一个正向的阶梯波。

DAC0832的分辨率为8位,如其满足的电压为5V,则一个阶梯的幅度为

5V/(2*2*2*2*2*2*2*2)=19.5mV

程序如下:

LOOP1:

;

正向锯齿波

MOVR1,#02H;

1us

LCALLDISP;

2us

L11:

MOVR3,#00H;

L12:

MOVA,R3;

MOVX@DPTR,A;

INCR3;

CJNER3,#0FFH,L12;

JBP2.1,STR;

AJMPL11;

程序从标号LOOP1处执行到指令到执行AJMPLOOP共需14个机器周期,采用12MHZ的晶振,一个机器周期为1us,则每个阶梯的时间为t=14*1us,一个正向阶梯波的总周期的总时间为T=255*t=3570us,即此阶梯波的重复频率为F=1/3570=280HZ.由此可见,由软件来产生波形,其频率是较低的。

要想提高频率,可通过改进程序,减少执行时间,但这种方法是有限的,根本的办法还得靠改进路.

图4锯齿波

由图4可见,由于每一个阶梯波较小,总体看起来是一个锯齿波.如果要改变这种波形的周期,可采用延时的方法。

程序若如下:

DELAY:

MOVR6,#0AH;

延时1ms子程序

DEL2:

MOVR7,#32H

DEL1:

DJNZR7,DEL1

DJNZR6,DEL2

RET

在延时子程序中改变延时时间的长短,即可改变输出波形的周期。

锯齿波流程图:

锯齿波仿真波形:

4.3.2三角波模块

在以上这个正向的锯齿波的前提下,若要获得负向的锯齿波只需将以上程序中的指令INCA换成指令DECA即可,如果想获得任意起始电压和终止电压的波形,则需先确定起始电压和终止电压所对应的数字。

程序中首先从起始电压对应的数字量开始输出,当达到终止电压对应的数字量时返回,如此反复。

将正向锯齿波与负向锯齿波组合起来就可以获得三角波,

LOOP2:

三角波

MOVR1,#03H

LCALLDISP

L21:

MOVR3,#00H

L22:

MOVA,R3

MOVX@DPTR,A

INCR3

CJNER3,#0FFH,L22

L23:

DECR3

CJNER3,#00H,L23

JBP2.2,STR

AJMPL21

三角波仿真波形:

三角波实验图

三角波程序流程图:

4.3.3方波模块

方波信号也是波形发生器中常用的一种信号,下面的程序可以从DAC的输出端得到矩形波,当延时子程序延时时间大体相同时即为方波,改变延时时间可得到不同占空比的矩形波,上限电平及上限电平对应的数字量可用前面讲过的方法获得。

L0:

MOVA,#0FFH;

方波

LCALLDELAY

MOVA,#00H

JBP2.0,STR

LJMPL0

输出矩形波的占空比为T1/(T1+T2),输出波形如图8.15所示。

改变延时值使T1=T2即可得到方波

图5方波

方波程序流程图:

方波仿真波形:

方波实验图

4.3.4正弦波模块

图4

利用DAC接口实现正弦波发生器时,先要对正弦波模拟电压进行离散化。

如图4所示,对于一个正弦波取N等分离散点,按定义计算出对应于1,2,3......N各离散点的数据值D1,D2,D3,D4....DN制成一个正弦表。

因为正弦波在半周期内是以极值点为中心对称,而且正负波形为互补关系,故在制正弦表时只需进行1/4周期,取0~Pi/2之间的数值,步骤如下:

(1)计算0~Pi/2区间N/4个离散的正弦值

(2)根据对称关系,复制Pi/2~Pi区间的值

(3)将0~Pi区间各点根据求补即得Pi~2Pi区间各值

将得到的这些数据根据所用DAC的位数进行量化,得到相应的数字值,依次存入RAM或固化于EPROM中,从而得到一个全周期的正弦编码表

LOOP4:

正弦波

MOVR1,#06H

MOVR4,#00H

L51:

MOVA,R4

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVDPTR,#7FFFH

INCR4

CJNER4,#255,L51

JBP2.4,ST

ST:

LJMPSTR

AJMPL51

DISP:

MOVA,R1

MOVP1,A

DISP1:

MOVA,#0DH

TABLE:

DB80H,83H,86H,89H,8CH,8FH,92H,95H

DB98H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEH

DB0B0H,0B3H,0B6H,0B9H,0BCH,0BFH,0C1H,0C4H

DB0C7H,0C9H,0CCH,0CEH,0D1H,0D3H,0D5H,0D8H

DB0DAH,0DCH,0DEH,0E0H,0E2H,0E4H,0E6H,0E8H

DB0EAH,0ECH,0EDH,0EFH,0F0H,0F2H,0F3H,0F5H

DB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FCH

DB0FDH,0FEH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH

DB0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FEH

DB0FDH,0FCH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H

DB0F6H,0F5H,0F3H,0F2H,0F0H,0EFH,0EDH,0ECH

DB0EAH,0E8H,0E6H,0E4H,0E2H,0E0H,0DEH,0DCH

DB0DAH,0D8H,0D5H,0D3H,0D1H,0CEH,0CCH,0C9H

DB0C7H,0C4H,0C1H,0BFH,0BCH,0B9H,0B6H,0B3H

DB0B0H,0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH

DB98H,95H,92H,8FH,8CH,89H,86H,83H

DB80H,7CH,79H,76H,73H,70H,6DH,6AH

DB67H,63H,60H,5DH,5AH,57H,54H,51H

DB4FH,4CH,49H,46H,43H,40H,3EH,3BH

DB38H,36H,33H,31H,2EH,2CH,2AH,27H

DB25H,23H,21H,1FH,1DH,1BH,19H,17H

DB15H,13H,12H,10H,0FH,0DH,0CH,0AH

DB09H,08H,07H,06H,05H,04H,03H,03H

DB02H,01H,01H,00H,00H,00H,00H,00H

DB00H,00H,00H,00H,00H,00H,01H,01H

DB02H,03H,03H,04H,05H,06H,07H,08H

DB09H,0AH,0CH,0DH,0FH,10H,12H,13H

DB15H,17H,19H,1BH,1DH,1FH,21H,23H

DB25H,27H,2AH,2CH,2EH,31H,33H,36H

DB38H,3BH,3EH,40H,43H,46H,49H,4CH

DB4FH,51H,54H,57H,5AH,5DH,60H,63H

DB67H,6AH,6DH,70H,73H,76H,79H,7CH

END

正弦波程序流程图:

正弦波仿真图:

正弦波图

4.3.5梯形模块

梯形程序:

LOOP3:

梯形波

MOVR1,#05H

L41:

L42:

CJNER3,#0FFH,L42

L43:

CJNER3,#00H,L43

JBP2.3,STR

AJMPL41

梯形仿真波形图:

梯形程序流程图:

5.硬件设计

5.1显示波形编号部分

如下图电路图所示:

由74LS47和数码管组成,74LS47负责把单片机送来的信号译码为数码管显示信号。

5.2数模转换部分

数模转换部分主要由DAC0832和集成运放放大电路组成,DAC0832的主要功能是将单片机AT89C51的输出信号转换成模拟信号,转换后的模拟信号由DAC0832引脚OUT1和OUT2输出,经过集成运放的两极放大和电流转换成电压功能的电路,连接到示波器上即可观察波形,如下图所示:

5.3整体电路图

6.仿真结果

7.实验设计不足之处

通过本次单片机课程设计过程,我不仅发现设计的波形发生器有所欠缺,同时也感到了自身的不足。

首先,本次设计的程序实现较为简单,没有涉及到到中断、串行口和定时/计数等功能,仅仅只是编写了几段基本波形发生代码,在主程序里调用,通过不同的键是否按下来选择波形。

由于真正意义上的程序设计还不多,因此还不是很得心应手,所以在设计中遇到一些问题和一些难点。

比如:

在程序设计中如何实现程序结构的最优化,以达到较高的质量。

这是以后设计中要注意的问题。

但也多到了很学实践知识。

最重要的是本程序在设计中出现了因为代码太长,当执行到正弦波时无法返回,经过老师的指导,知道了当遇到这种一次跳不回的情况可以通过多跳一次而跳回。

其次,这次设计的波形发生器缺少一个控制波形频率的,我感到十分遗憾,如果到大四做毕业设计的时候,我想我会将其改进并完善的。

最后,由于自身能力有限,无法对这次设计进行更深层次的拓展,我将在以后的学习过程中不断的完善自己。

8.实验总结

课程设计是我们理论联系实际的最好的途径之一,让我们有机会把课本上学到的知识运用到实际生活中。

目前单片机在工业检测领域中得到了广泛的应用,在我们平常的生活中也是随处可见,包括我们日常生活中随处可见的交通灯、闹钟等都含有单片机作为一个主要的部件,懂得并熟悉掌握单片机的运用技术是非常有用的。

通过这次课程设计使对单片机语言的理解和掌握上有了很大的进步,以前所了解的单片机语言仅限于一些片面的知识,通过这次编程,将这些零零碎碎的知识汇集起来,编写出了一个完整的系统,并且对单片机语言的应用能力有了极大的提高。

在这次课程设计的过程中,我深深体会到团队合作的精神是极其重要的。

因为身在一个团队,有了困难大家一起解决,减少了压力,同时拓展了思维,交换了意见,一个人的思想当被接受和了解时,我们有了更多的思想关于一个问题,我想这些都是作为一个团队的好处。

经过此次课程设计,我们经历了喜,怒,哀,乐。

同时我们也对明年的毕业设计有了一定的想法和实现自己想法的决心.

ORG0000H

AJMPMAIN

ORG0030H

MAIN:

MOVP2,#0FFH

STR:

MOVR1,#0AH

LCALLDISP1;

开启数码管

START:

JNBP2.0,LOOP0;

控制输出方波

JNBP2.1,LOOP1;

控制输出正向锯齿波

JNBP2.2,LOOP2;

控制输出三角波

JNBP2.3,LOOP3;

控制输出梯形波

JNBP2.4,LOOP4;

控制输入正弦波

LJMPSTART

LOOP0:

MOVR1,#01H

LCALLDISP;

显示波形编号

MOVA,#00H

MOVR1,#02H

CJNER3,#0FFH,L12

JBP2.1,STR

AJMPL11

JBP2.2,STR

INCR4

DB0B0H,0B3H,0B6H,0B9H,0BCH,0BFH,0C1H,0C4H

DB0EAH,0E8H,0E6H,0E4H,0E2H,0E0H,0DEH,0DCH

DB15H,17H,19H,1BH

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

当前位置:首页 > 高等教育 > 其它

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

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