51单片机实现波形发生器.docx

上传人:b****8 文档编号:12860142 上传时间:2023-06-08 格式:DOCX 页数:26 大小:601.23KB
下载 相关 举报
51单片机实现波形发生器.docx_第1页
第1页 / 共26页
51单片机实现波形发生器.docx_第2页
第2页 / 共26页
51单片机实现波形发生器.docx_第3页
第3页 / 共26页
51单片机实现波形发生器.docx_第4页
第4页 / 共26页
51单片机实现波形发生器.docx_第5页
第5页 / 共26页
51单片机实现波形发生器.docx_第6页
第6页 / 共26页
51单片机实现波形发生器.docx_第7页
第7页 / 共26页
51单片机实现波形发生器.docx_第8页
第8页 / 共26页
51单片机实现波形发生器.docx_第9页
第9页 / 共26页
51单片机实现波形发生器.docx_第10页
第10页 / 共26页
51单片机实现波形发生器.docx_第11页
第11页 / 共26页
51单片机实现波形发生器.docx_第12页
第12页 / 共26页
51单片机实现波形发生器.docx_第13页
第13页 / 共26页
51单片机实现波形发生器.docx_第14页
第14页 / 共26页
51单片机实现波形发生器.docx_第15页
第15页 / 共26页
51单片机实现波形发生器.docx_第16页
第16页 / 共26页
51单片机实现波形发生器.docx_第17页
第17页 / 共26页
51单片机实现波形发生器.docx_第18页
第18页 / 共26页
51单片机实现波形发生器.docx_第19页
第19页 / 共26页
51单片机实现波形发生器.docx_第20页
第20页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

51单片机实现波形发生器.docx

《51单片机实现波形发生器.docx》由会员分享,可在线阅读,更多相关《51单片机实现波形发生器.docx(26页珍藏版)》请在冰点文库上搜索。

51单片机实现波形发生器.docx

51单片机实现波形发生器

摘要

这个系统是基于AT89C51单片机的波形信号发生器。

使用AT89C51单片机作为控制核心,该系统由数字/模拟转换电路(DAC0832)、运放电路(OP07)、按键电路和6位数码管等组成。

通过按键可控制方波、三角波、正弦波的产生,并且用数码管显示其对应的频率和波形的类型。

这个设计方法简单、性能良好,这个系统可在多种需要低频信号的场所使用,它具有良好的实用性。

关键词:

AT89C51数模转换电路数码管信号发生器

 

 

1总体方案设计

本次设计的任务是设计制作一个波形发生器,该波形发生器能产生正弦波、方波、三角波和由用户编辑的特定形状波形。

示意图如下:

基本要求如下:

(1)具有产生正弦波、方波周期性波形的功能;

(2)输出波形的频率围为100Hz~20kHz(非正弦波频率按10次谐波计算);重复频率可调,频率步进间隔≤100Hz;

(3)输出波形幅度围0~5V(峰-峰值),可按步进0.1V(峰-峰值)调整;

(4)具有显示输出波形的类型、重复频率(周期)和幅度的功能。

1.1方案论证

方案一:

采用单片函数发生器可产生正弦波、方波等,操作简单易行,用D/A转换器的输出来改变调节电压,可以实现数控调整频率,但产生信号的频率稳定度不高。

方案二:

利用芯片组成的电路输出波形,MAX038是MAXIM公司生产的一个只需要很少外部元件的精密高频波形产生器,它能产生准确的高频正弦波、三角波、方波。

输出频率和占空比可以通过调整电流、电压或电阻来分别地控制。

所需的输出波形可由在A0和A1输入端设置适当的代码来选择,且具有输出频率围宽、波形稳定、失真小、使用方便等特点。

方案三:

采用Atmel公司的AT89C51单片机编程方法实现,该方案可以通过编程的方法控制信号波形的频率和幅度,而在硬件电路不便的情况下,通过程序实现频率的变化和输出波形的选择,并同时在显示器显示相应的结果。

方案一输出信号频率不够稳定;方案二成本高,程序复杂度高;方案三软硬件结合,硬件成本低,软件起点低,用汇编语言即可完成,优化型相对比较好,容易实现,且满足设计要求。

综合考虑,我们采用了方案三,用AT89C51单片机设计多功能信号发生器,能够满足信号的频率稳定性和精度的准确性。

