精品毕业论文基于单片机的数字电压表的设计与实现_第1页
精品毕业论文基于单片机的数字电压表的设计与实现_第2页
精品毕业论文基于单片机的数字电压表的设计与实现_第3页
精品毕业论文基于单片机的数字电压表的设计与实现_第4页
精品毕业论文基于单片机的数字电压表的设计与实现_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

摘摘 要要 单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运 算,逻辑运算、数据传送、中断处理)的微处理器(CPU)。单片机可单独地完成现代 工业控制所要求的智能化控制功能,这是单片机最大的特征。单片机控制系统能够 取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并 能够实现智能化。 本文介绍一种以 89S52 单片机为主要控制器件,采用常见的 ADC0809 作为 A/D 转换器的一种电压测量电路。主要包括硬件电路设计和软件程序设计。硬件电 路主要包括数据采集模块,数据处理模块(单片机系统)和输出显示模块。在数据 采集模块中,主要是在对电压信号采样前,用运算放大器 LM324 进行电压放大和电 阻进行衰减,后采用 ADC0809 进行转换,将转换得到的信号送入单片机中,利用 74HC4051 实现多档自动换挡及测量。在数据处理模块(单片机系统)中,通过 89S52 单片机将 A/D 转换后得到的信号进行处理。显示模块中,采用 LCD 液晶模块 1602 显示。在软件设计方面,主要包括初始化程序,中断程序,AD 转换程序,档 位选择程序和显示程序等几个子程序模块。 系统可实现测量直流电压范围 0-20V,可实现 20V 档,2V 档,200MV 档间自 动换档,使用 LCD 液晶显示测量的电压值。 关键字关键字:电压测量;自动换档;ADC0809;1602 液晶模块 ABSTRACT SCM is a kind of integrated circuit chip, using VLSI technology have data processing capabilities (such as arithmetic, logic operation, data transmission, interrupt processing) microprocessor (CPU).SCM can be done alone by the request of modern industrial control intelligent control function,,this is the biggest feature of SCM .Single chip microcomputer control system to replace the use of complex electronic circuits or digital circuit control system, software control can be achieved, and to achieve intelligent. This paper introduces a 89S52 microcontroller as the main control device, adopts the common ADC0809 as A/D converter, a voltage measuring circuit .Mainly includes the design of hardware circuit and software program design. The hardware electric circuit mainly comprises a data acquisition module, data processing module (SCM system) and the output display module .In the data acquisition module, mostly in the voltage signal before sampling, with operational amplifier voltage amplification, after using ADC0809 conversion, will convert the received signal into the microcontroller, using 74HC4051 to realize automatic measurement .In a data processing module (SCM system), through the 89S52 single-chip A/D converted signals are processed .The display module, using LCD liquid crystal display module 1602.In software design, including initialization, interrupt, AD conversion process, gear selection procedures and display program, subroutine module. The system can realize the measurement of the DC voltage range of 0-20V, can be realized 20V files, 2V files, 200MV files shift, the use of LCD liquid crystal display measured voltage value. Keywords: Voltage measurement; automatic shift; ADC0809; 1602 LCD module 目 录 第第 1 1 章章 绪论绪论.1 1.11.1 本设计的研究背景和研究目的本设计的研究背景和研究目的 1 1.21.2 单片机单片机1 1.2.1 单片机简介.1 1.2.2 单片机的应用领域.2 1.2.3 单片机的应用领域.2 1.2.4 单片机应用系统的开发过程.3 1.31.3 数字电压表数字电压表3 1.3.1 数字电压表的特点.3 第第 2 2 章章 设计任务及任务分析设计任务及任务分析.5 2.12.1 设计任务及要求设计任务及要求.5 2.22.2 设计总体方案及方案论证设计总体方案及方案论证5 2.32.3 数据输入模块的方案与分析数据输入模块的方案与分析6 2.3.1 芯片选择.6 2.3.2 实现方法介绍.6 2.3.3 输入模块流程图.6 2.42.4 A/DA/D 模块的方案与分析模块的方案与分析 7 2.4.1 芯片的选择.7 2.4.2 实现方法介绍.7 2.4.3 A/D 模块流程图8 2.52.5 数据处理及控制模块数据处理及控制模块.8 2.5.1 芯片选择.8 2.5.2 实现方法介绍.9 2.5.3 数据处理及控制模块流程图.9 2.62.6 显示模块显示模块9 2.6.1 芯片选择.9 2.6.2 实现方法介绍.10 2.6.3 显示模块流程图.10 第第 3 3 章章 硬件设计硬件设计11 3.13.1 数据输入模块原理图数据输入模块原理图 .11 3.23.2 A/DA/D 模块原理图模块原理图12 3.33.3 控制模块原理控制模块原理.12 3.4 显示模块原理图显示模块原理图13 第第 4 4 章章 软件设计软件设计14 4.14.1 主程序流程主程序流程 14 4.24.2 子程序介绍子程序介绍 15 4.2.1 初始化程序.15 4.2.2 转换子程序.15 4.2.3 显示子程序.16 第第 5 5 章章 主要芯片功能介绍主要芯片功能介绍.17 5.15.1 AT89S52AT89S52 的功能简介的功能简介 17 5.1.1 引脚功能说明.18 5.25.2 ADC0809ADC0809 功能简介功能简介19 5.2.1 ADC0809 芯片简介.19 5.2.2 引脚功能说明.20 5.35.3 LCD1602LCD1602 功能简介功能简介21 5.3.1 LCD1602 芯片简介21 5.3.2 引脚功能说明.21 5.4 CD4051 的功能介绍.22 5.4.1 CD4051 芯片简介.22 5.4.2 引脚功能说明22 5.55.5 LM324LM324 的功能介绍的功能介绍.23 5.5.1 LM385 的功能简介23 5.5.2 引脚功能说明.24 5.65.6 78057805 的功能介绍的功能介绍24 5.6.1 7805 的功能简介24 5.6.2 引脚功能说明.24 第第 6 6 章章 软硬件综合调试软硬件综合调试.25 6.16.1 测试结果分析测试结果分析.25 6.26.2 软件调试软件调试26 6.36.3 硬件调试硬件调试27 结结 论论.28 参参 考考 文文 献献.29 谢谢 辞辞.30 附录附录 1 电路原理图电路原理图31 附录附录 2 静态电路图静态电路图32 附录附录 3 动态显示图动态显示图33 附录附录 4 程序清单程序清单 34 基于单片机的数字电压表设计与实现 1 第第 1 1 章章 绪论绪论 1.11.1 本设计的研究背景和研究目的本设计的研究背景和研究目的 数字电压表(Digital Voltmeter)简称 DVM,它是采用数字化测量技术,把连 续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。 目前,由各种单片 A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、 工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。与此同 时,由 DVM 扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技 术提高到崭新的水平。 传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单 片机的数字电压表,精度高、抗干扰能力强,可扩展性强、集成方便,还可与 PC 进行实时通信。正是由于数字电压表的以上优点,本次毕业设计选择制作一个基于 单片机的数字电压表。 1.21.2 单片机单片机 1.2.11.2.1 单片机简介单片机简介 单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运 算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM), 只读程序存储器(ROM),输入输出电路(I/O 口),可能还包括定时计数器,串行通信 口(SCI),显示驱动电路(LCD 或 LED 驱动电路),脉宽调制电路(PWM),模拟多路 转换器及 A/D 转换器等电路集成到一块单块芯片上,构成一个最小的然而完善的计 算机系统。这些电路能在软件的控制下准确、迅速、高效地完成程序设计者事先规 定的任务。 单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统, 可以软件控制来实现,并能够实现智能化,现在单片机控制范畴无所不在,例如通 2 信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用 领域越来越广泛。 1.2.21.2.2 单片机的应用领域单片机的应用领域 单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智 能化管理及过程控制等领域,大致可分如下几个范畴: (1)在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优 点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频 率、湿度等物理量的测量。 (2)在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智 能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 (3)在家用电器中的应用 现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空 调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 (4)在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在 计算机网络和通信设备间的应用提供了极好的物质条件。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广 泛的用途。 1.2.31.2.3 单片机的应用领域单片机的应用领域 纵观单片机的发展过程大致有: (1)低功耗 CMOS 化 MCS-51 系列的 8031 推出时的功耗达到 630mW,而现在的单片机普遍都在 基于单片机的数字电压表设计与实现 3 100mW 左右。 (2)微型单片化 现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只 读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成 在一块单一的芯片上,增强型的单片机集成了如 A/D 转换器、PMW(脉宽调制电路)、 WDT(看门狗)、有些单片机将 LCD(液晶)驱动电路都集成在单一的芯片上,这样单 片机包含的单元电路就更多,功能就越强大。 (3)主流与多品种共存 现在虽然单片机的品种繁多,各具特色,但仍以 80C51 为核心的单片机占主流, 兼容其结构和指令系统的有 PHILIPS 公司的产品,ATMEL 公司的产品和中国台湾 的 Win bond 系列单片机。 1.2.41.2.4 单片机应用系统的开发过程单片机应用系统的开发过程 单片机的应用系统随着其用途不同,其硬件和软件均不相同,也即单片机的最 初的选型都很重要,原则上是选择高性价比的单片机,硬件软件化是提供系统性价 比的有效方法,尽量减少硬件成本,多用软件来实现相同的功能,这样也可大大提 高系统的可靠性。 虽然单片机的硬件选型不尽相同,软件编写也千差万别,但系统 的研制步骤和方法是基本一致的,一般都分为总体设计、硬件电路的构思设计、软 件的编制和仿真调试几个阶段。 1.31.3 数字电压表数字电压表 数字电压表简称 DVM,它是采用数字化测量技术,把连续的模拟量(直流输入 电压)转换成不连续、离散的数字形式并加以显示的仪表。 1.3.11.3.1 数字电压表的特点数字电压表的特点 (1)显示清晰直观,读数准确 数字电压表采用先进的数显技术,使测量结果一目了然,只要仪表不发生跳读 4 现象,测量结果就是唯一的。 (2)准确度高 准确度是测量结果中系统误差与随机误差的综合。 (3)分辨率高 数字电压表在最低电压量程上末位 1 个字所代表的电压值,称为仪表的分辨力, 它反映仪表灵敏度的高低。分辨力随显示位数的增加而提高。分辨率是指所能显示 的最小数字(零除外)与最大数字的百分比。 (4)测量范围宽 多量程 DVM 一般可测量 01000V 直流电压,配上高压探头还可测上万伏的高 压。 (5)扩展能力强 在数字电压表的基础上,还可扩展成各种通用及专用数字仪表、数字多用表 (DMM)和智能仪表,以满足不同的需要。 (6)测量速度快 数字电压表在每秒钟内对被测电压的测量次数,叫测量速率,单位是“次/S“。 它主要取决于 A/D 转换器的转换速率,其倒数是测量周期。 (7)输入阻抗高 数字电压表具有很高的输入阻抗,通常为 10M10000M,最高可达 1T。 (8)集成度高,微功耗 新型数字电压表普遍采用 CMOS 大规模集成电路,整机功耗很低。 (9)抗干扰能力强 基于单片机的数字电压表设计与实现 5 第第 2 2 章章 设计任务及任务分析设计任务及任务分析 2.12.1 设计任务及要求设计任务及要求 设计一个以单片机为核心的电压测量系统,可实现的功能为: (1) 实现对输入电压值的测量,能够测量电压为0-20V; (2) 精度达到 0.05V; (3) 实现 200MV、2V、20V 档位的自动切换; (4)使用液晶屏幕 LCD1602 进行显示; 2.22.2 设计总体方案及方案论证设计总体方案及方案论证 传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单 片机的数字电压表,精度高、抗干扰能力强,可扩展性强、集成方便,还可与 PC 进行实时通信。正是由于数字电压表的以上优点,本次毕业设计选择制作一个基于 单片机的数字电压表。 在本次设计中,数据输入模块,A/D 转换模块,数据处理及控制模块,显示模 块构成数字电压表的基本模块。如图 2.1 所示。 图 2.1 设计方案模块 数 据 输 入 模 块 A/D 转 换 模 块 数据处理及控制模块 输 出 显 示 模 块 6 在数据输入模块中,分为三路,经过分压后输入一个合适信号送入 A/D 转换器 中进行转换,模拟开关的控制信号控制通路的选择。 在 A/D 转换模块中,A/D 转换器的转换精度对测量电路极其重要,它的参数关 系到测量电路的性能。本设计采用逐次逼近式 A/D 转换器,它的性能比较稳定,转 换出的数据为 8 位并行接口,方便检测,具有很高的抗干扰能力,电路结构简单, 其缺点是测量精度不高。 在数据处理及控制模块中,通过 89S52 将 A/D 转换后的串行信号处理后,送到 单片机的 P0 端中,连接 LCD1602 用于显示。同时单片机控制模拟开关进行自动换 档。 在输出显示模块中,采用 LCD1602 液晶屏显示输入电压值,连接线较少,控制 方便,显示简洁且可控性强。 2.32.3 数据输入模块的方案与分析数据输入模块的方案与分析 2.3.12.3.1 芯片选择芯片选择 在输入数据模块中使用模拟开关 74HC4051 选择三路输入信号的其中一路送到 输出,利用接地电容对信号进行处理,利用运放 LM324 对输入的信号进行放大并送 到模拟开关的输入端。 2.3.22.3.2 实现方法介绍实现方法介绍 通过档位变换对处于不同量程的电压值输出到 AD 的输入端口,单片机自动选 择量程,并通过控制模拟开关将输出的电压信号送到 A/D。 2.3.32.3.3 输入模块流程图输入模块流程图 电 压 输 入 开关 A:200MV 档 (幅值) 开关 B:2V 档(幅值) 开关 C:20V 档(幅 值) 模 拟 开 关 A D 转 换 芯 基于单片机的数字电压表设计与实现 7 图 2.2 模块输入流程图 2.42.4 A/DA/D 模块的方案与分析模块的方案与分析 2.4.12.4.1 芯片的选择芯片的选择 ADC0809 是美国国家半导体公司生产的 CMOS 工艺 8 通道,8 位逐次逼近式 A/D 模数转换器。其内部有一个 8 通道多路开关,它可以根据地址码锁存译码后的 信号,只选通 8 路模拟输入信号中的一个进行 A/D 转换。是目前国内应用最广泛的 8 位通用 A/D 芯片。 2.4.22.4.2 实现方法介绍实现方法介绍 ADC0809 具有 8 路模拟开关,输出具有 TTL 三态锁存缓冲器,能直接连到单 片机数据总线上,从设计硬件电路角度来说,使硬件电路的设计变简单,便于手工 搭焊,使器件之间连线减少,便于调试。 上点复位 AT89S52 ADC0809 LCD 显示 串口通信 电源电路 图 2.3 AD 模块框图 在进行 A/D 转换时,通道地址先发送到 ADDAADDC 输入端。然后在 ALE 输 入端加一个正跳变脉冲,将通道地址锁存到 ADC0809 的内部地址锁存器中,这样对 应的模拟输入就和内部变换电路接通。为了启动 A/D 转换,必须在 START 端加一 8 个负的跳变信号,此后变换开始进行,标志 ADC0809 正在工作状态的信号 EOC 由 高电平变为低电平。变换结束,EOC 又由低电平变为高电平,此时在 OE 端加一个 高电平,即可打开数据线的三态缓冲器从 D0D7 读得变换后的数据。图 2.4 为其工 作时序图。 图 2.4 ADC0809 时序图 2.4.32.4.3 A/DA/D 模块流程图模块流程图 图 2.5 A/D 模块流程图 INT0 A/D 转换器 单片机 P2.0 P2.1 模拟开关 D1D8 电压输入 基于单片机的数字电压表设计与实现 9 AT89S52 显示模块 LCD1602 并行数据输入 控制模拟开关 数据输入 控制液晶屏 A / D 2.52.5 数据处理及控制模块数据处理及控制模块 2.5.12.5.1 芯片选择芯片选择 AT89S52 为 ATMEL 所生产的一种低功耗、高性能 CMOS8 位微控制器,具有 8K 在系统可编程 Flsah 存储器。 2.5.22.5.2 实现方法介绍实现方法介绍 在这个模块中,主要应用 89S52 将 A/D 转换器送来的 4 位 BCD 码进行处理, 根据 A/D 转换器的数据及溢出位等信号,来控制模拟开关进行自动换档。同时控制 液晶屏显示电压值。 在这里,我们采用 LCD1602 液晶显示屏,它内带一定字符的字库,我们只要把 对应数字的 ASC值,送到它的 8 位数据端,即可显示对应字符。因此,我们将得 到的四位 BCD 码进行处理转换,例如:数字 1 的 BCD 码为 0001,而 ASC值为 49,即为 31H,我们只要将采集得到的 BCD 码加上 30H,即可得到对应 ASC值。 我们利用 A/D 模块的溢出位可以判断,输入电压是否过量程。我们可以利用刚 才采集的数据,进行档位判断,例如:首先我们选择最低档 2V,当测的电压大于 2V 时,换到 5V 档,以此类推。利用 A/D 的过量程端判断,快速选择一个合适的量 程,显示数据。单片机控制液晶屏显示,我们将在下一模块中详细叙述。 2.5.3 数据处理及控制模块流程图数据处理及控制模块流程图 10 2.6 数据处理及控制模块流程图 2.62.6 显示模块显示模块 2.6.12.6.1 芯片选择芯片选择 本系统显示部分用的是 LCD 液晶模块,采用一个 162 的字符型液晶显示模块 LCD1602 。它具有重量轻,体积小,功耗低,可显示 192 种字符(5*7 点字型) , 32 种字符(5*10 点字符) ,可自编 8 种字符(5*7 或 5*10) ,指令功能强,可组合成 各种输入,显示,移位方式以满足不同的要求,接口简单方便可靠性高等优点。 2.6.22.6.2 实现方法介绍实现方法介绍 1602 液晶模块内部的字符发生存储器( CGROM)已经存储了 160 个不同的 点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和 日文假名等,每一个字符都有一个固定的代码 。 因为 1602 识别的是 ASCII 码,试验可以用 ASCII 码直接赋值,在单片机编 程中还可以用字符型常量或变量赋值 。 点阵图形式液晶由 M 行N 列个显示单元组成,对于内带字符发生器的控制 器来说,显示字符可让控制器工作在文本方式,根据在 LCD 上开始显示的行列号 及每行的列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应的代码 即可。 LCD1602 内置有英文字符,数字的字库,只要输入对应的 ASC 值,在利用 合适的控制指令就可显示,下表为它的基本控制指令。 表 2.1 LCD1602 寄存器选择控制表 RSRSR/WR/W 操作说明操作说明 0 00 写入指令寄存器(清除屏等) 0 01 读 busy flag(DB7),以及读取位址计数器(DB0DB6)值 1 10 写入数据寄存器(显示各字型等) 基于单片机的数字电压表设计与实现 11 1 11 从数据寄存器读取数据 2.6.32.6.3 显示模块流程图显示模块流程图 图 2.7 显示模块流程图 第第 3 3 章章 硬件设计硬件设计 3.13.1 数据输入模块原理图数据输入模块原理图 图 3.1 输入模块原理图 单片机控制 数据输入 LCD1602 液晶 显示屏 12 在上图中的主要元件有:运放 LM324 和模拟开关 74HC4051。 在上图中我们可以看到,输入测量电压从最左端输入,如果电压的范围在幅值 200MV 档,控制开关 BA=10,X2=X,电压直接输出到 IN 端后输出到 A/D 中,通 道 X1、X0 处于关闭状态;如果电压的范围在幅值 2V 档,控制开关 BA=00,X1=X,电压直接输出到 IN 端后输出到 A/D 中,通道 X2、X0 处于关闭状 态;如果电压的范围在幅值 20V 档,控制开关 BA=01,X0=X,电压直接输出到 IN 端后输出到 A/D 中,通道 X1、X2 处于关闭状态; 3.23.2 A/DA/D 模块原理图模块原理图 图 3.2 A/D 模块原理图 在图中,我们可以看到两个主要芯片,其中 ADC0809,7805。 其中 7805 芯片主要为 ADC0809 提供 5V 的电源供电。 12 号引脚 REF(+)为基准正电压输入端,必须保证是标准的 5V 电压输入, 而且必须稳定,由于此信号的轻微变化,都可以时输出有较大的变化,产生较大的 误差。 基于单片机的数字电压表设计与实现 13 3.33.3 控制模块原理控制模块原理 图 3.3 控制模块原理图 在上图中,可以看到控制芯片 89S52,它的 P3.0 接 ADC0809 的 START 端,P3.1 接 OE 端,P3.2 接 EOC 端,P3.3 接时钟 CLK 端,P3.4 接 ALE 端,9 脚接复位电路; 18,19 脚外接 12MHZ 晶振;P0 口接 LCD1602 的数据端,用于传输数据让液晶屏 显示; P2.5,P2.6,P2.7 分别接 LCD1602 的 RS、RW、E 控制端。 3.4 显示模块原理图显示模块原理图 图 3.4 LCD1602 原理图 上图是用于显示的液晶屏 LCD1602,其中 3 脚 VEE 用于调节显示的对比度,接 14 滑动变阻器接地;4 脚 RS 为数据指令选择端接单片机的 P1.2 口;5 脚 RW 为读写 控制端,接单片机的 P1.1 口;6 脚 E 为使能端,接单片机的 P1.0 口;714 脚为数 据输入和指令传送端;15,16 脚接+5V 和地。 第第 4 4 章章 软件设计软件设计 4.14.1 主程序流程主程序流程 N Y 开始 初始化 过量程 显示电压值打开下一档开关 等待下一次数据 接收 A/D 数据 处理数据 选择合适档位 基于单片机的数字电压表设计与实现 15 图 4.1 主程序流程图 4.24.2 子程序介绍子程序介绍 4.2.14.2.1 初始化程序初始化程序 初始化程序主要包括下面几个部分:设置中断,开启 A/D 转换器,对液晶屏的 初始化以及对一些中间变量的初始化。 部分程序如下: void writecomm(uchar comm) P0=comm; rs=0; rw=0; e=0; delay(5); e=1; delay(5); e=0; 4.2.24.2.2 转换子程序转换子程序 工作过程: (1) 当模拟量送至 IN0 后,CPU 将标识该通道编码的三位地址信号经数据线或 地址线输入到 ADDC、ADDB、ADDA 引脚上。 (2) 地址锁存允许 ALE 锁存这三位地址信号,启动命令 START 启动 A/D 转换。 (3) 转换开始,EOC 变低电平,转换结束,EOC 变为高电平。EOC 可作为中断 请求信号。 (4) 转换结束后,可通过执行 IN 指令,设法在输出允许 OE 脚上形成一个正脉 冲,打开三态缓冲器把转换的结果输入到 DB,一次 A/D 转换便完成了。 部分程序如下: While (1) ST=1; ST=0; 16 While (EOC=0); OE=1; getdata =P1; OE=0; 4.2.34.2.3 显示子程序显示子程序 在显示部分中,每次电压采集后,CPU 将数据送到 LCD 显示,将可能出现不 同档位电压值的显示。 显示部分的流程图: 图 4.3 显示部分的流程图 部分程序如下: if (s1=0) m=2; else if (s1=1) m=1; 第第 5 5 章章 主要芯片功能介绍主要芯片功能介绍 5.15.1 AT89S52AT89S52 的功能简介的功能简介 AT89S52 是美国 ATMEL 公司生产的低电平,高性能 CMOS 8 位单片机,片内 含 8k bytes 的可反复擦写的只读程序存储器(PEROM)和 256 bytes 的随机存取数据存 储器(RAM ),器件采用 ATMEL 公司的高密度、非易失性存储技术生产,与标准 MCS-51 指令系统及 8052 产品引脚兼容,片内置通用 8 位中央处理器(CPU)和 Flash 存储单元,32 个可编程 I/O 口线,3 个 16 位定时/计数器, 低功耗空闲和掉电模式。 功能强大的 AT89S52 单片机适合于许多较为复杂控制应用场合。 AT89S52 主要功能列举如下: (1)拥有灵巧的 8 位 CPU 和在系统可编程 Flash (2)晶片内部具有时钟振荡器(传统最高工作频率可至 12MHz) (3)内部程序存储器(ROM)为 8KB (4)内部数据存储器(RAM)为 256 字节 (5)32 个可编程 I/O 口线 (6)8 个中断向量源 (7)三个 16 位定时器/计数器 (8)三级加密程序存储器 (9)全双工 UART 串行通道 18 5.1.15.1.1 引脚功能说明引脚功能说明 图 5.1 AT89S52 管脚图 VCC:AT89S52 电源正端输入,接+5V。 VSS:电源地端。 XTAL1:单芯片系统时钟的反相放大器输入端。 XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了。 RESET:AT89S52 的重置引脚,高电平动作,当要对晶片重置时,只要对此引 脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51 便能完成系统重置 的各项动作。 EA/Vpp:“EA“表示存取外部程序代码之意,低电平动作,也就是说当此引脚接 低电平后,系统会取用外部的程序代码(存于外部 EPROM 中)来执行程序。 ALE/PROG:ALE 表示地址锁存器启用信号。AT89S52 可以利用这支引脚来触 发外部的 8 位锁存器(如 74LS373) ,将端口 0 的地址总线(A0A7)锁进锁存器 中,因为 AT89S52 是以多工的方式送出地址及数据。 PSEN:为程序储存启用,当 8051 被设成为读取外部程序代码工作模式时 (EA=0) ,会送出此信号以便取得程序代码,通常这支脚是接到 EPROM 的 OE 脚。 基于单片机的数字电压表设计与实现 19 5.25.2 ADC0809ADC0809 功能简介功能简介 5.2.15.2.1 ADC0809ADC0809 芯片简介芯片简介 ADC0809 具有 8 个通道的模拟输入线,在程序控制下对任意通道进行 A/D 转换。 模拟输入部分有 8 路多路开关,可由 3 位地址输入 ADDA、ADDB、ADDC 的 不同组合来选择,ALE 为地址锁存信号,高电平有效,锁存这三条地址输入信号。 主体部分是采用逐次逼近式的 A/D 转换电路,由 CLK 控制的内部电路的工作, START 为启动命令,高电平有效,启动 ADC0809 内部的 A/D 转换,当转换完成, 输出信号 EOC 有效,OE 为输出允许信号,高电平有效,打开输出三态缓冲器,把转 换后的结果送 DB。 图 5.2 ADC0809 管脚图 转换数据的传送 A/D 转换后得到的数据应及时传送给单片机进行处理。数据传 送的关键问题是如何确认 A/D 转换的完成,因为只有确认完成后,才能进行传送。 为此可采用下述三种方式。 (1)定时传送方式 对于一种 A/D 转换器来说,转换时间作为一项技术指标是已知的和固定的。例 如 ADC0809 转换时间为 128s,相当于 6MHz 的 MCS-51 单片机共 64 个机器周期。 20 可据此设计一个延时子程序,A/D 转换启动后即调用此子程序,延迟时间一到,转 换肯定已经完成了,接着就可进行数据传送。 (2)查询方式 A/D 转换芯片由表明转换完成的状态信号,例如 ADC0809 的 EOC 端。因此可 以用查询方式,测试 EOC 的状态,即可确认转换是否完成,并接着进行数据传送。 (3)中断方式 把表明转换完成的状态信号作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。 首先送出口地址并以信号有效时,OE 信号即有效,把转换数据送上数据总线,供单 片机接受。 5.2.25.2.2 引脚功能说明引脚功能说明 IN0IN7:8 路模拟量输入端。 2-12-8:8 位数字量输出端。 ADDA、ADDB、ADDC:3 位地址输入线, 选通 8 路模拟输入中的一路 。 ALE:地址锁存允许信号,输入,高电平有效。 START: A/D 转换启动脉冲输入端,输入一个正脉冲(至少100ns 宽) 使其启动(脉冲上升沿使 0809 复位,下降沿启动 A/D 转换)。 EOC: A/D 转换结束信号,输出,当 A/D 转换结束时,此端输出一个高 电平(转换期间一直为低电平)。 OE:数据输出允许信号,输入,高电平有效。当A/D 转换结束时,此端 输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一电源: +5V。 GND:地。 基于单片机的数字电压表设计与实现 21 5.35.3 LCD1602LCD1602 功能简介功能简介 5.3.15.3.1 LCD1602LCD1602 芯片简介芯片简介 LCD1602 是一个 162 的字符型液晶显示模块。它具有重量轻,体积小,功耗 低,可显示 192 种字符(5*7 点字型) ,32 种字符(5*10 点字符) ,可自编 8 种字符 (5*7 或 5*10) ,指令功能强,可组合成各种输入,显示,移位方式以满足不同的要 求,接口简单方便可靠性高等优点。 5.3.25.3.2 引脚功能说明引脚功能说明 图 5.3 LCD1602 管脚图 VSS(1 脚)-接地 VDD(2 脚)-接+5V 电压 VL(3 脚)- VL 为液晶显示器对比度调整端,接正电源时对比度最弱,接地 电源时对比度最高,使用时可以通过一个 10K 的电位器调整对比度。 RS (4 脚)- RS 为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄 存器。 R/W(5 脚)- RW 为读写信号线,高电平时进行读操作,低电平时进行 写操作。E(6 脚)- E 端为使能端,当 E 端由高电平跳变成低电平时,模块 执行命令。 D0-D7(714 脚)- D0D7 为 8 位双向数据线。 BLA(15 脚)-液晶屏背光正极,接+5V BLK(16 脚)-液晶屏背光负极,接地 寄存器选择控制 表如下: 22 表 5.1 寄存器选择控制表 RSR/W操作说明 00写入指令寄存器(清除屏等) 01读 busy flag(DB7),以及读取位址计数器(DB0DB6)值 10写入数据寄存器(显示各字型等) 11从数据寄存器读取数据 5.45.4 74HC405174HC4051 的功能介绍的功能介绍 5.4.1 74HC4051 芯片简介芯片简介 74HC4051 是一款高速 CMOS 器件,74HC4051 引脚兼容低功耗肖特基 TTL(LSTTL)系列。74HC4051 遵循 JEDEC 标准 no.7A。 5.4.25.4.2 引脚功能说明引脚功能说明 图 5.4 CD4051 引脚图 74HC4051 是 8 通道模拟多路选择器 /多路分配器,带有 3 个数字选择端 (S0 至 S2),1 个低有效使能端( E),8 个独立输入 /输出端(Y0 至 Y7)和 1 个公共输入/输出端(Z)。 基于单片机的数字电压表设计与实现 23 E 为低时,8 个开关的其中之一将被 S0 至 S2 选中(低阻态)。 E 为高时, 所有开关都进入高阻态,直接无视 S0 至 S2。 VCC 和 GND 是数字控制端( S0 至 S2,E)的供电引脚, 74HC4051 的 VCC 至 GND 范围为 2.0 V10.0 V。74HC4051 的模拟输入 /输出端(Y0 至 Y7,Z)在上限 VCC 和下限 VEE 之间摆动, VCC-VEE 应当不超过 10.0 V。作 为一个数字多路选择器 /多路分配器, VEE 将被连接到 GND 上(一般是接地)。 表 5.2 74HC4051 真值表 5.55.5 LM324LM324 的功能介绍的功能介绍 5.5.15.5.1 LM324LM324 的功能简介的功能简介 LM324 系列器件带有真差动输入的四 运算放大器 。与单电源应用场合的标 准运算放大器相比,它们有一些显著优点。该四放大器可以工作在低到3.0 伏 或者高到 32 伏的电源下,静态电流为 MC1741 的静态电流的五分之一。 LM324 系列由四个独立的,高增益,内部频率补偿运算放大器,其中专为 从单电源供电的电压范围经营。从分裂电源的操作也有可能和低电源电流消耗是 独立的电源电压的幅度。 应用领域包括传感器放大器,直流增益模块和所有传统的运算放大器现在可 以更容易地在单电源系统中实现的电路。例如,可直接操作的LM324 系列, 这是用来在数字系统中,轻松地将提供所需的接口电路,而无需额外的15V 24 电源标准的 5V 电源电压。 5.5.25.5.2 引脚功能说明引脚功能说明 图 5.5 LM324 的引脚图 运放的 1,2,3 脚是一组;5,6,7 脚是一组, 8,9,10 脚是一组; 12,13,14 脚是一组,其余两个脚是电源, 1,7,8,14 是各组放大器的输出 脚,其它的就是输入脚。 5.65.6 78057805 的功能介绍的功能介绍 5.6.15.6.1 78057805 的功能简介的功能简介 用 78/79 系列三端稳压 IC 来组成稳压电源所需的外围元件极少,电路内部还有 过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。 5.6.25.6.2 引脚功能说明引脚功能说明 基于单片机的数字电压表设计与实现 25 图 5.6 7805 引脚图 第第 6 6 章章 软硬件综合调试软硬件综合调试 6.16.1 测试结果分析测试结果分析 本次设计的软硬件调试完成后,就可以进入软硬件综合调试阶段了。将源程序 编译生成 HEX 文件用 T0P852 烧录器写入 AT89S52 单片机中,按照调整好的电路图 焊接好万能板,将 ADC0809 的输入通道接上 19.999V 电压,调整电压值可以看见 LCD1602 上显示出相应的数字量,如表 6.1 所示。 表 6.1 测试结果分析 输入信号(VP-P)输出信号(测量值)理论值绝对误差相对误差 82.7mv91.7mv82.7mv9mv10.8% 107mv119mv107mv12mv11.2% 409mv415mv409mv6mv1.46% 621mv627mv621mv6mv0.97% 916mv917mv916mv1mv0.11% 1050mv1051mv1050mv1mv0.1% 1674mv1670mv1672mv2mv0.1% 2.22v2.21v2.22v0.01v0.45% 3.07v3.07v3.07v00 4.35v4.36v4.35v0.01v0.23% 5.06v5.05v5.06v0.01v0.19% 6.31v6.31v6.31v00 7.31v7.30v7.31v0.01v0.13% 8.81v8.81v8.81v00 26 9.23v9.22v9.23v0.01v0.11% 10.29v10.29v10.29v00 11.32v11.32v11.32v00 12.15v12.15v12.15v00 13.26v13.26v13.26v00 14.43v14.42v14.43v0.01v0.07% 15.20v15.19v15.20v0.01v0.06% 16.39v16.40v16.39v0.01v0.06% 17.30v17.30v17.30v00 18.58v18.56v18.58v0.02v0.1% 19.34v19.32v19.34v0.02v0.1% 绝对误差=|输出信号-输入信号| 相对误差=绝对误差/理论值100% 测试结果分析: 精度是偏移误差、增益误差、积分线性误差、微分线性误差、温度漂移等综合 因素引起的总误差。因量化误差是模拟输入量在量化取整过程中引起的,因此,分 辨率直接影响量化误差的大小。量化误差是一种原理性误差,只与分辨率有关,与 信号的幅度,采样速率无关,它只能减小而无法完全消除,只能使其控制在一定的 范围之内,一般在12LSB 范围内。除此之外,影响该转换系统的因素还有数字 万用表精度以及参考电源精度等。 6.26.2 软件调试软件调试 软件调试是利用 KEIL C51 软件进行调试,新建工程后新建文件,写好程序后 进行编译,最后生成 HEX 文件,通过烧录机将程序烧入单片机即可。 KEIL C51 软件简介:支持 8051 微控制器体系结构的 KEIL 开发工具,产业 标准的 KEIL C 编译器、宏汇编器、调试器、实时内核、单板计算机和仿真器, 支持所有的 251 系列微控制器 。 基于单片机的数字电压表设计与实现 27 6.36.3 硬件调试硬件调试 利用万用板焊接的电路具有自由布局的优点,同时也存在焊接不牢,线路复杂 的缺点,为了减少布线,我采用了杜邦线来进行灵活插线,在进行硬件调试时

温馨提示

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

评论

0/150

提交评论