基于单片机的低频信号发生器的设计-论文_第1页
基于单片机的低频信号发生器的设计-论文_第2页
基于单片机的低频信号发生器的设计-论文_第3页
基于单片机的低频信号发生器的设计-论文_第4页
基于单片机的低频信号发生器的设计-论文_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、任 务 书一 设计题目;低频信号发生器二 设计任务与要求 设计制作低频信号发生器,要求利用单片机产生正弦波,方波及三角波等波形 (1)正弦波 用单片机实现正弦波的输出 输出的波形有 1HZ 10HZ 100HZ 1KHZ 10KHZ 5 种可选频率 输出电压范围有 05V 可调(峰峰值) 用六位数码管显示频率 频率误差1% (2)方波 频率范围:0.01HZ100KHZ 频率误差:0.1% 电压范围:010 V (3)三角波 频率范围:0.01HZ10KHZ 频率误差:0.1% 电压范围:020V(峰峰值) 失真率:r3% IV 目目 录录一一 绪论绪论.1二二 信号发生器方案设计与选择信号发

2、生器方案设计与选择.3三三 主要电路原件介绍主要电路原件介绍6四四 单元电路硬件设计单元电路硬件设计.15五五 系统软件设计系统软件设计.20六六 软件程序软件程序.26七七 结论结论.34八八 致谢致谢.35九九 参考文献参考文献.36第 1 章 绪论1.1 选题背景及其意义波形发生器也称函数信号发生器,作为实验信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿波,正弦波,方波,三角波等波形。信号发生器作为一种常见的应用电子仪器设备,传统的可以完全由硬件电路搭接而成,不用依靠单片机。但是这种电路存在波形质

3、量差,控制难,可调范围小,电路复杂和体积大等缺点。在科学研究和生产实践中,如工业过程控制,生物医学,地震模拟机械振动等领域常常要用到低频信号源。而由硬件电路构成的低频信号其性能难以令人满意,而且由于低频信号源所需的 RC 很大;大电阻,大电容在制作上有困难,参数的精度亦难以保证;体积大,漏电,损耗显著更是致命的弱点。一旦工作需求功能有增加,则电路复杂程度会大大增加。因此需要选择其它的方法来解决此类问题,我们想到了通过单片机来实现所要求的功能,即采用单片机 AT89C51 还有数模转换 DAC0832、运算放大器,此种方法硬件要求简单,编程容易,同时能够实现所要求的功能。1.2 单片机概述单片微

4、型计算机简称单片机3,是典型的嵌入式微控制器(Microcontroller Unit) , 常用英文字母的缩写 MCU 表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。相当于一个微型的计算机,和计算机相比,单片机只缺少了 I/O 设备。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有 CPU 的专用处理器发展而来。最早的设计理念是通过将大量外围设备和

5、 CPU 集成在一个芯片中,使计算机系统更小,更容易集成复杂的而对体积要求严格的控制设备当中。INTEL 的 Z80 是最早按照这种思想设计出的处理器,当时的单片机都是 8 位或 4 位的。其中最成功的是 INTEL 的 8031,此后在 8031 上发展出了 MCS51 系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管 2000 年以后 ARM 已经发展出了 32位的主频超过 300M 的高端单片机,直到目前基于 8031 的单片机还在广泛的使用。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮

6、大,单片机和专用处理器的发展便分道扬镳。 4现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有 1-2 部单片机。 汽车上一般配备 40 多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量不仅远超过 PC 机和其他计算的总和,甚至比人类的数量还要多。1.3 信号发生器概述 信号发生器可以构成独立的信号源1,也可以是高性能网络分析仪、频谱分析仪以及自动检测设备的组成部分。信号发生器的关键技术是多种高性能仪器的支撑技术,因为它能够提供高质量的精密信号源及扫频源,可使相应的系统检测过程大

7、大简化,降低检测费用并且极大的提高了检测精度。信号发生器的总体趋势将向着高频率覆盖、高频率精度、多功能、多用途、自动化和智能化方向发展。目前,市场上的信号发生器多种多样,一般按照频带分为以下几种:(1)超高频:频率范围为 1MHZ 以上,可达几十兆赫兹。(2)高频:几百 KHZ 到几百 MHZ。(3)低频:频率范围为几十 HZ 到几百KHZ。(4)超低频:频率范围为零点几赫兹到几百赫兹。超高频信号发生器产生波形一般用 LC 振荡电路。高频、低频和超低频信号发生器,大多使用文氏桥振荡电路,及 RC振荡电路,通过改变电阻和电容值来改变频率。用以上原理设计的信号发生器,其输出波一般只有两种,即正弦波

8、和脉冲波,其零点不可调,而且价格比较贵,一般在几百元左右。在实际应用中,超低频和高频波一般是不用的。采用单片机 AT89C51,加上一片 DAC0832 就可以做成一个简单的信号发生器,加上按键电路、显示电路及放大电路,就可以实现频率幅值可调。这样的信号发生器体积小,价格便宜,耗电少,频率适中,便于携带。1.4 研究题目及其意义 信号发生器是一种经常使用的设备2,由纯粹物理器件构成的,传统的设计方法存在许多弊端,如:体积较大、重量较沉、移动不方便、信号失真较大、波形形状调节过于死板,无法满足用户对精度、便携性、稳定性等要求,研究设计出一种具有频率稳定、准确、波形质量好、输出频率范围宽、便携性好