1.2系统描述

本方案以AT89C51为控制核心,主要模块包括复位电路、时钟信号发生电路、键盘控制电路、D/A转化及LED显示电路,其原理框图如下:

图1系统原理框图

2单元模块设计

2.1AT89C51功能介绍

AT89C51引脚图如下:

图2AT89C51引脚图

1.主电源引脚Vcc和GND

GND:

接地。

Vcc:

主电源+5V。

2.时钟电路引脚XTAL1和XTAL2

XTAL1、XTAL2为部振荡器电路(反相放大器)的输入端和输出端,外接晶振电路。

3.控制引脚RST、ALE、PSEN、EA

RST:

复位引脚输入高电平使89C51复位,返回低电平退出复位。

ALE:

访问片外存储器时,ALE做锁存扩展地址低位字节的控制信号。

PSEN:

外部程序存储器的读选通信号,低电平有效。

EA:

程序存储器选择信号,当该端口输入高电平时,CPU执行片程序存储器程序,当输入低电平时,CPU仅访问片外程序存储器。

4.输入/输出引脚

P0—P3是4个寄存器,是单片机与外界联系的4个8位双向并行I/O口,其中P3口还具有第二功能。

2.2时钟电路

单片机的时钟信号通常用两种电路形式得到:

部振荡和外部振荡方式。

在引脚XTAL1和XTAL2外接晶体振荡器,构成了部振荡方式。

由于单片机部有一个高增益的反相放大器,当外接晶振后,就构成了自激振荡,并产生振动时钟脉冲。

晶振通常选用6MHZ、12MHZ、24MHZ。

本设计中时钟电路图如下图所示,我们选择24MHZ晶振分别接引脚XTAL1和XTAL2,电容C1、C2均选择为30pF,对振荡器的频率有稳定作用。

图3时钟电路

2.3复位电路

复位引脚RST通过一个施密特触发器与复位电路相连,施密特触发器用来抑制噪声。

复位电路通常采用上电自动复位和按钮复位两种方式。

在每个机器周期的S5P2,施密特触发器的输出电平由复位电路采样一次,然后才能得到部复位操作所需要的信号。

本设计选择了按键复位如下图所示,在系统运行时,按一下开关,就在RST断出现一段高电平,使时钟电路图中器件复位。

此时ALE、PSEN、P0、P1、P2、P3输出高电平,在RST上输入返回低电平以后,就退出复位状态开始工作。

图4复位电路

2.4键盘控制电路

键盘电路分为独立式按键和矩阵式键盘,为了简化程序,我们采用了独立式键盘。

独立式按键是指直接用I/O口线构成的单个按键电路。

每个独立式按键单独占有一根I/O口线,每根I/O口线的工作状态不会影响其他I/O口线的工作状态,这是一种最简单易懂的按键结构。

电路图如下所示:

图5键盘输入电路

2.5LED显示电路

2.5.1数码管功能介绍

数码管的外形结构如下图所示,由图可见它由8个发光二极管构成,通过不同的组合用来显示0—9,A—F及小数点“.”等符号。

数码管通常有共阴极和共阳极两种型号,共阴极数码管的发光二极管阴极必须接低电平,当某发光二极管的阳极为高电平(一般为+5V)时,此二极管点亮;共阳极数码管的发光二极管是阳极并接到高电平,对于需点亮的发光二极管使其阴极接地电平即可(一般接地)。

显然,要显示某字形就应使此字形的相应字段点亮,实际就是送不同电平组合代表的数据至数码管。

这种装入数码管显示字形的数据称字形码。

图6数码管原理图

要使数码管显示不同的数字或者字符,需要使端口输出相应的字型码,显示器的字形与字码关系如下图所示:

图7段码表

2.5.2LED动态显示原理及电路

LED数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,单片机对位选通端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的端,就使各个数码管轮流受控显示,这就是动态驱动。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

本次设计采用6位共阴极数码管,选取AT89C51的P0口作为信号输出端口,并外接两片锁存器74HC573,用于驱动数码管,其中一片作为数码管的段选信号输入端,另一片作为数码管的位选信号输入端,选取AT89C51的P2.6和P2.7分别作为两片锁存器的片选信号输入端,电路图如下所示:

图8LED显示电路

2.6D/A转换及放大电路

