基于单片机的数字电压表设计

合集下载

基于51单片机的直流数字电压表设计

基于51单片机的直流数字电压表设计

基于51单片机的直流数字电压表设计概述:直流数字电压表是一种用于测量直流电压的仪器,它通过将电压信号转换为数字形式,并显示在数码管上,实现对电压的准确测量。

本文将介绍基于51单片机的直流数字电压表的设计原理和实现方法。

一、设计原理:1.1 电压信号采集:直流数字电压表的第一步是采集待测电压信号。

常用的采集方法是使用一个分压电路将待测电压降低到合适的范围,再通过运算放大器将其放大到合适的电平。

51单片机的模拟输入引脚可以接受0-5V的模拟电压信号,因此可以直接将放大后的信号接入单片机进行采集。

1.2 模数转换:采集到的模拟电压信号需要经过模数转换(A/D转换)才能被单片机读取和处理。

51单片机内部集成了一个10位的A/D转换器,可以将输入的模拟电压转换为相应的数字量。

通过设置不同的参考电压和采样精度,可以实现对不同电压范围的准确测量。

1.3 数码管显示:经过模数转换后,得到的数字量需要通过数码管进行显示。

51单片机的IO口可以通过控制段选和位选的方式,将数字量转换为相应的数码管显示。

可以根据需要选择常用的七段数码管或者液晶显示屏进行显示。

二、设计实现:2.1 硬件设计:硬件设计包括电路原理图设计和PCB布局设计两个部分。

电路原理图设计主要包括电压采集电路、运算放大器、A/D转换器和数码管驱动电路等部分。

PCB布局设计需要考虑信号的走线和电源的分布,以保证电压信号的准确采集和显示。

在设计过程中,需要注意地线和信号线的分离,以减少干扰。

2.2 软件设计:软件设计主要包括单片机的程序编写和调试。

首先需要编写采集模拟电压信号和进行A/D转换的程序,将转换后的数字量存储在单片机的内部存储器中。

然后编写数码管驱动程序,将存储的数字量转换为相应的数码管显示。

最后,通过按键或者旋转编码器等方式,可以实现对量程和精度的选择。

三、设计优化:3.1 精度优化:为了提高直流数字电压表的测量精度,可以采用更高精度的A/D转换器,增加参考电压的精度,或者通过校准电路对测量误差进行校正。

基于单片机的数字电压表设计

基于单片机的数字电压表设计

基于单片机的数字电压表设计一、引言在电子测量领域中,电压表是一种常用的测量仪器,用于测量电路中的电压值。

传统的模拟电压表由于精度低、读数不便等缺点,逐渐被数字电压表所取代。

数字电压表具有精度高、读数直观、抗干扰能力强等优点,广泛应用于工业自动化、电子设备检测、实验室测量等领域。

本文将介绍一种基于单片机的数字电压表设计方案,详细阐述其硬件电路设计、软件编程实现以及系统性能测试。

二、系统总体设计方案(一)设计要求设计一款基于单片机的数字电压表,能够测量 0 5V 的直流电压,测量精度为 001V,具有实时显示测量结果的功能。

(二)系统组成本数字电压表系统主要由以下几个部分组成:1、传感器模块:用于将输入的电压信号转换为适合单片机处理的电信号。

2、单片机模块:作为系统的核心,负责对传感器采集到的数据进行处理和计算,并控制显示模块显示测量结果。

3、显示模块:用于实时显示测量的电压值。

三、硬件电路设计(一)传感器模块选用 ADC0809 作为模数转换芯片,它具有 8 个模拟输入通道,可以将 0 5V 的模拟电压转换为 8 位数字量输出。

(二)单片机模块选择 AT89C51 单片机作为控制核心,它具有 4K 字节的 Flash 程序存储器和 128 字节的随机存取数据存储器。

(三)显示模块采用液晶显示屏(LCD1602)作为显示器件,它能够清晰地显示数字和字符信息。

四、软件编程实现(一)编程语言选择使用 C 语言进行编程,C 语言具有语法简洁、可移植性强等优点。

(二)主程序流程主程序首先进行系统初始化,包括单片机端口初始化、LCD1602 初始化、ADC0809 初始化等。

然后启动 ADC0809 进行模数转换,读取转换结果并进行数据处理,计算出实际的电压值。

最后将电压值发送到 LCD1602 进行显示。

(三)模数转换子程序ADC0809 的转换过程通过控制其启动转换引脚(START)和读取转换结束引脚(EOC)来实现。

基于单片机的数字电压表设计

