基于单片机函数信号发生器的设计

更新时间:2023-11-03 01:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学号: 201225180127

中州大学 毕业设计(论文)

题 目:基于单片机的多功能函数信号发生器 学 院: 工程技术学院

专 业:电气自动化 年 级:12级班 级:对口 学生姓名: 王俊

指导教师: 陆程 职称: 讲师 时 间: 2014/11/16

中州大学工程技术学院毕业设计(论文)任务书

课题名称: 基于单片机的多功能函数信号发生器

工程技术 学院 电气自动化 专业 12 级 对口 班 学号: 201225180127 学生: 王俊 指导老师: 陆程

毕业设计(论文)工作内容与基本要求(目标、任务、途径、方法、成果形式,

应掌握的原始资料(数据)、参考资料(文献)以及设计技术要求、注意事项等)(纸张不够可加页)

1.毕业设计题目:基于单片机的多功能函数信号发生器设计 2.毕业设计所需资料及原始数据

( 1 )王世虎,刘明杰,李晓峰.基于C8051F单片机信号发生器设计与应用[J].中

国科技信息,2009 ( 2 )徐爱钧.智能化测量控制仪表原理与设计[M].电子工业出版社,2005 ( 3 )张洪涛,万红,杨述斌,数字信号处理[M].华中科技大学出版社,2006 ( 4 )徐爱钧.8051单片机实践教程[M].电子工业出版社,2005 ( 5 )CNKI中国知网上关于利用单片机设计信号发生器的期刊论文,硕士论文等 3.毕业设计应完成的主要内容

(1)熟悉单片机开发方法,掌握汇编语言; (2)探讨单片机产生方波,正弦波,三角波的方法; (3)研究产生任意波形的方法;

(4)设计单片机和DA转换器的连接方法;

(5)设计单片机驱动DA转换器的汇编语言程序,并调试 4.毕业设计的目标及具体要求

要求熟练掌握单片机的开发流程。能结合自己所学的专业知识设计硬件电路及相应的程序,以及运用所学知识独立设计任意波形产生的方法和汇编程序。在此设计过程中进一步加深学生的软件编程和动手能力。

5.预计时间:

第一周:完成思路的规划和下一步的与准备

第二周:相对性的搜集相关资料、书籍和实物初步定型设计路线

第三周:完成软件的设计与调试 、不懂得地方找人讨论

第四周:完成设计论文的写作

完成设计的的条件:更广泛的阅读相关书籍,增强理论,不懂的上网查资料

与他人探讨、或请教老师帮助。认真的完成毕业设计内容。

指导老师: 日期:2014年11月 专业(教研室)审批意见:

审批人签名: 日期:2014/11/16

中州大学工程技术学院毕业设计(论文)开题报告

课题名称: 基于单片机的多功能函数信号发生器

工程技术 学院 电气自动化 专业 12 级 对口 班 学号: 201225180127 学生: 王俊 指导老师: 陆程

开题报告内容:(调研资料的准备,设计/论文的目的、要求、思路与预期成

果;任务完成的阶段内容及时间安排;小组内其他成员的分工;完成设计(论文)所具备的条件因素等。) 1. 课题来源

为了实现输出多种波形的功能,基于单片机的控制及各电子器件与单片机间的联合,编写相应的软件,设计一种信号发生器。以适应各种理论研究。 2.研究的目的

函数发生器亦称信号发生器,主要作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的波形发生器多为纯硬件的搭接而成,波形种类多为锯齿、正弦、方波、三角等波形。用分立元件组成的函数发生器,通常是单函数发生器且频率不高,其工作不很稳定,不易调试;用集成芯片的函数发生器,可达到较高的频率和产生多种波形信号,但电路较为复杂且不易调试。利用单片集成芯片的函数发生器,能产生多种波形,达到较高的频率,且易于调试;利用专用直接数字合成DDS 芯片的函数发生器,能产生任意波形并达到很高的频率,但成本较高。

