多种波形发生器设计讲解.docx

上传人:b****0 文档编号:12507601 上传时间:2023-04-19 格式:DOCX 页数:28 大小:829.66KB
下载 相关 举报
多种波形发生器设计讲解.docx_第1页
第1页 / 共28页
多种波形发生器设计讲解.docx_第2页
第2页 / 共28页
多种波形发生器设计讲解.docx_第3页
第3页 / 共28页
多种波形发生器设计讲解.docx_第4页
第4页 / 共28页
多种波形发生器设计讲解.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

多种波形发生器设计讲解.docx

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

多种波形发生器设计讲解.docx

多种波形发生器设计讲解

四川师范大学成都学院电子工程学院电子技术课程设计

 

电子技术课程设计—多种波形发生器设计

学生姓名

付小洋

学号

2014209034

所在学院

电子工程学院

专业名称

应用电子技术

班级

2014级

指导教师

陈海川

成绩

四川师范大学成都学院

二○15年12月

四川师范大学成都学院

电子工程学院

课程设计考核表

课程设计名称

电子技术课程设计

课程设计题目

多种波形发生器设计

学生姓名

付小洋

年级

2014级

专业

应用电子技术

学号

2014209034

指导教师

陈海川

课程设计成绩

等级

职称

分数

评语:

(注:

课程设计成绩以等级和分数记录。

优:

90~100良:

80~89中:

70~79及格:

60~69不及格:

60分以下)

指导教师签名:

年月日

四川师范大学成都学院

电子工程学院

课程设计任务书

课程设计名称

电子技术课程设计

课程设计题目

多种波形发生器设计

学生姓名

付小洋

年级

2014级

专业

应用电子技术

学号

2014209034

指导教师

陈海川

职称

备注

课程设计起止日期

设计内容:

设计一个能产生正弦波、方波、三角波、梯形波、锯齿波的波形发生器,完成原理图设计,软件编制及设计报告。

任务与要求:

具体要求如下:

 

1)以单片机为核心,利用数摸转换芯片0832完成数模转换。

 

  2)以按键来选择要产生的波形 

  3)用示波器观察波形。

设计步骤:

 

 1)按照任务书的要求完成系统需求分析及功能定义。

  

 2)使用proteus进行原理性设计与仿真。

   

3)完成代码编写,给出软件流程图。

 

  4)撰写设计报告。

主要参考资料:

单片机系统教材及相关元器件的数据手册

摘要

随着电子技术的飞快发展,单片机也应用得越来越广泛,基于单片机的智能仪器的设计技术不断成熟。

单片机构成的仪器具有高可靠性,高性价比。

单片机技术在智能仪表和自动化等诸多领域有了极为广泛的应用,并用到各种家庭电器,单片机技术的广泛应用推动了社会的进步。

利用单片机采用程序设计方法来产生波形,线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强等优点,而且还能对波形进行细微的调整,改良波形,易于程序控制。

只要对电路稍加修改,调整程序,就能实现功能的升级。

本系统利用单片机AT89C52采用程序设计方法产生锯齿波、三角波、正弦波、梯形波四种波形,再通过D/A转换器DAC0832将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来,并通过按键来控制四种波形的类型选择。

本次设计主要由信号发生模块、数模转换模块和仿真模块。

关键词:

AT89C52单片机,DAC0832,独立式键盘,Proteus,Keil

 

Abstract:

Withtherapiddevelopmentofelectronictechnology,single-chipmicrocomputerisalsomoreandmorewidelyused,designtechnologybasedonsinglechipmicrocomputerintelligentinstrumentmatures.Singlechipinstrumenthashighreliability,highcostperformance.SCMtechnologyinmanyfieldssuchasintelligentinstrumentandautomationhastheextremelywidespreadapplication,andtoallkindsofhouseholdappliances,extensiveapplicationofsingle-chipcomputertechnologypromotesthesocialprogress.Microcontrollerprogrammingmethodisusedtoproducewaveform,lineroadisrelativelysimple,compactstructure,lowprice,highrateoffrequencystability,theadvantagesofstrongantiinterferenceability,andalsocancarryonthefineadjustmentofwaveform,changeagoodwaveform,easyinprocesscontrol.Aslongastomodifytheelectricroadalittlebit,theadjustmentprocedure,canachievethefunctionupgrade.ThissystemusingsinglechipmicrocomputerAT89C52processsequencedesignmethodisusedtoproducethreeAngleofwave,sawtoothwave,string,laddershapedwavefourwaveform,againthroughD/AconverterDAC0832convertsdigitalsignalsintoanalogsignals,filteramplifier,ultimatelydisplayedbyoscillograph,andthroughthekeystocontrolthetypeselectionoffourkindsofwaveform.Thisdesignismainlycomposedofsignalproducingmodule,analog-to-digitalconversionmodule,andthesimulationmodule.

Keywords:

AT89C52singlechipmicrocomputer,DAC0832,independenttypekeyboard,Proteus,Keil

 

目录

1前言1

2硬件电路设计1

2.1主要芯片介绍1

2.1.1单片机AT89C521

2.1.2DAC0832数模转换器4

2.1.3其他器件5

2.2硬件连接图5

2.2.1主控电路5

2.2.2独立式键盘6

2.2.3数模转换电路7

2.2.4驱动电路8

2.3总电路图8

3程序设计9

3.1主流程图的设计9

3.2子程序的设计10

3.2.1锯齿波的产生10

3.2.2三角波的产生10

3.2.3梯形波的产生11

3.2.4正弦波的产生12

3.2.5主程序13

4应用软件14

4.1Proteus14

4.2KeilC5116

5调试与仿真结果17

6总结20

参考文献21

1前言

在电子工程、通信工程、自动控制、遥测控制、测量仪器、仪表和计算机等技术领域,经常需要用到各种各样的信号波形发生器。

随着集成电路的迅速发展,用集成电路可很方便地构成各种信号波形发生器。

用集成电路实现的信号波形发生器与其它信号波形发生器相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。

波形发生器是能够产生大量的标准信号和用户定义信号,并保证高精度、高稳定性、可重复性和易操作性的电子仪器。

函数波形发生器具有连续的相位变换、和频率稳定性等优点,不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励、通讯和仪器仪表领域。

2硬件电路设计

本方案是基于AT89C52与DAC0832的单缓冲方式接口电路来设计。

单缓冲式接口电路具有过程简单,容易实现。

由于本设计运用汇编的编程语言,导致用独立式键盘来实现简单控制。

本方案所产生的信号频率稳定性高,精确度高。

而且在硬件方面它所选的元器件比较常见。

其主要流程图和模块如图1所示。

 

图1软硬件结合设计框图

2.1主要芯片介绍

2.1.1单片机AT89C52

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,

片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。

AT89C52为8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8xc52相同,其主要用于会聚调整时的功能控制。

功能包括对会聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

图2为AD89C52单片机的管脚图。

图2AT89C52管脚图

其各管脚功能为:

P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口P0写“1”时,可作为高阻抗输入端用。

在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。

在Flash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

P1口:

P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。

作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

与AT89C51不同之处是,P1.0和P1.1还可分别作为定时/计数器2的外部计数输入(P1.0/T2)和输入。

  

P2口:

P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级

可驱动(吸收或输出电流)4个TTL逻辑门电路。

对端口P2写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。

在访问外部程序存储器或16位地址的外部数据存储器时,P2口送出高8位地址数据。

在访问8位地址的外部数据存储器(如执行MOVX@RI指令)时,P2口输出P2锁存器的内容。

Flash编程或校验时,P2亦接收高位地址和一些控制信号。

P3口:

P3口是一组带有内部上拉电阻的8位双向I/O口。

P3口输出缓冲级可驱动(吸收或输出电流个TTL逻辑)4门电路。

对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。