基于单片机的数字电压表设计

基于单片机的数字电压表设计一、背景介绍随着科技的发展,越来越多的人开始关注电压表。

电压表是一种测量电压的仪器,它可以根据检测到的电压值显示出相应的数字。

传统的电压表使用指针或指示灯来显示电压值,但这种方式会有很多限制,例如不能显示小于1V的电压值,对于高精度的测量也不能满足要求。

为了解决上述问题,本文提出了一种基于单片机的数字电压表设计方案。

二、基于单片机的数字电压表设计原理基于单片机的数字电压表设计采用单片机ADC(模数转换)模块来检测电压值,将检测到的电压值转换成数字值,然后通过LCD(液晶显示器)来显示。

该设计中需要使用一个模拟信号处理电路,它包括一个放大器、一个滤波器和一个参考电压电路。

放大器可以增加信号的幅值,以便更好地检测信号的电压值;滤波器可以削弱外部电磁干扰,以便更好地检测电压值;参考电压电路可以把外部电压转换为0-5V之间的电压,以便更好地检测电压值。

三、设计方案1.单片机:AT89S522.ADC模块:AD79053.放大器:LM3584.滤波器:LPF(低通滤波器)5.参考电压电路:LM3176.LCD显示器:12864四、设计步骤1. 利用LM358放大器和LPF滤波器对测量的电压值进行放大和滤波处理,以获得更精准的数据。

2. 利用LM317参考电压电路将放大后的电压值转换为0-5V的电压,以便更好地检测电压值。

3. 将转换后的电压值送入AD7905 ADC模块,将检测到的电压值转换成数字值。

4. 将转换后的数字值送入AT89S52单片机,并通过12864 LCD显示器将检测到的电压值显示出来。

五、总结本文提出了一种基于单片机的数字电压表设计方案,主要采用单片机ADC模块来检测电压值,并将检测到的电压值转换为数字值,然后通过LCD显示器显示出来。

该设计方案可以满足各种电压测量要求,具有良好的精度和可靠性。

基于单片机的数字电压表的课程设计

基于单片机的数字电压表的课程设计

基于单片机的数字电压表的课程设计一、引言在电子测量领域,电压表是一种常见且重要的测量工具。

传统的模拟电压表存在精度低、读数不直观等缺点,而数字电压表则凭借其高精度、高稳定性和直观的数字显示等优势,在电子测量中得到了广泛的应用。

本课程设计旨在基于单片机设计一款数字电压表,以实现对直流电压的准确测量和数字显示。

二、设计要求1、测量范围:0 5V 直流电压。

2、测量精度:优于 01V 。

3、显示方式:四位数码管显示。

4、具备超量程报警功能。

三、系统总体设计本数字电压表系统主要由单片机最小系统、A/D 转换模块、数码管显示模块和报警模块组成。

单片机最小系统作为控制核心,负责整个系统的运行和数据处理。

A/D 转换模块将输入的模拟电压转换为数字量,供单片机读取。

数码管显示模块用于显示测量的电压值。

报警模块在测量电压超过设定范围时发出报警信号。

四、硬件设计1、单片机最小系统选用 STC89C52 单片机,其具有性能稳定、价格低廉等优点。

最小系统包括单片机芯片、晶振电路和复位电路。

2、 A/D 转换模块采用 ADC0809 芯片进行 A/D 转换。

ADC0809 是 8 位逐次逼近型A/D 转换器,具有 8 个模拟输入通道,能够满足本设计的需求。

3、数码管显示模块使用四位共阳极数码管进行电压显示。

通过单片机的 I/O 口控制数码管的段选和位选,实现数字的显示。

4、报警模块采用蜂鸣器作为报警元件,当测量电压超过 5V 时,单片机输出高电平驱动蜂鸣器发声报警。

五、软件设计软件部分主要包括主程序、A/D 转换子程序、数据处理子程序和显示子程序等。

1、主程序负责系统的初始化,包括单片机端口设置、A/D 转换器初始化等。

然后循环调用 A/D 转换子程序、数据处理子程序和显示子程序,实现电压的测量和显示。

2、 A/D 转换子程序控制 ADC0809 进行 A/D 转换,并读取转换结果。

3、数据处理子程序将 A/D 转换得到的数字量转换为实际的电压值,并进行精度处理。

基于单片机的简易数字电压表设计(任务书+论文)

基于单片机的简易数字电压表设计(任务书+论文)