函数发生器作为一种常见的应用电子仪器设备,传统的一般可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC要很大。大电阻,大电容在制作上有困难,参数的精度亦难以保证。体积大,漏电,损耗显著更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。 利用单片机采用程序设计方法来产生低频信号,其频率底线很低。具有线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能够对波形进行细微调整,改良波形,使其满足系统的要求。只要对电路稍加修改,调整程序,即可完成功能升级。 3.预期达到的目标

1 该装置用键盘控制输出方波、三角波、正弦波;

2 用键盘控制输出幅度和频率的变化,并将幅值和频率用数码管显示,幅度范围1V~5V,频率范围0~10KHz。 4.工作的主要阶段、进度与时间安排

第一周:认真阅读毕业设计任务书,填写毕业设计(论文)开题报告表; 第二周: 查找、收集相关资料阶段 第二至三周: 设计制图和实验研究阶段 第三---四周: 撰写设计说明书或论文阶段 第四周:准备论文答辩

5.完成毕业设计所必须具备的工作条件 (一) 资料来源

图书馆,中国期刊网(CNKI),互联网上搜索资料及指导教师提供资料。 (二) 实验中主要设备、仪器及软件环境

计算机设备,网络,电子元器件(单片机,运放等),仿真软件(Protues ,Kei等)

指导教师签名: 日期:2014年11月

审批人签名: 日期:2014/11/16

摘要

近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动传统函数信号发生器日新月异的更新。单片机能产生高精度、快速变换频率、输出波形失真小的优先选用技术。函数信号发生器是各种测试和实验过程中不可缺少的工具,在通信、测量、雷达、控制、教学等领域应用十分广泛。不论是在生产、科研还是教学上,信号发生器都是电子工程师信号仿真实验的最佳工具,而且,信号发生器的设计方法多,设计技术也越来越先进。研究函数信号发生器的设计方法,克服传统方法的缺点,以更好的方法设计出比较复杂的调频、调幅功能的信号发生器。

本论文介绍的是一种用AT89C51单片机构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。文章给出了源代码,通过仿真测试,其性能指标达到了设计要求。单片机小系统负责用户的交互和系统控制,键盘用于频率的输入与波形的选择。LED显示当前所选信号的频率调整情况,而末级放大电路则对生成的信号进行适当的放大,以提高信号的振幅和强度。

关键词:单片机,DAC,信号发生器,频率调节,放大电路

Abstract

In recent years, with the computer in the social sector penetration and MCU application is continuously,while driving to the deepening traditional function signal generator on new PE updates. SCM can produce high precision, fast transform the frequency, the output waveform distortion of preferred selection technology. Function signal generator is all sorts of test and experiment process the essential tool, in communication, measuring, radar, control, teaching fields used widely. Both in production and scientific research or teaching, signal generator are electronic engineer signal simulation experiment, and the best tool, signal generator design method, design technology is becoming more and more advanced. Research function signal generator design methods, overcome shortcomings of traditional methods, in order to better designed complex FM, attenuation function signal generator.

This thesis introduces a AT89C1 single-chip computers.the waveform generator, can produce square-wave, triangle wave, sine wave, sawtooth wave etc. Various waveform, waveform cycle available program change, and can choose according to need single polarity output or dual polarity output, has the line is simple, compact structure, superior performance characteristics. The article presented the source code, through the simulation test, the performance indexes meet the design requirements. : singlechip processor system is responsible for the user interaction and system control, the keyboard for frequency of input and waveform choice. LED display the current selected the signal frequency adjustment, and final amplifier circuit is generated signal proper amplifier, in order to improve the signal amplitude and strength.

Keywords:microcontroller,DAC,signal generator, frequency adjustment, amplifier circuit

1 绪论

1.1 单片机概述

单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。

单片机也被称为微控制器(Microcontroller),由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。单片机是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O接口和中断系统集成于同一硅片的器件。单片机用于控制有利于实现系统控制的最小化和单片化,简化一些专用接口电路,如编程计数器、锁相环(PLL)、模拟开关、A/D和D/A变换器、电压比较器等组成的专用控制处理功能的单板式微系统。