2.6.1DAC0832功能介绍

DAC0832是8分辨率的D/A转换集成芯片。

与微处理器完全兼容。

这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。

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

其引脚图如下所示:

图9DAC0832引脚图

关于DAC0832的引脚功能如下:

D0~D7:

数字信号输入端。

ILE:

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

CS:

片选信号,低电平有效。

WR1:

写信号1,低电平有效。

XFER:

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

WR2:

写信号2,低电平有效。

IOUT1、IOUT2:

DAC电流输出端。

RFB:

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

VREF:

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

Vcc:

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

AGND:

模拟地。

NGND:

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

2.6.2D/A转换电路

由于单片机输出的是数字信号,因此要得到模拟信号的波形就必须对其进行数模转换。

我们采用了DAC0832数模转换器,由于其输出为电流输出,需要外加运算放大器OP07使之装换为电压输出,最后通过示波器显示输出的波形。

我们选取了AT89C51的P1口作为波形数字信号的输出端口,电路图如下所示:

图10D/A转换电路

 

3系统调试

本次设计的系统仿真在Proteus软件中进行,并采用汇编语言进行程序的编写。

3.1软件调试

3.1.1三角波产生

(1)输出波形如下图所示:

图11三角波仿真图

(2)三角波程序如下:

TRI:

CJNER7,#0FFH,GO1

CLR20H

GO1:

CJNER7,#00H,GO2

SETB20H

GO2:

JNBTF1,GO3

CLRTF1

20H,GO4

DECR7

SJMPGO6

GO4:

INCR7

GO6:

MOVP1,R7

LCALLDISPLAY

GO3:

MOVA,P3

ORLA,#1FH

CPLA

JZGO5

LCALLDELAY

MOVA,P3

ORLA,#1FH

CPLA

JZGO5

LJMPCHANGESTATE

GO5:

LJMPTRI

3.1.2方波产生

(1)输出波形如下图所示:

图12方波仿真图

(2)方波程序如下:

REC:

JNBTF1,GG1

CLRTF1

DJNZR2,GG2

MOVR2,#0FFH

CPL20H

GG2:

20H,GG3

MOVP1,#00H

SJMPGG4

GG3:

MOVP1,#0FFH

GG4:

GG1:

MOVA,P3

ORLA,#0FH

CPLA

JZGG5

LCALLDELAY

MOVA,P3

ORLA,#0FH

CPLA

JZGG5

GG5:

LJMPREC

3.1.3正弦波产生

(1)输出波形如下图所示:

图13正弦波仿真图

(2)程序如下:

SIN:

JNBTF1,G1

CLRTF1

INCR1

MOVA,R1

MOVCA,A+DPTR

MOVP1,A

G1:

MOVA,P3

ORLA,#1FH

CPLA

JZG2

MOVA,P3

ORLA,#1FH

CPLA

JZG2

G2:

LJMPSIN

 

3.1.4键盘控制

通过按键的控制,可以实现波形的相互转换和调频的功能。

P3.5和P3.6端口的键盘分别实现频率的加减功能,P3.7端口的键盘实现波形之间的相互转换。

其仿真效果如下图所示:

图14波形转换仿真图

3.1.5LED显示

本次设计采用6位数码管实现显示功能,其中前3位用于显示波形的类型,REC代表方波,SIN代表正弦波,TRI代表三角波;后3位用于显示波形的频率。

其仿真效果如下图所示:

图15LED仿真图

3.2硬件调试

本次设计的硬件电路调试结果如下图所示:

图16硬件效果图

4系统功能介绍

本次设计的电路可实现以下三大功能:

(1)波形产生

本次设计电路可产生方波、三角波、正弦波三种波形,而且通过键盘控制可以实现三种波形之间的相互转换和频率调节的功能。

(2)LED显示

本次设计的显示功能通过6位数码管实现,可以显示三种波形的类型和频率。

(3)键盘控制

本次设计的电路具有键盘控制功能,可以进行三种波形之间的任意转换和波形频率的调节,并可以将改变后的结果实时地显示在在数码管上。

 

5设计总结

我们小组此次的设计题目是波形发生器的设计,通过小组成员将近一个月的努力,并按照本次电子设计竞赛的相关要求,最终完成此次设计。

在此次设计中收获颇多,主要有以下几点:

(1)通过对电路的设计,对51系列单片机的原理和功能有了进一步的了解,对之前学过的书本上的电路知识有了更深刻的体会,如复位电路的原理,晶振电路的作用,上拉电阻的功能,LED显示电路的原理等,熟悉了DAC0832芯片的原理和功能,并且能对其进行应用。

(2)通过原理图的绘制,学会了Proteus软件的使用,并且能用它完成一些简单的电路设计,对常用的一些元器件有了一定的了解和认识。

(3)本次设计的硬件电路相对简单,核心部分是程序的编写,考虑到汇编语言与硬件电路联系比较紧密,我们组通过讨论最终选取汇编语言进行程序的编写,方便后期调试过程查找错误。

在软件和硬件的调试阶段遇到很多的问题,如LED显示乱码、闪烁、波形失真等,通过不断的查找错误,对程序进行相应的修改,使其达到设计的要求,在这个过程中,认识到有时候一个简单的错误就有可能造成电路无常工作,可谓“失之毫厘,差之千里”,培养了我们严谨细致的工作态度,同时对电路的的工作原理有了更深刻的认识。

(4)在本次电路设计的过程中,深刻体会到对于一个功能较为复杂的系统设计,一定要学会划分功能模块,逐个实现,最终再进行整合,切不可眉毛胡子一把抓,那样不仅操作起来麻烦,效率低,而且容易出错。

(5)“纸上得来终觉浅,绝知此事要躬行”,通过本次电子设计竞赛,深刻体会到理论联系实践的重要性,要学会活学活用。

同时,在实践的过程中,也可以加深对理论知识的认识,提高动手能力。

(6)通过本次电子设计竞赛,我更加深刻的认识到团队合作的重要性,小组成员分工合作,是设计成功的关键,只有大家团结一致,才能更快更好的完成任务。

我们此次的设计基本满足设计的要求,当然还是存在不足的地方,例如当频率过小的时候波形会有些失真,波形的频率调节围比较小,D/A转换器转换时可以加一个锁存器,放大电路设计上还有待进一步改进,使其具有更强的输出能力等。

参考文献

[1]康华光.电子技术基础模拟部分.第五版.:

高等教育,2011.11

[2]邱关源.电路.第五版.:

高等教育,2011.12

[3]阎石.数字电子技术基础.第五版.:

高等教育,2012.11

[4]迎新.单片微型计算机原理.第二版.国防工业,2009.5

[5]周润景.Proteus入门实用教程.第二版.机械工业,2011.11

 

附录

1系统原理图

2主程序

ORG0000H

lJMPMAIN

MAIN:

MOVTMOD,#20H

MOVR0,#02H

MOVA,#0FFH

MOVP3,A

MOVA,#70H

MOVSP,A

MOVR6,#0FFH

REMAIN:

CLRTR1

MOVTH1,R6

SETBTR1

LCALLJM

CJNER0,#01,SHIFT

TRI:

CJNER7,#0FFH,GO1

CLR20H

GO1:

CJNER7,#00H,GO2

SETB20H

GO2:

JNBTF1,GO3

CLRTF1

20H,GO4

DECR7

SJMPGO6

GO4:

INCR7

GO6:

MOVP1,R7

LCALLDISPLAY

GO3:

MOVA,P3

ORLA,#1FH

CPLA

JZGO5

LCALLDELAY

MOVA,P3

ORLA,#1FH

CPLA

JZGO5

LJMPCHANGESTATE

GO5:

LJMPTRI

SHIFT:

JCSIN1

REC:

JNBTF1,GG1

CLRTF1

DJNZR5,GG2

MOVR5,#0FFH

CPL20H

GG2:

20H,GG3

MOVP1,#00H

SJMPGG4

GG3:

MOVP1,#0FFH

GG4:

LCALLDISPLAY

GG1:

MOVA,P3

ORLA,#1FH

CPLA

JZGG5

LCALLDELAY

MOVA,P3

ORLA,#1FH

CPLA

JZGG5

LCALLCHANGESTATE

GG5:

LJMPREC

SIN1:

NOP

MOVDPTR,#TABSIN

SIN:

JNBTF1,G1

CLRTF1

INCR1

MOVA,R1

MOVCA,A+DPTR

MOVP1,A

LCALLDISPLAY

