毕业设计(论文)-数字式正弦波信号发生器的设计与实现.doc_第1页
毕业设计(论文)-数字式正弦波信号发生器的设计与实现.doc_第2页
毕业设计(论文)-数字式正弦波信号发生器的设计与实现.doc_第3页
毕业设计(论文)-数字式正弦波信号发生器的设计与实现.doc_第4页
毕业设计(论文)-数字式正弦波信号发生器的设计与实现.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字式正弦波信号发生器的设计与实现摘 要正弦交流信号是一种应用极为广泛的信号。在许多测试仪中需要用标准的正弦信号检测一些物理量。正弦信号用作标准信号时,要求正弦信号必须有较高的精度、稳定度及较低的失真率。传统的正弦信号发生器的频率变动由机械驱动可变元件完成,当这种信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大。而基于单片机技术和D/A转换电路构成的正弦信号发生器就可以解决这些问题。本文主要介绍了数字式正弦信号发生器的波形产生原理和单片机控制原理。本次设计以单片机技术为基础,通过AT89C51芯片在一定时间内输出一系列的离散数字样点信号,然后通过D/A转换器转换成平滑的正弦波信号,最后通过运算放大器输出。本次设计采用模块化设计的方法,软硬件相结合,硬件设计包括:数码管频率和振幅显示电路、D/A转换正弦信号输出电路、时钟复位电路、键盘频率和振幅输入电路;软件设计包括:显示子程序、D/A转换子程序以及数据计算处理子程序、键盘频率输入子程序。通过软、硬件的结合,既可以实现波形参数的独立连续变化,又具有良好的人机对话界面,原理简单,使用方便。软硬件设计完成后利用KeilVision2集成开发环境编译该最小系统的程序,利用Proteus仿真软件设计该系统的电路原理图,最后通过两个工具的完美结合对该课题进行系统的软件模拟仿真,结果满足设计要求。本次设计的数字式正弦信号发生器的参数可调,输出波形平滑规则、频率稳定、有较强的实用性。关键词: 单片机 正弦波 信号发生器Design and Realization of Digital Sinusoidal Signal GeneratorAbstractThe sine signal is a very extensive application of the signal. the standard sinusoidal signal also beneeded in many tester to detect some physical quantities.Sinusoidal signal as a standard signal, demanded that sinusoidal signal must have a high accuracy, stability and low distortion rate .The traditional sine signal generator of variable frequency is drived by mechanical components, when this signal generator used for low frequency signal output often need RC value greatly, It is hard to ensure accuracy parameters,the volume and power consumption.But based on the single chip microcomputer and D/A transformation of sine signal generator circuit can solve these problems.This paper mainly introduces the sinusoidal signal generator of digital waveform principle and single-chip microcomputer control principle. Design with micro-controller technology as the foundation, by AT89C51 chip in A certain period of D/A number of discrete output series of converter, then wording point signal converting smooth sine signals, through the operational amplifier output. This design USES modular design method, combining software with hardware design, including: digital tube amplitude and frequency display circuit, D/A transformation sinusoidal output circuit, clocking circuit and reset circuit keyboard input frequency and amplitude, Software design includes: display subroutines, D/A transformation and the data processing procedure, keyboard input frequency subroutine subroutine. Through the combination of hardware and software, can achieve continuous variation of parameters, and is independent of good human-machine conversation interface, the principle of simple and easy to use. After the completion of the hardware and software design using Keil muon Vision2 integrated environmental compile the program using the minimum system, Proteus simulation software design of the system through the circuit principle diagram, the perfect combination of two tools on the system software simulation, the results can satisfy the design requirements. The design of digital sine signal generator parameters is adjustable and the output waveform is smooth, stable, and practical.Key words:Micro Controller Unit Sine wave Signal generator目 录1 引言12 总体结构设计22.1 单片机概述22.1.1 单片机的发展22.1.2 单片机的用途32.2 系统设计的功能32.3 波形发生和输出频率的方法42.3.1 波形发生的方法42.3.2 输出频率的方法43 系统硬件设计53.1 硬件电路芯片的选择53.1.1 CPU芯片 AT89C5153.1.2 D/A转换器芯片DAC083283.1.3 显示器的选择93.1.4 运算放大器HA17741103.2 电路接口的设计113.2.1 LED数码管显示电路113.2.2 D/A转换正弦信号输出电路123.2.3 时钟电路及复位电路133.2.4 键盘频率和振幅输入电路153.2.5 电源电路的设计154 系统软件程序的设计174.1 主程序功能模块174.2 显示子程序模块174.3 D/A转换子程序模块184.4 键盘控制频率输入子程序模块194.5 数据计算处理子程序模块205 系统调试225.1 PROTEUS与KEIL uVision2介绍225.2 软硬件的调试235.2.1 软件调试235.2.2 硬件调试236 结论256.1 实验结果256.2 讨论分析25谢辞27参考文献28附录29电路图29源程序30外文资料翻译41泰 山 学 院 毕 业 设 计1 引言信号发生器又称波形发生器,是一种常用的信号源,被广泛地应用于无线电通信、自动测量和自动控制等系统中。传统的信号发生器绝大部分是由模拟电路构成,借助电阻电容,电感电容、谐振腔、同轴线作为振荡回路产生正弦或其它函数波形。频率的变动由机械驱动可变元件完成,当这种模拟信号发生器用于低频信号输出往往需要的RC值很大,这样不但参数准确度难以保证,而且体积和功耗都很大,而由数字电路构成的低频信号发生器,虽然其低频性能好但体积较大,价格较贵。在今天,随着大规模集成电路和单片机技术的发展,许多新型信号发生器应运而生。用单片机并配置适当接口芯片产生程控正弦信号,则可替代传统的正弦信号发生器,从而有利于测试系统的集成化、程控化和智能仪表的多功能化。而单片机的最大特点是面向控制,由于它集成度高、运算速度快、体积小、运行可靠、价格低,因此在数据采集、智能化仪器等技术中得到广泛的应用,从而使得单片机的应用成为工程技术多学科知识汇集的一个专门研究领域,其应用产生了极高的经济效益和社会效益。本文中的数字式正弦信号发生器就是利用单片机技术研制出来的。通过软硬件结合,不但简化了硬件设备,而且还实现了波形参数的连续变化。它的硬件由单片机以及外围的键盘、显示器、D/A转换等电路组成,软件则是用MCS-51系列单片机汇编语言对输入、显示、转换等模块进行编程。不但具有良好的人机界面,操作十分方便,而且整个系统操作方便直观。通过软件从键盘中输入所要求的频率值和幅值,单片机根据输入的值进行计算,将得到的数据经D/A转换器、外部电路处理,最后形成可用的正弦波信号。此信号发生器可以对被测系统提供1Hz到99Hz的超低频正弦波信号,具有波形稳定、波形失真度低、频率和振幅数字可调等特点。2 总体结构设计2.1 单片机概述2.1.1 单片机的发展单片微型计算机简称单片机,是指集成在一块芯片上的计算机,单片机的产生与发展和微处理器的产生与发展大体同步, 自1971年美国Intel公司首先推出4位微处理器以来, 它的发展到目前为止大致可分为5个阶段:第1阶段(19711976):单片机发展的初级阶段。发展了各种4位单片机, 第2阶段 (19761980):初级8位机阶段。以1976年Intel公司推出的MCS48系列为代表,采用将8位CPU、8位并行I/O接口、8位定时/计数器、RAM和ROM等集成于一块半导体芯片上的单片结构,功能上可满足一般工业控制和智能化仪器、仪表等的需要。第3阶段(19801983):高性能单片机阶段。这一阶段推出的高性能8位单片机普遍带有串行口,有多级中断处理系统,多个16位定时器/计数器。片内RAM、ROM的容量加大,且寻址范围可达64KB。第4阶段(198380年代末):16位单片机阶段。1983年Intel公司又推出了高性能的16位单片机MCS96系列,网络通信能力有显著提高。第5阶段(90年代):单片机在集成度、功能、速度、可靠性、应用领域等全方位向更高水平发展。目前,单片机正朝着高性能和多品种方向发展,尤其是八位单片机已成为当前单片机中的主流。单片机的发展具体体现在如下四个方面:1.CPU功能增强CPU功能增强主要表现在运算速度和精度的提高方面。为了提高运算速度和精度,单片机通常采用布尔处理机和把CPU的字长增加到16位或32位。例如MCS96/98和HPCI6040等单片机。2.内部资源增多目前,单片机内部的ROM容量已达32KB,RAM数量已达1KB,并具有掉电保护功能,常用I/O电路有串行和并行I/O接口,A/D和D/A转换器,定时器/计数器,定时输出和信号捕捉输入,系统故障监测和DMA通道电路等。3.引脚的多功能化随着芯片内部功能的增强和资源的丰富,单片机所需的引脚数也会相应增加,这是不可避免的。例如:一个能寻址1MB存储空间的单片机需要20条地址线和8条数据线。太多的引脚不仅会增加制造时的困难,而且也会使芯片的集成度大为减小。为了减少引脚数量,提高应用灵活性,单片机中普遍采用一脚多用的设计方案。4.低电压和低功耗在许多应用场合,单片机不仅要有很小的体积,而且还需要较低的工作电压和极小的功耗。因此,单片机普遍采用CHMOS工艺,并增加空闲和掉电两种工作方式。2.1.2 单片机的用途由于单片机具有上述显著的特点,其应用领域无所不至,现将单片机的应用大致归纳为以下几个方面:1智能仪表。用单片机改造原有的测量、控制仪表,能促进仪表向数字化、智能化、多功能化、综合化、柔性化发展。2测控系统。用单片机可构成各种工业控制系统、自适应系统、数据采集系统等。3机电一体化产品。单片机与传统的机械产品结合,使传统机械产品结构简化,控制智能化。4智能接口。在计算机控制系统(持别是较大型的工业测控系统)中,普遍采用单片机进行接口的控制与管理,因单片机与主机是并行工作,故大大提高了系统的运行速度。5. 医用设备领域。单片机在医用设备中的用途亦相当广泛,例如医用呼吸机、各种分析仪、监护仪、超声诊断设备及病床呼叫系统等等。2.2系统设计的功能本设计是以AT89C51作为中央处理芯片,通过DAC0832芯片来获得正弦波信号,用按键和显示器来设置和读取频率和振幅。在KEIL环境下进行汇编编程,并在Proteus 中进行仿真。此设计的主要功能:1使用51单片机与D/A转换芯片DAC0832实现数字式正弦波形发生器。2采用51单片机在一定的时间内输出一系列的离散数字样点信号,然后通过D/A转换器转换成平滑的正弦波信号。3使其具有良好的人机接口,并用LED显示。本次数字式正弦信号发生器的设计分为软件部分和硬件部分,按功能来划分硬件部分又可分为:数码管频率和振幅显示电路、D/A转换正弦信号输出电路、时钟复位电路、键盘频率和振幅输入电路;软件部分可分为:显示子程序、D/A转换子程序以及数据计算处理子程序、键盘频率输入子程序。2.3 波形发生和输出频率的方法2.3.1 波形发生的方法近年来,随着单片机的迅速发展,用MCS-51系列单片机系统产生任意波形的发生器逐渐得到发展。根据本次设计的要求和设计原则,波形发生方法的结构图如图2-1所示。单片机并行I/OD/A运算放大器输出图2-1波形发生方法的结构框图波形数据固定在EPROM中或者由单片机直接计算输出,经并行口送出,再经D/A转换芯片和运算放大器输出。其优点是便于进行程控。2.3.2 输出频率的方法利用单片机内部的定时/计数器来改变频率,其方法是先计算出该频率所对应的周期,然后计算出所要中断的时间,当CPU接收到中断请求信号之后立即响应,暂停正在执行的主程序,而转去执行频率输出的程序。这种使用中断的方法产生的误差较小,可以进行实时控制,可以不占用CPU的时间,大大提高了CPU的工作效率,实用性高。3 系统硬件设计本次设计的正弦信号发生器的简单硬件电路原理框图如图3-1所示。时钟电路LED显示D/A转换DAC0832按键输出信号单片机控制电路AT89C51图3-1数字式正弦信号发生器原理框图3.1 硬件电路芯片的选择硬件电路部分比较简单,它主要包括键盘、显示、D/A转换和时钟复位电路。3.1.1 CPU芯片 AT89C51 1AT89C51概述AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。AT89C51具有以下特点:(1)与MCS-51产品兼容。(2)具有4K可改写的FLASH内部程序存储器,可反复擦除1000次,数据保留时间10年。(3)全静态操作 1Hz24MHz。(4)三级程序存储器加密。(5)128*8位字节内部RAM。(6)4个8位可编程I/O口。(7)2个16位定时器/计数器。(8)5个中断源,两个中断优先级。(9)低功耗空闲和掉电模式。AT89C51支持软件选择的两种节电运行方式,空闲方式使CPU停止工作,而允许RAM定时器/计数器,串行口和中断系统继续工作。掉电方式使片内振荡器停止工作,此时,一切功能停止,只有片内RAM中内容被保存,且直到硬件复位,才能恢复正常。AT89C51突出特点是把功能多样的8位CPU与闪速存储器结合在同一芯片上,这为许多嵌入式控制应用提供了高度灵活又价格适宜的方案。根据以上原则,所以选用AT89C51为主板的CPU。2. AT89C51引脚说明AT89C51单片机引脚图如图3-2所示。它有40个引脚,其中包含2个专用于主电源的引脚,2个外接晶体的引脚,4个控制或与其它电源复用的引脚,以及32条输入输出I/O引脚。其具体功能如下:(1)VCC:供电电压。(2)GND:接地。(3)P0口:P0口为一个8位漏级开路双向I/O口,当89C51扩展外部存储器及I/O芯片时,P0口作为地址总线(低8位)及数据总线的分时复用端口。P0口也可作为通用的I/O口使用,但需加上拉电阻,这时为准双向口,当作为普通的I/O输入时应先向端口的输出锁存器写入1。P0口可驱动8个LS型TTL负载。(4)P1口:8位,准双向I/O口,具有内部上拉电阻,当作为普通的I/O输入时,应先向端口的输出锁存器写入1。P1口可驱动4个LS型TTL负载。图3-2 AT89C51单片机引脚图(5)P2口:8位,准双向I/O口,具有内部上拉电阻,当89C51扩展外部存储器及I/O口时,P2口可输出高8位地址,P2口可作为普通的I/O口使用,当作为普通的I/O输入时,应先向端口的输出锁存器写入1。P2口可驱动4个LS型TTL负载。(6)P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如表3-1所示:表3-1 P3口第二功能表端口引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2(外中断0)P3.3(外中断1)P3.4T0(定时/计数器0)P3.5T1(定时/计数器1)P3.6WR(外部数据存储器写选通)P3.7RD(外部数据存储器读选通)此外,P3口同时为闪烁编程和编程校验接收一些控制信号。(7)RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。(8)ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。(9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。(10)/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间为内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。(11)XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。(12)XTAL2:来自反向振荡器的输出。3.1.2 D/A转换器芯片DAC0832 DAC0832为一个8位D/A转换器,单电源供电,在+5+15V范围内均可正常工作。基准电压的范围为10V,电流建立时间为1us,CMOS工艺,低功耗20mW。该转换器由输入寄存器和DAC寄存器构成两级数据输入锁存。使用时,数据输入可以采用两级锁存(双缓冲)形式,或单级锁存(单缓冲)形式,也可以采用直接输入(直通)形式。由3个与门电路组成寄存器输出控制电路,可直接进行数据锁存控制:当LE=0时,输入数据被锁存;当LE=1时,数据不锁存,锁存器的输出跟随输入变化。DAC0832为电流输出形式,其两个输出端的关系为Iout1+Iout2=常数。DAC0832转换器芯片为20引脚双直插式封装,其引脚排列如图3-3所示。1各引脚的功能如下:(1)DI7DI0:转换数据输入端。(2)CS:片选信号,输入,高电平有效。(3)ILE:数据锁存允许信号,输入,高电平有效。(4)WR1:写信号1,输入,低电平有效。(5)WR2:写信号2,输入,低电平有效。(6)XFER:数据传送控制信号,输入,低电平有效。图3-3 DAC0832引脚图(7)Iout1:电流输出1,当DAC寄存器中各位为全“1”时,电流最大;为“0”时,电流为0。(8)Iout2:电流输出2,电路中保证Iout1+Iout2=常数。(9)Rfb:反馈电阻端,片内集成的电阻为15k。(10)Vref:参考电压,可正可负,范围为-10+10V。(11)DGND:数字量地,第10脚。 (12)AGND:模拟量地,第3脚。D/A转换器芯片DAC0832内部结构框图如图3-4所示。 8位输入寄存器8位DAC寄存器8位D/A转换器VREFIOUT2RFBAGNDVCCDGNDDI7DI0CSWR1WR2XFERILELELEIOUT1&RFB图3-4 DAC0832内部结构框图2DAC0832的主要特性如下:(1)分辨率为8位。 (2)电流输出,建立时间为1us。(3)单一电源供电(+5V+15V)。(4)可双缓冲输入、单缓冲输入或直接数字输入。(5)低功耗,20mW。考虑到芯片的性能、结构及应用特性,结合毕业设计的具体要求,才选择这个DAC0832芯片。 3.1.3 显示器的选择目前的显示器有数码管显示器和液晶显示器。LED数码管是最常用的数字显示器,LED显示器内部是8只发光二极管,根据LED显示器内部结构的不同分为共阴极和共阳极数码管。本设计采用共阴极数码管。图3-5是LED显示器的内部结构电路原理图。图3-5 共阴和共阳LED显示器电路原理图3.1.4 运算放大器HA17741D/A转换后输出的信号是电流输出形式,为了要得到电压输出形式,可在电流输出端接一个运算放大器,如图3-6所示。图3-6 HA17741内部结构及引脚运算放大器HA17741 各引脚功能如下: 1VEE、VCC:工作电压。VCC为+5+15V,VEE为-5-15V。 2Vin:放大器输入端。 3Vout:信号输出端。 4Offset Null:失调调零端。 5NC:悬空端。3.2 电路接口的设计3.2.1 LED数码管显示电路单片机与LED数码显示器依据位选线和段选线的不同,LED显示器有静态显示和动态显示两种方式。1静态显示法采用静态显示时,位选线同时选通,每位的段选线分别与一个8位锁存器输出相连接,各位相互独立。不足之处是每一个显示都需要用一个锁存器进行驱动,占用一个具有8位的并行接口,硬件成本高。2动态显示法为克服静态显示的缺点,可以将所有位的相应段选线并在一起,位线则分时轮流选通,在同一时刻显示不同的字符,利用了人眼对视觉的残留效应,采用动态扫描显示的方法,逐个地循环点亮各位数码管。选通某一位LED使其点亮并保持图3-7 显示电路图一定的时间,程序上常采用的是调用延时子程序。从图3-7中可以看出,P2口的引脚P2.0-P2.2作LED数码显示器的位扫描。当执行显示子程序时,引脚P2.0-P2.2扫描输出总是有一位为高电平,以选中相应的字位,P1口输出相应位的显示字符的段数据使该位显示出相应字符,其他位为暗。依次改变P2口P2.0- P2.2输出的高电平的位及P1口输出对应的段数据,3位LED显示器就显示出确定的字符,这样就可以进行LED显示。3.2.2 D/A转换正弦信号输出电路AT89C51单片机与DAC0832的接口一般有3种连接方式,为直通方式、单缓冲方式及双缓冲方式。直通方式不能直接与系统的数据总线相连,还需另加锁存器。单缓冲方式就是使DAC0832的两个输入寄存器中有一个处于直通方式,而另一个处于受控的锁存方式,当然也可使两个寄存器同时选通及锁存。而双缓冲方式就是把DAC0832的两个锁存器都接成受控锁存方式。因为在本次设计中需要控制输出电压的变化所以只有使用双缓冲方式。为了得到电压输出,还应在电流输出端接一个运算放大器,如图3-8所示。还需指出的是,DAC0832运算放大器内部已有反馈电阻,其阻值为15k。若需加大阻值,则可外接反馈电阻。由于本次设计需要调节输出波形的振幅和频率,所以需要两片DAC0832,这种DAC0832和单片机的接口电路图如图3-9所示。P2口的引脚P2.5作第二级DAC0832输入锁存器的选通控制。引脚P2.4作第一级DAC0832输入锁存器的选通控制。引脚P2.6作两片DAC0832寄存器的选通控制。第一级DAC0832数模转换器将P0口输出的数字信号变成连续变化的电流信号,这个电流信号经一个集成运算放大器组成的电压输出电路变成电压信号输出。电压变化范围为+1V+5V,做第二级DAC0832数模转换器的基准电压。第二级DAC0832将P0口输出的数字信号变成连续的正弦波信号。图3-8 DAC0832运算放大器接法图3-9 DAC0832和MCS-51单片机接法3.2.3 时钟电路及复位电路1时钟电路时钟电路可以产生CPU校准时序,是单片机的控制核心,本次设计是通过外接12MHz的晶振来实现时钟电路的时序控制。在使用片内振荡器时,XTAL1和XTAL2分别为反向放大器的输入端和输出端。外接晶体以及电容C1和C2构成并联谐振电路,接在放大器的反馈回路中。当用外部时钟驱动时,XTAL2引脚应悬空,而由XTAL1引脚上的信号驱动,外部振荡器通过一个2分频的触发器而成为内部时钟信号,故对外部信号的占空比没有什么要求,但最小和最大的高电平持续时间和低电平持续时间应符合技术要求。电路如图3-10所示。图3-10 晶振电路2空闲方式在空闲方式下,CPU的内部时钟信号被门控电路所封锁,CPU即进入睡眠状态,但内部时钟信号仍继续供给中断系统,定时器和串行口。这种方式由软件调用。在空闲方式期间,片内RAM和所有专用寄存器的状态仍被保留,空闲方式可通过任何允许的中断或硬件复位来终止。当空闲方式由硬件复位终止时,通常系统在空闲处恢复程序的执行。硬件复位只需要信号持续有效两个机器周期。当用复位终止空闲方式时,为防止避免意外写入端口引脚的可能性,调用空闲方式指令的下一条指令不应是写端口引脚或外部存储器。3掉电工作方式在掉电方式下,片内振荡器停止工作。调用掉电指令是执行的最后一条指令。片内RAM和专用寄存器的值被保留,直到掉电方式终止。退出掉电方式只能靠硬件复位。复位后将重新定义所有专用寄存器,但不改变RAM的内容。在VCC未恢复到正常工作电压之前,不能启动复位,复位信号应保持足够长的时间,以保证振荡器的起振和达到稳定。为了使单片机正常工作,还需要加入上电复位电路和掉电检测电路。上电复位简要原理:在系统不需要复位时,RST端是低电平;按下按键S17,RST端变为高图3-11 上电复位电路电平,系统则复位。电路如图3-11所示。3.2.4键盘频率和振幅输入电路为了使设计简洁、易于操作,键盘部分设计了12个按键,1个为频率和振幅的转换键(P/F),1个为频率和振幅消位键(CLR),10(0至9)个数字键,它使频率的变化范围是1Hz99Hz,振幅的变化范围是1V5V。而按键在电路中设置成低电平,只要有键按下则变成高电平,这样的设计是为了方便软件程序的扫描。其键盘的接线如图3-12所示。图3-12 键盘接口电路图3.2.5 电源电路的设计电子设备都需要稳定的直流电源。功率较小的直流电源大多数都是将50Hz的交流电经过变压、整流、滤波和稳压后获得。本设计所用电源电路如图3-13所示。图3-13 电源电路桥式整流电路巧妙地利用了二极管的单向导电性,将四个二极管分为两组,根据变压器副边电压的极性变化分别导通,将变压器副边电压的正极性端与负载电阻的上端相连,负极性端与负载电阻的下端相连,使负载上始终可以得到一个单方向的脉动电压。变压器选择初级电压为220V交流电,次级电压为8V10V的变压器,本次设计选用的是次级电压为9V的变压器。其中稳压块7805为额定电流为0.5A的稳压块。整流二极管选用的是2CZ11型整流二极管。滤波电路用来滤除整流后单向脉冲电压中的交流成分,变成平滑的直流电压。此电路采用的是电容滤波电路,滤波电容容量较大,一般采用电解电容。电解电容的耐压值大于14伏,电容值为1000F的铝电解电容。稳压电路的作用是当输入交流电压波动时、负载和温度变化时,维持输出直流电压的稳定。稳压器采用7805系列7805的参数如表3-2所示,输出电压值5伏,稳压块的最大输出电流为0.5A。表3-2 7805的参数参数名称符号典型值单位输出电压Vo5V静态电流Io4.2mA最大压差| Vr-Vo|min2.0DB经过一系列的变压、整流、滤波、稳压后,Vcc处得到+5V直流稳压电源。4 系统软件程序的设计软件设计是本次设计的一个重要组成部分。在单片机应用系统中,最常用的程序设计方法是模块程序设计。本次设计的软件部分可分为:主程序模块、键盘控制频率输入子程序模块、显示子程序模块、D/A转换子程序模块以及数据计算处理子程序模块等。4.1 主程序功能模块主程序主要对数字式正弦信号发生器进行初始化设置,显示初始的正弦波频率及输出初始的正弦波电压信号,开放中断准备响应频率的变化等。其程序流程图如图4-1所示:YN 图4-1 主程序流程图4.2 显示子程序模块由于硬件电路的设计,显示是以动态显示的方法,硬件连接比较简单,主要是软件编程控制LED显示。显示子程序流程图如图4-2所示:图4-2 显示程序流程图输出显示的程序如下DISP: CLR P2.2 MOV P1,LED_BIT_4LCALL DELAYSETB P2.2CLR P2.1MOV P1,LED_BIT_3LCALL DELAYSETB P2.1CLR P2.0MOV P1,LED_BIT_1LCALL DELAYSETB P2.0RET 4.3 D/A转换子程序模块 D/A转换是本次设计的重点之一,它由两片DAC0832控制,第一片的输出做第二片的基准电压,但它不同于硬件电路的烦琐,它的软件程序是十分简单的,只要几条输出指令,就可以进行D/A转换控制。第一片D/A的转换程序如下:MOV A,F_VAL_4 ;装填幅值 MOV B,#33H ;转化为在D/A中对应的数据 MUL AB CLR P2.4 ;选通D/A输入寄存器 MOV P0,A ;输出数据 SETB P2.4 ;锁存数据第二片的D/A转换的程序如下:MOV DPTR,#CTAB ;指向数据缓冲区 MOV A,SIN_NT ;查表相对偏移量 MOVC A,A+DPTR ;转换数据送入A CLR P2.5 ;选通D/A输入寄存器 MOV P0,A ;输出数据 SETB P2.5 ;锁存数据 CLR P2.6 ;选通D/A寄存器 INC SIN_NT ;修正查表指针4.4键盘控制频率输入子程序模块在本次设计中,键盘的处理是通过查询的方式进行扫描,而且是在主程序中进行的。当按下一个键码后,通过按键分析得到一个键码,并开始数据的处理。键盘程序流程图如图4-3所示:主要的设计思想如下:1使用查询的方法扫描键盘,CPU对键盘的扫描采取程序控制的方式,一旦进入扫描状态,则反复地扫描键盘,等待用户从键盘上输入数据。2采用软件的方法实现键的保护,键闭合一次仅进行一次按键处理,即按键释放后才能进行下一条语句的操作。3由于有12个按键,所以需要依靠程序来实现键码的识别。键盘扫描程序得到的键值存于内部数据存储区地址VAL中,然后判断键值并跳转到相应的子程序。但是,键盘程序的难点就是P/F(幅值和频率转换)按键,首先置定位地址06H置,当它是1时,是LED数码管显示频率,当它是0时,是LED数码管显示幅值,当按下的键是P/F键时,就给06H取反,然后再进行上下键的判别,接着调用相应的子程序。YN 图4-3 键盘程序流程图4.5 数据计算处理子程序模块数据处理子程序是软件设计的难点及重点之一。在该系统里,通过实验确定采用在一个周期内输出64个取样点,这64个取样点就构成一个完整周期的正弦函数表。存有数据的存储器,先通过对正弦函数表的读取,再把读出的取样值取出还原成原始的正弦信号,这就构成了正弦信号发生器的基本原理。确定定时时间: T=1(64N)其中N为频率;确定机器周期: TP=12晶振频率=1212MHz=1s;在本次次设计中 晶振频率=12MHz;确定时间常数为:TC=T/TP=1000000(64N)=15625N;所以计数的初值为:X=2nTC=21615625N;转换为16进制数为:X=FFFF3D09N;中断程序流程图如图4-4所示。NY中断服务程序入口装入新中断计数值输出正弦离散频率信号点返回已输出一个周期 修正指针地址 图4-4 中断程序流程图5 系统调试 应用系统调试是系统设计的重要环节,当完成了单片机应用系统的硬件、软件设计后,便可进入单片机应用系统调试阶段。系统调试的一般过程如图5-1所示。系统调试开始硬件调试软件调试系统联调现场调试调试结束图5-1 系统调试的一般过程5.1 PROTEUS与KEIL uVision2介绍1. Proteus软件的介绍Proteus 软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机以及外围器材。它是目前最好的模拟单片机外围器件的工具,Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。它提供了30多个元件库,数千种元件和比较丰富的测试信号用于电路的测试。2. Keil软件的介绍Keil uVision2是一款与51系列兼容单片机汇编和C语言的软件开发系统,该软件提供了丰富的库函数和功能强大的集成开发调试工具,全Windows界面。它的集成开发环境集成了一个项目管理器和一个功能丰富 有错误提示的编辑器,以及设置选项,生成工具,在线帮助等功能。利用Keil uVision2可以编译C、汇编、C和汇编的混合编程源程序,并把它们组织到一个能确定的目标应用的项目中去。Keil uVision2会自动编译,汇编,连接嵌入式应用,并为你的开发提供一个单一的焦点。 5.2 软硬件的调试在Proteus环境下连接电路图,并检查是否有连接错误;在Keil uVision2环境下编写程序并运行,看是否有语句错误,然后和Proteus联调进行软硬件整体调试。5.2.1 软件调试进入Keil环境,在菜单栏中选择“File”中的“New”命令,新建文档,将源程序复制到该文档中,保存该文档,在弹出的“Save As”对话窗口中选择保存路径并将文本命名为“111.asm”,注意要填写扩展名“.asm”,单击保存按钮。在菜单栏中选择“Project”中的“New Project”,选择与文本文档相同的目标路径,输入相同的文件名,此文件名不需填写扩展名,单击保存按钮,在弹出的“Select Device for Target”对话窗口中单击“Atmel”前面的+号,选择AT89C51,在弹出的窗口中单击“Target1”前面的+号,在“Source Group1”文件夹上单击鼠标右键,在右键菜单中选择“Add File to GroupGroup Source1”,弹出“Add File to Group”对话窗口在此对话窗口的文件类型栏中,选择“111.asm”,单击“Add”按钮并关闭窗口。用鼠标右击“Project Workspace”窗口中的“Target1”文件夹,在弹出的菜单栏中选择“Option for Target”选项,在弹出的对话窗口中选择“Output”选项卡,选中“Creat HEX File”选项,然后选择“Debug”选项卡,在此选项卡中选中“Use:Proteus VSM Simulator”选项,将Proteus VSM Simulator作为Keil的调试工具。在Keil菜单栏中选择“Project”中的“Build Target”选项,或者直接单击工具栏中的“Build Target”图标,编译汇编源程序,程序中没有语法错误。5.2.2 硬件调试打开ISIS原理图输入系统,选择菜单栏File中的New Design命令,在弹出的窗口中选择“Landscape A0”模板,单击OK,然后单击保存按钮,选择保存路径并命名为aaa。选择“Library”菜单中的“Pick Device/Symbol”命令,选择要摆放的元件,并将元件放置绘图区,按电路原理图连接电路图。在Proteus ISIS中,选中AT89C51并单击鼠标左键,打开“Edit Component”对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“Programe File”栏中选择先前用Keil生成的“.HEX”文件。在Proteus ISIS的菜单栏中选择“File”中的“Save Design”选项,保存设计。在Proteus ISIS的菜单栏中,选择“Debug”中的“Use Remote Debug Monitor”选项,以支持与Keil的联合调试。经过以上操作后,进行仿真调试,结果在示波器中并没有出现正弦信号,在LED显示器中也没有出现正弦信号的幅值和频率,于是我们进行全面的分析,得出问题出现的原因:程序上存在缺陷,电路图的引脚连接错了或者没有连接好,再就是我们操作上存在漏洞。为了解决这些问题,我们多次调试程序,程序没有错误。因此我们排除了程序错误的可能。我们又检查了电路连接图,有几处连线我们很迷惑,经过分析和老师的指导,我们正确的连接了电路图,可还是没有出现预期达到的结果,查阅资料后我们发现在操作上我们忽略了几处细节问题,纠正了以上错误后我们再次进行了调试,得到了一个不错的波形。最后,本次设计的正弦信号发生器可以输出幅度为1V5V,频率范围为1Hz99Hz的正弦波。仿真波形如图5-2所示。 图5-2 仿真波形图456 结论本次设计的正弦信号发生器不同于以往的模拟电路实现的信号发生器,首先其以单片机作为重要组成部分,采用D/A转换芯片,通过程序控制波形,控制灵活。其次,它是通过软硬件结合的方法,使用MCS-51单片机汇编语言编写程序,不但简化了硬件设备,实现了波形参数的连续变化,而且具有良好的人机界面,操作十分方便。整个系统采用模块化设计方法,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论