9、等特点的波形发生器具有较好的市场前景。以满足工业领域对信号源的要求。本次试验实现利用单片机 AT89C51 和 8 位 D/A 转换芯片 DAC0832 共同实现方波、锯齿波、三角波、正弦波这四种常用波形的发生。根据设计的要求,对各种波形的频率和幅度进行程序的编写,并将所写程序装入单片机的程序存储器中。在程序运行中,当接收到来自外界的命令,需要输出某种波形时再调用相应的中断服务子程序和波形发生程序,经电路的数/模转换器和运算放大器处理后,从信号发生器的输出端口输出。并且可以通过数码管和键盘显示模块,键盘可以实现对几种波形的切换。51.5 本论文主要研究的内容 本设计采用 89C51 及其外围扩

10、展系统,软件方面主要是应用 C 语言设计程序。系统以 89C51 单片机为核心,配置相应的外设及接口电路,用 C 语言开发,组成一个多功能信号发生系统。同时,本系统中任何一部分电路模块均可移植于实用开发系统的设计中,电路设计具有实用性。本设计将完成以下几个方面的工作:(1)选芯片,尽量满足一般工业控制要求、以增强其实用性。(2)原理图设计在保证正确的前提下,尽量采用典型的电路设计。(3)固化于单片机芯片中的软件采用模块设计,层次清楚,具有上电复位及初始化功能,具有很好的软件开发框架。(4)掌握单片机仿真软件 Proteus7.0 的使用。为此,论文包括以下内容:一 绪论。主要介绍单片机发展概况

11、和信号发生器的概述,为以后几章的介绍奠定基础。二 系统总体方案设计。本章主要考虑系统性能和功能。包括两个主要内容:总体方案设计与设计的功能。其中总体设计方案包括考虑到多个符合条件的方案设计,并且对这几个方案进行比较,包括性能,价格,实用性等,最终确定下最优的设计方案。系统设计功能包括设计所完成的基本功能。三 系统各元器件的介绍。本章对电路中所使用的器件功能进行了详细的介绍。四 系统硬件设计。本章对各功能模块进行了大体的介绍,更好的理解所设计的电路图,理解各功能模块实现的功能。五 系统软件设计。对软件设计部分作了详细的介绍,各程序模块的实现作了介绍。六 结论。对设计进行自我的总结。6第 2 章

12、信号发生器方案设计与选择信号发生器是指产生所需参数的电测试信号的仪器。按信号波形可分为正弦信号、波形信号、脉冲信号和随机信号发生器等四大类。本文利用单片机构造低频信号发生器,可产生正弦波,方波,三角波,锯齿波四种波形,再通过 D/A 转换器 DAC0832 把数字信号转变为模拟信号,经 LM358 放大输出到示波器,与此同时外接 8 位 LED 显示输出信号的类型和频率。2.1 方案设计与选择 信号发生器的设计方案可用多种方案来实现。在设计前对各种方案进行比较得到最优的涉及方案: 采用软硬件结合法,此波形发生器设计方法同时兼具软硬件设计的优势:既具有纯硬件设计的快速、高性能,同时又具有软件控制

13、的灵活性、智能性。辅以键盘控制、LED显示等电路,设计出智能型函数波形发生器,采用软硬件结合的方法可以实现功能较全、性能更优的波形发生器,同时还可以扩展波形发生器的功能,比如利用单片机 AT89C51和 8 位 D/A 转换芯片 DAC0832 共同实现正弦波、方波、三角波和锯齿波这四种常见波形的发生,并且可以接受外部按键来切换波形,调节频率和幅值。此方案利用单片机构成的应用系统有较高的可靠性,系统的扩展和系统的配置灵活方便。容易构成各种规模的应用系统,且应用系统有较高的软硬件利用参数。单片机具有可编程性,硬件的功能描述可完全在软件上实现,而且设计时间短,成本低,可靠性高。因此选本方案作为设计

14、的方案。2.2 设计原理简介该信号发生器原理框图如图 2-1,总体原理为:利用 AT89C51 单片机构造低频信号发生器,可产生正弦波,方波,三角波,锯齿波四种波形,通过 C 语言对单片机的编程即可产生相应的波形信号,并可以通过键盘进行各种功能的转换和信号频率的控制,当输出的数字信号通过数模转换成模拟信号也就得到所需要的信号波形,通过运算放大器的放大输出波形,同时让显示器显示输出的波形信息。7AT89C51单片机DAC0832复位键键盘数码管显示图 2-1 信号发生器原理框图 本方案其主要模块包括复位电路、时钟信号、键盘控制、D/A 转化及 LED 显示。其各个模块的工作原理如下:(1)键盘模

