波形发生器课程教学设计Word下载.docx

上传人:b****6 文档编号:17497710 上传时间:2022-12-06 格式:DOCX 页数:14 大小:273.64KB
下载 相关 举报
波形发生器课程教学设计Word下载.docx_第1页
第1页 / 共14页
波形发生器课程教学设计Word下载.docx_第2页
第2页 / 共14页
波形发生器课程教学设计Word下载.docx_第3页
第3页 / 共14页
波形发生器课程教学设计Word下载.docx_第4页
第4页 / 共14页
波形发生器课程教学设计Word下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

波形发生器课程教学设计Word下载.docx

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

波形发生器课程教学设计Word下载.docx

(1)课设需要各个波形的基本输出。

如输出锯齿波、三角波、方波、正弦波。

这些波形的实现的具体步骤:

锯齿波实现很简单,只需要一开始定义一个初值,然后不断的加1,当溢出后又重初值开始加起,就这样循环下去。

三角波的实验过程是先加后减,实现方法是先是从00H开始加1直到溢出后就执行减1操作,就这样不断调用这个循环。

方波的实现方法是连续输出一个数,到某个时候就改变一下值,可以把值定义为正极性的,也可以是负极性。

正弦波的实现是非常麻烦的。

它的实现过程是通过定义一些数据,然后执行时直接输出定义的数据就可以了。

(2)通过P1口和开关K0-K4相连接来控制各个波形的输出。

能根据k0-k5键状态进行波形切换,当某一按键按下时,输出相对应的波形。

3系统硬件电路设计

3.1单片机最小系统设计

单片机外围晶振电路是通过单片机的XTAL1引脚和XTAL2引脚接入的。

本设计的电容C1、C2使用10pF,晶振频率选择为11.0592MHZ。

复位电路是通过单片机的RST引脚接入的。

本设计的电容C3使用1nF,电源使用+5u。

单片机最小系统如下图所示:

图3-1单片机最小系统

3.2其他硬件模块电路设计

3.2.1DAC0832芯片介绍

0832采用双缓冲接口方式,其传送控制端接地,输入所存允许断ILE与+5V电源相连,利用一个地址码进行二次输出操作,完成数据的传送和激动转换,第一次操作室P2.6为高电平,将P0口数据线上的数据锁存于DAC0832的输入寄存器中。

第二次操作是写控制信号由效,传送控制端为低电平,将输入寄存器中的内容锁存入0832的DAC寄存器中,D/A转换器便开始对锁存于DAC寄存器的8位数据进行转换,约经过1/2时钟周期后,在输出端(IOUT2、IOUT1)建立稳定的电流输出。

运放的作用是将0832输出的模拟电流信号转换为电压波形。

DAC0832为一个8位D/A转换器,单电源供电,在+5~+15V范围内均可正常工作。

基准电压的范围为±

10V,电流建立时间为1μs,CMOS工艺,低功耗20mW。

DAC0832的内部结构框图如下图所示。

图3-2DA0832内部结构框图

DAC0832的外部引脚及功能介绍图如下:

图3-3DA0832外部引脚图

DAC0832内部结构资料:

芯片内有两级输入寄存器,使DAC0832具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路D/A异步输入、同步转换等)。

D/A转换结果采用电流形式输出。

要是需要相应的模拟信号,可通过一个高输入阻抗的线性运算放大器实现这个供功能。

运放的反馈电阻可通过RFB端引用片内固有电阻,还可以外接

DI0~DI7:

数据输入线,TLL电平。

ILE:

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

CS:

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

WR1:

为输入寄存器的写选通信号。

XFER:

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

WR2:

为DAC寄存器写选通输入线。

Iout1:

电流输出线。

当输入全为1时Iout1最大。

Iout2:

电流输出线。

其值与Iout1之和为一常数。

Rfb:

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

Vcc:

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

Vref:

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

AGND:

模拟地,摸拟信号和基准电源的参考地.

DGND:

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

3.2.2单片机AT89C51介绍

AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压、高性能CMOS8位微处理器,俗称单片机。

AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如下图所示:

图3-4AT89C51引脚排列图