此时,被外部拉低的P3口将用上拉电阻输出电流(IIL)。

P3口除了作为一般的I/O口线外,更重要的用途是它的第二功能。

P3口还接收一些用于Flash闪速存储器编程和程序校验的控制信号。

RST:

复位输入。

当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。

ALE/PROG:

当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低8位字节。

一般情况下,ALE仍以时钟振荡频率的1/6输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。

要注意的是:

每当访问外部数据存储器时将跳过一个ALE脉冲。

对Flash存储器编程期间,该引脚还用于输入编程脉冲(PROG)。

如有必要,可通过对特殊功能寄存器(SFR)区中的8EH单元的D0位置位,可禁止ALE操作。

该位置位后,只有一条MOVX和MOV指令才能将ALE激活。

此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE禁止位无效。

PSEN:

程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52由外部程序存储器取指令(或数据)时,每个机器周期两次PSEN有效,即输出两个脉冲。

在此期间,当访问外部数据存储器,将跳过两次PSEN信号。

EA/VPP:

外部访问允许。

欲使CPU仅访问外部程序存储器(地址为0000H—FFFFH),EA端必须保持低电平(接地)。

需注意的是:

如果加密位LB1被编程,复位时内部会锁存EA端状态。

如EA端为高电平(接Vcc端),CPU则执行内部程序存储器中的指令。

Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。

XTAL1:

振荡器反相放大器的及内部时钟发生器的输入端。

XTAL2:

振荡器反相放大器的输出端。

2.1.2DAC0832数模转换器

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

与微处理器完全兼容。

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

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

图3为其芯片管脚图。

图3DAC0832管脚图

各个管脚功能如下:

D0~D7:

8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错)

ILE:

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

CS:

片选信号输入线(选通数据锁存器),低电平有效; 

WR1:

数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。

由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;  

XFER:

数据传输控制信号输入线,低电平有效,负脉冲(脉宽应大于500ns)有效;  

WR2:

DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。

由WR2、XFER的逻辑组合产生LE2,当LE2为高电平时,DAC寄存器的输出随寄存器的输入而变化,LE2的负跳变时将数据锁存器的内容打入DAC寄存器并开始D/A转换。

  

IOUT1:

电流输出端1,其值随DAC寄存器的内容线性变化; 

IOUT2:

电流输出端2,其值与IOUT1值之和为一常数;  

Rfb:

反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;  

Vcc:

电源输入端,Vcc的范围为+5V~+15V;  

VREF:

基准电压输入线,VREF的范围为-10V~+10V; 

AGND:

模拟信号地 

DGND:

数字信号地

2.1.3其他器件

本次设计中,不仅仅用到了AT89C52单片机和DAC0832数模转换芯片,还用到了74HC138译码器和74HC573锁存器。

74HC138作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。

74HC573数据锁存器。

主要用于数码管、按键等等的控制。

图474HC138图574HC573

2.2硬件连接图

2.2.1主控电路

中断系统是使处理器具有对外界异步事件的处理能力而设置的。

当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。

在波形发生器中,只用到片内定时器/计数器溢出时产生的中断请求,即是在AT89C52输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C52等待,直到定时器计时结束,产生中断请求,AT89C52响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形。

如图所示2.1,AT89C52所在电路中的工作情况。

本此课设中,AT89C52单片机的P1口接独立式按键电路,P2口部分接译码器,P0口接锁存器。

主控电路图如图6所示

图6主控电路

2.2.2独立式键盘

独立式键盘中,各按键相互独立,每个按键各接一根输入线,每根输入线上的按键工作状态不会影响其它输入线上的工作状态。

因此,通过检测输入线的电平状态就可以很容易的判断按键是否被按下了。

独立式键盘电路配置灵活,软件结构简单。

但每个按键需占用一根输入线,在按键数量较多时,输入口浪费大,电路结构显得很繁杂,故此种键盘适用于按键较少或操作速度较高的场合。

如图7所示。

按键与AT89C52的P1口连接。