15、块是用于控制信号输入的类型频率,当按键按下时,可以通过单片机编程读取闭合的键号,实现相应的信号输出。其步骤主要是 a、判断是否有键按下;b、去抖动,延时 100ms 左右;c、识别被按下的键号;d、处理,实现功能。(2)复位电路是为单片机复位使用,使单片机接口初始化;89C51 等 CMOS51 系列单片机的复位引脚 RET 是施密特触发输入脚,内部有一个上拉低电阻,当振荡器起振以后,在 RST 引脚上输出 2 个机械周期以上的高电平,器件便进入复位状态开始,此时 ALE、PSEN、P0、P1、P2、P4 输出高电平,RST 上输入返回低电平以后,便退出复位状态开始工作。该方案采用的是人工开关

16、复位,在系统运行时,按一下开关,就在 RST 端出现一段高电平,使器件复位。(3)D/A 转换也称为数模转换,是把数字量变换成模拟量的线性电路。单片机产生的数字信号通过 DAC0832 转化成模拟信号,输出相应的电流值,通过 LM358 集成运算放大器可以取出模拟量的电压值,最后利用示波器获得输出的模拟信号的波形;衡量数模转换的性能指标有分辨率、转换时间、精度、线性度等。(4)时钟信号是产生单片机工作的时钟信号,控制着计算机的工作节奏,可以通过提高时钟频率来提高 CPU 的速度。89C51 内部有一个可控的反相放大器,引脚XTAL1、XTAL2 为反相放大器输入端和输出端,在 XTAL1、XT

17、AL2 上外接 12MHZ 晶振和 30pF 电容便组成振荡器。时钟信号常用于 CPU 定时和计数。(5)LED 显示器用由若干个发光二极管按一定的规律排列而成,是一种能够将电能转化为可见光的固态的半导体器件,它可以直接把电转化为光用于与显示相关输出波形的信息,包括信号的类型和频率。82.3 设计功能(1) 按键 GW、SW、BW、QW、WW 分别控制信号频率的个位、十位、百位、千位、万位按键 BX 控制波形的转换选择按键 ZKBZ、ZKBJ 分别控制方波占空比的加减按键 FW 控制电路的复位滑动变阻器控制输出电压大小,控制波形的幅度(2)本方案输出利用 8 位 LED 显示器,该显示器为共阴