G1:

MOVA,P3

ORLA,#1FH

CPLA

JZG2

LCALLDELAY

MOVA,P3

ORLA,#1FH

CPLA

JZG2

LCALLCHANGESTATE

G2:

LJMPSIN

CHANGESTATE:

P3.7,GOTO1

INCR0

CJNER0,#03H,GOTO1

MOVR0,#00H

GOTO1:

P3.6,GOTO2

INCR6

GOTO2:

P3.5,GOTO3

DECR6

GOTO3:

MOVA,P3

CPLA

JNZGOTO3

LJMPREMAIN

JM:

MOVDPTR,#TABNUM

MOVA,R6

MOVB,#100

DIVAB

MOVCA,A+DPTR

MOV14H,A

MOVA,B

MOVB,#10

DIVAB

MOVCA,A+DPTR

MOV15H,A

MOVA,B

MOVCA,A+DPTR

MOV16H,A

MOVDPTR,#TABWM

MOVA,R0

MOVB,#03H

MULAB

MOV10H,A

MOVCA,A+DPTR

MOV11H,A

INCDPTR

MOVA,10H

MOVCA,A+DPTR

MOV12H,A

MOVA,10H

INCDPTR

MOVCA,A+DPTR

MOV13H,A

RET

 

DISPLAY:

SETBP2.6

MOVP0,11H

CLRP2.6

MOVP0,#0FFH

SETBP2.7

MOVP0,#0FEH

CLRP2.7

MOVP0,#0FFH

LCALLDELAY

SETBP2.6

MOVP0,12H

CLRP2.6

MOVP0,#0FFH

SETBP2.7

MOVP0,#0FDH

CLRP2.7

MOVP0,#0FFH

LCALLDELAY

SETBP2.6

MOVP0,13H

CLRP2.6

MOVP0,#0FFH

SETBP2.7

MOVP0,#0FBH

CLRP2.7

MOVP0,#0FFH

LCALLDELAY

SETBP2.6

MOVP0,14H

CLRP2.6

MOVP0,#0FFH

SETBP2.7

MOVP0,#0F7H

CLRP2.7

MOVP0,#0FFH

LCALLDELAY

SETBP2.6

MOVP0,15H

CLRP2.6

MOVP0,#0FFH

SETBP2.7

MOVP0,#0EFH

CLRP2.7

MOVP0,#0FFH

LCALLDELAY

SETBP2.6

MOVP0,16H

CLRP2.6

MOVP0,#0FFH

SETBP2.7

MOVP0,#0DFH

CLRP2.7

MOVP0,#0FFH

LCALLDELAY

RET

DELAY:

MOVR2,#0FFH

MOVR3,#1

LOOP:

DJNZR3,LOOP

MOVR3,#2

DJNZR2,LOOP

RET

TABNUM:

DB3FH,06H,5BH,4FH,66H

DB6DH,7DH,07H,7FH,6FH

TABWM:

DB6DH,06H,37H,07H,77H

DB30H,77H,79H,39H

TABSIN:

DB80H,83H,86H,89H,8DH,90H,93H,96H

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

DB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H

DB0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8H

DB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H

DB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H

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

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

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

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

DB0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAH

DB0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAH

DB0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7H

DB0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1H

DB0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99H

DB96H,93H,90H,8DH,89H,86H,83H,80H

DB80H,7CH,79H,78H,72H,6FH,6CH,69H

DB66H,63H,60H,5DH,5AH,57H,55H,51H

DB4EH,4CH,48H,45H,43H,40H,3DH,3AH

DB38H,35H,33H,30H,2EH,2BH,29H,27H

DB25H,22H,20H,1EH,1CH,1AH,18H,16H

DB15H,13H,11H,10H,0EH,0DH,0BH,0AH

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

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

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

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

DB0AH,0BH,0DH,0EH,10H,11H,13H,15H

DB16H,18H,1AH,1CH,1EH,20H,22H,25H

DB27H,29H,2BH,2EH,30H,33H,35H,38H

DB3AH,3DH,40H,43H,45H,48H,4CH,4EH

DB51H,55H,57H,5AH,5DH,60H,63H,66H

DB69H,6CH,6FH,72H,76H,79H,7CH,80H

 

END

 

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

当前位置:首页 > 自然科学 > 化学

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

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