任务书摘要本文介绍了基于89c51单片机的一种8路输入电压测量电路,该电路采用ADC0809作为A/D转换元件,测量范围0至5伏,小数点后显示一位。

要求能够依次显示每路通道电压,而且能够通过拨码开关选择输入通道。

使用3位LED 模块显示,前面一位显示通道号,后面两位显示测量电压值。

本系统主要包括四大模块:数据采集模块、控制模块、显示模块、A/D转换模块。

绘制电路原理图与工作流程图,并进行调试,最终设计完成了该系统的硬件电路。

在软件编程上,采用了汇编语言进行编程,开发环境使用WAVE集成开发环境。

开发了显示模块程序、通道切换程序、A/D转换程序。

关键词:ADC0809;A/D转换;LED显示目录1 方法论证 (5)1.1 系统的设计任务 (5)1.2 设计方案 (5)1.3 软硬件开发环境 (6)2 数字电压表硬件设计 (7)2.1 单片机主电路设计 (7)2.1.1 复位电路 (7)2.1.2 晶振电路 (7)2.2 测量、转换电路设计 (8)2.3 按键电路设计 (9)2.4 显示电路设计 (10)2.4.1 LED数码管构成 (10)2.4.2 显示方式 (11)3 软件设计 (14)3.1 主程序设计 (14)3.1.1 工作流程 (14)3.1.2 存储空间定义安排 (15)3.2 模块程序设计 (15)3.2.1 A/D转换测量程序 (15)3.2.2 显示程序 (16)4 系统调试与分析 (18)4.1 调试内容及问题解决 (18)4.2 系统进一步改进方案 (18)附录1:硬件原理图 (20)附录2:程序清单 (21)参考文献 (24)1 方法论证1.1 系统的设计任务设计单片机主电路、数据采集接口电路、LED显示电路、拨码控制电路,能够实现对8路电压值进行测量,能够显示当前测量通道号及电压值,电压精度小数点后1位,可以通过键盘选择循环显示8路的检测电压值和指定通道的检测电压值。

1.2 设计方案将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。

基于单片机的数字电压表设计

基于单片机的数字电压表设计
关键 词 :M(:【最 小 系统 ;,VI’89( 52;AI)C0809;DA(X)832 中图分类号:《)44I 文献标识码 : 文章编号 :I674~5078(20I4)()l一0050—05 D0I:Ill_3969/j i,;sH 1674 5078 20I4(J1 0l4
一 、 方 案论证 与 比较 (一 )数 字 电压表设 计 常用 的基本 方 法 方 案一 (如 图 1所 示 ) 采用 比较 器 、减 法器 、电子 开关 以及少 量 的 分 立元件 ,将电压输 出到 ADC0809再转换 为数字信 号后送单片机控制 ,然后通过显示器显示 。但 由 于 元 件 分 散 性 太 大 , 即使 采 用 了单 片 机 最 小 系 统 ,由 于 电子 开 关 IC4066的 内 阻 较 大 ,导致 在 其 上的压降也较 大 ,使小信 号衰减 严重 ,输入 到 ADC0809的电压值 与待测 电压相差较远 ,抗干扰 能力较弱 ,不能达到本题 目的基本要求 。
0 V~1.28V 1.28V ~2.56V 2.56V~3.84V 3.84V 一5.12V 5.12V~6.4V 6.4V~7.68V 7.68V~8.96V 8.96V~10.24V
0V 1.28V 2.56V 3.84V 5.12V 6.4V 7.68V 8.96V

ADC0809的输 入 电压 范 围 限定 在 1.28V 以 内 ,需 在前放置一个减法器 ,控制输入电压量 。当待测电 压处 于下 列各 档 次 时 ,对 应 的 DAC0832的输 出电
压如 表 1所示 :
表 1 DAC0832的 输 出 电压 表
待测输 入电压范 围(v) DAC0832输 出电压 (v) ห้องสมุดไป่ตู้

基于单片机的简易数字电压表设计

基于单片机的简易数字电压表设计随着电子技术的迅猛发展,数字电压表在实验室、工业和日常生活中的应用越来越广泛。

本文将详细介绍基于单片机的简易数字电压表的设计过程,包括系统设计思路、硬件选型、软件实现以及调试过程。

设计一个简易数字电压表的目标是实现对直流电压的实时测量,并将其以数字形式显示。

该系统的核心是单片机,它负责数据采集、处理及结果显示。

选用单片机的原因在于其体积小、成本低、易于编程等优点。

在硬件设计方面,系统主要由输入电路、单片机、显示模块和电源模块组成。

输入电路的作用是将待测电压信号转化为单片机可处理的电信号。

一般采用分压电路,通过电阻分压的方法,将高电压降低至单片机的可接受范围。

还需考虑输入电压的范围,以确保测量精度和系统安全。

选用的单片机需具备一定的模拟输入功能,以便对电压进行采样。

常用的单片机型号有51系列、AVR系列及STM32系列等,其中STM32系列因其较高的性能和丰富的外设而受到广泛关注。

在设计中,应根据具体需求选择合适的单片机,并进行必要的引脚配置。

显示模块的选择是系统设计的重要环节,常用的有液晶显示屏(LCD)和七段数码管。

液晶显示屏具有显示内容丰富、可视角度广等优势,但其功耗相对较高。

而七段数码管则以其简洁明了的特性广泛应用于数字电压表中。

在本设计中,建议使用LCD显示模块,以便于显示多位数值及相关信息。

电源模块的设计需确保系统的稳定运行。

一般采用稳压电源,为单片机及其他外设提供稳定的电压供应。

需考虑电源的功耗及散热问题,确保系统在长期工作中不会出现故障。

数据处理模块是整个系统的核心,其主要任务是将采集到的模拟电压信号转换为相应的数字值。

可采用模数转换(ADC)技术,将模拟信号转换为数字信号,并进行必要的线性化处理。

处理过程中,应考虑量化误差及噪声对测量结果的影响。

数据显示模块负责将处理后的电压值通过LCD显示出来。

在这一过程中,需要对显示内容进行格式化,以确保信息的清晰易读。

基于单片机的数字电压表的设计

目录第1章引言 (1)1.1设计要求 (1)1.2 设计思路 (2)1.3 设计方案 (2)第2章硬件电路设计 (1)2.1 A/D转换模块 (1)2.2 单片机系统 (5)2.3 复位电路和时钟电路 (7)2.4 LED显示系统设计 (8)2.5 总体电路设计 (10)第3章程序设计 (1)3.1 程序设计总方案 (1)3.2 系统子程序设计 (1)第4章仿真与调试 (1)4.1 软件调试 (1)4.2 显示结果及误差分析 (1)结论 (1)参考文献 (1)致谢 (1)附录:程序代码 (1)第1章引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。

而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。

数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。

由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用。

传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。

采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。

数字电压表是诸多数字化仪表的核心与基础[2]。

以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。

目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。

最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型。

数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC 化),另一方面,精度也从0.01%-0.005%。