单片机是所有微处理机中性价比最高的一种,随着种类的不断全面,功能不断完善,其应用领域也迅速扩大。单片机在智能仪表、实时控制、机电一体化、办公机械、家用电器等方面都有相当的应用领域。当前,8位单片机主要用于工业控制,如温度、压力、流量、计量和机械加工的测量和控制场合;高效能的16位单片机(如MCS-96、MK-68200)可用在更复杂的计算机网络。可以说,微机测控技术的应用已渗透到国民经济的各个部门,微机测控技术的应用是产品提高档次和推陈出新的有效途径。

1.2 函数发生器的分类

函数发生器应用广泛,种类繁多,性能各异,分类也不尽一致。函数发生器亦称信号发生器,主要作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为:正弦信号发生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。

函数发生器作为一种常见的应用电子仪器设备,传统的一般可以完全由硬件电路

搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC要很大。大电阻,大电容在制作上有困难,参数的精度亦难以保证。体积大,漏电,损耗显著更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。

利用单片机采用程序设计方法来产生低频信号,其频率底线很低。具有线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能够对波形进行细微调整,改良波形,使其满足系统的要求。只要对电路稍加修改,调整程序,即可完成功能升级。

1.3 研究内容

本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。

1.4 选题的目的及意义

信号发生器也称为函数发生器,能产生某些特定的周期性时间函数波形(正弦波、方波、三角波、锯齿波)信号,频率范围可从几个微赫到几十兆赫。函数信号发生器在电路实验和设备检测中具有十分广泛的用途。信号发生器主要为实验用信号源,是现今各种电子实验设计中必不可少的仪器设备之一。

函数发生器作为一种常见的电子仪器设备,既能够构成独立的信号源,也可以是高性能的网络分析仪,频谱仪以及自动测试装备的组成部分,函数信号发生器的关键技术是多种高性能仪器的支撑技术,因为它是能够提高质量的精密信号源及扫描源,可使相应系统的检测过程大大简化,降低检测费用并且提高检测精度。当今是科技以及仪表设备高度智能化飞速发展的信息社会,电子技术的发展进步,给人们的生活带来了根本性的转变。在现代电子领域中,单片机的应用正在不断的走向深入,这必将导致传统控制与检测技术的日益革新。单片机构成的仪器具有高可靠性,高性价比,在智能仪表系统和办公自动化中得到广泛应用,因此,基于单片机的函数信号发生器的普及是一种趋势。

1.5 国内外研究与综述

信号发生器是一种常见的应用电子仪器设备,传统的信号发生器一般可以完全由硬件搭接而成,如采用555电路产生正弦波,三角波和方波便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂,体积大的缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以让人满意,而且由于低频信号源所需的RC很大,并且大电阻,大电容在制作上有困难,参数的精度也难以保证,体积大,漏电,损耗大更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大的增加。

美国安捷伦生产的33250A型函数/任意波形发生器可以产生稳定、精确和低失真的任意波形,其输出频率范围为1μHz~80MHz,而输出幅度为10mVpp~10Vpp;该公司生产的8648D射频信号发生器的频率覆盖范围更可高达9kHz~4GHz。国产SG1060数字合成信号发生器能双通道同时输出高分辨率、高精度、高可靠性的各种波形,频率覆盖范围为1μHz~60MHz;国产S1000型数字合成扫频信号发生器通过采用新技术、新器件实现高精度、宽频带的扫频源,同时应用DDS和锁相技术,使频率范围从1MHz~1024MHz能精确地分辨到100Hz,它既是一台高精度的扫频源,同时也是一台高精度的标准信号发生器。目前市场上的信号发生器多种多样。他们各有各的优点,但是函数发生器总的趋势将向着宽频率覆盖、高频率精度、多功能、多用途、自动化和智能化方向发展。

1.6 毕业设计所用方法