KEY1是监测是否输出锯齿波按键;KEY2是监测是否输出三角波按键;KEY3监测是否输出梯形波按键;KEY4监测是否输出正弦波按键;KEY5是调频按键。

图7独立式键盘电路图

2.2.3数模转换电路

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

与微处理器完全兼容。

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

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

由于AT89C51所产生的是数字信号,所以通过DAC0832把数字信号转换成模拟信号。

DAC0832输出的模拟量是电流,为了转换成电压,所以在它后面接入一个运放器。

如图8。

 

图8数模转换电路图

2.2.4驱动电路

74HC138作用原理于高性能的存贮译码或要求传输延迟时间短的数据传输系统,在高性能存贮器系统中,用这种译码器可以提高译码系统的效率。

74HC573数据锁存器。

主要用于数码管、按键等等的控制。

如图9所示,74HC138加74HC573的工作电路。

图974HC138和74HC573的工作电路。

2.3总电路图

多种波形发生器的总电路图如图10所示

 

图11总电路图

3程序设计

3.1主流程图的设计

主程序的流程图如图12所示,开始时判断是否调频,然后判断是否调用锯齿波程序,然后判断是否调用三角波程序,然后判断是否调用梯形波程序,然后判断是否调用正弦波程序,最后在循环回到判断是否调频。

图12软件主程序流程图

3.2子程序的设计

3.2.1锯齿波的产生

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

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

子程序如下:

ST:

MOVA,#00H;设置初值

LOOP:

MOVX@DPTR,A;把数据送到端口转换

ADDA,R6;通过步长改变数据,上升波形

CJNEA,#00H,LOOP;A值是否到最高点

DJNZR5,LOOP

SJMPLOP

3.2.2三角波的产生

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

子程序如下:

TRIANGLE:

MOVA,#00H;设置初值

LOOP3:

MOVX@DPTR,A;把数据送到端口转换

ADDA,R6;通过步长改变数据上升波形

CJNEA,#00H,LOOP3;A值是否到最高点

DECA;减少步长改变数据下降波形

LOOP2:

MOVX@DPTR,A;把数据送到端口转换

DECA;减少步长改变数据下降波形

CJNEA,#00H,LOOP2;A值是否到最低点

DJNZR5,LOOP3;波形周期

SJMPLOP;返回检测开关

3.2.3梯形波的产生

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

梯形波产生的子程序如下:

TXING:

MOVA,#00H;设置初值

LOOP4:

MOVX@DPTR,A;把数据送到端口转换

ADDA,R6;增加步长改变数据上升波形

CJNEA,#00H,LOOP4;A值是否到最高点

SUBBA,R6;下降波形做准备

DECA

MOVR7,0EEH;循环次数

LOP2:

MOVX@DPTR,A;进行延时

DJNZR7,LOP2

LOOP1:

MOVX@DPTR,A;把数据送到端口转换

SUBBA,R6

DECA

CJNEA,#00H,LOOP1;是否到最低点

MOVR7,0EEH;循环次数

LOP1:

MOVX@DPTR,A;把数据送到端口转换

DJNZR7,LOP1;进行延时

SJMPLOP;返回检测开关

3.2.4正弦波的产生

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

正弦波产生的子程序如下:

SINE:

MOVA,#00H;设置初值

LOOP7:

MOVR7,A;保存当前的数据

MOVDPTR,#SIN;读取表的地址

MOVCA,@A+DPTR;读取表中的数据

MOVDPTR,#7FFH;D/A0832的端口地址

MOVX@DPTR,A;进行数据转换

MOVA,R7;恢复当前数据

INCA;为读取表的下一个值做准备

CJNEA,#00H,LOOP7;是否读完表的数据

SJMPSTART;返回检测开关

FM:

MOVR6,#04H;改变调频/调幅

MOVR5,#02H

SJMPSTART;返回检测开关

;--------以下是通过正弦的值所建立的一个表

SIN:

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

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

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

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

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