《基于单片机的函数信号发生器毕业设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的函数信号发生器毕业设计.doc(51页珍藏版)》请在三一办公上搜索。
1、基于单片机函数发生器设计一、课题来源为了实现输出多种波形的功能,基于单片机的控制及各电子器件与单片机间的联合,编写相应的软件,设计一种信号发生器。以适应各种理论研究。二、研究的目的和意义函数发生器亦称信号发生器,主要作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的波形发生器多为纯硬件的搭接而成,波形种类多为锯齿、正弦、方波、三角等波形。用分立元件组成的函数发生器,通常是单函数发生器且频率不高,其工作不很稳定,不易调试;用集成芯片的函数发生器,可达到较高的频率和产生多种波形信号,但电路较为复杂且不易调试。利用单片集成芯片的函数发生器,能产生多种波形,达
2、到较高的频率,且易于调试;利用专用直接数字合成DDS 芯片的函数发生器,能产生任意波形并达到很高的频率,但成本较高。函数发生器作为一种常见的应用电子仪器设备,传统的一般可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC要很大。大电阻,大电容在制作上有困难,参数的精度亦难以保证。体积大,漏电,损耗
3、显著更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。利用单片机采用程序设计方法来产生低频信号,其频率底线很低。具有线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能够对波形进行细微调整,改良波形,使其满足系统的要求。只要对电路稍加修改,调整程序,即可完成功能升级。三、参考文献及资料名称【1】 徐爱钧,智能化测量控制仪表原理与设计,北京航空航天大学出版社,2004【2】 徐爱钧等,Keil Cx51 V7.0单片机高级语言编程与u Vision2应用实践,电子工业出版社,2004【3】 周润景等,基于PROTEUS的电路的及单片机系统设计与仿
4、真,北京航空航天大学出版社,2006【4】 余永权等,单片机在控制系统中的应用,电子工业出版社,2006【5】 周灵彬,PROTEUS的单片机教学与应用仿真,单片机与嵌入式系统应用,2008【6】 沙占友,单片机外围电路设计,电子工业出版社,2005【7】 沈红卫,基于单片机的智能系统设计与实现,电子工业大学出版社,2005【8】 朱善君等,单片机接口技术与应用,清华大学出版社,2005【9】 张靖武等,单片机系统的PROTEUS设计与仿真,电子工业大学,2007【10】 宁成军等,基于Proteus和Keil接口的单片机外围硬件电路仿真,现代电子技术,2006【11】 孙德文,微型计算机技术
5、,高等教育出版社,2005(7)【12】 汪文等,单片机原理及应用,华中科技大出版社,2007四、国内外发展趋势及研究主攻方向我国的单片机应用始于80年代,虽然发展迅速,但相对于世界市场我国的占有率还很低。到目前为止,由于我国的微电子技术和制造工艺都比较落后及国外单片机的竞争等原因,我国还没有设计生产出自己的单片机。国内的单片机目前注重的还只是低中档的应用,普遍采用的是8或16位的单片机,对宏单片机和DSP等高档的应用还处于初始阶段。单片机的发展趋势为:低功耗与高性能、低电压、低噪声与高可靠性、采用CMOS技术、外围电路内装、串行扩展技术等。同时,单片机的快速发展也带动着基于单片机的信号发生器
6、的快速发展。五、研究方案(一)硬件电路的实现原理与构思1AT89C51单片机控制两片DAC0832的原理图输出基准电压AT89C51单片机DAC0832DAC0832图1.1 AT89C51控制两片DAC0832原理图因为AT89C51单片机自身便有一个64K的程序存储器,所以不用扩展外加程序存储器。由单片机编程即可由单片机输出所需要信号的数字量,再由D/A转换器将数字量转化为模拟电流输出,通过运放转化为模拟电压输出。因为D/A数模转换器的最大输出电压是由其输入的基准电压来控制的,所以只要能控制D/A的基准电压便可以控制输出幅度,实现幅度可调。所以设计用两片DAC0832来输出信号,第一片D/
7、A用来输出信号,第二片D/A用来控制第一片D/A的基准点压。其中用P0口作为两片D/A的数据总线,P2口的P2.0和P2.1口用来控制两片D/A的选通。2键盘显示电路的构思由于本设计要求控制波形的幅度和频率,所需按键较多,所以设计选用P1口来扩展44键盘。由于44键盘的设计已很普遍,所以在本文中不加以介绍。本设计中要求用数码管显示输出信号的幅度和频率等信息,而这些信息在信号输出的时候是不需要时刻改变的,所以设计中选用静态数码管显示,由单片机的串行通信口输出显示数据。这样可以节省单片机的端口来做其它的用途,给予了装置可优化性。AT89C51单片机74LS16474LS164数码管数码管图 1.2
8、显示电路方框图图中只给出两位数码管的显示,可以按要求任意扩展N位数码显示,每扩展一片74LS164,可以增加一位LED显示器。所要显示的数据由RXD串行发送出去,由74LS164转化为并行输出,再由LED显示。这样,在显示数据输送完毕之后,主程序可以不必扫描显示器,从而使CPU能用于其它工作。(二)软件设计的构思1幅度控制由于D/A数模转换器输出的最大幅度可以用其基准电压来控制,所以控制第二片D/A数模转换器输出给第一片D/A数模转换器的电压值就可控制信号幅度。因此,送入第二片的值是几个固定的值。由于DAC0832内部具有锁存器,所以只需向第二片D/A送值一次,直到下一次改变信号幅度。2频率控
9、制单片机内部数据只有0、1之分,所产生的信号也都是离散信号。为了能够让单片机输出所需的数字信号,我们采用对信号采样、量化的方法来实现由单片机产生所需信号。在本设计中,对信号的四分之一周期采样19个幅度值,通过反复查表来输出幅度值,而整个信号是通过正查表和逆向查表来实现的。采样的点越密,信号失真度也就越小。两次采样点的输出时间间隔是由定时、计数器来控制的,因此,通过控制不同的计数初值就可以控制整个信号的频率。计数时间=信号周期/72。计数次数=计数时间/机器周期。对应的,计数初值=65536计数次数。单片机只能产生离散频率的信号,所以所得到的信号频率不是连续的,而是离散的频率点。由于这部分计算位
10、数较多,不适合用单片机编程来计算计数初值,所以本设计中将各频率的计数初值算出,让单片机按控制命令来查表控制频率。正弦波和三角波的频率控制方法都与上述方法相同,而方波的频率控制是半周期计数,经过半周期只需改变输出为最大或最小电平即可。本设计为低频信号发生器,在频率只有几十赫兹的时候计数次数将很大,因此计数器的工作方式选为工作方式1,每次计数器溢出时需要重新装入计数初值。六、预期达到的目标(1)该装置用键盘控制输出方波、三角波、正弦波;(2)用键盘控制输出幅度和频率的变化,并将幅值和频率用数码管显示,幅度范围1V5V,频率范围010KHz。七、工作进度及安排时 间工 作 安 排13周开题报告 46
11、周完成函数发生器的初步设计57周完善函数发生器的设计,并进行实验测试分析。711周查阅资料学习单片机在工业中的应用1213周完成毕业论文。1418周毕业答辩。长江大学毕业论文(设计)指导教师评审意见学生姓名专业班级毕业论文(设计)题目指导教师职 称评审日期评审参考内容:毕业论文(设计)的研究内容、研究方法及研究结果,难度及工作量,质量和水平,存在的主要问题与不足。学生的学习态度和组织纪律,学生掌握基础和专业知识的情况,解决实际问题的能力,毕业论文(设计)是否完成规定任务,达到了学士学位论文的水平,是否同意参加答辩。评审意见: 指导教师签名: 评定成绩(百分制):_分长江大学毕业论文(设计)评阅
12、教师评语学生姓名专业班级毕业论文(设计)题目评阅教师职 称评阅日期评阅参考内容:毕业论文(设计)的研究内容、研究方法及研究结果,难度及工作量,质量和水平,存在的主要问题与不足。学生掌握基础和专业知识的情况,解决实际问题的能力,毕业论文(设计)是否完成规定任务,达到了学士学位论文的水平,是否同意参加答辩。评语:评阅教师签名: 评定成绩(百分制):_分长江大学毕业论文(设计)答辩记录及成绩评定学生姓名专业班级毕业论文(设计)题目答辩时间 年 月 日 时答辩地点一、答辩小组组成答辩小组组长:成 员:二、答辩记录摘要答辩小组提问(分条摘要列举)学生回答情况评判三、答辩小组对学生答辩成绩的评定(百分制)
13、:_分 毕业论文(设计)最终成绩评定(依据指导教师评分、评阅教师评分、答辩小组评分和学校关于毕业论文(设计)评分的相关规定)等级(五级制):_组长(签名) : 秘书(签名): 年 月 日 基于单片机的函数发生器的设计 学生:AAA,电子信息学院 指导老师:AAA,AA大学【摘要】:本文介绍一种用AT89C51单片机构成的波形发生器,可产生方波、三角波、正弦波、锯齿波等多种波形,波形的周期可用程序改变,并可根据需要选择单极性输出或双极性输出,具有线路简单、结构紧凑、性能优越等特点。文章给出了源代码,通过仿真测试,其性能指标达到了设计要求。【关键词】:单片机;DAC;函数发生器 Design of
14、 function generator based on MCU Student:,School of electronics and Information Engneering Teacher: , University【Abstract】:This paper introduces a AT89C51 single chip waveform generator,can produce square wave,triangle wave,sine wave,sawtooth wave and other wave,waveform cycle can be used to change
15、procedures,and in accordance with the need to select the output unipolar or bipolar output,has simple circuit,compact structure,superior performance characteristics.The article gives the source code,through simulation test,performance indexs have reached the design requirements.【Key words】:single ch
16、ip microcomputer;DAC;Function generator. 基于单片机的函数发生器的设计第一章 绪论1.1单片机概述单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。单片机也被称为微控制器(Microcontroller),由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和C
17、PU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。单片机是70年代中期发展起来的一种大规模集成电路芯片,是CPU、RAM、ROM、I/O接口和中断系统集成于同一硅片的器件。单片机用于控制有利于实现系统控制的最小化和单片化,简化一些专用接口电路,如编程计数器、锁相环(PLL)、模拟开关、A/D和D/A变换器、电压比较器等组成的专用控制处理功能的单板式微系统。单片机是所有微处理机中性价比最高的一种,随着种类的不断全面,功能不断完善,其应用领域也迅速扩大。单片机在智能仪表、实时控制、机电一体化、办公机械、家用电器等方面都有相当的应用领域。当前,8位单片机主要用
18、于工业控制,如温度、压力、流量、计量和机械加工的测量和控制场合;高效能的16位单片机(如MCS-96、MK-68200)可用在更复杂的计算机网络。可以说,微机测控技术的应用已渗透到国民经济的各个部门,微机测控技术的应用是产品提高档次和推陈出新的有效途径。1.2函数发生器的分类函数发生器应用广泛,种类繁多,性能各异,分类也不尽一致。函数发生器亦称信号发生器,主要作为实验用信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。按照频率范围分类可以分为:超低频信号发生器、低频信号发生器、视频信号发生器、高频波形发生器、甚高频波形发生器和超高频信号发生器。按照输出波形分类可以分为:正弦信号发
19、生器和非正弦信号发生器,非正弦信号发生器又包括:脉冲信号发生器,函数信号发生器、扫频信号发生器、数字序列波形发生器、图形信号发生器、噪声信号发生器等。按照信号发生器性能指标可以分为一般信号发生器和标准信号发生器。前者指对输出信号的频率、幅度的准确度和稳定度以及波形失真等要求不高的一类信号发生器。后者是指其输出信号的频率、幅度、调制系数等在一定范围内连续可调,并且读数准确、稳定、屏蔽良好的中、高档信号发生器。函数发生器作为一种常见的应用电子仪器设备,传统的一般可以完全由硬件电路搭接而成,如采用555振荡电路发生正弦波、三角波和方波的电路便是可取的路径之一,不用依靠单片机。但是这种电路存在波形质量
20、差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的RC要很大。大电阻,大电容在制作上有困难,参数的精度亦难以保证。体积大,漏电,损耗显著更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。利用单片机采用程序设计方法来产生低频信号,其频率底线很低。具有线路相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优点,并且能够对波形进行细微调整,改良波形,使其满足系统的要求。只要对电路稍加修改,调整程序,即可完
21、成功能升级。1.3 研究内容本文是做基于单片机的信号发生器的设计,将采用编程的方法来实现三角波、锯齿波、矩形波、正弦波的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。 第二章 方案的设计与选择2.1 方案的比较方案一:采用单片函数发生器(如8038),8038可同时产生正弦波、方波等,而且方法简单易行,用D/A转换器的输出来改变调制电压,也可以实现数控调整频率,但产生信号的频率稳
22、定度不高。方案二:采用锁相式频率合成器,利用锁相环,将压控振荡器(VCO)的输出频率锁定在所需频率上,该方案性能良好,但难以达到输出频率覆盖系数的要求,且电路复杂。方案三:采用单片机编程的方法来实现。该方法可以通过编程的方法来控制信号波形的频率和幅度,而且在硬件电路不变的情况下,通过改变程序来实现频率的变换。此外,由于通过编程方法产生的是数字信号,所以信号的精度可以做的很高。鉴于方案一的信号频率不够稳定和方案二的电路复杂,频率覆盖系数难以达标等缺点,所以决定采用方案三的设计方法。它不仅采用软硬件结合,软件控制硬件的方法来实现,使得信号频率的稳定性和精度的准确性得以保证,而且它使用的几种元器件都
23、是常用的元器件,容易得到,且价格便宜,使得硬件的开销达到最省。2.2 设计原理数字信号可以通过数/模转换器转换成模拟信号,因此可通过产生数字信号再转换成模拟信号的方法来获得所需要的波形。89C51单片机本身就是一个完整的微型计算机,具有组成微型计算机的各部分部件:中央处理器CPU、随机存取存储器RAM、只读存储器ROM、I/O接口电路、定时器/计数器以及串行通讯接口等,只要将89C51再配置键盘及其接口、显示器及其接口、数模转换及波形输出、指示灯及其接口等四部分,即可构成所需的波形发生器,其信号发生器构成原理框图如图2.1所示。 输出89C51单片机滤波放大D/A转换器接口电路图2.1 信号发
24、生器原理框图89C51是整个波形发生器的核心部分,通过程序的编写和执行,产生各种各样的信号,并从键盘接收数据,进行各种功能的转换和信号幅度的调节。当数字信号经过接口电路到达转换电路,将其转换成模拟信号也就是所需要的输出波形。2.3 设计思想(1)利用单片机产生方波、正弦波、三角波和锯齿波等信号波形,信号的频率和幅度可变。(2)将一个周期的信号分离成256个点(按X轴等分),每两点之间的时间间隔为T,用单片机的定时器产生,其表示式为:T=T/256。如果单片机的晶振为12MHz,采用定时器方式0,则定时器的初值为: X=213T/Tmec (2.1) 定时时间常数为: TL =(8192T)/M
25、OD256 (2.2)TH=(8192T)/256 (2.3)MOD32表示除32取余数(3)正弦波的模拟信号是D/A转换器的模拟量输出,其计算公式为: Y=(A/2sint)+A/2 (其中A=VREF) (2.4) t=NT (N=1256) (2.5)那么对应着存放在计算机里的这一点的数据为: (2.6) (4)一个周期被分离成256个点,对应的四种波形的256个数据存放在以TAB1-TAB4为起始地址的存储器中。2.4 设计功能(1)本方案利用8155扩展8个独立式按键,6个LED显示器。其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出,“S3” 号
26、键代表锯齿波输出。(2)“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号,6个LED显示器输出信号的频率值,选用共阳极LED。(3)利用两片DAC0832实现幅度可调的信号源,(其中一片用来调节幅度,另外一片用来实现信号源的输出)。(4)频率范围:101000Hz。(5)输出波形幅度为05V。第三章 主要器件介绍3.1 AT89C51简介AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的
27、低电压,高性能CMOS8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。3.1.1 主要特性与MCS-51 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-
28、24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路3.1.2 管脚说明VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口
29、管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在
30、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外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外
31、部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果
32、微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.2 8255简介8255是I
33、ntel公司生产的可编程并行I/O接口芯片,有3个8位并行I/O口。具有3个通道3种工作方式的可编程并行接口芯片(40引脚)。 其各口功能可由软件选择,使用灵活,通用性强。8255可作为单片机与多种外设连接时的中间接口电路。8255作为主机与外设的连接芯片,必须提供与主机相连的3个总线接口,即数据线、地址线、控制线接口。同时必须具有与外设连接的接口A、B、C口。由于8255可编程,所以必须具有逻辑控制部分,因而8255内部结构分为3个部分:与CPU连接部分、与外设连接部 分、控制部分。3.3 DAC0832简介DAC0832是8分辨率的D/A转换集成芯片。与微处理器完全兼容。这个DA芯片以其价
34、格低廉、接口简单、转换控制容易等优点,在单片机应用系统中得到广泛的应用。D/A转换器由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。3.3.1 特性介绍* 分辨率为8位;* 电流稳定时间1us;* 可单缓冲、双缓冲或直接数字输入;* 只需在满量程下调整其线性度;* 单一电源供电(+5V+15V);* 低功耗,200mW。3.3.2 管脚介绍* D0D7:8位数据输入线,TTL电平,有效时间应大于90ns(否则锁存器的数据会出错);* ILE:数据锁存允许控制信号输入线,高电平有效;* CS:片选信号输入线(选通数据锁存器),低电平有效;* WR1:数据锁存器写选通输入
35、线,负脉冲(脉宽应大于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,其值与IOU
36、T1值之和为一常数;* Rfb:反馈信号输入线,改变Rfb端外接电阻值可调整转换满量程精度;* Vcc:电源输入端,Vcc的范围为+5V+15V;* VREF:基准电压输入线,VREF的范围为-10V+10V;* AGND:模拟信号地* DGND:数字信号地3.4 数码管显示原理我们最常用的是七段式和八段式LED数码,八段比七段多了一个小数点,其他的基本相同。所谓的八段是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形。数码管又分为共阴极和共阳极两种类型,其实共阴极就是将八个LED的阴极连在一起。让其接地,这样给任何一个LED得另一端高电平,它便能点亮。二共阳极
37、就是将八个LED的阳极连在一起。其原理图如下。 引脚图 共阴极 共阳极 其中引脚图的两个COM端连在一起,是公共端,而共阴数码管要将其接地,共阳极将其接正5V电源。一个八段数码管成为一位,多个数码管并列在一起可构成多位数码管,它们的段选线(即a,b,c,d,e,f,g,dp)连在一起,而各自的公共端称为位选线。显示时,都从段选线送入字符编码,而选中哪个位选线,那个数码管便会被点亮。数码管的八段,对应一个字节的八位,a对应最低位,dp对应最高位。所以如果想让数码管显示数字0,那么共阴数码管的字符编码为00111111,即0x3f:共阳数码管的字符编码为11000000,即0xc0。可以看出两个编
38、码的各位正好相反。如下图第四章 硬件设计4.1 硬件原理框图硬件原理方框图如图3.1所示。 图4.1 硬件原理框图4.2 主控电路AT89C51单处机内部设置两个16位可编程的定时器/计数器T0和T1,它们具有计数器方式和定时器方式两种工作方式及4种工作模式。在波形发生器中,将其作定时器使用,用它来精确地确定波形的两个采样点输出之间的延迟时间。模式1采用的是16位计数器,当T0或T1被允许计数后,从初值开始加计数,最高位产生溢出时向CPU请求中断。中断系统是使处理器具有对外界异步事件的处理能力而设置的。当中央处理器CPU正在处理某件事的时候外界发生了紧急事件,要求CPU暂停当前的工作,转而去处
39、理这个紧急事件。在波形发生器中,只用到片内定时器计数器溢出时产生的中断请求,即是在AT89C51输出一个波形采样点信号后,接着启动定时器,在定时器未产生中断之前,AT89C51等待,直到定时器计时结束,产生中断请求,AT89C51响应中断,接着输出下一个采样点信号,如此循环产生所需要的信号波形6。如图4.2所示,AT89C51从P0口接收来自键盘的信号,并通过P2口输出一些控制信号,将其输入到8155的信号控制端,用于控制其信号的输入、输出。如果有键按下,则在读控制端会产生一个读信号,使单片机读入信号。如果有信号输出,则在写控制端产生一个写信号,并将所要输出的信号通过8155的PB口输出,并在
40、数码管上显示出来。 图4.2 主控电路图4.3 数/模转换电路AT89C51单片机控制两片DAC0832的原理图输出基准电压AT89C51单片机DAC0832DAC0832因为AT89C51单片机自身便有一个64K的程序存储器,所以不用扩展外加程序存储器。由单片机编程即可由单片机输出所需要信号的数字量,再由D/A转换器将数字量转化为模拟电流输出,通过运放转化为模拟电压输出。D/A数模转换器的最大输出电压是由其输入的基准电压来控制的,所以只要能控制D/A的基准电压便可以控制输出幅度,实现幅度可调。所以设计用两片DAC0832来输出信号,第一片D/A用来输出信号,第二片D/A用来控制第一片D/A的
41、基准点压。其中用P0口作为两片D/A的数据总线,P2口的P2.0和P2.1口用来控制两片D/A的选通。该文选用价格低廉、接口简单、转换控制容易并具有8位分辨率的数模转换器。DAC0832。DAC0832主要由8位输入寄存器、8位DAC寄存器、8位D/A转换器以及输入控制电路四部分组成。但实际上,DAC0832输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。DAC0832是电流型输出,在应用时外接运放使之成为电压型输出。由图4.3可知,DAC0832的片选地址为7FFFH,当P25有效时,若P0口向其送的数据为00H, 则U1 的输出电压为0V;若P0口向其送的数
42、据为0FFH时, 则U1的输出电压为-5V. 故当U1 输出电压为0V时,由公式 得:Vout = - 5V.当输出电压为- 5V时,可得:Vout = +5V,所以输出波形的电压变化范围为- 5V+ 5V. 故可推得,当P0所送数据为80H时,Vout为0V4。 图4.3 数模转换电路4.4 按键接口电路由于本设计要求控制波形的幅度和频率,所需按键较多,所以设计选用P1口来扩展44键盘。本设计中要求用数码管显示输出信号的幅度和频率等信息,而这些信息在信号输出的时候是不需要时刻改变的,所以设计中选用静态数码管显示,由单片机的串行通信口输出显示数据。这样可以节省单片机的端口来做其它的用途,给予了
43、装置可优化性。图4.4为键盘接口电路的原理图,图中键盘和8155的PA口相连,AT89C51的P0口和8155的D0口相连,AT89C51不断的扫描键盘,看是否有键按下,如有,则根据相应按键作出反应。其中“S0”号键代表方波输出,“S1”号键代表正弦波输出,“S2”号键代表三角波输出。 “S3”号键代表锯齿波输出,“S4”号键为10Hz的频率信号,“S5”号键为100Hz的频率信号,“S6”号键为500Hz的频率信号,“S7”号键为1KHz的频率信号3。 图4.4 按键接口4.5 时钟电路时钟电路可以简单定义如下:1.就是产生象时钟一样准确的振荡电路。2.任何工作都按时间顺序,用于产生这个时间的电路就是时钟电路,时钟电路一般由晶体振荡器、晶震控制芯片和电容组成。