18、极,输入段选码低电平有效,用于显示输出信号的类型和频率,如 1KHz 正弦波,显示为 1.01000。根据设计要求,我们在系统启动时,还要在 LED 中显示“年级-专业.学号”2 秒钟,即显示“08-212.05” 。(3)利用 DAC0832 数模转换芯片实现信号的转换,并通过集成运算放大器将信号放大,输出信号能够在 Proteus 软件中的示波器中显示。(4)信号频率范围要求:11KHz。(5)输出信号幅度:05V。9第 3 章 主要电路元器件介绍3.1 AT89C51 单片机介绍3.1.1 单片机简介AT89C51 是一种带 4K 字节 FLASH 存储器(FPEROMFlash Pro

19、grammable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称单片机5。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051 是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT

20、89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部 RAM,32 个 I/O 口线,两个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。其外形及引脚排列如图 3-1 所示。图 3-1 AT89C51 引脚图103.1.2 单片机内部结构概述典型的 MC

21、S-51 单片机芯片集成了以下几个基本组成部分。 1 一个 8 位的 CPU2 128B 或 256B 单元内数据存储器(RAM)3 4KB 或 8KB 片内程序存储器(ROM 或 EPROM)4 4 个 8 位并行 I/O 接口 P0P3。5 两个定时/计数器。6 5 个中断源的中断管理控制系统。7 一个全双工串行 I/O 口 UART(通用异步接收、发送器) 8 一个片内振荡器和时钟产生电路。3.1.3 管脚功能说明 VCC:电源,接+5VGND:接地P0 口:是一个 8 位漏极开路输出型双向 I/O 端口。作为输出端口时,每位能以吸收电流的方式驱动 8 个 TTL 输入,对端口写 1 时

22、,又可作高阻抗输入端用。在访问外部程序或数据存储器时,它是时分多路转换的地址(低 8 位)/数据总线,在访问期间将激活内部的上拉电阻。 P1 口:P1 口是一个带有内部上拉电阻的 8 位双向 I/O 端口。P1 口的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过内部的上拉电阻把端口拉到高 电位,这时可作输入口。P2 口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 P2 口:P2 口是一个带有内部上拉电阻的 8 位双向 I/O 端口。P2 口的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过内部

23、的上拉电阻把端口拉到高电位,这时可作输入口。P2 口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流。 在访问外部程序存储器时和 16 位外部地址的外部数据存储器(如执行 MOVX DPTR)时,P2 口送出高 8 位地址。在访问 8 位地址的外部数据存储器(如执行 MOVX RI)时,P2 口引脚上的内容(就是专用寄存器(SFR)区中的 P2 寄存器的内容) ,在整个访问期间不会改变。 P3 口:P3 口是一个带有内部上拉电阻的 8 位双向 I/O 端口。P3 口的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过内部的上拉电阻把端口

24、拉到高电位,这时可作输入口。P3 口作输入口使用时,因为内部有上拉电阻,那些11被外部信号拉低的引脚会输出一个电流 RST:复位输入。晶振工作时,RST 脚将持续 2个机器周期高电平将使单片机复位。看门狗计时完成后,RST 脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能无效。DISRTO 默认状态下,复位高电平有效。ALE/:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8 位地PROG址的输出脉冲。在 flash 编程时,此引脚()也用作编程输入脉冲。在一般情况PROG下,ALE 以晶振六分之一的固定频率输出脉冲,可以用来

25、作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,ALE 脉冲将会跳过。如果需要,通过将地址为 8EH 的 SFR 的第 0 位置 “1” ,ALE 操作将无效。这一位置 “1” ,ALE 仅在执行 MOVX 或 MOVC 指令时有效。否则,ALE 将被微弱拉高。这个 ALE 使能标志位(地址为 8EH 的 SFR 的第 0 位)的设置对微控制器处于外部执行模式下无效。:外部程序存储器选通信号()是外部程序存储器选通信号。当PSENPSENAT89C51 从外部程序存储器执行外部代码时,在每个机器周期被激活两次,而在PSEN访问外部数据存储器时,将不被激活。PSEN/VPP

26、:访问外部程序存储器控制信号。必须接 GND。为了执行内部程序指EAEA令,应该接 VCC。在 flash 编程期间,也接收 12 伏 VPP 电压。EAEAXTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。3.2 DAC0832 简介3.2.1 DAC0832 的介绍DAC0832 是采样频率为八位的 D/A 转换芯片6,集成电路内有两级输入寄存器,使DAC0832 芯片具备双缓冲、单缓冲和直通三种输入方式,以便适于各种电路的需要(如要求多路 D/A 异步输入、同步转换等)。所以这个芯片的应用很广泛, D/A 转换器由 8 位输入锁存器、8 位 D

27、AC 寄存器、8 位 D/A 转换电路及转换控制电路构成。D/A 转换结果采用电流形式输出。若需要相应的模拟电压信号,可通过一个高输入阻抗的线性运算放大器实现。运放的反馈电阻可通过 RFB 端引用片内固有电阻,也可外接。DAC0832 逻辑输入满足 TTL 电平,可直接与 TTL 电路或微机电路连接。3.2.2 DAC0832 的管脚功能D0D7:8 位数据输入线,TTL 电平,有效时间应大于 90ns(否则锁存器的数据会出错);12 ILE:数据锁存允许控制信号输入线,高电平有效; CS:片选信号输入线(选通数据锁存器) ,低电平有效; WR1:数据锁存器写选通输入线,负脉冲(脉宽应大于 5

28、00ns)有效。由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,

29、其值与 IOUT1 值之和为一常数; Rfb:反馈信号输入线,改变 Rfb 端外接电阻值可调整转换满量程精度; Vcc:电源输入端,Vcc 的范围为+5V+15V; VREF:基准电压输入线,VREF 的范围为-10V+10V; AGND:模拟信号地 DGND:数字信号地3.2.3 DAC0832 内部结构及功能DAC0832 中有两级锁存器,第一级锁存器称为输入寄存器8,它的锁存信号为ILE;第二级锁存器称为 DAC 寄存器,它的锁存信号为传输控制信号XFER。因为有两级锁存器,DAC0832 可以工作在双缓冲器方式,即在输出模拟信号的同时采集下一个数字量,这样能有效地提高转换速度。此外,两

30、级锁存器还可以在多个 D/A 转换器同时工作时,利用第二级锁存信号来实现多个转换器同步输出。DAC0832 逻辑框图和引脚排列如图 3-2 所示图 3-2 DAC0832 逻辑框图和引脚排列13 图 3.2.1 中 LE 为高电平、CS和1WR为低电平时,1LE为高电平,输入寄存器的输出跟随输入而变化;此后,当1WR由低变高时,1LE为低电平,资料被锁存到输入寄存器中,这时的输入寄存器的输出端不再跟随输入资料的变化而变化。对第二级锁存器来说,XFER和2WR同时为低电平时,2LE为高电平,DAC 寄存器的输出跟随其输入而变化;此后,当2WR由低变高时,2LE变为低电平,将输入寄存器的资料锁存到

31、 DAC 寄存器中。3.3 数码显示管3.3.1 数码管原理及分类 LED 发光器件一般常用的有两类:数码管和点阵。常用的数码管一般为 8 字型数码管,分为 A、B、C、D、E、F、G、DP 八段,其中 DP 为小数点。数码管常用的有 10根管脚,每一段有一个管脚,另外两根管脚为一个数码管的公共端。从尺寸上分,LED数码管的种类很多,常用的有 0.3、0.5、0.8、1.0、1.2、1.5、1.8、2.3、3.0、4.0、5.0 等。一般小于 1.0 的为单管芯,1.21.5 为双管芯,1.8 以上的为 3 个以上管芯,因而它们的供电电压要求不同,一般每个管芯的压降为 2.1V 左右。通常,0

32、.8 以下采用 5V 供电,1.02.3 采用 12V 供电,3.0 以上的选择更高电压供电。从电路上分,数码管又可分为共阴极和共阳极两种。结构分别如图 3-3,3-4 所示。图 3-3 共阴极图 图 3-4 共阳极图 图 3-5 管脚图其中:图 3-5 为管脚图,从 ag 管脚输入不同的字段码,可显示不同的数字或字符(其字形码见表 3-1) 。可见共阴极和共阳极的字段码互为反码 。14表 3-1 字段码表显示字符共阴极字码段共阳极字码段显示字符共阴极字码段共阳极字码段03FHC0HC39HC6H106HF9HD5EHA1H25BHA4HE79H86H34FHB0HF71H8EH466H99H

33、P73H8CH56DH92HU3EHC1H67DH82HT31HCEH707HF8HY6EH91H87FH80HL38HC7H96FH90H8FFH00HA77H88H“灭”00FFHB7CH83H3.3.2 数码管的工作方式显示器的工作方式分为静态显示方式和动态显示方式两种。静态显示方式就是显示器在显示一个字符时,相应的发光二极管恒定的导通或截止,例如 a、b、c、d、e、f 导通,g 截止时显示“0” ,这种使显示器显示字符的字形数据常称为段数据。静态显示方式的每一个七段显示器,需要由一个 8 位并行口控制。优点是显示稳定,提高了工作效率,缺点是位数较多时显示口随之增加。动态显示方式是一位

34、一位的轮流点亮各位显示器,对于每一位显示器来说,每隔一段时间点亮一次。显示器的亮度既与导通电流有关,也与点亮时间和间隔时间的比例有关。调整电流和时间参数可以实现亮度较高较稳定的显示,如显示器的位数不大于 8 位,则控制显示器公共极的电位只需要一个 8 位口(位数据口) ,控制字形也需要一个 8 位口(段数据口) 。1LED 静态显示所谓静态显示方式,就是当显示器显示某一个字符时,相应的发光二极管恒定地导通或截止。静态显示时,较小的电流能得到较高的亮度。这是由于显示器的各位相互独立,而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止(如图 3-6 所示) 。当显示器位

35、数很少(仅一、二位)时,采用静态显示方式是合适的。当位数较多时,用静态显示所需的 I/O 口太多,占用太多的硬件资源。故在位数较多时往往采用动态显示方式。15LED 静态显示时,其公共端直接接地(共阴极)或接电源(共阳极) ,各段选线分别与 I/O 口线相连。要显示字符,直接在 I/O 线上输出相应的字段码。a b c d e f g dpI/O(1)a b c d e f g dpI/O(2)a b c d e f g dpI/O(1)a b c d e f g dpI/O(2)图 3-6 LED 静态显示2LED 动态显示方式LED 动态显示是将所有的数码管的段选线并接在一起,用一个 I/

36、O 口控制,公共端不是直接接地(共阴极)或电源(共阳极) ,而是通过相应的 I/O 口线控制。如图 3-7 所示。 D3D2D1D0I/O(1)I/O(2)D3D2D1D0I/O(1)I/O(2)图 3-7 LED 动态扫描设数码管为共阳极,它的工作过程为:第一步使右边第一个数码管的公共端 D0 为1,其余的数码管的公共端为 0。同时在 I/O(1)上送右边第一个数码管的字段码,这时,只有右边第一个数码管显示,其余不显示;第二步使右边第二个数码管的公共端 D1 为161,其余的数码管的公共端为 0,同时在 I/O(1)上送右边第二个数码管的字段码。这时,只有右边第二个数码管显示,其余不显示,依

37、此类推,直到最后一个,这样四个数码管轮流显示相应的信息,一个循环完后,下一循环又这样轮流显示,从计算机的角度看是一个一个的显示,但由于人的视觉滞留,只要循环的周期足够快,看起来所有的数码管都是一起显示的了。这就是动态显示的原理。而这个循环周期对于计算机来说很容易实现。所以在单片机中经常用到动态显示。 四、LED 显示器与单片机的接口LED 显示器从译码方式上有硬件译码方式和软件译码方式;从显示方式上有静态显示方式和动态显示方式,在使用时可以把它们组合起来。在实际应用时,如果数码管个数较少,通常用硬件译码静态显示,在数码管个数较多时,则通常用软件译码动态显示。 3.4 LM358 简介3.4.1

38、LM358 的介绍LM358 是常用的双运放,这里我们介绍一下它的一些资料。简介: LM358 里面包括有两个高增益、独立的、内部频率补偿的双运放, 适用于电压范围很宽的单电源,而且也适用于双电源工作方式,它的应用范围包括传感放大器、直流增益模块和其他所有可用单电源供电的使用运放的地方使用。LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器,适合于电源电压范围很宽的单电源使用,也适用于双电源工作模式,在推荐的工作条件下,电源电流与电源电压无关。它的使用范围包括传感放大器、直流增益模组,音频放大器、工业控制、DC 增益 部件和其他所有可用单电源供电的使用运算放大器的场合。LM3

39、58 的封装形式有塑封 8 引线双列直插式和贴片式。内部结构图如图 3-8 所示。17图 3-8 LM358 引脚结构图3.4.2LM358 的特点. 内部频率补偿. 低输入偏流. 低输入失调电压和失调电流. 共模输入电压范围宽,包括接地. 差模输入电压范围宽,等于电源电压范围. 直流电压增益高(约 100dB) . 单位增益频带宽(约 1MHz) . 电源电压范围宽:单电源(330V);. 双电源(1.5 15V). 低功耗电流,适合于电池供电. 输出电压摆幅大(0 至 Vcc-1.5V)18第 4 章单元电路的硬件设计4.1 总体硬件设计 单片机应用系统的硬件电路设计包含两部分内容:一是系

40、统扩展,即单片机内部的功能单元(如 ROM、I/O、定时/计数器等)容量不能满足应用系统的要求时,必须在片外进行扩展,选择适当的芯片,设计适当的电路。二是系统配置,即按照功能要求配置外围设备如显示器、D/A 转换等,要设计合适的电路。系统的扩展和模块设计应遵循下列原则:(1)尽可能选择标准化、模块化的典型电路,提高设计的成功率和结构的灵活性。(2)系统的扩展与外围设备配置的水平应充分满足应用系统的功能要求。(3)硬件结构应结合应用软件方案一并考虑。硬件结果与软件方案会产生相互影响,考虑的原则是:软件能实现的功能尽可能由软件来实现,以简化硬件结构。但必须注意,由软件实现的硬件功能,其响应时间要比

41、直接用硬件响应来的长,而且占用 CPU 时间。所以,选择软件方案时,要考虑到这些因素12。(4)可靠性及抗干扰性设计是硬件系统设计不可缺少的部分,它包括芯片、器件选择,去耦滤波等。(5)单片机外接电路较多时,必须考虑其驱动能力。驱动能力不足时,系统工作不可靠,解决的办法是增加驱动能力,增设线驱动器或减少芯片功耗,降低总线负载。(6)系统的扩展及各功能模块的设计在满足系统功能要求的基础上,应适当留有余地,以备将来修改、扩展之需。(7)在考虑硬件总体结构的同时要注意通用性的问题。19 根据以上原则,进行硬件设计。系统采用较为普及的 89C51 单片机作为系统的核心。它不但容易实现设计指标,而且还有

42、较好的性价比。(1)程序存贮器89C51 内部自带 8K 的 ROM,512B 的 RAM,所以不需要对其扩展存储器。(2)键盘接口矩阵式键盘适用于按键数量较多的场合,系统采用了行列式键盘设计即矩阵键盘,用 I/O 线组成行、列结构,按键设置在行列的交点上,24 的行列结构可构成 8 个键的键盘。因此,在按键数量较多时,可以节省 I/O 线。按键的识别方法有两种,一种为扫描法,另一种为线反转法。此设计采用了行列式及与之相适应的行列扫描法。(3)数码管驱动本设计实现了 89C51 的 I/O 口对 24 键盘和 8 位数码管显示的控制。(4)D/A 转换本设计 D/A 转换部分采用 DAC083

43、2 芯片.(5)信号变换部分对信号的变换部分采用四运放集成芯片 LM358,它采用 8 脚双列直插塑料封装,它的内部包含两组形式完全相同的运算放大器。(6)可靠性方面在使用应用系统时,可能会受到多种干扰的侵袭,直接影响到系统的可靠性,因此,本系统适当加入去耦电容,以减少干扰,确保精度。4.2 单片机引脚分配XTAL1、XTAL2:外接电路,产生时钟信号;RST:外接复位电路;P0:外接数模转换与放大电路,波形信号输出;P1:外接矩阵键盘;P2:LED 显示器段选码;P3:LED 显示器位选码;信号幅度调节由 DAC0832 的 VREF 接口控制。4.2 单片机外围电路介绍4.3.1 时钟电路

44、 AT89C51 中有一个用于构成内部振荡器的高增益反相放大器,引脚 XTAL1 和XTAL2 分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶休20或陶瓷谐振器一起构成自激振荡器,振荡电路参见图 4-1。外接石英晶体(或陶瓷振器)及电容 C1, C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容 C1, C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,这里选择使用石英晶休,我们的电容使用 30pF。如使用陶瓷谐振器的话,应选择 40pF 士 10pF 的容值的电容。也可以采用外部时钟。采用外部时

45、钟的电路的情况时,外部时钟脉冲接到 XTAL1端,即内部时钟发生器的输入端,XTAL2 则悬空。图 4-1 时钟振荡电路4.3.2 复位电路 当 MCS-5l 系列单片机的复位引脚 RST(全称 RESET)出现 2 个机器周期以上的高电平时,根据应用的要求,复位操作通常有两种基本形式:上电复位和上电或开关复位。上电复位要求接通电源后,自动实现复位操作。上电或开关复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容 C3 的充电和反相门的作用,使 RST 持续一段时间的高电平。当单片机已在运行当中时,按下复位键 K 后松开,也能使 RST 为一

46、段时间的高电平,从而实现上电或开关复位的操作。单片机的复位操作使单片机进入初始化状态,其中包括使程序计数器 PC0000H,这表明程序从 0000H 地址单元开始执行。单片机冷启动后,片内 RAM 为随机值,运行中的复位操作不改变片内 RAM 区中的内容,21 个特殊功能寄存器复位后的状态为确定值,复位是任何微机系统执行的第一步,使整个控制芯片回到默认的硬件状态下。51 单片机的复位是由 RESET 引脚来控制的,此引脚与高电平相接超过 24 个振荡周期后,51 单片机即进入芯片内部复位状态,而且一直在此状态下等待,直到 RESET 引脚转为低电平后,才检查 EA 引脚是高电平或低电平,若为高

47、电平则执行芯片内部的程序代码,若为低电平便会执行外部程序。51 单片机在系统复位时,将其内部的一些重要寄存器设置为特定的值,至于内部 RAM 内部的数据则不变。21图 4-2 复位电路4.3.3 键盘接口电路本系统键盘结构如图 4-3 示。图 4-3 系统键盘实现工作原理如下:1检测键盘上是否有键按下:将行线送入低电平,列线送入高电平。读入 P1 口的状态来判别。其具体过程如下:P1 口输出 0FH,即所有行线置成高电平,所有列线置成低电平,然后将 P1 口状态读入与 0FH 比较。如果有键按下,总会有一根行线电平被拉22至低电平,从而使行输入状态不全为 1。2识别键盘中哪一个键按下:确认有键

48、按下后,保存行扫描时有键按下时的状态 X 。P1 口输出 F0H,进行列扫描,保存列扫描状态 Y,取出键值 Z=X|Y.例如第一行第一列有键按下,那么行扫描读入的状态为 00001110,列扫描读入的状态为 11100000,最后键值 Z=11101110=EEH,然后转去执行相应的服务程序。4.3.4 数模转换电路 由于单片机产生的是数字信号,要想得到所需要的波形,就要把数字信号转换成模拟信号,所以该文选用价格低廉、接口简单、转换控制容易并具有 8 位分辨率的数模转换器 DAC0832。连接电路如图 4-4 所示。DAC0832 主要由 8 位输入寄存器、8 位 DAC寄存器、8 位 D/A

49、 转换器以及输入控制电路四部分组成。但实际上,DAC0832 输出的电量也不是真正能连续可调,而是以其绝对分辨率为单位增减,是准模拟量的输出。DAC0832 是电流型输出,在应用时外接运放 LM358 使之成为电压型输出。根据对 DAC0832 的数据锁存器和 DAC 寄存器的不同的控制方式,DAC0832 有三种工作方式:直通方式、单缓冲方式和双缓冲方式。本设计选用直通方式。DAC0832 的数据口和单片机的 P0 口相连。CSDA:片选信号输入线(选通数据锁存器) ,低电平有效;WR:数据锁存器写选通输入线,负脉冲(脉宽应大于 500ns)有效。由ILE、CS、WR1 的逻辑组合产生 LE

50、1,当 LE1 为高电平时,数据锁存器状态随输入数据线变换,LE1 的负跳变时将输入数据锁存;图 4-4 数模转换放大电路4.3.5 幅度控制电路如图 4-5 所示,在 DAC0832 的 VREF 端接入一个变阻器,这样就可以对输出波形幅23度连续可调。其幅度调节原理为:由 D/A 的模拟输出公式。当与 B 为常量时,改变 Vr 的大小可以相应改变,即改变波形的幅值。由电路图 4.3.8 可以看出是由外部电源提供一个+5 V 的电压,这里通过串联一个滑动变阻器 R1。通过改变滑动变阻器 R1 的大小改变 Vr当 Vr 线性变化时也就实现了波形幅值的连续可调。图 4-5 幅度控制电路4.3.6

51、 LED 显示电路如图 4-6 所示在 LED 显示屏上显示出所调的频率、波形代码。本机显示采用软件译码动态显示,系统显示电路如图 4.3.9 所示。采用软件译码动态显示的理由如下:1)如果用静态显示,单片机的接口资源肯定不够用,那么还要进行接口的扩展,增加了系统的复杂度;2)如果要制成印刷线路板,得占相当大一块面积;3)另外,采用动态显示,可以明显的降低功耗,因为每一时刻只有一个 LED 发光,其功耗为静态显示的 18。一个 LED 最大电流为 120mA,如用静态显示,8 个 LED 就耗电流960mA,那么变压器就得选 32V32W,价格提高近一倍,稳压块得选 7805C(Im=1A),