基于单片机数字电压表设计

基于单片机数字电压表设计单片机数字电压表是一种先进的电压测量技术,它可以检测和测量精确的电压值。

近年来,这种技术在电力系统、自动化技术、电子设备等各个领域中得到了广泛的应用。

这种技术不仅提高了测量数据的精确性和可靠性,而且可以满足多种功能要求,有效地提高了工程设计的效率。

单片机数字电压表的原理及组成单片机数字电压表是一种半导体装置,基本原理是用参考电路产生一个参考电压,并使用模数转换技术测试输入电压,然后将输入电压与参考电压比较,最后将比较结果显示在数字显示器上。

单片机数字电压表的结构由电源供应器、测试电路、模数转换技术、控制器和数字显示器组成。

电源供应器的输出电压可以用作参考电压,测试电路将输入电压与参考电压比较,模数转换技术将比较结果转换成数字格式的结果,控制器将数字结果发送给数字显示器,数字显示器将结果显示出来。

单片机数字电压表的优点由于单片机数字电压表具有以下优点,使其在电力系统、自动化技术、电子设备等各个领域中得到了广泛的应用。

首先,单片机数字电压表的测量可靠性比传统的模拟电压表高,能够测量更精确的电压值,从而提高测量准确性。

其次,单片机数字电压表具有超高的灵活性。

它可以通过修改程序在软件上实现功能扩展,从而满足不同的电压测量要求。

第三,单片机数字电压表的显示精度高,同时能够提供连续测量结果,以满足对电压变化的时实判断要求。

第四,单片机数字电压表的体积小,可以完全替代传统的模拟电压表,有利于节约空间和重量。

第五,单片机数字电压表的低功耗,无需额外的外部电源,从而提高工作效率。

单片机数字电压表的应用由于其高质量、精密度和稳定性,单片机数字电压表在电力系统和电子设备中有广泛应用。

电力系统中,单片机数字电压表可用于测量高压过程的开关操作,检测变压器的接线状况,监测电缆引线的断线情况,以及预防接地线等。