利用单片机控制脉冲的输入和输出,从而控制信号波形的频率和幅度,并根据要求输出的波形设计对应的硬件电路。在硬件电路不变的情况下,通过改变程序来实现频率的变换,用按键来控制单片机的波形和频率,通过显示电路显示频率值,利用数模转换器放大电路输出波形,并可以通过示波器观察波形与频率,其中复位电路用于系统复位重启。最后利用Proteus软件对设计的电路进行实时仿真,通过仿真的结果来观察波形的输出。

2 系统硬件方案的设计

2.1 方案的选择与论证

方案一:采用单片函数信号发生器(如8038),8038可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以产生实现数控调整频率,但产生的信号的频率稳定度不高。

方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。

方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。 鉴于方案一的信号频率不够稳定和方案二的电路复杂且频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种器件都是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。

2.2 设计原理

数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器。

89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。

2.3 设计思想

(1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。

(2)将一个周期的信号分离成256个点(按X轴等分),每两点之间的时间间隔为?T,用单片机的定时器产生,其表示式为:?T=T/256。

如果单片机的晶振为12MHz,采用定时器方式0,则定时器的初值为:

X=2—?T/Tmec (2.1)

13

定时时间常数为:

TL =(8192—?T)/MOD(256) (2.2)

???(8129???)/(256) (2.3)

MOD32表示除32取余数

(3)正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为:

Y =(A/2sin?t)+A/2 (其中A=VREF) (2.4)

?t=N?T (N=1~256) (2.5)

那么对应着存放在计算机里的这一点的数据为:

(sin?t?1)?255Di?(Y?255)/A?(2.6)

2一个周期被分离成256个点,对应的四种波形的256个数据存放在以TAB1--TAB4

为起始地址的存储器中。

2.4 系统的主要功能

课程设计要求的内容为:制作简易函数发生器,采用MCS51作为主控芯片;采用

D/A转换和放大处理,输出信号;要求能输出方波、三角波、锯齿波和正弦波4种信号,频率可调。

该系统不但满足了课程设计题目的基本要求,而且增设了LED波形指示灯,数码管频率显示器等原件,使操作更简单,使用界面更人性化。

2.5 系统总体设计

经过考虑,确定方案如下:利用AT89C51单片机采用程序设计方法产生锯齿波、三角波、正弦波、方波四种波形,再通过D/A转换器将数字信号转换成模拟信号,滤波放大,最终由示波器显示出来。通过按键来控制四种波形的类型选择、频率变化,最终输出显示其各自的类型以及数值。硬件设计的总体框图如图2-1所示。

时钟与复位电路 单片机控制电路 数码管显示电路 D/A转换电路 按键电路

波形输出

图2-1 硬件设计总体框图

3 主要器件介绍

3.1 AT89C51简介

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非

易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

3.1.1 主要特性

.与MCS-51 兼容

.4K字节可编程闪烁存储器 .寿命:1000写/擦循环 .数据保留时间:10年 ·全静态工作:0Hz-24Hz ·三级程序存储器锁定 ·128*8位内部RAM ·32根可编程I/O线

·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道

·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路 3.1.2 管脚说明

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P0

口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4个TTL门电流。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)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入)

3.2 DAC0832简介

DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。

3.2.1 特性介绍

* 分辨率为8位; * 电流稳定时间1us;

* 可单缓冲、双缓冲或直接数字输入; * 只需在满量程下调整其线性度; * 单一电源供电(+5V~+15V); * 低功耗,20mw。 3.2.2 管脚介绍

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

* ILE:数据锁存允许控制信号输入线,高电平有效; * CS:片选信号输入线(选通数据锁存器),低电平有效;

* WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。由ILE、CS、WR1的逻辑组合产生LE1,当LE1为高电平时,数据锁存器状态随输入数据线变换,LE1的负跳变时将输入数据锁存;

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

* WR2:DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。由WR1、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:数字信号地。

3.3 74LS245简介

74LS245是我们常用的芯片,用来驱动led或者其他的设备,它是8路同相三态双向总线收发器,可双向传输数据。

74LS245还具有双向三态功能,既可以输出,也可以输入数据。

当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。

*74LS245还具有双向三态功能,既可以输出,也可以输入数据。