52、这种管是椭圆壳,在印刷线路板上也得占相当大的面积。综上分析,采用动态显示才是最经济的方案。 在显示的时候,只要把显示的字码输送到 P2 口,再经过 74LS373 进行数据锁存,P3 口作为位选控制信号。由于采用的是共阴极数码管,当需要显示哪一位的时候,只要在相应的位选控制信号输出低电平就行。例如,要在第一个数码管显示 P,那么在 P2 口就要输出 73H 字段码,同时 P3 口输出 FEH 位选码。24图 4-6 LED 显示电路第 5 章系统软件设计5.1 程序流程图 首先对程序初始化,静态显示 08-212.05 两秒,然后判断是否有键值按下,若有键值按下则计算相关参数,一方面利用中断定

53、时和查询查表输出波形,另一方面送段选口和位选口数据使 LED 显示相关波形类型和频率,最后反馈回去构成循环,判断按键相关信息。其程序框图如图 5-1 所示。25开 始显示 08-212.05 2 秒系统初始化按键是否按下计算相关参数定时中断送显示端口查询选择波形波形输出LED 显示图 5-1 软件设计程序流程图5.2 软件整体设计本系统的软件包括以下几个程序模块:(1)初始化程序;(2)显示程序;(3)键盘扫描程序与处理程序;(4)定时器 0 服务程序;(5)正弦波发生程序及其服务程序;(6)三角波发生程序;(7)方波发生程序;(8)锯齿波发生程序。265.3 程序模块功能设计5.3.1 系统

