毕业设计(论文)-基于DA转换器的函数信号发生器.doc_第1页
毕业设计(论文)-基于DA转换器的函数信号发生器.doc_第2页
毕业设计(论文)-基于DA转换器的函数信号发生器.doc_第3页
毕业设计(论文)-基于DA转换器的函数信号发生器.doc_第4页
毕业设计(论文)-基于DA转换器的函数信号发生器.doc_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘 要 本次 d/a 转换器设计以单片机 at89s52 为主控制器,实现了波形的产生,频 率的选择以及波形的选择等功能。本设计的主要功能是用单片机产生三角波,正 弦波等波形,然后通过开关按键选择不同的频率和波形输出。本设计采用常用的 d/a 转换器件 dac0832 来使单片机输出的数字信号转换为模拟信号,然后再通过 运算放大器把 d/a 输出的电流信号转换为电压信号输出,这样以便用示波器对波 形信号进行测量。这样就完成了 d/a 转换器的核心部分的设计。 关 键 词: 单片机 dac0832 三角波 正弦波 abstract abstract this design of d/a converter by single chip microcomputer at89s52 as primarily controller, has realized the wave production, frequency choice as well as wave function and so on choice. this design main function is has the triangle wave and sine wave with the single chip microcomputer, then through switch pressed key choice different frequency and wave output ,and through digital tube show current transfer wave frequency value. this design uses commonly d/a transformation component dac0832 tocause the digital signal which the single chip microcomputer to transform into the simulated signal, then transforms again through the operational amplifier the d/a output electric current signal into the voltage signal output, like this facilitates uses the oscilloscope to the wave signal survey. it likes this completed the d/a converter design primary designs. key words : single chip microcomputer dac0832 triangle wave sine wave 目录 i 目录 第一章 引言.1 1.1 系统背景介绍1 1.2 d/a 转换器的工作原理 2 1.3 本文研究的目的和意义 .2 第二章 系统概述.3 2.1 单片机的选择3 2.1.1 单片机的发展特点.3 2.1.2 s52 系列单片机简介5 2.2 d/a 的选择 15 2.2.1 d/a 转换技术指标15 2.2.2 dac0832 简介16 第三章 硬件设计.21 3.1 电路总框图21 3.2 各部分电路设计21 3.2.1 单片机最小系统的设计21 3.2.2 波形信号产生部分电路设计22 第四章 软件设计.25 4.1 软件功能 .25 4.2 系统流程图 .25 4.2.1d/a 转换器总流程图25 4.2.2 定时器 t0 中断服务子程序流程图26 4.2.3 定时器 t1 中断服务子程序流程图26 4.2.4 正弦波键处理子程序流程图27 4.2.5 三角波键处理子程序流程图27 第五章 系统调试.29 5.1 静态调试29 5.2 动态调试30 第六章 总结与结束语.33 6.1 实验结果33 6.2 设计历程34 6.3 系统存在的问题和改进方案 .36 6.4 展望和体会36 致谢.37 参考文献.39 附录.41 第一章 引言1 第一章 引言 1.1 系统背景介绍 d/a 转换器,作为实验用的模拟信号源,是现今各种电子电路实验设计应用 中必不可少的仪器设备之一。目前,市场上常见的 d/a 转换器多为纯硬件的搭接 而成,且波形种类有限,多为锯齿、正弦、方波、三角等波形。 当今是科学技术及仪器设备高度智能化飞速发展的信息社会,电子技术的进 步,给人们带来了根本性的转变。现代电子领域中,单片机的应用正在不断的走 向深入,这必将导致传统控制与检测技术的日益革新。单片机构成的仪器具有高 可靠性、高性能价格比,在智能仪表系统和办公自动化等诸多领域得以极为广泛 的应用,并走入家庭,从洗衣机、微波炉到音响汽车,处处可见其应用。因此, 单片机技术开发和应用水平已逐步成为一个国家工业发展水平的标志之一。 d/a 作为一种常见的应用电子仪器设备,传统的波形产生一般可以完全由硬 件电路搭接而成,如采用 555 振荡电路发生正弦波、三角波和方波的电路便是可 取的路径之一,不用依靠单片机。但是这种电路存在波形质量差,控制难,可调 范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制, 生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成 的低频信号其性能难以令人满意,而且由于低频信号源所需的 rc 要很大。大电 阻,大电容在制作上有困难,参数的精度亦难以保证。体积大,漏电,损耗显著 更是其致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。 利用单片机采用程序设计方法来产生低频信号,其频率底线很低。具有线路 相对简单,结构紧凑,价格低廉,频率稳定度高,抗干扰能力强,用途广泛等优 点,并且能够对波形进行细微调整,改良波形,使其满足系统的要求。只要对电 路稍加修改,调整程序,即可完成功能升级。 1.2 d/a 转换器的工作原理 数字/模拟转换器(d/a)用来将数字量转变为模拟量。本设计是基于 s52 单 片机的 d/a 转换器,其可以产生正弦波,方波以及三角波,本设计可以实现的波 基于 d/a 转换器的函数信号发生器 2 形频率为:正弦波频率范围为 0hz800hz。方波和三角波频率可以实现 0hz 1khz。本设计的原理大概为:以正弦波为例,它实现的原理是把正弦波在一个周 期分为 256 或者 64 或者 32 个点,点和点之间的间隔是相等的并通过延时程序来 实现。我们先使单片机 p0 口先输出 00h,然后间隔一段时间再输出第二个点,再 延时相同的时间输出第三个点,直到输出 ffh。这样算一个周期完成。但单片机 这样输出的信号只是正弦波的大概,并不是一个平滑完整的波形。我们必须通过 一个 d/a 转换器件把它从数字信号变为模拟信号,但是此时又产生了一个问题, 通过 d/a 转换的模拟信号为电流信号。这样的信号示波器是无法识别的,这样我 们就必须通过一个运算放大器把电流信号转换为标准电压信号。这样就基本完成 了发生器的设计。当然方波和三角波的实现和正弦波的实现原理基本相同,所以 在此我们就不必赘述。我设计的 d/a 转换器是可以调频的。其调频的原理是:把 单片机定时/计数器的最大可计数的时间计算出来,然后我们就可以等间隔步进 的从最小的一个计数值来改变计数的时间,使得定时/计数器的溢出时间长短不 同,这样就可以改变波形的频率。 1.3 本文研究的目的和意义 本课题来源于现实生活的需要。现在在很多工程实践中对波形信号的需求越 来越多,对波形频率的要求也越来越高,且价格也不低。鉴与此,我们设计了这 个 d/a 转换波形信号发生器。它设计简单,成本低廉。对于学生做实验和一般较 低要求的工程实际还是比较实惠的。所以此设计很有现实意义。 第二章 系统概述 2.1 单片机的选择 第二章 系统概述3 随着微电子技术的飞速发展,cpu 已经变成低成本器件。在可能的情况下, 各种机电设备已经或者正在嵌入 cpu 构成的嵌入式系统。据 virginia tech 公司 报告,嵌入式系统中所使用的 cpu 数量已经超过通用 pc 中 cpu 数量的 30 倍。 现在系统研究的重点已从通用系统转向专用系统,以及从一般性能转向可靠性、 可用性、安全性、自主性、可扩展性、功能性、灵活性、成本、体积、功耗及可 管理性上。 2.1.1 单片机的发展特点 尽管由于市场对多功能产品需求的增加和 it 技术的推动,使 32 位 mcu 产品 日益成为市场的热点;但目前 8 位 mcu 仍然是技术市场的主流,并且还有相当广 阔的应用空间和旺盛的生命力,16 位 mcu 也占有一定的市场份额。各种 mcu 根据 自己在市场上的定位,也都有了很大发展,mcu 总的发展具有以下一些特点。 (1)微控制器 soc 化 微控制器(mcu)已可集成越来越多的内置部件。常用的 部件有存储器类,包括程序存储器 mrom/otp rom/eprom/eeprom/flash 和数据存 储器 sram/sdram/ssram;有串行接口类,包括 uart、spi、i2c、can、ir、ethernet、hdlc;有并行接口类,包括 centronics、pci、ide、gpio 等;有定时和时钟类,包括 timer/counter、rtc、watchdog、clock out;有专用和外围接口类,包括 comparer(比较器)、adc、dac、lcd 控制器、dma、pwm、pll、mac、温度传感器 等。甚至有的 mcu,例如 ns 公司的 mcu,已把语音、图像部件也集成到单片机中, 目的就是在单个器件中集成所有所需要用到的部件,构成片上系统(soc)。由于 cygnal 公司推出的 c8051f 系列的 mcu 在一个芯片中集成了构成数据采集系统或 控制系统所需要的几乎所有的数字和模拟外围接口和功能部件,所以这种混合信 号芯片被其称作 soc。 (2)多核结构处理器 随着嵌入式应用的深入,特别是在数字通信和网络中 的应用,对处理器提出了更高的要求。为适应这种情况,现在已出现多核结构的 处理器。 motorola 公司研发的 mpc8260 powerquicc ii 就是一种先进的为 电信和网络市场而设计的集成通信微处理器。它融合了两个 cpu嵌入式 powerpc 内核和通信处理模块(cpm)。由于 cpm 分担了嵌入式 powerpc 核的外围工 基于 d/a 转换器的函数信号发生器 4 作任务,这种双处理器体系结构功耗反而要低于传统体系结构的处理器。 infineon 公司推出的 tc10gp 和增强型 tc1130 都是三核(tricore)结构的微处理 器。它同时具备 risc、cisc 和 dsp 功能,是一种建立在 soc 概念上的结构。这 种单片机由三个核组成:微控制器和 dsp 核、数据和程序存储器核、外围专用集 成电路(asic)。这种单片机的最大特点是把 dsp 和微控制器融合成一个单内核, 大大提高了微控制器的功能。具有类似结构的还有 hitachi 公司的 sh7410、sh7612 等。它们用于既需要 mcu 又需要 dsp 功能的场合,比使用单独 mcu 和 dsp 的组合提供了更优越的性能。 (3)更低功耗 现在新推出的 mcu 的功耗越来越小,很多 mcu 都有多种工 作方式,包括等待、暂停、休眠、空闲、节电等工作方式。例如 philips 的 p87lpc762,空闲状态下的电流为 1.5ma,而在节电方式下电流只有 0.5ma。很多 mcu 还允许在低振荡频率下以极低的功耗工作。例如,p87lpc764 在 32.768 khz 低频下,正常工作电流仅为 idd=16a(vdd=3.6v), 空闲模式下 idd=7a(vdd=3.6v)。 (4)更宽工作电压范围 扩大电源电压范围以及在较低电压下仍然能工作 是现在新推出的 mcu 的一个特点。目前一般 mcu 都可以在 3.35.5v 的范围内工 作,有些产品则可以在 2.26v 的范围内工作。例如,fujitsu 的 mb8919x、mb8912x 和 mb89130 系列以及 f2mc-8l 系列 mcu,绝大多数工作电压范 围都为 2.26v;而 ti 的 msp430x11x 系列的工作电压可以低达 2.2v。motorola 针对长时间处在待机模式的装置所设计的超省电 hcs08 系列 mcu,已经把可工作 的最低电压降到了 1.8 v。 (5)更先进的工艺和更小的封装 现在 mcu 的封装水平已大大提高,有越 来越多的 mcu 采用了各种贴片封装形式,以满足便携式手持设备的需要。 microchip 公司推出了目前世界上体积最小的 6 引脚 pic10f2xx 系列 mcu。为了 适应各种应用的需要,减少驱动电路,很多 mcu 的输出能力都有了很大提高, motorola mcu 的 i/o 口灌电流可达 8ma 以上,而 microchip 的 mcu 可达 2025ma,其它如 amd、fujitsu、nec、infineon、hitachi、atmel、toshiba 等都在 820ma 之间。 第二章 系统概述5 (6)低噪声布线技术 在过去一般 mcu 中,电源与地引脚是安排在芯片封 装的对角上,即左上、右下或右上、左下位置上。这种安排会使电源噪声对 mcu 的内部电路造成相对最大干扰。现在很多 mcu 都把电源和地引脚安排在两个相邻 的引脚上。这样既降低了干扰,还便于在印制电路板上对去耦电容器进行布线, 降低系统的噪声。6 2.1.2 s52 系列单片机简介 (1)引脚结构 图 2-1 at89s52 单片机引脚图2 at89s52 是美国 atmel 公司生产的低电压高性能 cmos 8 位单片机,片内含 8bytes 的可反复察写的只读程序存储器(perom)和 256 bytes 的随机存取数据 存储(ram)器件采用 atmel 公司的高密度,非易失性存储技术生产,与标准 mcs-51 指令系统以 8052 产品引脚兼容,片内置通用 8 位中央处理器(cpu)和 flash 存储单元,功能强大。at89s52 单片机适合于许多较为复杂控制应用场合。 其引脚结构如图 2-1 所示。 主要性能参数: 1.全静态 cmos 控制器,标准 51 内核,工作频率 0-33mhz,可在线编程 (isp); 2.at89s52 有 3 个 16 位定时器计数器; 基于 d/a 转换器的函数信号发生器 6 3.32 个可编程的 i/o 口; 4.at89s52 有 8 个中断源; 5.at89s52 具有 256 b ram; 6.具有双数据指针(dptr)和硬件看门狗定时器; 7.片内 flash 程序存储器:8 kb(可在线编程); 8.1 个全双工异步通信串口(uart); 9.工作电压:4.05.5v; 10.外形有 40 引脚 pdip,44 引脚 tqfp、plcc 等封装。2 at89s52 提供以下标准功能:8k 字节 flash 闪速存储器,256 字节内部 ram,32 个 i/o 口线,3 个 16 位定时/计数器,一个 6 向量两级中断结构,一个 全双工串行通信 口,片内震荡器以及时钟电路。同时,at89s52 可降至 0hz 的静 态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 cpu 的工作, 但允许 ram,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 ram 中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。其 结构图如图 2-2 所示。 第二章 系统概述7 图 2-2 s52 单片机内部结构图 (2)引脚功能说明 vccvcc:电源电压 gndgnd:接地端 p0p0 口口:p0 口是一组 8 位漏极开路型双向 i/o 口,也即地址/数据总线复用口。 作为输出口用时,每位能吸收电流的方式驱动 8 个 ttl 逻辑门电路,对端口 p0 写“1”时,可作为高阻抗输入端用。 在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位) 和数据总线复用,在访问期间激活内部上拉电阻。 在 flash 编程时,p0 口接收指令字节,而在程序校验时,输出指令字节,校 验时,要求外接上拉电阻。 基于 d/a 转换器的函数信号发生器 8 p1p1口口:p1 口是一个具有内部上拉电阻的8 位双向i/o 口,p1 输出缓冲器能 驱动4 个ttl 逻辑电平。对p1 端口写“1”时,内部上拉电阻把端口拉高,此时 可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流 (iil)。此外,p1.0和p1.2分别作定时器/计数器2的外部计数输入(p1.0/t2) 和时器/计数器2的触发输入(p1.1/t2ex),具体如下表所示。在flash编程和校 验时,p1口接收低8位地址字节。见下表2-1。 表2-1 单片机单片机p1p1口引脚说明口引脚说明 p2p2口口:p2 口是一个具有内部上拉电阻的8 位双向i/o 口,p2输出缓冲器能驱 动4个 ttl 逻辑电平。对p2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为 输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出 电流4。 在访问外部程序存储器或用16位地址读取外部数据存储器时,p2 口送出 高八位地址。在这种应用中,p2口使用很强的内部上拉发送1。在使用8位地址访 问外部数据存储器时,p2口输出p2锁存器的内容。在flash编程和校验时,p2口 也接收高8位地址字节和一些控制信号。 p3p3口口:p3 口是一个具有内部上拉电阻的8位双向i/o 口,p3 输出缓冲器能驱 动4个ttl 逻辑电平。对p3 端口写“1”时,内部上拉电阻把端口拉高,此时可以 作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将 输出电流。p3口亦作为at89s52特殊功能(第二功能)使用,如下表所示。在 flash编程和校验时,p3口也接收一些控制信号。见下表2-2。 第二章 系统概述9 表 2-2 单片机单片机 p3p3 口引脚说明口引脚说明 rst:rst: 复位输入。晶振工作时,rst脚持续2 个机器周期高电平将使单片机复 位。看门狗计时完成后,rst 脚输出96 个晶振周期的高电平。特殊寄存器 auxr(地址8eh)上 的disrto位可以使此功能无效。disrto默认状态下,复位高电平有效。 ale/progale/prog:地址锁存控制信号(ale)是访问外部程序存储器时,锁存低8 位地址 的输出脉冲。在flash编程时,此引脚(prog)也用作编程输入脉冲。在一般情 况下,ale 以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟 使用。然而,特别强调,在每次访问外部数据存储器时,ale脉冲将会跳过。如 果需要,通过将地址为8eh的sfr的第0位置 “1”,ale操作将无效。这一位置 “1”,ale 仅在执行movx 或movc指令时有效。否则,ale 将被微弱拉高。这个 ale 使能标志位(地址为8eh的sfr的第0位)的设置对微控制器处于外部执行模 式下无效。 psen:psen:外部程序存储器选通信号(psen)是外部程序存储器选通信号。当 at89s52从外部程序存储器执行外部代码时,psen在每个机器周期被激活两次, 而在访问外部数据存储器时,psen将不被激活。 ea/vpp:ea/vpp:访问外部程序存储器控制信号。为使能从0000h 到ffffh的外部程序 存储器 读取指令,ea必须接gnd。为了执行内部程序指令,ea应该接vcc。在flash编程期 基于 d/a 转换器的函数信号发生器 10 间,ea也接收12伏vpp电压。 xtal1:xtal1:振荡器反相放大器和内部时钟发生电路的输入端。 xtal2:xtal2:振荡器反相放大器的输出端。 表 2-3 单片机特殊寄存器映向及复位值单片机特殊寄存器映向及复位值 (3)特殊功能寄存器 特殊功能寄存器(sfr)的地址空间映象如表1所示。并不是所有的地址都被定 义了。片上没有定义的地址是不能用的。读这些地址,一般将得到一个随机数据; 写入的数据将会无效。用户不应该给这些未定义的地址写入数据“1”。由于这 些寄存器在将来可能被赋予新的功能,复位后,这些位都为“0”。见上图。 (4)存储器结构 mcs-52器件有单独的程序存储器和数据存储器。外部程序存储器和数据存储 器都可以64k寻址。 程序存储器:程序存储器:如果ea引脚接地,程序读取只从外部存储器开始。对于 89s52,如果ea 接vcc,程序读写先从内部存储器(地址为0000h1fffh)开始, 第二章 系统概述11 接着从外部寻址,寻址地址为:2000hffffh。 数据存储器:数据存储器:at89s52 有256 字节片内数据存储器。高128 字节与特殊功能 寄存器重叠。也就是说高128字节与特殊功能寄存器有相同的地址,而物理上是 分开的。当一条指令访问高于7fh 的地址时,寻址方式决定cpu 访问高128 字节 ram 还是特殊功能寄存器空间。直接寻址方式访问特殊功能寄存器(sfr)。例 如,下面的直接寻址指令访问0a0h(p2口)存储单元mov 0a0h , #data。使用间 接寻址方式访问高128 字节ram。例如,下面的间接寻址方式中,r0内容为 0a0h,访问的是地址0a0h的寄存器,而不是p2口(它的地址也是0a0h)。mov r0 , #data。堆栈操作也是简介寻址方式。因此,高128字节数据ram也可用于 堆栈空间。 (5)看门狗定时器 wdt是一种需要软件控制的复位方式。wdt 由13位计数器和特殊功能寄存器 中的看门狗定时器复位存储器(wdtrst)构成。wdt 在默认情况下无法工作;为 了激活wdt,户用必须往wdtrst 寄存器(地址:0a6h)中依次写入01eh 和 0e1h。当wdt激活后,晶振工作,wdt在每个机器周期都会增加。wdt计时周期依 赖于外部时钟频率。除了复位(硬件复位或wdt溢出复位),没有办法停止wdt工 作。当wdt溢出,它将驱动rsr引脚一个高个电平输出。 wdtwdt的使用:的使用:为了激活wdt,用户必须向wdtrst寄存器(地址为0a6h的sfr) 依次写入0e1h和0e1h。当wdt激活后,用户必须向wdtrst写入01eh和0e1h喂狗来 避免wdt溢出。当计数达到8191(1fffh)时,13 位计数器将会溢出,这将会复位 器件。晶振正常工作、wdt激活后,每一个机器周期wdt 都会增加。为了复位 wdt,用户必须向wdtrst 写入01eh 和0e1h(wdtrst 是只读寄存器)。wdt 计数 器不能读或写。当wdt 计数器溢出时,将给rst 引脚产生一个复位脉冲输出,这 个复位脉冲持续96个晶振周期(tosc),其中tosc=1/fosc。为了很好地使用 wdt,应该在一定时间内周期性写入那部分代码,以避免wdt复位。 掉电和空闲方式下的掉电和空闲方式下的wdtwdt:在掉电模式下,晶振停止工作,这意味这wdt也停 止了工作。在这种方式下,用户不必喂狗。有两种方式可以离开掉电模式:硬件 复位或通过一个激活的外部中断。通过硬件复位退出掉电模式后,用户就应该给 基于 d/a 转换器的函数信号发生器 12 wdt 喂狗,就如同通常at89s52 复位一样。通过中断退出掉电模式的情形有很大 的不同。中断应持续拉低很长一段时间,使得晶振稳定。当中断拉高后,执行中 断服务程序。为了防止wdt在中断保持低电平的时候复位器件,wdt 直到中断拉 低后才开始工作。这就意味着wdt 应该在中断服务程序中复位。为了确保在离开 掉电模式最初的几个状态wdt不被溢出,最好在进入掉电模式前就复位wdt。在进 入待机模式前,特殊寄存器auxr的wdidle位用来决定wdt是否继续计数。默认状 态下,在待机模式下,wdidle0,wdt继续计数。为了防止wdt在待机模式下复 位at89s52,用户应该建立一个定时器,定时离开待机模式,喂狗,再重新进入 待机模式。 uartuart:在at89s52 中,uart 的操作与at89c51 和at89c52 一样。为了获得 更深入的关于uart 的信息,可参考atmel 网站()。从 这个主页,选择“products”,然后选择“8051-architech flash microcontroller”,再选择“productoverview”即可。18 (6)定时器0 和定时器1 在at89s52 中,定时器0 和定时器1 的操作与at89c51 和at89c52 一样。为 了获得更深入的关于uart 的信息,可参考atmel 网站() 从这个主页,选择“products”,然后选择“8051-architech flash microcontroller”,再选择“productoverview”即可。18 (7)定时器2 定时器2是一个16位定时/计数器,它既可以做定时器,又可以做事件计数器。 其工作方式由特殊寄存器t2con中的c/t2位选择。定时器2有三种工作模式:捕捉 方式、自动重载(向下或向上计数)和波特率发生器。如表2-4所示,工作模式 由t2con中的相关位选择。定时器2 有2 个8位寄存器:th2和tl2。在定时工作方 式中,每个机器周期,tl2 寄存器都会加1。由于一个机器周期由12 个晶振周期 构成,因此,计数频率就是晶振频率的1/12。 表2-4 定时器定时器2 2工作模式工作模式 第二章 系统概述13 在计数工作方式下,寄存器在相关外部输入角t2 发生1 至0 的下降沿时增 加1。在这种方式下,每个机器周期的s5p2期间采样外部输入。一个机器周期采 样到高电平,而下一个周期采样到低电平,计数器将加1。在检测到跳变的这个 周期的s3p1 期间,新的计数值出现在寄存器中。因为识别10的跳变需要2个机 器周期(24个晶振周期),所以,最大的计数频率不高于晶振频率的1/24。为了 确保给定的电平在改变前采样到一次,电平应该至少在一个完整的机器周期内保 持不变。 (8)中断 at89s52 有6个中断源:两个外部中断(int0 和int1),三个定时中断 (定时器0、1、2)和一个串行中断。这些中断如图2.7所示每个中断源都可以通 过置位或清除特殊寄存器ie 中的相关中断允许控制位分别使得中断源有效或无 效。ie还包括一个中断允许总控制位ea,它能一次禁止所有中断。如图2.8所示, ie.6位是不可用的。对于at89s52,ie.5位也是不能用的。用户软件不应给这些 位写1。它们为at89系列新产品预留。定时器2可以被寄存器t2con中的tf2和exf2 的或逻辑触发。程序进入中断服务后,这些标志位都可以由硬件清0。实际上, 中断服务程序必须判定是否是tf2 或exf2激活中断,标志位也必须由软件清0。 定时器0和定时器1标志位tf0 和tf1在计数溢出的那个周期的s5p2被置位。它们 的值一直到下一个周期被电路捕捉下来。然而,定时器2 的标志位tf2 在计数溢 出的那个周期的s2p2被置位,在同一个周期被电路捕捉下来。见下表2-5和表2- 6。 表2-5 中断表中断表 中断允许控制位1,允许中断 基于 d/a 转换器的函数信号发生器 14 中断允许控制位0,禁止中断 表2-6 中断说明中断说明 (9)晶振特性 如图2-3所示,at89s52 单片机有一个用于构成内部振荡器的反相放大器, xtal1 和xtal2 分别是放大器的输入、输出端。石英晶体和陶瓷谐振器都可以用 来一起构成自激振荡器。从外部时钟源驱动器件的话,xtal2 可以不接,而从 xtal1 接入,如图2-4 所示。由于外部时钟信号经过二分频触发后作为外部时钟 电路输入的,所以对外部时钟信号的占空比没有其它要求,最长低电平持续时间 和最少高电平持续时间等还是要符合要求的。 图2-3 内部振荡电路 图2-4 外部振荡电路 石英晶振 c1,c2=30pf10pf 陶瓷谐振器 c1,c2=40pf10pf 第二章 系统概述15 2.2 d/a 的选择 2.2.1 d/a 转换技术指标 d/a 转换器的输入为数字量,经转换后输出为模拟量。有关 d/a 转换器的技 术性能指标很多,例如绝对精度,相对精度,线性度,输出电压范围,温度系数, 输入数字代码种类等等。对这些技术性能指标,这里不做全面的详细说明,仅对 几个与接口有关的技术性能指标作以介绍。 (1)分辨率。分辨率是 d/a 转换器对输入量变化敏感程度的描述,与输入数字 量的为数有关。如果数字量的位数为 n,则 d/a 转换器的分辨率为 1/2n。这就意 味着 d/a 转换器能对满刻度的 1/2n 输出量作出反应。例如,8 位数的分辨率为 1/256,10 位数的分辨率为 1/1024。因此,数字量的位数越多,分辨率就越高, 亦即转换器对输入量变化的敏感程度也就越高。使用时,应根据分辨率的需要来 选定转换器的位数。 (2)建立时间。建立时间是描述 d/a 转换速度快慢的一个参数,指从输入数字 量变化到输出达到终值误差+1/2lsb 时所需的时间,通常以建立时间来表明转换 速度。转换器输出形式为电流时,建立时间较短,而输出形式为电压时,由于建 立时间还要加上运算放大器的延迟时间,因此建立时间要长一些。但总的来说, d/a 转换速度远高与 a/d 转换,例如快速的 d/a 转换器的建立时间仅为 1us。 (3)接口形式。d/a 转换器与单片机的接口方便与否,主要决定于转换器本身 是否带数据锁存器。通常有两类 d/a 转换器:一类不带锁存器;另一类则带锁存 器。对于不带锁存器的 d/a 转换器,为了保存来自单片机的转换数据,在接口要 加锁存器,因此这类转换器必须接在口线上而不能直接接在数据总线上;而带锁 存器的 d/a 转换器,可以把它看作是一个输出口,因此可以直接接在数据总线上, 而不需另加锁存器。 基于 d/a 转换器的函数信号发生器 16 2.2.2 dac0832 简介 dac0832 为一个 8 位 d/a 转换器,单电源供电,在+5+15v 范围内均可正常 工作。基准电压的范围为-10+10v,电流建立时间为 1us,cmos 工艺,低功耗 20mw。 dac0832 的内部结构框图如图 2-5 所示。 图2-5 dac0832内部结构图 该转换器由输入寄存器和dac寄存器构成两级数据输入锁存。使用时,数据 输入可以采用两极锁存(双缓冲)形式,或单级锁存(单缓冲)形式,也可以采 用直接输入(直通)形式。 由3个与门电路组成寄存器输出控制电路,可直接进行数据锁存控制:当 le=0时,输入数据被锁存;当le=1时,数据不锁存,锁存器的输出紧跟输入变化。 dac0832为电流输出形式,其两个输出端的关系为iout1+iout2=常数。 为了得到电压输出,可在电流输出端接一个运算放大器,如图2-6所示。需 要指出的是,0832运算放大器内部已经有反馈电阻,其阻值为15k。若需要加大 阻值,则可以外接反馈电阻。 第二章 系统概述17 dac0832转换器芯片为20引脚双列直插式封装,其引脚排列如图2-7所示。 图 2-6 dac0832 与运放连接图 图 2-7 dac0832 引脚图 (1)引脚功能说明 d7d7d0d0:转换数据输入端。 cscs:片选信号,输入,低电平有效。 ileile:数据锁存允许信号,输入,高电平有效。 wr1wr1:写信号 1,输如,低电平有效。 wr2wr2:写信号 2,输入,低电平有效。 xferxfer:数据传送控制信号,输入,低电平有效。 iout1iout1:电流输出 1,当 dac 寄存器中各位为全“1”时,电流最大;为全 “0”时,电流为 0。 iout2iout2:电流输出 2,电路中保证 iout1+iout2=常数。 rfbrfb:反馈电阻端,片内集成的电阻为 15k。 vrefvref:参考电压,可正可负,范围为-10v +10v。 dgnddgnd:数字量地。 基于 d/a 转换器的函数信号发生器 18 agndagnd:模拟量地。 (2)工作方式介绍 at89s52 单片机与 dac0832 的接口连接方式,即直通方式,单缓冲方式以及 双 缓冲方式。直通方式不能直接与系统的数据总线连接,另需要加锁存器,故 较少应用。下面介绍单缓冲方式与双缓冲方式。15 1. 单缓冲方式 所谓单缓冲方式就是使 dac0832 的两个输入寄存器中有一个处于直通方式, 而另一个接于受控的锁存方式,当然也可以使两个寄存器同时选通以及锁存。在 实际应用中,如果只有一路模拟量输出,或虽有几路模拟量输出但并不要求同步 的情况下,就可以采用单缓冲方式。 下面 3 个图为单缓冲方式的 3 种连接图,其中图 2-8 为 dac 寄存器处于直通 状态,图 2-9 为输入寄存器处于直通方式,还有一种为为 dac 寄存器与输入寄存 器同时选通及锁存方式。 在使用 dac0832 器件时,应注意下述两点:第一是 wr 选通脉冲应有一定的 宽度,通常要求500ns,而选 vcc=+5v 电源时更应满足此要求,如选 vcc=+15v 时,wr 的脉冲宽度只需100ns 就可以了,此时为器件的最佳工作状态;第二是 保持数据输入有效时间不小于 90ns,否则将锁存错误数据。 图 2-8 dac 寄存器处于直通状态 第二章 系统概述19 图 2-9 输入寄存器处于直通方式 图2-10 双缓冲方式 2. 双缓冲方式 所谓双缓冲方式,就是把dac0832的两个锁存器都接受成受控锁存方式。由 于芯片有两个数据寄存器,这样就可以将8位输入数据先保存在“输入寄存器” 中,当需要d/a 转换时,再将此数据从输入寄存器送至“dac寄存器”中锁存并进行d/a转换输出。 采用两级缓冲型工作方式:当输入数据在更新期间模拟量输出也随之出现不稳定 时,便可以在上一次模拟量输出的同时将下一次要转换的数据事先存如“输入寄 存器”中,从而克服了不稳定现象并提高了数据转换速度;用此种工作方式还可 以同时更新多个数模转换器的输出,这给有多个d/a器件的系统和多处理机系统 中的d/a器件协调工作带来个方便。此外,采用两极缓冲方式也可以使位数较多 的dac器件用于数据总线位数较少的系统中。 图2-10给出了采用线选法,利用两位地址码,进行两次输出操作完成数据的 传送以及转换的双缓冲方式。 基于 d/a 转换器的函数信号发生器 20 d/a转换器是计算机控制系统中常用的接口器件,它可以直接控制被控对象, 例如控制伺服电动机或其他执行机构。它也可以很方便的产生各种输出波形,如 矩形波,三角波,阶梯波,锯齿波,梯形波,正弦波以及余弦波等。 需要说明的是:当只采用一级运算放大器将电流输出变换为电压输出时,如 果dac0832的参考电压为正电压,那么通过运算放大器后得到的输出电压为负电 压;反之得到正电压。它们之间的关系为:当vref接+5v,数字量的变化范围为 0255时,输出模拟电压的变化范围为0-5v。若vref接+10v时,输出电压的变 化范围则为0-10v。如果参考电压为正电压,而想得到正电压输出的话,则可 采用双极性电压输出电路。 在双极性电压输出电路中,运算放大器a2的作用是把运算放大器a1的单极性 输出变为双极性输出。例如,当vref=+5v时,a1的电压输出范围为0-5v。当 vout1=0v时,vout2=-5v;当vout1=-2.5v时,vout2=0v;当vout1=-5v时, vout2=+5v。vout2的输出范围为-5v+5v。vout2与参考电压vref的关系为: vout2=vout2=数字码数字码-128/128*vref-128/128*vref (2.1)(2.1) 第三章 硬件设计21 第三章 硬件设计 3.1 电路总框图 输出 单片机 键盘电路 显示电路 d/a 数 模 转 换 电 路 放大 输出 电路 图 3-1 电路总框图 3.23.2 各部分电路设计 3.2.1 单片机最小系统的设计 本设计使用 at89s52 单片机作为主控芯片,此芯片功能强大,内部有 8k 的 程序存储空间,完全可以满足设计的需要。单片机最小系统包含一个单片机和晶 振电路和复位电路组成。振荡电路的频率主要取决于晶体的振荡频率,一般晶振 可在 1.212mhz 之间选择,我们此次设计用的是 12mhz 的晶振。电容 c1,c2 可 在 530pf 之间选择,电容的大小对振荡频率有微小的影响,可以起频率微调的 作用。上电复位是在单片机接通电源时,对单片机的复位。复位电路的阻容参数 通常由实验调整,一般电路参数 c 取 22uf,r1 取 1k,可在 rst/vpd 端提供足够 的高电平脉冲,使单片机能够可靠的上电自动复位。at89s52 单片机最小系统如 下图。 基于 d/a 转换器的函数信号发生器 22 ea/vpp 31 xtal1 19 xtal2 18 rst 9 p3.7(rd) 17 p3.6(wr) 16 p3.2(int0) 12 p3.3(int1) 13 p3.4(t0) 14 p3.5(t1) 15 p1.0(t2) 1 p1.1(t2ex) 2 p1.2 3 p1.3 4 p1.4 5 p1.5 6 p1.6 7 p1.7 8 (ad0)p0.0 39 (ad1)p0.1 38 (ad2)p0.2 37 (ad3)p0.3 36 (ad4)p0.4 35 (ad5)p0.5 34 (ad6)p0.6 33 (ad7)p0.7 32 (a8)p2.0 21 (a9)p2.1 22 (a10)p2.2 23 (a11)p2.3 24 (a12)p2.4 25 (a13)p2.5 26 (a14)p2.6 27 (a15)p2.7 28 psen 29 ale/prog 30 (txd)p3.1 11 (rxd)p3.0 10 gnd 20 vcc 40 at89c51rc 0.3k 116 +5 116 12 12mhz 30pf 30pf 22uf c 1kr1 r2 图 3-2 单片机最小系统连接图 3.2.2 波形信号产生部分电路设计 波形信号产生部分的基本原理为:通过单片机的 p1 口输出一个数字信号, 然后这个数字信号经过 dac0832 变为连续的电流信号。这个电流信号示波器是检 测不到的,这样就需要一个运算放大器把电流信号转换为电压信号,这样示波器 就可以测量了。此部分的核心就是 d/a 的连接方法以及 d/a 和运算放大器的连接。 第一级运算放大器的负输入端接 dac0832 的 iout1 端,正输入端接 iout2 端。本 设计 d/a 选用的是单缓冲方式,这样可以使电路设计简单,此处采用两级运算放 大器的原因在与可以实现倒相功能,可以使波形的正负值都能出现。例如,当 vref=+5v 时,a1 的电压输出范围为 0-5v。当 vout1=0v 时,vout2=-5v;当 vout1=-2.5v 时,vout2=0v;当 vout1=-5v 时,vout2=+5v。vout2 的输出范围为 -5v+5v。vout2 与参考电压的关系为: vout2=vout2=数字码数字码-128/128*vref-128/128*vref (3.1)(3.1) 一般 d/a 的电源电压有特别的要求,电源电压的选择应符合使 wr 的选通脉 冲应有一定的宽度,通常要求500ns,而选 vcc=+5v 时更应满足此要求,如选 vcc=+15v 时,wr 的脉冲宽度只需要100ns 就可以了,此时为器件的最佳工作状 第三章 硬件设计23 态;并且还有保证数据输入有效时间不小于 90ns,否则将锁存错误数据。运算放 大器的电源电压一般选用 15v。波形产生电路图如下 3-3 所示: 图 3-3 信号产生部分连接图6 1 d0 2 d1 3 d2 4 d3 5 d4 6 d5 7 d6 8 d7 9 cs 10 xfer 11 dgnd 12 agnd 13 vcc 14 wr1 15 wr2 16 ile 17 vref 18 rfb 19 iout2 20 iout1 dac0832 6 1 7 5 14 1 6 1 7 5 14 1 -12v +12v -12v +12v 5k 10k 116 out c1 c2 c2 10k 116 +5 基于 d/a 转换器的函数信号发生器 24 第四章 软件设计25 第四章 软件设计 4.1 软件功能 系统用了一个外部中断,两个定时器中断。正弦波三角波输出通过查表法实 现,频率的改变通过改变相邻数据点输出时间间隔和一个波形周期内输出点数来 实现。脉冲波输出通过对单个 i/o 赋值“1”和“0”来实现,频率的改变通过改 变 i/o 输出高低电平持续时间来实现。键盘为独立式中断键盘。软件能通过对按 键的判别,调用不同的按键服务子程序 ,来实现对波形的输出。 4.2 系统流程图 4.2.1d/a 转换器总流程图 如图 4-1 所示。当 flag=1 时为有效按键。初始化后输出为 24hz 正弦波。 n y 初始化 正弦波输出 开始 等待按键 有键按下 三角波输出函数正弦波输出函数 查按键号 基于 d/a 转换器的函数信号发生器 26 4.2.2 定时器 t0 中断服务子程序流程图 图 4-2 定时器 t0 中断服务子程序流程图 4.2.3 定时器 t1 中断服务子程序流程图 图 4-3 定时器 t1 中断服务子程序流程图 中断入口 关闭定时器 t0 th0=thhl0/256 开启定时器 t0 tl0=thhl0/256 中断返回 对输入口状态取反 中断入口 关闭定时器 t1 th1=thhl1/256 开启定时器 t1 tl1=thhl1/256 输出数据表中的第 n 个点 由 out_flag 的值选择波形输出数据表 n=0 返回 n=n+1 n=max? 第四章 软件设计27 4.2.4 正弦波键处理子程序流程图 按下正弦波键,系统会输出频率约为 100 赫兹的正弦波。 图 4-4 正弦波键处理子程序流程图 图 4-5 三角波键处理子程序流程图 4.2.5 三角波键处理子程序流程图 按下三角波键,系统会输出频率为约 100 赫兹的三角波。6 正弦波三角波辨别标志值 sin_thr=0 max=31 输出频率标志 s=5 置计数初值 thhl1=65522 调频率显示子程序显示值为 100 输出数表选择标志 out_flag=2 返回 开定时器 t1 关定时器 t0 开定时

温馨提示

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

评论

0/150

提交评论