*当8051单片机的P0口总线负载达到或超过P0最大负载能力时,必须接入74LS245等总线驱动器。 3.3.1 工作原理

*当片选端/CE低电平有效时,DIR=“0”,信号由B向A传输;(接收) *DIR=“1”,信号由A向B传输;(发送)当/CE为高电平时,A、B均为高阻态。 由于P2口始终输出地址的高8位,接口时74LS245的三态控制端/1G和/2G接地,P2口与驱动器输入线对应相连。

P0口与74LS245输入端相连,/E端接地,保证数据现畅通。8051的/RD和/PSEN相与后接DIR,使得/RD或/PSEN有效时,74LS245输入(P0.i←Di),其它时间处于输出(P0.i→Di)。

3.4 74LS138简介

74LS138 为3 线-8 线译码器 共有 54/74S138和 54/74LS138 两种线路结构型式。

3.4.1 工作原理

*一个选通端(E1)为高电平,另两个选通端((/E2))和/(E3))为低电平时,可将地址端(A0、A1、A2)的二进制编码在Y0至Y7对应的输出端以低电平译出。比如:A2A1A0=110时,则Y6输出端输出低电平信号。

*利用 E1、E2和E3可级联扩展成 24 线译码器;若外接一个反相器还可级联扩展成 32 线译码器。

*若将选通端中的一个作为数据输入端时,74LS138还可作数据分配器。

*可用在8086的译码电路中,扩展内存。

4 硬件设计

4.1 主控电路

AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。

中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处理这个紧急事件。在波形发生器中,只用到片内定时器/计数器溢出时产生的中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形。主控电路如图2-2所示。

图2-2 主控电路

其应用特点:

1有可供用户使用的大量I/O口线。 ○

2内部存储器容量有限。 ○

3应用系统开发具有特殊性。 ○

4典型的MCS-51单片机芯片集成了以下几个基本组成部分: ○

1) 一个8位的CPU

2) 128B或256B单元内数据存储器(RAM) 3) 4KB或8KB片内程序存储器(ROM或EPROM) 4) 4个8位并行I/O接口P0~P3 5) 两个定时/计数器

6) 5个中断源的中断管理控制系统

7) 一个全双工串行I/O口UART(通用异步接收、发送器) 8) 一个片内振荡器和时钟产生电路

4.2 复位与时钟电路设计

4.2.1 时钟电路设计

单片机的时钟信号通常用两种电路形式得到:内部振荡方式和外部振荡方式。 在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振),就构成了内部振荡方式。由于单片机内部有一个高增益反向放大器,当外接晶振后,就构成了自激振荡器,并产生振荡时钟脉冲。晶振通常选用6MHZ、12MHZ或24MHZ。内部振荡方式如图2-3所示。图中电容C1、C2起稳定振荡频率、快速起振的作用。电容值一般为5~30pF。内部振荡方式所得时钟信号比较稳定,实用电路中使用较多。

驱动芯片74LS245用以增加P1口带负载的能力,再利用74LS138译码器芯片对其进行译码并通过数码管显示,显示模块图如图2-9所示:

图2-9 显示电路模块

5 系统软件方案的设计

5.1 设计构思

5.1.1 幅度控制

由于D/A数模转换器输出的最大幅度可以用其基准电压来控制,所以控制第二片D/A数模转换器输出给第一片D/A数模转换器的电压值就可控制信号幅度。因此,送入第二片的值是几个固定的值。由于DAC0832内部具有锁存器,所以只需向第二片D/A送值一次,直到下一次改变信号幅度。 5.1.2 频率控制