54、初始化设计复位程序完成如下工作:1.显示 2 秒的 08-212.05 初始界面;2.初始频率设置为 888HZ;3.将频率值转换成定时器的初值;4.置定时器 0 工作于方式 1,即 16 位定时器方式,送入定时器 0 定时初值,启动定时器 0 工作;5.显示初始频率和产生波形的类型;6.转键盘扫描程序。5.3.2 键盘扫描程序与处理程序设计键盘采用矩阵式键盘(如表 5-1 所示) ,由软件产生相应编码,再根据相应编码调用相应的子程序。编码产生原理:P1 口低四位表示行,高四位表示列。键盘所在的行和所在的列用 0 表示,其它的行和列用 1 表示。如第一行第一列 GW 编码值为(11101110

55、)2=0 xee,第二行第三列 ZKBJ 编码值为(10111101)2=0 xbd。表 5-1 键盘处理程序键值对应处理程序0 x7dkey1 键选择发波类型(1 为正弦波,2 为三角波,3 为方波)0 xeekey2 个位频率调整(GW)0 xdeKey3 十位频率调整(SW)0 xbeKey4 百位频率调整(BW)0 x7eKey5 千位频率调整(QW)0 xedKey6 万位频率调整(WW)0 xddKey7 占空比增大调整(ZKBZ)0 xbdKey8 占空比减小调整(ZKBJ)键盘扫描源程序如下:void judge(void) unsigned char X,Y,Z;27 P1

