资源描述
III 提供全套毕业论文,欢迎咨询 上海电力学院上海电力学院 本科毕业设计(论文) 题 目: 简易低频信号源的设计 院 系: 计算机与信息工程学院 专业年级: 电子科学与技术专业 学生姓名: 学号: 指导教师: 2012 年 6 月 8 日 I I 简易低频信号源的设计 摘要 信号发生器亦称函数发生器,是一种能产生各种函数波形的仪器。在现代电子学的各 个领域,常常需要高精度和频率方便可调的信号发生器。产生信号频率越高,波形种类越 多,发生器的性能越好,但随之而来的是,器件成本和技术要求也会大大提高。利用单片 机通过程序设计方法来产生低频信号,其频率底线很低,具有线路相对简单、结构紧凑、 体积小、价格低廉、频率稳定度高、抗干扰能力强、用途广泛等优点。 本次毕业设计设计完成了一个基于单片机控制的低频信号源。系统主要由单片机控制 电路、DA 转换电路、键盘控制电路及显示电路构成。AT89S51 单片机用于完成对键盘输 入信号的处理以及波形的数字信号的产生,数模转换器 DAC0832 用于将单片机输出的信 号的数字量转换成模拟量,运算放大器 LM324 将 DAC0832 输出的电流转换成电压,七段 数码管用于显示当前信号的周期,通过键盘按键改变输出的波形和频率,通过电位器调节 波形的幅值。这样便完成了低频信号源的设计,编写软件程序实现了方波、正弦波、锯齿 波、三角波的发生和输出,实现了频率可调并显示,幅值可调,通过 wave 仿真器仿真和 示波器显示得到了正确的波形输出。 关键词:低频信号源,单片机,D/A 转换,键盘控制 II THE DESIGN OF SIMPLE LOW-FREQUENCY SIGNAL SOURCE ABSTRACT Signal generator, also known as a function generator, is a instrument that can produce a variety of function waveform . In all areas of modern electronics, high precision and frequency adjustable signal generator is always required. The higher signal frequency the generator generates,the more waveforms it produces, the better the performance of the generator,.but the accompanying device cost and technical requirements will greatly improve.Using microcontroller programming method to generate low-frequency signals can get low frequency bottom line, with the line is relatively simple, compact structure, small size, low cost, high frequency stability, strong anti-interference ability and other advantages. The graduation project designed a microcontroller-based control, low-frequency signal source. The system mainly consists of single-chip control circuit, the DA conversion circuit, the keyboard control circuit and display circuit. AT89S51 microcontroller is used to complete the generation of digital signal and waveform . DAC0832 is used to convert the digital amount to analogical amount. LM324 is used to convert current to voltage.Segment digital tube is used to display the current signal frequency.We use the keyboard keys to change the output waveform and frequency, a potentiometer to adjust the amplitude of the waveform. Doing all the things above i complete the design of low-frequency signal source,.Then comleting the software programs to achieve a square wave, sine wave, sawtooth, triangle wave.Through wave simulation tools and oscilloscope ,the correct waveform is generated. Key words: low-frequency signal, source single-chip, D / A converter, keyboard control III 目录 1. 绪论.1 1.1.课题研究的背景1 1.2.国内外波形发生器技术进展2 1.3.课题研究的目的及意义3 1.4.论文的主要研究内容3 2. 系统的硬件设计.4 2.1. 系统的硬件设计思路4 2.1.1. 方案一.4 2.1.2. 方案二.5 2.1.3. 方案三.5 2.2. 硬件电路原理及原理框图6 2.2.1 时钟电路6 2.2.1. 复位电路.7 2.3. 系统的硬件模块设计8 2.3.1. 主控模块.8 2.3.2. DA 转换模块.12 2.3.3. 电流转换模块.16 2.3.4. 电压调节模块.18 2.3.5. 波形转换和频率调节模块.19 2.3.6. 频率显示模块.19 2.3.7. 电路原理图.21 3. 系统的软件设计.23 3.1. 主流程图23 3.2. 各功能模块子程序24 4. 系统调试.27 4.1. 仿真工具27 4.2. 调试流程27 5. 总结.30 致谢31 参考文献32 1 1 绪论绪论 1.1.课题研究的背景 波形发生器是能够产生大量标准信号和用户定义信号,并保证高精度、高稳定性、可 重复性和易操作性的电子仪器。函数波形发生器具有连续相位变换和频率稳定性等优点, 不仅可以模拟各种复杂信号,还可对频率、幅值、相移、波形进行动态、及时的控制,并 能够与其它仪器进行通讯,组成自动测试系统,因此被广泛用于自动控制系统、震动激励 、通讯和仪器仪表领域。 在 70 年代前,信号发生器主要有两类:正弦波和脉冲波,而函数发生器介于两类之间 ,能够提供正弦波、余弦波、方波、三角波、上弦波等几种常用标准波形,产生其它波形 时,需要采用较复杂的电路和机电结合的方法。这个时期的波形发生器多采用模拟电子技 术,而且模拟器件构成的电路存在着尺寸大、价格贵、功耗大等缺点,并且要产生较为复 杂的信号波形,电路结构非常复杂。同时,主要表现为两个突出问题,一是通过电位器的 调节来实现输出频率的调节,因此很难将频率调到某一固定值;二是脉冲的占空比不可调 节。 在 70 年代后,微处理器的出现,可以利用处理器、A/D/和 D/A,硬件和软件使波形发 生器的功能扩大,产生更加复杂的波形。这时期的波形发生器多以软件为主,实质是采用 微处理器对 DAC 的程序控制,就可以得到各种简单的波形。 90 年代末,出现几种真正高性能、高价格的函数发生器、但是 HP 公司推出了型号为 HP770S 的信号模拟装置系统,它由 HP8770A 任意波形数字化和 HP1776A 波形发生软件 组成。HP8770A 实际上也只能产生 8 中波形,而且价格昂贵。不久以后,Analogic 公司推 出了型号为 Data-2020 的多波形合成器,Lecroy 公司生产的型号为 9100 的任意波形发生器 等。 早在 1978 年,由美国 Wavetek 公司和日本东亚电波工业公司公布了最高取样频率为 5 MHz,可以形成 256 点(存储长度)波形数据,垂直分辨率为 8bit,主要用于振动、医疗、材 料等领域的第一代高性能信号源,经过将近 30 年的发展,伴随着电子元器件、电路、及生 产设备的高速化、高集成化,波形发生器的性能有了飞速的提高。变得操作越来越简单而 2 输出波形的能力越来越强。波形操作方法的好坏,是由波形发生器控制软件质量保证的, 编辑功能增加的越多,波形形成的操作性越好1。 到了二十一世纪,随着集成电路技术的高速发展,出现了多种工作频率可过 GHz 的 D DS 芯片,同时也推动了函数波形发生器的发展,2003 年,Agilent 的产品 33220A 能够产 生 17 种波形,最高频率可达到 20M,2005 年的产品 N6030A 能够产生高达 500MHz 的频 率,采样的频率可达 1.25GHz。由上面的产品可以看出,函数波形发生器发展很快2。 1.2.国内外波形发生器技术进展 (1)过去由于低频率应用的范围比较狭小,输出波形频率的提高,使得波形发生器能 应用于越来越广的领域。波形发生器软件的开发正使波形数据的输入变得更加方便和容易 。波形发生器通常允许用一系列的点、直线和固定的函数段把波形数据存入存储器。同时 可以利用一种强有力的数学方程输入方式,复杂的波形可以由几个比较简单的公式复合成 v=f(t)形式的波形方程的数学表达式产生。从而促进了函数波形发生器向任意波形发生器的 发展,各种计算机语言的飞速发展也对任意波形发生器软件技术起到了推动作用。目前可 以利用可视化编程语言(如 Visual Basic, Visual C 等)编写任意波形发生器的软面板,这样 允许从计算机显示屏上输入任意波形,来实现波形的输入3。 (2)与 VXI 资源结合。目前,波形发生器由独立的台式仪器和适用于个人计算机的 插卡以及新近开发的 VXI 模块。由于 VXI 总线的逐渐成熟和对测量仪器的高要求,在很 多领域需要使用 VXI 系统测量产生复杂的波形,VXI 的系统资源提供了明显的优越性,但 由于开发 VXI 模块的周期长,而且需要专门的 VXI 机箱的配套使用,使得波形发生器 VX I 模块仅限于航空、军事及国防等大型领域。在民用方面,VXI 模块远远不如台式仪器方 便。 (3)随着信息技术蓬勃发展,台式仪器在走了一段下坡路之后,又重新繁荣起来。不 过现在新的台式仪器的形态和几年前己有很大不同。这些新一代台式仪器具有多种特性, 可以执行多种功能。而且外形尺寸与价格,都比过去的类似产品减少了一半。 目前我国己经开始研制波形发生器,并取得了可喜的成果。但总的来说,我国波形发 生器还没有形成真正的产业。就日前国内的成熟产品来看,多为一些 PC 仪器插卡,独立 的仪器和 VXI 系统的模块很少,并且我国目前在波形发生器的种类和性能都与国外同类产 品存在较大的差距,因此加紧对这类产品的研制迫在眉睫。当今世界在以电子信息技术为 3 前提下推动了社会跨跃式的进步,科学技术的飞速发展日新月异带动了各国生产力的大规 模提高。由此可见科技已成为各国竞争的核心,尤其是电子信息技术更显得尤为重要,在 国民生产各部门电子信息技术得到了广泛的应用。 1.3.课题研究的目的及意义 目前,市场上的信号发生器多种多样,一般按频带分为以下几种:超高频:频率在 1 MHz 以上,可达几十兆赫兹。高频:几百 KHZ 到几 MHZ。低频:频率为几十 HZ 到几百 KHZ。超低频:频率为零点几赫兹到几百赫兹。超高频信号发生器,产生波形一般用 LC 振荡电路。高频、低频和超低频信号发生器,大多使用文氏桥振荡电路,即 RC 振荡电路 ,通过改变电容和电阻值,改变频率。用以上原理设计的信号发生器,其输出波形一般只 有两种,即正弦波和脉冲波,其零点不可调,而且价格也比较贵,一般在几百元左右。在 实际应用中,超低频波和高频波一般是不用的,一般用中频,即几十 HZ 到几十 KHZ。基 于以上用途,本次毕业论文要设计一个低频信号源,用单片机,加上一片 D/A 转换芯片, 就可以做成一个简单的信号发生器,其频率可以由单片机通过程序控制。我们可以把产生 各种波形的程序,写在 ROM 中,装入本机,按用户的选择,运行不同的程序,产生不同 的波形。输出端加上一些电压变换电路,就完成了一个频率、幅值均可调的多功能信号发 生器的设计。这样的机器体积小,而且价格便宜,耗电少,频率适中,便于携带。 1.4.论文的主要研究内容 本文结合国内外研究成果,比较几种常用的低频信号源。设计基于单片机的简易低频 信号源系统。论文内容主要分为以下几部分。 第 1 章:介绍低频信号源的研究背景,目的,意义以及研究内容。 第 2 章:分析概括几种设计思路,设计系统的总原理图,分模块介绍系统的硬件电路 连接和各部分相应的硬件功能。 第 3 章:详细介绍设计中用到的器件的性能。 第 4 章:介绍软件工作流程,分模块介绍各个子程序。 第 5 章:介绍调试流程。 4 2. 系统的硬件设计系统的硬件设计 2.1.系统的硬件设计思路 依据应用场合和需要实现的波形种类,波形发生器的具体指标要求会有所不同。依据 不同的设计要求选取不同的设计方案。通常,波形发生器需要实现的波形有正弦波、方波 、三角波和锯齿波。有些场合可能还需要任意波形的产生。各种波形共有的指标有:波形 的频率、幅度要求、频率稳定度、准确度等。对于不同波形,具体的指标要求也会有所差 异,例如,占空比是脉冲波形特有的指标。波形发生器的设计方案多种多样,大致可以分 为三大类:纯硬件设计法、纯软件设计法和软硬件结合设计法5。 2.1.1. 方案 波形发生器设计早期采用纯硬件法,波形发生器的设计主要是采用运算放大器加分立 元件来实现。实现的波形比较单一,主要为正弦波、方波和三角波。工作原理也相对简单 :首先产生正弦波,然后通过波形变换(正弦波通过比较器产生方波,方波经过积分器变为 三角波)实现方波和三角波。在各种波形后加上一级放大电路,可以使输出波形的幅度达到 要求,通过开关电路实现不同输出波形的切换,改变电路的具体参数可以实现频率、幅度 和占空比的改变。通过对电路结构的优化及所用元器件的严格选取可以提高电路的频率稳 定性和准确度。纯硬件法中,正弦波的设计是基础,实现方法也比较多,电路形式一般有 LC、RC 和石英晶体振荡器三类。LC 振荡器适宜于产生几 Hz 至几百 MHz 的高频信号; 石英晶体振荡器能产生几百 kHz 至几十 MHz 的高频信号且稳定度高;对于频率低于几 M Hz,特别是在几百 Hz 时,常采用 RC 振荡电路。RC 振荡电路又分为文氏桥振荡电路、双 T 网络式和移相式振荡电路等类型。其中,以文氏桥振荡电路最为常用。目前,实现波形 发生器最简单的方法是采用单片集成的函数信号发生器。它是将产生各种波形的功能电路 集成优化到一个集成电路芯片里,外加少量的电阻、电容元件来实现。采用这种方法的突 出优势是电路简单,实现方便,精度高,性能优越;缺点是功能较全的集成芯片价格较贵 。实际中应用较多的单片函数信号发生器有 MAX038(最高频率可达 40MHz)和 ICL8038(最 高频率为 300kHz)。 5 2.1.2. 方案二 波形发生器设计的纯软件法波形发生器的设计还可以采用纯软件的方法来实现。虚拟 仪器使传统仪器发生了革命性的变化,是 21 世纪测试仪器领域技术发展的重要方向。它以 计算机为基础,软件为核心,没有传统仪器那样具体的物理结构。在计算机上实现仪器的 虚拟面板,通过软件设计实现和改变仪器的功能。例如用图形化编程工具 LabVIEW 来实 现任意波形发生器的功能:在 LabVIEW 软件的前面板通过拖放控件,设计仪器的功能面 板(如波形显示窗口,波形选择按键,波形存储回放等工作界面),在软件的后面板直接拖 放相应的波形函数并进行参数设置或直接调用编程函数来设计任意波形以实现波形产生功 能;完成的软件打包后,可脱离编程环境独立运行。实现任意波形发生器的功能。采用纯 软件的虚拟仪器设计思路可以使设计简单、高效,仅改变软件程序就可以轻松实现波形功 能的改变或升级。从长远角度来看,纯软件法成本较低。软件法的缺点是波形的响应速度 和精度逊色于硬件法。 2.1.3. 方案三 1. 软硬件结合法软硬件结合的波形发生器设计方法同时兼具软硬件设计的优势:既具 有纯硬件设计的快速、高性能,同时又具有软件控制的灵活性、智能性。如以单片机和单 片集成函数发生器为核心。辅以键盘控制、液晶显示等电路,设计出智能型函数波形发生 器,采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展 波形发生器的功能,比如通过软件编程控制实现波形的存储、运算、打印等功能,采用 USB 接口设计。使波形发生器具有远程通信功能等。目前,实验、科研和工业生产中使用 的信号源大多采用此方法来实现。 2. 纯硬件设计法功能较单一,波形改变困难、控制的灵活性不够,不具备智能性,其 中由运算放大器加分立元件组成的波形发生器,除在学生实验训练中使用外,基本不被采 用。纯软件设计法实现简单,程序改变及功能升级灵活,但实现的波形精度及响应速度不 如硬件法高。纯软件法主要适用于对波形精度、响应速度要求不是很高的场合。相比之下, 软硬件结合的方法可以设计出性能最优、功能扩展灵活、控制智能化的新一代的波形发生 器,可以满足教学、科研、工业生产等各方面对波形发生器性能有较高要求的应用场合。 综合以上几种设计方案,本设计采用方案三的方法软硬件设计法。其方案能够产生 很好的波形,也易实现。 6 2.2.硬件电路原理及原理框图 波形的产生是通过 AT89S51 单片机执行某一波形发生程序,向 D/A 转换器的输入端 按一定的规律发生数据,从而在 D/A 转换电路的输出端得到相应的电压波形。 DAC0832 有三种联接方式。一种是两级缓冲器型,即输入数据经过两级缓冲器型。输 入数据经过两级缓冲器后,送 D/A 转换电路。第二种是单级缓冲器型,输入数据经输入寄 存器直接送入 DAC 寄存器,然后送 D/A 转换电路。第三种是两个缓冲器直通,输入数据 直接送 D/A 转换电路进行转换。本电路采用直通方式,原理框图如下: 图 2-1 原理框图 2.2.1 时钟电路 单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。 在引脚 XTAL1 和 XTAL2 外接晶体振荡器或陶瓷谐振荡器,构成了内部振荡方式。由 于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自积振荡,并产生振荡 时钟脉冲。晶振通常选用 6MHZ、12MHZ、或 24MHZ。电容 C1、C2 的主要作用是帮助振 荡器起振,其值的大小对振荡器频率有微调作用,典型值为 C1=C2=30pF。 频率显示模块 单片机 时钟电路 波形转换 和频率调 节模块 复位电路 数模转换模块 电流转换模块 电压调节模块 7 图 2-2 时钟部分电路图 2.2.1. 复位电路 AT89S51 单片机的复位引脚 RST(全称 RESET)出现 2 个机器周期以上的高电平时,根 据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要 求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位, 并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容 C3 的充电和 反相门的作用,使 RST 持续一段时间的高电平。当单片机已在运行当中时,按下复位键 K 后松开,也能使 RST 为一段时间的高电平,从而实现上电或开关复位的操作。 图 2-3 上电自动复位电路 图 2-4 上电或开关复位电 路 单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器 PC0000H,这 表明程序从 0000H 地址单元开始执行。单片机冷启动后,片内 RAM 为随机值,运行中的 复位操作不改变片内 RAM 区中的内容,21 个特殊功能寄存器复位后的状态为确定值统复 位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51 单片机的复 位是由 RESET 引脚来控制的,此引脚与高电平相接超过 24 个振荡周期后,51 单片机即进 入芯片内部复位状态,而且一直在此状态下等待,直到 RESET 引脚转为低电平后,才检 8 查 EA 引脚是高电平或低电平,若为高电平则执行芯片内部的程序代码,若为低电平便会 执行外部程序。51 单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至 于内部 RAM 内部的数据则不变。 本次毕业设计中由于对手动复位的要求不大,故采用了上电自动复位电路。 2.3.系统的硬件模块设计 2.3.1. 主控模块 采用 ATMEL 公司生产的 AT89S51 单片机作为系统的控制器。51 系列的单片机的使 用简单,软件编程灵活。自由度大,可用软件编程实现各种算法和逻辑控制,并且功耗低、 体积小、技术成熟和成本低。在设计中,AT89S51 芯片主要用作处理键盘输入的信息,输 出相应波形需要的数字量,输出显示模块需要的位选信号和要显示的数据。 下面是对 AT89S51 芯片的简介: 2.3.1.1. AT89S51 内部结构概述: AT89S51 单片机芯片集成了以下几个基本组成部分。 1. 一个 8 位的 CPU 2. 256B 单元内数据存储器(RAM) 3. 4KB 片内程序存储器(ROM) 4. 4 个 8 位并行 I/O 接口 P0P3。 5. 两个定时/计数器。 6. 5 个中断源的中断管理控制系统。 7. 一个全双工串行 I/O 口 UART(通用异步接收、发送器) 8. 一个片内振荡器和时钟产生电路。 2.3.1.2. 管脚说明6: VCC:电源电压输入端。 GND:电源地。 P0 口:口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P1 口的管脚 9 第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可以被定义为数 据/地址的低八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH 进行校验时,P0 输出原码,此时 P0 外部必须被拉高。 P1 口:口:P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出 4TTL 门电流。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 口除了作为普通 I/O 口,还有第 二功能: P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断 0) P3.3 /INT1(外部中断 1) P3.4 T0(T0 定时器的外部计数输入) P3.5 T1(T1 定时器的外部计数输入) P3.6 /WR(外部数据存储器的写选通) P3.7 /RD(外部数据存储器的读选通) P3 口同时为闪烁编程和编程校验接收一些控制信号。 I/O 口作为输入口时有两种工作方式,即所谓的读端口与读引脚。读端口时实际上并不从 外部读入数据,而是把端口锁存器的内容读入到内部总线,经过某种运算或变换后再写回 到端口锁存器。只有读端口时才真正地把外部的数据读入到内部总线。89C51 的 10 P0、P1、P2、P3 口作为输入时都是准双向口。除了 P1 口外 P0、P2、P3 口都还有其他的 功能。 RST:复位输入端,高电平有效。当振荡器复位器件时,要保持 RST 脚两个机器周期的高 电平时间。 ALE/PROG:地址锁存允许/编程脉冲信号端。当访问外部存储器时,地址锁存允许的输出 电平用于锁存地址的低位字节。在 FLASH 编程期间,此引脚用于输入编程脉冲。在平时, ALE 端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的 1/6。因此它可用作对 外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过 一个 ALE 脉冲。如想禁止 ALE 的输出可在 SFR8EH 地址上置 0。此时,ALE 只有在执行 MOVX,MOVC 指令是 ALE 才起作用。另外,该引脚被略微拉高。如果微处理器在外部 执行状态 ALE 禁止,置位无效。 PSEN:外部程序存储器的选通信号,低电平有效。在由外部程序存储器取指期间,每个 机器周期两次/PSEN 有效。但在访问外部数据存储器时,这两次有效的/PSEN 信号将不出 现。 EA/VPP:外部程序存储器访问允许。当/EA 保持低电平时,则在此期间外部程序 存储器(0000H-FFFFH) ,不管是否有内部程序存储器。注意加密方式 1 时,/EA 将内部锁 定为 RESET;当/EA 端保持高电平时,此间内部程序存储器。在 FLASH 编程期间,此引 脚也用于施加 12V 编程电源(VPP) 。 XTAL1:片内振荡器反相放大器和时钟发生器的输入端。 XTAL2:片内振荡器反相放大器的输出端。 11 图 2-5 AT89S51 单片机引脚 2.3.1.3. CPU 结构 CPU 是单片机的核心部件。它由运算器和控制器等部件组成。 1. 运算器 运算器以完成二进制的算术/逻辑运算部件 ALU 为核心。它可以对半字节(4)、单字 节等数据进行操作。例如,能完成加、减、乘、除、加 1、减 1、BCD 码十进制调整、比 较等算术运算,完成与、或、异或、求反、循环等逻操作,操作结果的状态信息送至状态 寄存器。 运算器还包含有一个布尔处理器,用以处理位操作。它以进位标志位 C 为累加器,可 执行置位、复位、取反、位判断转移,可在进位标志位与其他可位寻址的位之间进行位数 据传诵等操作,还可以完成进位标志位与其他可位寻址的位之间进行逻辑与、或操作。 2. 程序计数器 PC PC 是一个 16 位的计数器,用于存放一条要执行的指令地址,寻址范围为 64kB,PC 有自动加 1 功能,即完成了一条指令的执行后,其内容自动加 1。 3. 指令寄存器 指令寄存器用于存放指令代码。CPU 执行指令时,由程序存储器中读取的指令代码送 如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功 能。 2.3.1.4.存储器和特殊功能寄存器 1. 存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。计算机中的全 部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储 器中。它根据控制器指定的位置存入和取出信息。 2. 特殊功能寄存器 特殊功能寄存器(SFR)的地址范围为 80HFFH。在 MCS51 中,除程序计数器 PC 和 四个工作寄存器区外,其余 21 个特殊功能寄存器都在这 SFR 块中。其中 5 个是双字节寄 存器,它们共占用了 26 个字节。各特殊功能寄存器的符号和地址见附表 2。其中带号的 可位寻址。特殊功能寄存器反映了 8051 的状态,实际上是 8051 的状态字及控制字寄存器。 12 用于 CPUPSW 便是典型一例。这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有 关,另一类作片内功能的控制用。与芯片引脚有关的特殊功能寄存器是 P0P3,它们实际 上是 4 个八位锁存器(每个 I/O 口一个) ,每个锁存器附加有相应的输出驱动器和输入缓冲 器就构成了一个并行口。MCS51 共有 P0P3 四个这样的并行口,可提供 32 根 I/O 线, 每根线都是双向的,并且大都有第二功能。其余用于芯片控制的寄存器中,累加器 A、标 志寄存器 PSW、数据指针 DPTR 等的功能前已提及。 2.3.2. DA 转换模块 在实现 D/A 转换时,主要涉及下面几个性能参数7: 分辨率。分辨率是指最小输出电压(对应于输入数字量最低位增 1 所引起的输出电 压增量)和最大输出电压(对应于输入数字量所有有效位全为 1 时的输出电压)之比,例 如,4 位 DAC 的分辨率为 1/(24-1)=1/15=6.67%(分辨率也常用百分比来表示) 。8 位 DAC 的分辨率为 1/255=0.39%。显然,位数越多,分辨率越高。 转换精度。如果不考虑 D/A 转换的误差,DAC 转换精度就是分辨率的大小,因此, 要获得高精度的 D/A 转换结果,首先要选择有足够高分辨率的 DAC。D/A 转换精度分为 绝对和相对转换精度,一般是用误差大小表示。DAC 的转换误差包括零点误差、漂移误差、 增益误差、噪声和线性误差、微分线性误差等综合误差。绝对转换精度是指满刻度数字量 输入时,模拟量输出接近理论值的程度。它和标准电源的精度、权电阻的精度有关。相对 转换精度指在满刻度已经校准的前提下,整个刻度范围内,对应任一模拟量的输出与它的 理论值之差。它反映了 DAC 的线性度。通常,相对转换精度比绝对转换精度更有实用性。 相对转换精度一般用绝对转换精度相对于满量程输出的百分数来表示,有时也用最低位 (LSB)的几分之几表示。例如,设 VFS 为满量程输出电压 5V,n 位 DAC 的相对转换精 度为0.1%,则最大误差为0.1%VFS=5mV;若相对转换精度为1/2LSB,LSB=1/2n,则 最大相对误差为1/2n+1VFS。 非线性误差。D/A 转换器的非线性误差定义为实际转换特性曲线与理想特性曲线之 间的最大偏差,并以该偏差相对于满量程的百分数度量。转换器电路设计一般要求非线性 误差不大于1/2LSB。 转换速率/建立时间。转换速率实际是由建立时间来反映的。建立时间是指数字量为 13 满刻度值(各位全为 1)时,DAC 的模拟输出电压达到某个规定值(比如,90%满量程或 1/2LSB 满量程)时所需要的时间。建立时间是 D/A 转换速率快慢的一个重要参数。很显 然,建立时间越大,转换速率越低。不同型号 DAC 的建立时间一般从几个毫微秒到几个 微秒不等。若输出形式是电流,DAC 的建立时间是很短的;若输出形式是电压,DAC 的 建立时间主要是输出运算放大器所需要的响应时间。 根据对上述参数的综合考虑,由于 DAC0832 有如下特征,本设计选定 DAC0832 芯片, 其简介如下: 2.3.2.1.DAC0832 的内部结构 DAC0832 中有两级锁存器,第一级锁存器称为输入寄存器,它的锁存信号为 ILE;第 二级锁存器称为 DAC 寄存器,它的锁存信号为传输控制信号。因为有两级锁存器, DAC0832 可以工作在双缓冲器方式,即在输出模拟信号的同时采集下一个数字量,这样能 有效地提高转换速度。此外,两级锁存器还可以在多个 D/A 转换器同时工作时,利用第二 级锁存信号来实现多个转换器同步输出。 LE 为高电平和为低电平时,为高电平,输入寄存器的输出跟随输入而变化;此后,当 由低变高时,为低电平,资料被锁存到输入寄存器中,这时的输入寄存器的输出端不再跟 随输入资料的变化而变化。对第二级锁存器来说,和同时为低电平时,为高电平,DAC 寄 存器的输出跟随其输入而变化;此后,当由低变高时,变为低电平,将输入寄存器的资料 锁存到 DAC 寄存器中。 2.3.2.2.DAC0832 的引脚特性 DAC0832 是 20 引脚的双列直插式芯片。各引脚的特性如图 2.6: 14 图 2-6 DAC0832 引脚图 CS片选信号,和允许锁存信号 ILE 组合来决定是否起作用,低有效。 ILE允许锁存信号,高有效。 WR1写信号 1,作为第一级锁存信号,将输入资料锁存到输入寄存器(此时,必 须和 ILE 同时有效) ,低有效。 WR2写信号 2,将锁存在输入寄存器中的资料送到 DAC 寄存器中进行锁存(此时, 传输控制信号必须有效)低有效。 XFER传输控制信号,低有效。 DI7DI08 位数据输入端。 IOUT1模拟电流输出端 1。当 DAC 寄存器中全为 1 时,输出电流最大,当 DAC 寄存器中全为 0 时,输出电流为 0。 IOUT2模拟电流输出端 2。IOUT1+IOUT2=常数。 Rfb反馈电阻引出端。DAC0832 内部已经有反馈电阻,所以,RFB 端可以直接接 到外部运算放大器的输出端。相当于将反馈电阻接在运算放大器的输入端和输出端之间。 VREF参考电压输入端。可接电压范围为10V。外部标准电压通过 VREF 与 T 型 电阻网络相连。 VCC芯片供电电压端。范围为+5V+15V,最佳工作状态是+15V。 AGND模拟地,即模拟电路接地端。 DGND数字地,即数字电路接地端。 15 2.3.2.4. DAC0832 的工作方式 DAC0832 进行 D/A 转换,可以采用两种方法对数据进行锁存8 1、第一种方法是使输入寄存器工作在锁存状态,而 DAC 寄存器工作在直通状态。具 体地说,就是使和都为低电平,DAC 寄存器的锁存选通端得不到有效电平而直通;此外, 使输入寄存器的控制信号 ILE 处于高电平、处于低电平,这样,当端来一个负脉冲时,就 可以完成 1 次转换。 2、第二种方法是使输入寄存器工作在直通状态,而 DAC 寄存器工作在锁存状态。就 是使和为低电平,ILE 为高电平,这样,输入寄存器的锁存选通信号处于无效状态而直通; 当和端输入 1 个负脉冲时,使得 DAC 寄存器工作在锁存状态,提供锁存数据进行转换。 根据上述对 DAC0832 的输入寄存器和 DAC 寄存器不同的控制方法,DAC0832 有如 下 3 种工作方式: 单缓冲方式。单缓冲方式是控制输入寄存器和 DAC 寄存器同时接收资料,或者只 用输入寄存器而把 DAC 寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模 拟量异步输出的情形。 双缓冲方式。双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资 料到 DAC 寄存器,即分两次锁存输入资料。此方式适用于多个 D/A 转换同步输出的情节。 直通方式。直通方式是资料不经两级锁存器锁存,即 CS*,XFER*,WR1*,WR2* 均接地,ILE 接高电平。此方式适用于连续反馈控制线路和不带微机的控制系统,不过在 使用时,必须通过另加 I/O 接口与 CPU 连接,以匹配 CPU 与 D/A 转换。 根据上述资料,单片机与 DAC0832 的相连电路如图 2.7 所示,其中 P3 口与 DAC0832 的数据输入端口 D0D7 相连,DAC0832 的 VCC,ILE 接电源,Vref 接参考电压, XFER,AGND,DGND,WR1,WR2,CS 全部接地,芯片工作在直通方式下。 16 图 2-7 AT89S51 与 DAC0832 连接电路 2.3.3. 电流转换模块 DAC0832 输出的是电流信号,我们需要的输出是电压信号,经第一级运放后可以输出- 5-0V 的信号,加入第二级运放后可以输出-5V-5V。第一级和第二级输出的电压公示如下: Vout1=-Vref*(D/256),Vout2=10*(Vcc/10+Vout1/5)。 图 2-8 电流转换模块原理图 运放在本设计中的作用:LM324 接 DAC0832 的 Iout1 和 Iout2,将得到的电流量转化 为电压量,第一级运放可以输出-5V-0V 的电压,第二级运放可以输出-5V-+5V 的电压。 17 LM324 系列器件带有真差动输入的四运算放大器。与单电源应用场合的标准运算放大 器相比,它们有一些显著优点。该四放大器可以工作在低到 3.0 伏或者高到 32 伏的电源下, 静态电流为 MC1741 的静态电流的五分之一。共模输入范围包括负电源,因而消除了在许 多应用场合中采用外部偏置元件的必要性。每一组运算放大器可用图 1 所示的符号来表示, 它有 5 个引出脚,其中“+”、 “-”为两个信号输入端, “V+”、 “V-”为正、负电源端, “Vo”为输出 端。两个信号输入端中,Vi-(-)为反相输入端,表示运放输出端 Vo 的信号与该输入端的 位相反;Vi+(+)为同相输入端,表示运放输出端 Vo 的信号与该输入端的相位相同。 LM324 的引脚排列见图 2.9。 图 2-9 LM324 引脚图 图 2-10 LM324 内部电路图 LM324 系列由四个独立的,高增益,内部频率补偿运算放大器,其中专为从单电源供 18 电的电压范围经营。从分裂电源的操作也有可能和低电源电流消耗是独立的电源电压的幅 度。应用领域包括传感器放大器,直流增益模块和所有传统的运算放大器现在可以更容易 地 在单电源系统中实现的电路。例如,可直接操作的 LM324 系列,这是用来在数字系统 中,轻松地将提供所需的接口电路,而无需额外的15V 电源标准的 5V 电源电压。 2.3.4. 电压调节模块 通过一个 BARONS3296 电位器控制 DAC0832 的参考电压来改变输出电压,可以做到 电压的连续调节,连续的调节避免了软件控制电压的繁复,使电压的调节变的容易和精确。 图 2-11 电压调节模块 19 2.3.5. 波形转换和频率调节模块 图 2-12 波形转换和频率调节模块 通过控制 ABCD 四个按键控制波形的改变,通过键盘输入数字控制频率改变。其中 A 表示切换到方波,B 表示切换到锯齿波,C 表示切换到三角波,D 表示切换到正弦波。其 端口与单片机的 P0 口相连。 2.3.6. 频率显示模块 本次设计中需要一个可以显示当前输出信号的频率的器件,数码管简单易用,是良好 的选择,但数码管也有许多不同的类型。数码管按段数分为七段数码管和八段数码管,八 段数码管比七段数码管多一个发光二极管单元(多一个小数点显示) ;按能显示多少个“8” 可分为 1 位、2 位、4 位等等数码管。 图 2-13 共阴极七段数码管 20 图 2-14 共阳极七段数码 按发光二极管单元连接方式分为共阳极数码管和共阴极数码管9,如图 2-13、图 2-14 所示。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。 共阳数码管在应用时应将公共极 COM 接到+5V,当某一字段发光二极管的阴极为低电平 时,相应字段就点亮。当某一字段的阴极为高电平时,相应字段就不亮。 。共阴数码管是指 将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应 将公共极 COM 接到地线 GND 上,当某一字段发光二极管的阳极为高电平时,相应字段就 点亮。当某一字段的阳极为低电平时,相应字段就不亮。 本设计采用共阳极七段数码管,由于单片机驱动能力有限,故引入了 s9012pnp 三极管, 射极接电源,集电极接七段数码管的位选端,基极接单片机的 p2 口,单片机输出低电平时 三极管工作在放大区驱动七段数码管。 频率显示模块除了有四位七段数码管外,还有 4 个 2N3906pnp 三极管,4 个 10k 电阻 和一个排阻组成。由于单片机的驱动能力有限,故需要添加三极管另作驱动。七段数码管 的 ABCD 为位选信号,连接单片机的 P2.0P2.3 口;adp 为七段数码管的数据输入端,连 接单片机的 P0 口。 21 图 2-15 频率显示模块 2.3.7. 电路原理图 图 2-16 硬件原理图 图中左上角为波形转换模块,与 P1 口相连。 22 上方为电压调节模块,与 DAC0832 芯片的 Vref 相连。 左下方为电流转换模块,与 DAC0832 的 Iout1 和 Rfb 等相连。 中间偏左为 DA 转换模块,与单片机的 P3 口相连。 右半部分为频率显示模块,与单片机的 P2,P0 口相连。 中间为主控模块,即单片机。 23 3. 系统的软件设计系统的软件设计 3.1.主流程图 系统接通电源后上电自动复位,然后需要完成初始化工作,主要完成电路刚上电的时 候电路工作状态设置及一些准备工作,然后单片机会不断扫描键盘是否按下,显示程序会 先显示一个已经赋值好的数字默认为 1234,如果扫描到有键盘值 ABCD 按下就会开始输出 相应的波形,如果扫描到有数字键按下则会改变七段数码管的显示数字,并且在输入四个 数字后计算计数器的初值 TH0,TLO 并重新赋值。这期间定时器中断服务程序持续工作, 为系统定时输出相应的数字量10。 图 3-1 系统主流程图 键盘扫描子程序 开始 初始化 计数时间到输出规定值 否 改变计数初值或者波形 是否有键改变? 是 显示子程序 24 N N N Y N N N N N N Y 3.2.各功能模块子程序 低频信号源信号的产生程序主要分以下几个模块: 1. 初始化程序:主要完成电路刚上电的时候电路工作状态设置及一些准备工作; 2. 显示子程序: 图 3-2 显示子程序流程图 3. 键盘扫描子程序: 键扫描子程序 第一列有键按下? 第二列有键按下? 第三列有键按下? 第四列有键按下? 第一行按下? 第二行按下? 第三行按下? 第四行按下? 赋值 主程序 第四列四行按下? 图 3-3 键盘扫描程序 25 4. 波形产生子程序:波形产生程序分三个波形,即方波,三角波,正弦波11。 正弦波波形产生的过程:不断读取 Tab 表里面已经计算好的内容,输出到 P3 口, DAC0832 做转换。每次频率改变都送到中断处理中重新给 TH0 和 TL0 赋值,下同。 三角波产生过程:每次输出的二进制码加一,提高到最高的 255 时或降低到最低的一 时反响增加。 方波产生过程:固定每个周期讲信号翻转一次,就可以输出固定频率的方波了 以方波为例,流程图如下: 图 3-4 正弦波产生程序 开始 定时时间到,输出到 P3 将 A 赋值为 FFH 定时时间到,输出到 P3 将 A 赋值为 00H 26 5. 频率更改子程序: 是 图 3-5 频率更改子程序 开始 周期大于 065.5ms? 数据除以 10,R7 赋值 10 是否已输入四个数字? 返回主程序,等待定时中断,结束 载入已存周期 通过计算子程序给 Th0,Tl0 赋初值。 是 否 否 27 4. 系统调试系统调试 4.1.仿真工具 伟福 V5/L 仿真器是一款利用其 IDE 集成开发环境作为仿真环境的廉价仿真器,是利 用 SST 公司具有 IAP 功能的单片机 SST89C51 制作而成,主要是利用了 SST89C51 的 IAP 功能,所谓 IAP 功能是 In application program 的英文缩写,是在应用编程的意思,就是它 可以通过串口将用户的程序下载到单片机中,可以通过串口对单片机进行编程。它之所以 具有这种功能,实际上它有两块程序 flash 区,其中一块 flash 中运行的程序可以更改另外 的一块程序 flash 区中的程序,正是利用这一特性才用它作成了仿真器,我们把仿真器的监 控程序事先烧入 SST89C51,监控程序通过 SST89C51 的串口和 PC 通讯,当使用 KEIL UVISION3 的 IDE 环境仿真时,用户的程序通过串口被监控程序写入 flash 程序区中,当用 户设置断点等操作仿真程序时,flash 程序中的用户程序也在相应的更改,从而实现了仿真 功能。 4.2. 调试流程调试流程 1、点击启动 V 系列仿真器集成调试12。 2、新建一个文件,将写好的代码复制进去,保存为*.asm 格式。 3、新建一个工程。文件 菜单新建项目,加入要加入的模块文件保存。 28 图 4-1 新建工程添加文件 4、保存之后,点击编译按钮进行程序调试、查错,在程序下面的提示框 Output window 中点击出错的提示,进行程序改错 图 4-2 错误提示信息 这是一个符号未定义的错误,将 FF 前面加 0 后解决。编译正确后出现。 图 4-3 编译正确的信息 5、进行仿真器设置,将使用伟福软件模拟器前面的勾点掉,即使用硬件仿真。 29 图 4-4 仿真器设置 6、点击全速执行,观察寄存器窗口,发现调试过程中的错误 图 4-5 寄存器窗口 7、执行过程开始,会显示初始频率值 1234,如图所示 30 图 4-6 显示初始频率 8、按键盘上的数字改变当前频率值。 图 4-7 按键后的频率显示 31 9、点击键盘上的字母 A,输出方波波形,如图 4.8 为在示波器上的观察结果: 图 4-8 方波波形在示波器的显示 按字母 B,输出三角波波形,在示波器上的显示如图 4-9 所示 图 4-9 三角波在示波器上的显示 32 按字母 C,显示正弦波的波形,如图所示 图 4-10 正弦波波形在示波器的显示 按字母 D,显示三角波波形,由于仿真器的 P3.7 接触不良所以显示的波形不时完全正确: 图 4-11 三角波波形在示波器的显示 8、点击复位按钮,结束调试。 33 5. 总结总结 本文主要研究了以 AT89S51 单片机为主要控制器件的低频信号源的设计,包括 LED 显 示,DA 转换,输出电流转电压,4*4 键盘调节。主要内容如下: 1、论文首先介绍了低频信号源的发展状况,突出了运用单片机做控制器的低频信号源 的优点,研究了几种主流设计思路并最终选定了软硬件结合的方法。 2、其次研究了电路整体设计和各个模块的设计并对用到的器件做了描述,数模转换选 定了 DAC0832 芯片,电流电压转换模块选定了 LM324 集成四运放,显示模块选定了四位 七段数码管,波形转换和频率调节模块选定了 4*4 键盘。单片机产生需要输出波形的数据 输出到 DAC0832,DAC832 将数字量转化为电流信号,再由 LM324 转化为电压信号,数 码管用来显示当前频率,键盘用来更改波形和频率。 3、论文最后对设计的软件部分和调试过程进行了研究,描述了整个程序的框架,绘制 了流程图,然后依次完成了初始化程序和其他各项子程序,其中在键盘扫描子程序、显示 子程序、频率更改子程序上做了比较细致的描述。调试过程将主要的实验现象用照片的形 式描述出来,比较直观和形象。 在这个系统的频率调节上,这个系统
展开阅读全文