在电子设备中,单片机数字电压表可用于监控数字设备的电压变化、测量输入电压的精确度,以及进行自动调节和维护等。

基于单片机的数字电压表设计

基于单片机的数字电压表设计数字电压表在电子技术中使用非常广泛,可以用来测量电路中的直流电压、交流电压以及各种信号的幅度等等。

基于单片机的数字电压表实现了数字电压的读取和显示,具有精确、稳定、易操作等特点,下面将介绍基于单片机的数字电压表的设计原理及实现方法。

一、系统结构基于单片机的数字电压表主要是由程序控制模块、模数转换模块和数字显示模块组成。

程序控制模块主要用来完成开机、校准、测试、功能选择等功能;模数转换模块主要将电压信号转换成数字量,供数字显示模块使用;数字显示模块主要将转换后的数字量显示在LCD液晶屏上。

二、硬件设计1.电源电路电源电路主要用来为电路提供稳定的电压和电流,本电路采用稳压电源芯片LM7805实现,稳压芯片输入端连接外部DC12V/1A电源,输出端连接电路板上的整个电路。

2.输入电路输入电路主要用来将被测电源的电压传递给单片机,常规情况下采用分压电路实现。

在本电路中,电阻R1和电容C1为RC滤波电路,起到滤波作用,防止干扰信号的影响;电阻R2是分压电路中的电阻,它根据电压值的不同设置不同的值,以保证被测电压在单片机内部转换过程中不会对单片机产生影响。

3.单片机模块单片机模块是系统的核心部分,本电路中选用STM32F103C8T6单片机实现模数转换和数码管控制,使用C 语言编写程序,通过模拟输入端口读取电压并进行模数转换,将得到的数字使用查表法将其转换为数码管控制脉冲,控制数码管的亮灭实现数字显示。

4.数字显示模块数字显示模块主要由七段数码管、LCD液晶屏幕、导线和电容等器组成,七段数码管用于展示测量到的电压大小,LCD 液晶屏用于展示功能选项、单位等信息。

导线是电路板内部连接线路,电容等器用来平滑电压波动。

三、软件设计1.引脚定义在程序中首先定义STM32F103C8T6单片机内存地址、输入输出引脚和电平状态,其中A0口用来读取被测电压;B0-B7口用来控制七段数码管的亮灭;C0口用来输出PWM,控制风扇的旋转速度;D0口用来控制蜂鸣器的开启和关闭。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要:在电路设计中我们时常会用到电压表,过去大部分电压表还是模拟的,虽然精度较高但模拟电压表采用用指针式,里面是磁电或电磁式结构,所以响应较慢。

为适应许多高速信号领域目前已广泛使用数字电压表。

本设计是基于Atmel51单片机开发平台和自动控制原理的基础上实现的一种数字电压表系统。

该系统采用Atmel89C52单片机作为控制核心,以ADC0809为数据采样系统,实现被测电压的数据采样;使用系列比较器检测输入电压的范围,并通过继电器阵列实现了输入量程的自动转换;使用共阴极数码管显示被测电压。

关键词:单片机、电压检测、模数转换、Abstract:In circuit design, we often use voltage meter,Over the past most of the voltage meter or a simulation,Although high precision analog voltage used in the table, but with the pointer, which is a magnetic or electromagnetic structure,so the slow response.To meet the many areas of high-speed signal has been widely used digital voltmeter.The design is based on Atmel51 microcontroller development platform and automatic control based on the principle of a digital voltage meter system.The system uses Atmel89C52 microcontroller as the control core, ADC0809 for the sampled data system, data sampling to achieve the measured voltage;Series compared with the range of detected voltage, and relay array to achieve through the automatic conversion of the input range; using common cathode LED display the measured voltage.Key words: Single Chip Micyoco、V oltage detection、Analog Digital Conversion目录摘要 (1)第一章引言 (3)第二章开发平台Keil (4)2.1 系统概述 (4)2.2 整体架构 (5)第三章硬件设计思想和原理图 (6)3.1 系统总体设计框图 (6)3.2 单片机系统 (7)3.3 AD转换电路 (8)3.4 信号调理模块 (9)第四章软件设计与流程 (10)4.1 程序流图....................................... 错误!未定义书签。

4.2 功能介绍 (10)第五章软件仿真及测试数据 (11)5.1 仿真结果 (11)参考文献 (12)附录 (13)第一章引言电子电压表主要用于测量各种高、低频信号电压,它是电子测量中使用最广泛的仪器之一。