单片机内部数据只有0、1之分,所产生的信号也都是离散信号。为了能够让单片机输出所需的数字信号,我们采用对信号采样、量化的方法来实现由单片机产生所需信号。在本设计中,对信号的四分之一周期采样19个幅度值,通过反复查表来输出幅度值,而整个信号是通过正查表和逆向查表来实现的。采样的点越密,信号失真度也就越小。两次采样点的输出时间间隔是由定时、计数器来控制的,因此,通过控制不同的计数初值就可以控制整个信号的频率。计数时间=信号周期/72。计数次数=计数时间/机器周期。对应的,计数初值=65536-计数次数。单片机只能产生离散频率的信号,所以所得到的信号频率不是连续的,而是离散的频率点。由于这部分计算位数较多,不适合用单片机编程来计算计数初值,所以本设计中将各频率的计数初值算出,让单片机按控制命令来查表控制频率。 正弦波和三角波的频率控制方法都与上述方法相同,而方波的频率控制是半周期计数,经过半周期只需改变输出为最大或最小电平即可。

5.2 软件总体设计

应用系统中的应用软件是根据系统功能要求而设计的,能可靠地实现系统的各种功能。一个优秀的应用系统的应具有下列特点:

1根据软件功能要求,将系统软件分成若干个独立的部分。设计出软件的总○

体结构,使其结构清晰、流程合理。

2要树立结构化程序设计风格,各功能程序模块化、子程序化。既便于调试、○

链接,又便于移植、修改。

3建立正确的数学模型。即根据功能要求,描述各个输入和输出变量之间的○

数学关系,它是关系到系统好坏的重要因素。

4为提高软件设计的总体效率,以简明、直观法对任务进行描述,在编写应○

用软件之前,应绘制出程序流程图。

5要合理分配系统资源,包括ROM、RAM、定时/计数器、中断资源等。 ○

6注意在程序的有关位置处写上功能注释,提高程序的可读性。 ○

7加强软件抗干扰设计,它是提高系统应用可靠性的有利措施。 ○

本系统的软件包括以下几个程序模块: 1键盘处理程序; ○

2中断服务程序; ○

3正弦波发生程序及其服务程序; ○

4三角波发生程序; ○

5方波发生程序; ○

6锯齿波发生程序。 ○

5.3 软件流程图

本系统采用AT89C51单片机,用编程的方法来产生四种波形,并通过编程来切换四种波形以及波形频率的改变。

具体功能有:○1各个波形的切换;○2各种参数的设定;○3频率增减等;○4数码管的显示

软件调通后,通过编程器下载到AT89C51芯片中,然后插到系统中即可独立完成所有的控制。软件流程图如图3-1所示。

开始初始显示有按键按下?YNKey1按下Key2按下Key3按下Fun++频率f增大频率f减小Fun=1Fun=2Fun=2Fun=4输出正弦波

输出三角波输出方波输出锯齿波图3-1 程序流程图

5.4 键盘扫描及初始程序设计

单片机系统中,键盘扫描是CPU工作的一个主要内容之一。CPU忙于各项工作任务时,如何兼顾键盘扫描。既保证不失时机的响应键盘操作,又不过多占用CPU时间。因此,要根据应用系统中的CPU的忙、闲情况,选择好键盘的工作方式。

在单片机应用系统设计中,为了节省硬件,通常采用非编码键盘,在这种键盘结构中,单片机对它的控制有三种方式:程序控制扫描方式;定时扫描工作方式;中断工作方式。

1)程序控制扫描方式

这种方式就是只有当单片机空闲时,才调用键盘扫描子程序,响应键盘的输入请求。

2)定时扫描方式

这种方式就是每隔一定的时间对键盘扫描一次。通常是利用单片机内部定时器产生1ms的定时中断,CPU响应定时器溢出中断请求,对键盘进行扫描,以响应键盘输入请求。

3)中断工作方式

为进一步提高CPU效率,可以采用中断扫描工作方式。即在键盘有健按下时,才执行键盘扫描,执行该键功能程序。

本系统采用程序控制扫描工作方式。在该设计中的键盘的行列线连接于89C51的P2口上。键盘扫描程序自复位后就开始工作,时刻监视键盘,有无键按下。在监视键盘过程中,允许定时器中断。一旦有键按下,先延时1ms,去除键的抖动,然后关中断,不允许定时器发生中断。按键功能如表3-1所示:

表3-1 按键对应功能

按键 key1 key2 Key3