56、= 0 xff; P1 = 0 x0f; /先对 P1 置数行扫描 if(P1 != 0 x0f) /判断是否有键按下 delay10ms(); /延时,软件去干扰 if(P1 != 0 x0f) /确认按键按下 X = P1; X = P1; /保存行扫描时有键按下时状态 P1 = 0 xf0; /列扫描 Y = P1; /保存列扫描时有键按下时状态 Z = X | Y; /取出键值 switch ( Z ) /判断键值(那一个键按下) case 0 x7d: key1(); break; case 0 xee: key2(); break; /对键值赋值 case 0 xde: key3(

57、); break; case 0 xbe: key4(); break; case 0 x7e: key5(); break; case 0 xed: key6(); break; case 0 xdd: key7(); break; case 0 xbd: key8(); break; 285.3.3 正弦波的产生图 5-2 正弦波的仿真正弦波波形设计通过查表指令得出。正弦程序如下:#includemain()int n,i=0,j,k; float y=0, a=3.1415926,b=0,c=2.5000,d=0; for(n=0;n=64;n+) y=2.5*sin(a*n/128)+

58、2.5; b=y; /b,y 为当前幅度值 d=b-c; /d 为递增率 j=d/0.0196; /j 为数字递增率,0.0196 为 k=128+j; /k 为数字量 printf(“%d,%f,%f,%d,%dn” ,i,y,d,j,k); i+;295.3.4 锯齿波的产生图 5-3 锯齿波的仿真锯齿波中的斜线用一个个小台阶来逼近,在一个周期内从最小值开始逐步递增,当达到最大值后又回到最小值,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同周期的锯齿波。锯齿波发生原理与方波类似,只是高低两个延时的常数不同,所以用延时法,来产生锯齿波。锯齿波程序else