根据测量结果的显示方式及测量原理不同,电压测量仪器可分为两大类:模拟式电压表(AVM)和数字式电压表(DVM)。

模拟式电压表是指针式的,多用磁电式电流表作为指示器,并在表盘上刻以电压刻度。

数字式电压表首先将模拟量经模数(A/D)转换器变成数字量,然后用电子计数器计数,并以十进制数字显示被测电压值。

众所周知,模拟电压表精度较高,曾经有很广阔的市场,现在依然有不少工程师依然在使用模拟电压表。

的确模拟电压表在显示测量值方面精度校准,然而却也存在问题。

模拟电压表采用用指针式,里面是磁电或电磁式结构,所以其响应速度较慢。

然而在高速发展的当今社会,高速信号处理的需求越来越多,由于模拟电压表响应速度较慢已经不适用与高速信号领域,取而代之的将是数字电压表。

但数字电压表由于存在采样误差,精度不是很高。

不过目前可以通过技术手段来缩小误差。

使其精度达到与模拟电压表一样精确甚至更高。

可见将来数字电压表必将取代模拟电压表。

现在有越来越多的数字测量仪器的出现但原理皆与数字电压表殊途同归,因此研究数字电压表有着很大现实意义。

第二章开发平台KeilKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。

在开发大型软件时更能体现高级语言的优势。

2.1 系统概述Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。

Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。

运行Keil软件需要Pentium 或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。

掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。

2.2 整体架构C51工具包的整体结构较为丰富,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。

开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。

然后分别由C51及C51编译器编译生成目标文件(.OBJ)。

目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。

ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。

使用独立的Keil仿真器时,注意事项1)仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。

2)仿真器上的复位按钮只复位仿真芯片,不复位目标系统。

3)仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。

第三章 硬件设计思想和原理图3.1 系统总体设计框图本系统采样Atmel89C52单片机作为控制核心,以ADC0809为数据采样系统,实现被测电压的数据采样;使用系列比较器检测输入电压的范围,用共阴极数码管显示结果。

3.2 单片机系统单片机最小系统包括复位电路,晶振电路,电源电路,仿真时需搭建复位电路和晶振电路。

晶振电路:单片机最小系统如下所示,其中P1口用于驱动数码管,P0口用于接收ADC0809转换的数据。

P2口用于控制ADC0809。

输入电压51单片机极性检测 电压检测显示电路AD 转换单片机最小系统:3.3 AD转换电路利用ADC0809作为AD数据采样器件, ADC0809是CMOS单片型逐次逼近式A/D转换器它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近。

ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

START 上升沿将逐次逼近寄存器复位。

下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。

直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

ADC0809各个管教功能:IN0~IN7:8路模拟量输入端。

2-1~2-8:8位数字量输出端。

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。

START: A/D转换启动信号,输入,高电平有效。

EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

OE:数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

CLK:时钟脉冲输入端。

要求时钟频率不高于640KHZ。

REF(+)、REF(-):基准电压。

Vcc:电源,单一+5V。

GND:地。

ADC0809与单片机的连接。

3.4 信号调理模块该部分主要实现的功能是自动量程切换和电压变换,模块主要由电压极性检测电路、电压范围粗测电路、电压变换电路三部分组成。

电压极性检测电路电压极性检测电路采用过零比较器检测负电压的方式实现的,运算放大器LM324的反向端接地,同向端通过100K电阻接输入信号。

电压范围粗测电路为了粗略地得到被测量的电压范围我们采用多组比较器的方式,通过阶梯式比较的方法确定输入电压的范围。

量程切换电路电路由衰减电阻、切换继电器和运算放大器组成,对应的是衰减1/2、1/3、1/4和无零漂放大50倍,切换电路如图所示。

电压变换到0-5V标准信号后,再由A/D转换进行采样,最后由单片机算法还原。

第四章软件设计与流程4.1 程序流图软件部分采用模块化程序设计的方法,由单片机控制主程序、A/D转换子程序、电压检测及继电器控制程序、液晶显示组成。

系统软件设计是在KeilC 编译环境下进行的,由于C语言程序可移植性好,所以提高了编程的效率。

软件程序流程图:4.2 功能介绍P0首先接收数据,据此控制PC6,PC7实现电压转换,保证正电压输出。

PB0,PB1,PB2,PB3,PA6的输入值通过PA1,PA2,PA3,PA4,PA5控制继电器1,2,3,4,5实现电压增减并输入A/D转换器MAX187进行测量。

最后输入PB4,PB6,PB7并由P1输入数码管显示。

相关文档
最新文档