功能 键选择发波类型(1为正弦波,2为三角波,3为方波,4为方波) 频率增加 频率减小 按键控制源程序如下: void delay(uchar k) {

for(de1=0;de1<10;de1++) for(de2=0;de2

正弦波发生程序如下: if(fun==1) {

DA0832=tosin[b]/4*A; //正弦波 b++; }

5.6.2 三角波发生程序设计

由于三角波的函数值比较容易计算,所以不必要像正弦波那样还需用表格。可直接通过如下程序段实现。

else if(fun==2) //三角波 {

if(c<128)DA0832=c*2/4*A; else DA0832=(255-c)*2/4*A; c++; }

5.6.3 方波发生程序设计

方波可直接由DAC0832产生,其发生程序如下: else if(fun==3) // 方波 { d++;

if(d<=128)DA0832=0x00; else DA0832=0xff/4*A; }

5.6.4 锯齿波发生程序设计

锯齿波中的斜线用一个个小台阶来逼近,在一个周期内从最小值开始逐步递增,当达到最大值后又回到最小值,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同周期的锯齿波。锯齿波发生原理与方波类似,只是高低两个延时的常数不同其发生程序如下:

else if(fun==4) // 锯齿波 { e++;

DA0832=e/4*A;}

6 仿真结果与分析

6.1 仿真和编译工具

6.1.1 Proteus仿真软件

有了protel、Multisim、proteus、psice等一系列的软件的存在,就此便可以以虚代实、以软代硬,独立建立一个完善的虚拟实验室。代替了在实验室和教室里的以实物进行实践的方式,可以在计算机上学习电工基础,模拟电路、数字电路、单片机应用系统等课程,并进行电路设计、仿真、调试等。因此这一系列的软件受到广大电子设计爱好者的青睐,是他们工作、学习上难得的工具软件,也因此它们在全球得到了广泛应用。

其中,Proteus软件提供多达30多个元件库,元件涉及到数字和模拟、交流和直流等,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IC器件,编译方面支持Keil和MPLAB等编译器。它的功能强大,集电路设计、制版及仿真等多种功能于一身,不仅能够对电工、电子技术学科涉及的电路进行设计与分析,还能够对微处理器进行设计和仿真,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。它还提供多种现实存在的虚拟仪器,这些仪表有极高的输入阻抗、极低的输出阻抗,可以尽可能减少仪器对测量结果的影响。 此外,Proteus软件还有图形显示功能,可以将线路上变化的信号以图形的方式实时地显示出来。对于单片机硬件电路和软件的调试,Proteus提供了两种方法:系统总体执行效果和对软件的分步调试。它还提供了比较丰富的测试信号用于电路的测试,这些测试信号包括模拟信号和数字信号。在用Proteus进行仿真和程序调试时,可以从工程的角度直接看程序运行和电路工作的过程和结果。它还提供Schematic Drawing、SPICE仿真与PCB设计功能,同时可以仿真PIC、AVR、51系列等常用的MCU,并提供周边设备的仿真,例如示波器、373、led等。 6.1.2 KEIL编译软件

Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。如果使用C语言编程,那么Keil几乎就是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会事半功倍。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势,与汇编相比,C语言有明显的优势,用过汇编语言后再使用C来开发,体会更加深刻。Keil C51软件提供

丰富的库函数和功能强大的集成开发调试工具,全Windows界面,是一个非常实用的编译软件。

6.2 仿真结果

打开PROTEUS软件,选择所需器件连接导线,连接成功后的电路图如图4-1所示:

图4-1 总体电路图

打开KEIL软件,调出程序进行编译,生成HEX文件,编译窗口如图4-2所示:

图4-2 编译窗口

编译后没有错误就可以生成hex文件用于单片机仿真,采用PROTEUS进行单片机仿真,可以大大缩短单片机的开发周期。它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。

以下为四种波形的仿真结果示例。

正弦波仿真:频率分别为15HZ和255HZ。仿真结果分别如图4-3、4-4所示。

本文来源:https://www.bwwdw.com/article/p352.html

Top