AT89C51管脚说明:

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)这是由于上拉的缘故。

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:

来自反向振荡器的输出。

4系统软件程序设计

4.1主程序设计

ORG0000H

LJMPMAIN

ORG0003H

LJMPINT00

ORG0040H

MAIN:

MOVSP,60H

SETBIT0

SETBEA

SETBEX0

INT00:

CLREA

PUSHPSW

PUSHAcc

JNBP1.0,IR0

JNBP1.1,IR1

JNBP1.2,IR2

JNBP1.3,IR3

JNBP1.4,IR4

INTIR:

POPAcc

POPPSW

RETI

4.2其他子程序设计

4.2.1锯齿波流程设计

锯齿波的实现过程是首先定义一个初值然后进行加法操作,加的步数的多少则根据要求的频率来进行。

然后加到某个数之后就再重新设置为初值,再重复执行刚刚的操作,如此循环下去。

锯齿波发生流程图如下图所示:

图4-1锯齿波发生流程图

锯齿波发生子程序如下:

IR0:

MOVR0,#0FEH

MOVA,#00H

LOOP:

MOVX@R0,A

JBP1.0,INTIR

INCA

SJMPLOOP

LJMPINTIR

4.2.2梯形波流程设计

梯形波的实现是设置一个初值,然后进行加一,当加到某个数时延时,之后减一,减到初值时在返回到之前的操作,继续加一、延时、减一。

梯形波发生流程图如下图所示:

图4-2梯形波发生流程图

梯形波发生子程序如下:

IR1:

MOVR0,#0FEH

UP:

MOVX@R0,A

JBP1.1,INTIR

INCA

JNZUP

DECA

LCALLDELAY

DOWN:

DECA

JNZDOWN

SJMPUP

LJMPINTIR

DELAY:

MOVR7,#100

DELAY1:

MOVR6,#10

NOP

DELAY2:

DJNZR6,DELAY2

DJNZR7,DELAY1

RET

4.2.3三角波流程设计

三角波的实现是设置一个初值,当加到某个值的时候,执行减一操作,减到初值时,再加一。

三角波发生流程图如下图所示:

图4-3三角波发生流程图

三角波发生子程序如下:

IR2:

UP2:

MOVX@R0,A

JBP1.2,INTIR

JNZUP2

DOWN2:

DECA

JNZDOWN2

SJMPUP2

4.2.4方波流程设计

方波的实现只需开始的时候设置一个初值然后直接输出这个值就行了,输出一段时间后,然后再重新置一个数据,然后再输出这个数据一段时间,但是此时的时间一定要等于前面那段时间。

这样才是一个方波,如果两个时间不相同,那就相当于一个脉冲波。

方波发生流程图如下图所示:

图4-4方波发生流程图

方波发生子程序如下:

IR3:

POSI:

MOVA,#00H

JBP1.3,INTIR

NEGA:

MOVA,#0FFH

SJMPPOSI

4.2.5正弦波流程设计

正弦波的实现需要查表,每查一次表,输出一个数值,之后查下一个数值继续输出,当一个波形的256个数值全部输出之后,从头开始继续输出。

正弦波发生流程图如下图所示:

图4-5正弦波发生流程图

正弦波发生子程序如下:

IR4:

MOVR0,#0FEH

MOVR1,#00H

XX:

MOVA,R1

LCALLHANSHU

MOVX@R0,A

JBP1.4,INTIR

INCR1

SJMPXX

LJMPINTIR

HANSHU:

MOVDPTR,#TAB1

MOVCA,@A+DPTR

RET

TAB1:

db080h,083h,086h,089h,08ch,090h,093h,096h,099h,09ch,09fh,0a2h,0a5h,0a8h,0abh,0aeh

db0b1h,0b3h,0b6h,0b9h,0bch,0bfh,0c1h,0c4h,0c7h,0c9h,0cch,0ceh,0d1h,0d3h,0d5h,0d8h

db0dah,0dch,0deh,0e0h,0e2h,0e4h,0e6h,0e8h,0eah,0ebh,0edh,0efh,0f0h,0f1h,0f3h,0f4h