59、if(choice = 4) /锯齿波 if(e = 255) P0 = 255 - e; else P0=0; e+; 305.3.5 方波的产生图 5-4 方波的仿真方波发生程序运用延时的方法实现,只用一个主程序即可,因为产生一个方波只需要高低两个数,所以程序比较简单。要给一个频率,再计算所需的延时即可。方波程序如下:else if(choice = 3 ) / 方波 k = zk * 256 / 100; d +; if(d = k) P0 = 0 x00; else P0 = 0 xff; 315.3.6 三角波的产生图 5-5 三角波的仿真三角波中的斜线用一个个小台阶来逼近,在一个周

60、期内从最小值开始逐步递增,当达到最大值后再用同样逼近方法,如此循环,当台阶间隔很小时,波形基本上近似于直线。适当选择循环的时间,可以得到不同周期的三角波。三角波发生原理与锯齿波类似,只是高低两个延时的常数不同,所以用延时法,来产生三角波。三角波程序如下:else if(choice = 2 ) /三角波 if(c = 128) P0 = c; else P0 = 255 - c; c +; 325.4 软件仿真在 protues 中绘制电路图,加载单片机程序,有如下仿真:(1)不同波形的仿真,如图 5.6图 5-6 不同波形的仿真(2)不同频率的波形,以正弦波为例,如图 5.7如图 5-7 不

温馨提示

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

评论

0/150

提交评论