db0f5h,0f6h,0f8h,0f9h,0fah,0fah,0fbh,0fch,0fdh,0fdh,0feh,0feh,0feh,0ffh,0ffh,0ffh

db0ffh,0ffh,0ffh,0ffh,0feh,0feh,0feh,0fdh,0fdh,0fch,0fbh,0fah,0fah,0f9h,0f8h,0f6h

db0f5h,0f4h,0f3h,0f1h,0f0h,0efh,0edh,0ebh,0eah,0e8h,0e6h,0e4h,0e2h,0e0h,0deh,0dch

db0dah,0d8h,0d5h,0d3h,0d1h,0ceh,0cch,0c9h,0c7h,0c4h,0c1h,0bfh,0bch,0b9h,0b6h,0b3h

db0b1h,0aeh,0abh,0a8h,0a5h,0a2h,09fh,09ch,099h,096h,093h,090h,08ch,089h,086h,083h

db080h,07dh,07ah,077h,074h,070h,06dh,06ah,067h,064h,061h,05eh,05bh,058h,055h,052h

db04fh,04dh,04ah,047h,044h,041h,03fh,03ch,039h,037h,034h,032h,02fh,02dh,02bh,028h

db026h,024h,022h,020h,01eh,01ch,01ah,018h,016h,015h,013h,011h,010h,00fh,00dh,00ch

db00bh,00ah,008h,007h,006h,006h,005h,004h,003h,003h,002h,002h,002h,001h,001h,000h

db000h,000h,001h,001h,002h,002h,002h,003h,003h,004h,005h,006h,006h,007h,008h,00ah

db00bh,00ch,00dh,00fh,010h,011h,013h,015h,016h,018h,01ah,01ch,01eh,020h,022h,024h

db026h,028h,02bh,02dh,02fh,032h,034h,037h,039h,03ch,03fh,041h,044h,047h,04ah,04dh

db04fh,052h,055h,058h,05bh,05eh,061h,064h,067h,06ah,06dh,070h,074h,077h,07ah,07dh

5

调试与仿真

本次的设计主要应用了protues软件进行系统设计和仿真,经过仿真后,结果较好,示波器可以正确的输出方波、正弦波、三角波、锯齿波、梯形波。

硬件连线图如下图所示:

图5-1硬件连线图

函数图像如下图所示:

图5-2锯齿波

图5-3梯形波

图5-4三角波

图5-5方波

图5-6正弦波

6总结

本次的设计中利用AT89C51和DAC0832以及放大器完成电路的设计,用开关来控制各种波形的发生及转换,用单片机输出后,经过模数转换器生成波形,最终可以通过示波器观察。

在这次的软件设计中,程序设计采用的是汇编语言。

汇编语言具有速度快,可以直接对硬件进行操作的优点,它可以极好的发挥硬件的功能。

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

比如:

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

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

通过这次课程设计,我进一步了解了波形发生器的原理,在实际动手操作过程中,使我接触了许多我以前没接触过的元件,而且重新温习了刚学不久的汇编语言,使我学得了许多知识,使我获益匪浅。

这次课程设计,使我的动手能力得到了很大的提高,更使我们懂得理论知识的重要性,没有理论的指导一切实际行动都是盲目的,且实际操作是我们得到的理论知识得到验证,更能增加对理论知识的理解。

致谢

在我写本论文的过程中,闫秀英老师给我提供了许多资料,并对实践中出现的问题给予耐心的解答,完稿之后在百忙之中仔细阅读,给出修改意见。

闫秀英爱岗敬业,治学严谨,思维严密,平易近人是我十分尊敬的老师,在此对她表示感谢。

在本文录入的过程中,也得到了其他同学的帮助,在这里对他们也表示的感谢。

参考文献

[1]毅刚,彭喜元.单片机原理与应用设计.北京:

电子工业出版社.96~100

[2](美)RichardBlum著;

马朝晖等译;

汇编语言程序设计北京:

机械工业出版社.156~170

[3]李建忠,余新拴,闵永智,杨琳霞,胡健,康苏明.单片机原理及应用.西安:

西安电子科技大学出版社.18~20,207~217

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

当前位置:首页 > 高中教育 > 高中教育

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

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