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

合集下载

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

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

目录1.摘要及关键词-------------------------------------------32.总体设计方案-------------------------------------------33.硬件电路及仿真设计------------------------------------104.程序设计及调试----------------------------------------125.本人承担的小组工作以及设计体会------------------------136.参考文献----------------------------------------------137.元器件清单及程序清单----------------------------------13摘要:本次设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。

A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。

数据处理则由芯片AT89C52来完成,其负责把ADC0809传送来的数字量经过一定的数据处理,送到LCD1602液晶显示模块进行显示;此外,它还控制着ADC0809芯片工作。

关键词:数字电路单片机 ADC0809 LCD1602总体方案的设计:本次设计的要求如下:1.可以选择测量8路1-5V的8路电压值:2.可轮流显示或单路选择显示(可选);3.测量显示的最小分辨率为0.01V,测量的误差正负0.02V;4.具有电压过低,过高声光报警功能,报警限可独立设置。

设计思路:根据设计的要求,进行器件的选择。

芯片控制选取STC89C52单片机,由于要控制8路,故选取ADC0809的数模转换,显示部分选用目前很流行的LCD1602的液晶显示,最后采用8个开关控制8个通道,所以选取74LS148。

下面进行逐一叙述:STC89C52单片机芯片管脚如下STC89C52的管脚图STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。

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

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

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

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

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

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

二、系统总体设计方案(一)设计要求设计一款基于单片机的数字电压表,能够测量 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)来实现。

(完整版)基于51单片机数字电压表的毕业设计论文

(完整版)基于51单片机数字电压表的毕业设计论文

甘肃畜牧工程职业技术学院毕业设计题目:基于51单片机的简易数字电压表的设计系部:电子信息工程系专业:信息工程技术班级:学生姓名:学号:指导老师:日期:目录毕业设计任务书 (1)开题报告 (2)摘要 (6)关键词 (7)引言 (8)第一章AD转换器 (9)1.1AD转换原理 (9)1.2 ADC性能参数 (11)1.2.1 转换精度 (11)1.2.2. 转换时间 (12)1.3 常用ADC芯片概述 (13)第二章8OC51单片机引脚 (14)第三章ADC0809 (16)3.1 ADC0809引脚功能 (16)3.2 ADC0809内部结构 (18)3.3ADC0809与80C51的接口 (19)3.4 ADC0809的应用指导 (20)3.4.1 ADC0809应用说明 (20)3.4.2 ADC0809转换结束的判断方法 (20)3.4.3 ADC0809编程方法 (21)第四章硬件设计分析 (22)4.1电源设计 (22)4.2 关于74LS02,74LS04 (22)4.3 74LS373概述 (23)4.3.1 引脚图 (23)4.3.2工作原理 (23)4.4简易数字电压表的硬件设计 (24)结论 (25)参考文献 (26)附录 (27)致谢 (29)毕业设计任务书开题报告摘要随着我国现代化技术建设的发展,电子检测技术日新月异,本此设计基于80C51单片机的一种8路输入电压测量电路,该电路采用ADC0809 A D转换元件,实现数字电压表的硬件电路与软件设计。

该系统的数字电压表电路简单, 可以测量0~5V的电压值,并在四位LED数码管上轮流显示或单路选择显示。

所用的元件较少,成本低,调节工作可实现自动化。

还可以方便地进行8路AD转换量的测量,远程测量结果传送等功能。

With the construction of modern technology, electronic detection technology advances, the 80C51 microcontroller for this design is based on an 8-input voltage measurement circuit that uses ADC0809 A D conversion components, digital voltage meter . The system's digital voltmeter circuit is simple, can measure the voltage 0 ~ 5V, and the four turns on the LED digital display or a single select Show. Fewer components used in low cost, regulation work can be automated. You can also easily 8 A D conversion volume measurement, remote measurement transferfunctions.数字电压表单片机 AD转换 AT80C51Digital voltmeter microcontroller A D conversion AT80C51数字电压表简称DVM,它是采用了数字化测量技术,把连续模拟量(直流输入电压)转换成不连续,离散的数字形式加以现实的仪表。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

基于单片机的简易数字电压表设计作者姓名:专业班级:指导教师:摘要随着电子科学技术的日益发展,电子测量也变得越来越普遍,并且对测量的功能要求也越来越高,所以数字电压表就成为一种不可或缺的测量仪器。

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

与传统的模拟式电压表相比,具有显示清晰直观,读数准确,测量范围广,扩展能力强等优点。

与传统的以指针刻度盘进行读数相比,避免了读数的视差以及视觉疲劳,非常的直观,方便。

本文介绍了一种基于单片机的简易数字电压表的设计。

该设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。

A/D转换主要由芯片ADC0808来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。

数据处理则由芯片AT89C51来完成,其负责把ADC0808传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着ADC0808芯片工作。

该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。

此数字电压表可以测量0-5V的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。

关键词:数字电压表 A/D转换 AT89C51 ADC0808成都理工大学2013届本科毕业设计(论文)2Design of Simple Digital Voltmeter Based on Single-chip MicrocontrollerAbstract:With the increasing development of science and technology, electronics, electronic measurements are also becoming more common, and the measurement of the functional requirements are also increasing, so the digital voltmeter has become an indispensable measuring instruments. Digital voltmeter referred DVM, it is the use of digital measurement technique, the continuous analog to digital conversion and display. With traditional analog voltmeter, compared with a clear display and intuitive, accurate readings, wide measurement range, scalability and other advantages. With the traditional dial for reading the pointer compared avoid parallax reading and visual fatigue, very intuitive and convenient.This paper which introduces a kind of simple digital voltmeter is based on single-chip microcontroller design. The circuit of the voltage meter is mainly consisted of three mould pieces: A/D converting mould piece, A/D converting is mainly completed by the ADC0808, it converts the collected analog data into the digital data and transmits the outcome to the manifestation controlling mould piece. Data processing is mainly completed by the AT89C51 chip, it processes the data produced by the ADC0808 chip and generates the right manifestation codes, also transmits the codes to the manifestation controlling mould piece. Also, the AT89C51 chip controls the ADC0808 chip to work.The voltmeter features in simple electrical circuit, lower use of elements, low cost, moreover, its measuring precision and reliability. The voltmeter is capable of measuring voltage inputs from 1 route ranging from 0 to 5 volt, and displaying the measurements though a digital code tube of 7 pieces of LED.Keywords:Digitalvoltmeter A/Dconverter AT89C51 ADC0808成都理工大学2013届本科毕业设计(论文)2目录第1章前言 (1)1.1研究背景及意义 (1)1.1国内外数字电压表的发展及现状 (1)1.2本研究课题的来源及主要研究内容,研究成果 (2)第2章总体设计方案 (3)2.1数字电压表设计的两种方案 (3)2.1.1由数字电路及芯片构建 (3)2.1.2由单片机系统及A/D转换芯片构建 (3)2.2设计要求 (4)2.3 设计思路 (4)2.4 设计方案 (4)第3章硬件电路设计 (6)3.1 A/D转换器选择 (6)3.1.3 ADC0808的外部引脚特征 (7)3.1.4 ADC0808的内部结构及工作流程 (8)3.2 单片机系统 (10)3.2.1 单片机的选择 (10)3.2.2 AT89C51各引脚功能 (10)3.3 复位电路和时钟电路 (13)3.3.1 复位电路设计 (13)3.3.2 时钟电路设计 (13)3.4 LED显示系统设计 (14)3.4.1 LED基本结构 (14)3.4.2 LED显示器的选择 (15)3.4.3 LED译码方式 (15)3.4.4 LED显示器与单片机接口设计 (16)3.5 总体电路设计 (17)第4章程序设计 (19)4.1 程序设计总方案 (19)4.2 系统子程序设计 (19)4.2.1 初始化程序 (19)4.2.2 A/D转换子程序 (20)4.2.3 显示子程序 (20)第5章系统仿真及测试 (22)5.1 软件调试 (22)5.2 测试结果及误差分析 (22)5.2.1 测试结果 (22)5.2.2 误差分析 (24)5.3 硬件测试 (25)5.3.1 排除电源故障 (25)5.3.2 排除元器件失效 (26)5.3.3 排除逻辑连接故障 (26)结论 (27)致谢 (28)参考文献 (29)2第1章前言1.1研究背景及意义在现代测量技术中,常常需要用数字电压表进行现场检测,将测量的数据送入微计算机系统中,完成计算、存储、控制和显示等功能。

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

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

摘要单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU)。

随着单片机技术的飞速发展,各种单片机蜂拥而至,单片机技术已成为一个国家现代化科技水平的重要标志。

单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。

单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可以软件控制来实现,并能够实现智能化。

现在单片机控制范畴无所不在,例如通信产品、家用电器、智能仪器仪表、过程控制和专用控制装置等等,单片机的应用领域越来越广泛。

本毕业设计的课题是“简易数字电压表的设计”。

主要考核我们对单片机技术,编程能力等方面的情况。

观察独立分析、设计单片机的能力,以及实际编程技能。

本课题主要解决A/D转换、数据处理及显示控制等三个模块。

控制系统采用AT89C52单片机,A/D转换采用ADC0809。

关键字介绍:单片机,AT89C52,A/D转换,ADC0809,数据处理。

AbstractChip Processor is a kind of chip of integrated circuit, adopt to exceed large-scale technology have data handling ability( such as arithmetic manipulation, logic is operational , data deliver and suspend handling) tiny processor ( CPU ). Along with Chip Processor technology develop fast, various Chip Processor come in great numbers, Chip Processor technology has become a important sign of the national modern level of science and technology.Chip Processor can complete modern industrial control alone the intelligent control function that will beg, this is the feature of biggest Chip Processor. When Chip Processor control system can replace, using the control system that complex electronic line or digital circuit forms can software control come to realize, and can realize intelligence to melt. Now, Chip Processor control category is omnipresent , for instance communicate product, electric home appliances, intelligent instrument appearance, course control and the control equipment for special purpose and so on, the application field of Chip Processor is more and more extensive.Graduate the program of design is "the design of simple digital volmeter ". Check on our condition for the aspects such as Chip Processor technology and programming ability mainly. Observe actual programming ability as well as the ability of independent analysis and design Chip Processor.This program solves the data handling and conversion of A/D mainly and shows the 3 modulars such as control. Control system adopts AT89C52 only flat machine, the conversion of A/D adopts ADC0809.Keyword introduction: Chip Processor, AT89C52, A/D changes, ADC0809,Data handle.目录第一章绪论 (5)1.1 单片机简介 (5)1.2 单片机的应用领域 (6)1.3 单片机的发展趋势 (7)1.4 单片机应用系统的开发过程 (8)1.4.1 总体设计 (8)1.4.2 硬件电路设计 (9)1.4.3 软件设计 (9)第二章数字电压表 (9)2.1 数字电压表的特点 (9)2.2 数字仪表的发展趋势 (11)第三章系统设计 (12)3.1 功能要求及设计目标 (12)3.2 方案论证 (12)3.3 系统硬件电路设计 (13)3.4 系统程序的设计 (16)3.4.1 初始化程序 (16)3.4.2 主程序 (16)3.4.3 显示子程序 (17)3.4.4 模/数转换测量子程序 (17)3.5 性能分析 (18)第四章主要硬件功能及介绍 (19)4.1 ADC0809 (20)4.1.1 主要特性 (20)4.1.2 内部结构 (20)4.1.3 外部特性(引脚功能) (21)4.2 AT89C52 (22)4.2.1 主要性能 (22)4.2.2 引脚结构 (23)4.2.3 引脚功能说明 (24)4.2.4 特殊功能寄存器 (27)4.2.5 存储器结构 (28)4.2.6 定时器0和定时器1 (29)4.2.7 定时器2 (29)4.2.8 中断 (30)4.2.9 晶振特性 (31)4.2.10 空闲模式 (32)4.2.11 掉电模式 (33)4.2.12 程序储存器的加密 (33)4.2.13 Flash编程―并行模式 (34)4.2.14 编程方法 (34)第五章毕业设计总结 (35)附录 (37)附录一简易数字电压表的单片机控制源程序 (37)附录二参考文献 (46)附录三文献翻译 (47)第一章绪论1.1 单片机简介单片机是一种集成电路芯片,采用超大规模技术把具有数据处理能力(如算术运算,逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换器及A/D转换器等电路集成到一块单块芯片上,构成一个最小然而完善的计算机系统。

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

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

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

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

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

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

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

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

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

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

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

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

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

基于_单片机的简易数字直流电压表毕业设计

基于_单片机的简易数字直流电压表毕业设计

基于MCS-51单片机的简易数字直流电压表设计设计一个简易数字直流电压表。

(量程0V-2V、测量速度为大于等于2 次/秒、测量误差在±0.05V以内,有超限报警、数码管显示。

)1:系统设计(1)分析任务要求,写出系统整体设计思路从试题的要求分析,主要包括的内容为ADC 转换电路的控制、采用定时器定时读取ADC 转换器的数据、将ADC 转换器的数据计算为对应的电压值,最后在数码管上显示出来。

整体设计思路:硬件采用单片机的P0 输出数码管的7 段码,P2 口输出数码管的位控信号。

用P1 的三个I/O 管脚连接ADC 转换器的接口,通过查询定时器T0 中断标志是否有效来启动ADC 转换器的工作,并读取ADC 转换器的转换结果。

然后,根据ADC 转换器的参考电压将ADC 转换器的转换结果计算为对应的电压值,并在数码管上显示出来。

(2)选择单片机型号和所需外围器件型号,设计单片机硬件电路原理图采用MCS51 系列单片机At89S51 作为主控制器,外围电路器件包括数码管驱动、AD 转换器TLC549、基准电压TL431 等。

数码管驱动采用2 个四联共阴极数码管显示,由于单片机驱动能力有限,采用74HC244 作为数码管的驱动。

在74HC244 的7 段码输出线上串联100 欧姆电阻起限流作用。

AD 转换器的参考电压由精密基准电源TL431 提供,标准参考电压Vref+为2.5 伏, Vref-为0 伏。

由于0V-2V 内的测量误差控制在±0.05V 内,因此8 位A/D 转换器即可满足要求。

AD 转换器TLC549是以8 位开关电容逐次逼近A/D 转换器为基础而构造的CMOS A/D 转换器。

它们设计成能通过3态数据输出和模拟输入与微处理器或外围设备串行接口。

TLC549 仅用输入/输出时钟(I/O CLOCK)和芯片选择(CS)输入作数据控制。

TLC549 的IO CLOCK 输入频率最高可达1.1MHz。

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

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

第1章课程设计的目的和意义1.1 课程设计的目的1.运用单片机的基础知识,依据课程设计内容,能够完成从硬件电路图设计,到PCB制版,再到软件编程以及系统调试实现系统功能,完成课程设计,加深对单片机基础知识的理解,并灵活运用,将各门知识综合应用。

2.能够上网查询器件资料,培养对新知识,新技术的独立的学习能力和应用能力。

3.能够独立完成一个小的系统设计,从硬件设计到软件设计,增强分析问题、解决问题的能力,为今后的毕业设计及科研工作奠定良好的基础。

1.2课程设计的意义单片机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。

本课题主要实现利用单片机对电压表进行控制。

第2章系统方案设计及确定2.1 系统方案的提出根据简易数字电压表设计的需要,为单片机和A/D转换器提供以下设计方案。

2.1.1 单片机方案方案一:AT89S51AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含8k Bytes ISP的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元。

AT89S51具有如下特点:40个引脚,8k Bytes Flash片内程序存储器,128 bytes 的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

方案二:AT89C51AT89C51是一个低功耗,高性能CMOS 8位单片机,片内含4k字节Flash可擦写存储器(PEROM)。

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

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

基于单片机的数字电压表设计一、数字电压表设计1、目的及意义数字电压表是诸多数字化仪表的核心与基础。

可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表(如:温度计,湿度计,酸度计,重量,厚度仪等),几乎覆盖了电子电工测量,工业测量,自动化仪表等各个领域。

除此之外,数字电压还有着传统指针电压表无可比拟的优点:读数直观、准确,显示范围宽、分辨力高,转入阻抗高,功耗小、抗干扰强等。

因此对数字电压表作全面深入的了解是很有必要的。

但是传统的数字电压表设计通常以大规模ASIC(专用集成电路)为核心器件,并辅以少量中规模集成电路及显示器件构成,可是这种设计方法灵活性差,系统功能固定,难以更新扩展,不能满足日益发展的电子工业要求。

而应用单片机为核心单元的数字电压表,其灵活性高、系统功能扩展简单,性能稳定可靠。

本课题目的就是以单片机为基础设计出一种结构简单、工作可靠、灵活性好的直流数字电压表。

要求测量范围为0~5V。

2、总体设计方案数字电压表主要包括两部分:硬件电路及软件程序。

而硬件电路采用ATMEL公司的AT89C51作为主处理器,系统主要由信号采集、A/D转换、数据处理输出、驱动显示等几个功能模块组成。

系统框图1如下:图1硬件原理框图被测直流电压由A/D转换单元采集后被量化,再由单片机对A/D转换的结果进行标度变换,得到被测电压的数值,通过单片机对数次转换结果求平均值、并通过SOI串行数据接口把所求平均值输出给显示驱动单元,由该单元完成译码,并驱动数码管显示。

电压表的数字化是将连续模拟的电压量经A/D转化后变为不连续的离散的数字量并加以显示。

在设计过程中采用分模块设计,按照图1把电路分A/D转换、数据处理输出、驱动、显示四个单元。

数值显示是采用八段数码管,由单片机以动态扫描方式驱动,在此方式下能保证足够的亮度和较长的使用寿命。

单片机是将计算机的基本部件微型化,使之集成在一块芯片上的微机。

在自动化装置、智能化仪器仪表、过程控制和家用电器等领域得到日益广泛的应用。

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

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

基于单片机实现简易数字电压表的设计任务的功能要求:1. 可以选择8路0~5V的输入电压值;2. 可以轮流显示或是单路选择显示;3. 测量显示的最小分辨率为0.01V,测量误差正负0.02V;4. 具有电压过低、过高的声光报警功能。

在此我们选择的单片机为STC89C52芯片、ADC0809数模转换器(因仿真软件没有,故选用ADC0808替代,其实差不多的,就是输出管脚的排序问题)、LCD1602液晶屏(接线相对与数码管简单多了)。

在protel软件中的仿真电路图如下:P2.7的开关的选择是选择显示1,2,3,4路或是5,6,7,8路。

下面的单片机的C程序长是长了点,但确实运行有效,主要花费在8路的数据实现上了,另外其中的报警设置也是思路中有一路需要报警也即报警的。

关于各个芯片及液晶的资料自己去网上找就好了。

另外P0端口必须接上拉电阻!lcd1602的3脚管必须接可调电阻!单片机的C程序清单:#include <reg52.h>#include <intrins.h>#include<string.h>#define dat_port P0#define uchar unsigned char #define uint unsigned int#define delay4us() {_nop_();_nop_();_nop_();_nop_();}sbit AB1=P3^2;sbit AB2=P3^1;sbit AB3=P3^0;sbit AB5=P3^3;sbit AB4=P2^7;sbit RS=P2^0;//RS=1 数据 RS=0 命令sbit RW=P2^1;//RW=1 读取 RW=0 写入sbit E=P2^2;//E 使能信号sbit EOC=P2^4;sbit OE=P2^5;sbit START=P2^3;sbit CLOCK=P2^6;uchar X[4]={"0000"};void Refresh_show();void delay50us(uint m){uint n,k;for(n=m;n>0;n--)for(k=25;k>0;k--);}void Write_LCD_Command(uchar cmd);//向LCD写入命令void Write_LCD_Data(uchar dat); //向LCD写入一个字节的数据函数 void Initialize_LCD1602(); //液晶初始化函数void LCD_Display(uchar *str);//在LCD上显示字符串//---------------忙检查-------------------//uchar LCD_Busy_Check(){uchar LCD_Status;RS = 0;RW = 1;E = 1;delay50us(4);LCD_Status = P0;E = 0;return LCD_Status;}//--------------向LCD写入命令--------------------//void Write_LCD_Command(uchar cmd){while((LCD_Busy_Check()& 0x80)==0x80); //忙等待RS = 0;RW = 0;E = 0;P0 = cmd;delay4us();E = 1;delay4us();E = 0;}//-----------向LCD写入一个字节的数据函数-----------------*/void Write_LCD_Data(uchar dat){while((LCD_Busy_Check()&0x80)==0x80);RS = 1;RW = 0;E = 0;P0 = dat;delay4us();E = 1;delay4us();E = 0;}//-----------LCD初始化-----------------*/void Initialize_LCD1602() //液晶初始化函数{Write_LCD_Command(0x38);delay50us(10); //功能设置,数据长度为8位,双行显示,5×7点阵字体Write_LCD_Command(0x0C);delay50us(10); // 显示开,关光标Write_LCD_Command(0x06);delay50us(10); //字符进入模式:屏幕不动,字符后移Write_LCD_Command(0x01); delay50us(10);//清屏}//-----------在LCD上显示字符串-----------------*/void LCD_Display(uchar *str){uchar i;for(i=0;i<strlen(str);i++){Write_LCD_Data(str[i]);delay50us(100);}}unsigned long dat_adc0808;uchar display_buffer[][16]={{"DC1=0.00DC2=0.00"}, {"DC3=0.00DC4=0.00"}};uchar display1_buffer[][16]={{"DC5=0.00DC6=0.00"}, {"DC7=0.00DC8=0.00"}};uint adc0808_init() // AD初始化{START=0;OE=0;START=1;START=0;while(EOC==0);OE=1;dat_adc0808=P1;OE=0;return dat_adc0808;}void Refresh_show0() //刷新显示{uint t=dat_adc0808*500.0/255; //if(t>400||t<100)X[0]=1;elseX[0]=0;display_buffer[0][4] = t/100+'0'; //整数位display_buffer[0][6] = t/10%10+'0'; //两个小数位 display_buffer[0][7] = t%10+'0'; }void Refresh_show1() //刷新显示{uint t=dat_adc0808*500.0/255; //if(t>400||t<100)X[1]=1;elseX[1]=0;display_buffer[0][12] = t/100+'0'; //整数位display_buffer[0][14] = t/10%10+'0'; //两个小数位 display_buffer[0][15] = t%10+'0'; }void Refresh_show2() //刷新显示{uint t=dat_adc0808*500.0/255; //if(t>400||t<100)X[2]=1;elseX[2]=0;display_buffer[1][4] = t/100+'0'; //整数位display_buffer[1][6] = t/10%10+'0'; //两个小数位 display_buffer[1][7] = t%10+'0'; }void Refresh_show3() //刷新显示{uint t=dat_adc0808*500.0/255; //if(t>400||t<100)X[3]=1;elseX[3]=0;display_buffer[1][12] = t/100+'0'; //整数位display_buffer[1][14] = t/10%10+'0'; //两个小数位 display_buffer[1][15] = t%10+'0';}void Refresh1_show0() //刷新显示{uint t=dat_adc0808*500.0/255; //if(t>400||t<100)X[0]=1;elseX[0]=0;display1_buffer[0][4] = t/100+'0'; //整数位display1_buffer[0][6] = t/10%10+'0'; //两个小数位 display1_buffer[0][7] = t%10+'0';}void Refresh1_show1() //刷新显示{uint t=dat_adc0808*500.0/255; //if(t>400||t<100)X[1]=1;elseX[1]=0;display1_buffer[0][12] = t/100+'0'; //整数位display1_buffer[0][14] = t/10%10+'0'; //两个小数位 display1_buffer[0][15] = t%10+'0'; }void Refresh1_show2() //刷新显示{uint t=dat_adc0808*500.0/255; //if(t>400||t<100)X[2]=1;elseX[2]=0;display1_buffer[1][4] = t/100+'0'; //整数位display1_buffer[1][6] = t/10%10+'0'; //两个小数位 display1_buffer[1][7] = t%10+'0';}void Refresh1_show3() //刷新显示{uint t=dat_adc0808*500.0/255; //if(t>400||t<100)X[2]=1;elseX[2]=0;display1_buffer[1][12] = t/100+'0'; //整数位display1_buffer[1][14] = t/10%10+'0'; //两个小数位 display1_buffer[1][15] = t%10+'0'; }void main(){TMOD=0x02;TH0=0x14;TL0=0x00;IE=0x82;TR0=1;Initialize_LCD1602();delay50us(10);while(1){if(AB4==1){AB1=0;AB2=0;AB3=0;adc0808_init();Refresh_show3();Write_LCD_Command(0x80);//设置显示的初始位置LCD_Display(display_buffer[0]); //显示测得的数据AB1=0;AB2=0;AB3=1;adc0808_init();Refresh_show0();Write_LCD_Command(0x80);//设置显示的初始位置LCD_Display(display_buffer[0]); //显示测得的数据 AB1=0;AB2=1;AB3=0;adc0808_init();Refresh_show1();Write_LCD_Command(0xC0);//设置显示的初始位置LCD_Display(display_buffer[1]); //显示测得的数据 AB1=0;AB2=1;AB3=1;adc0808_init();Refresh_show2();Write_LCD_Command(0xC0);//设置显示的初始位置LCD_Display(display_buffer[1]); //显示测得的数据 if(X[0]||X[1]||X[1]||X[2]==1) AB5=1;elseAB5=0;}else{AB1=1;AB2=0;AB3=0;adc0808_init();Refresh1_show3();Write_LCD_Command(0x80);//设置显示的初始位置LCD_Display(display1_buffer[0]); //显示测得的数据 AB1=1;AB2=0;AB3=1; adc0808_init();Refresh1_show0();Write_LCD_Command(0x80);//设置显示的初始位置LCD_Display(display1_buffer[0]); //显示测得的数据 AB1=1;AB2=1;AB3=0; adc0808_init();Refresh1_show1();Write_LCD_Command(0xC0);//设置显示的初始位置LCD_Display(display1_buffer[1]); //显示测得的数据 AB1=1;AB2=1;AB3=1; adc0808_init();Refresh1_show2();Write_LCD_Command(0xC0);//设置显示的初始位置LCD_Display(display1_buffer[1]); //显示测得的数据 if(X[0]||X[1]||X[1]||X[2]==1) AB5=1;elseAB5=0;}}}void Timer0_INT() interrupt 1 {CLOCK=!CLOCK; }。

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

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

基于单片机的简易数字电压表的设计一、背景随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

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

与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力理。

本设计AT89C51单片机的一种电压测量电路,该电路采用ADC0808本文介绍一种基于A/D转换电路,测量范围直流0~5V 的4路输入电压值,并在四位LED 数码管上显示或单路选择显示。

测量最小分辨率为0.019V,测量误差约为正负0.02V。

二、设计原理和要求本设计是利用单片机AT89C51与ADC0808设计一个数字电压表,测量0-5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。

2.1数字电压表的实现原理ADC0808是8位的A/D转换器。

当输入电压为5.00V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196(5/255)。

ADC0808具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。

如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8 路输入电压进行测量。

LED 数码管显示采用软件译码动态显示。

通过按键选择可对8路循环显示,也可单路显示,单路显示可通过按键选择显示的通道数。

2.2数字电压表的设计要求可以测量0~5V范围内的3路直流电压值。

在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V~5.00V,1位LED数码管显示路数,3路分别为0-2。

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

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

任务书摘要本文介绍了基于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数码显示管显示。

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

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

基于单片机的数字电压表设计在当今的电子世界中,电压表是一种必不可少的测量工具。

随着技术的进步,数字电压表因其精度高、易于读取、稳定性好等优点逐渐取代了传统的模拟电压表。

本文将探讨如何基于单片机设计数字电压表。

一、硬件设计1、1传感器模块传感器模块是数字电压表的重要组成部分,负责将输入的模拟电压转化为可被单片机处理的数字信号。

通常,我们使用ADC(模数转换器)来实现这一功能。

ADC的精度直接决定了电压表的测量精度。

1、2单片机模块单片机是数字电压表的“大脑”,负责控制整个系统的运行。

我们选择具有较高性能和可靠性的单片机,如Arduino、STM32等。

这些单片机都具有丰富的外设接口,便于实现复杂的控制逻辑。

1、3显示模块显示模块负责将单片机的处理结果呈现给用户。

常用的显示模块包括LED数码管、LCD液晶屏等。

选择适合的显示模块,可以大大提升电压表的易用性。

二、软件设计2、1数据采集与处理软件首先通过ADC从传感器模块读取模拟电压,然后对其进行处理,得到实际的电压值。

这一步的关键在于选择合适的ADC算法和设置合适的参考电压。

2、2数据输出与存储处理后的电压值需要被输出并存储起来。

通常,我们使用LCD液晶屏将电压值实时显示出来,同时也可以通过串口将数据传输到计算机或云端进行存储和分析。

三、精度与稳定性优化3、1硬件校准为了提高电压表的测量精度,我们可以在生产过程中对每一块电压表进行硬件校准。

通过调整ADC的参考电压或者在软件中进行校准算法的优化,可以有效提高电压表的测量精度。

3、2软件滤波在实际应用中,由于各种噪声和干扰的存在,电压表的读数可能会出现波动。

我们可以通过软件滤波算法,如平均滤波、卡尔曼滤波等,来减小这些干扰对测量结果的影响。

四、应用与扩展基于单片机的数字电压表不仅可以在实验室或工业现场使用,还可以扩展出更多的应用场景。

例如,通过加入无线通信模块,我们可以实现远程监控;通过加入更多的传感器,我们可以实现多通道的电压测量;通过与计算机或云端进行数据交互,我们可以实现大数据分析和预测。

推荐-基于单片机的简易数字电压表设计 精品

推荐-基于单片机的简易数字电压表设计  精品

存档编号华北水利水电大学North China University of Water Resources and Electric Power题目基于单片机的数字电压表设计学院信息工程学院专业通信工程姓名学号20XX12303指导教师完成时间20XX年5月20日教务处制独立完成与诚信声明本人郑重声明:所提交的()是本人在指导教师的指导下,独立工作所取得的成果并撰写完成的,郑重确认没有剽窃、抄袭等违反学术道德、学术规范的侵权行为。

文中除已经标注引用的内容外,不包含其他人或集体已经发表或撰写过的研究成果。

对本文的研究做出重要贡献的个人和集体,均已在文中作了明确的说明并表示了谢意。

本人完全意识到本声明的法律后果由本人承担。

()作者签名:指导导师签名:签字日期:签字日期:()版权使用授权书本人完全了解华北水利水电学院有关保管、使用()的规定。

特授权华北水利水电学院可以将()的全部或部分内容公开和编入有关数据库提供检索,并采用影印、缩印或扫描等复制手段复制、保存、汇编以供查阅和借阅。

同意学校向国家有关部门或机构送交()原件或复印件和电子文档(涉密的成果在解密后应遵守此规定)。

()作者签名:导师签名:签字日期:签字日期:目录摘要随着时代的进步,用指针式万用表测量小幅度直流电压已经显得有些不太方便。

因为指针式的测量不够精确,随着长时间的使用可能会造成欧姆调零以及机械调零的磨损,这都会对数据的测量造成很多困难,而采用数字式电压表来测量就可以避免这种情况的发生,而且操作更加方便。

下面本文将介绍一种由数字电路以及单片机构成的数字电压表的设计方法。

本设计运用STC89C52和ADC0809进行A/D转换,根据数据采集的工作原理,设计简易数字电压表, 将模拟电压量直接转换成数字量,用LCD液晶屏来显示。

其基本原理是,模拟电压量经过A/D转换芯片转换成数字量,送入单片机进行处理。

最后输出的数据在经过线路驱动器送入液晶屏显示电压大小。

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

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

百度文库- 让每个人平等地提升自我毕业设计论文基于单片机的数字电压表设计系电子信息工程系专业电子信息工程技术姓名杨野班级电子信息102 学号20指导教师钱宜平职称高级工程师设计时刻基于单片机的数字电压表的设计摘要本文介绍了一种基于单片机的简易数字电压表的设计。

该设计主要由三个模块组成:A/D转换模块,数据处置模块及显示模块。

A/D转换主要由芯片ADC0808来完成,它负责把收集到的模拟量转换为相应的数字量在传送到数据处置模块。

数据处置则由芯片AT89C51来完成,其负责把ADC0808传送来的数字量通过必然的数据处置,产生相应的显示码送到显示模块进行显示;另外,它还控制着ADC0808芯片工作。

该系统的数字电压表电路简单,所用的元件较少,本钱低,且测量精度和靠得住性较高。

此数字电压表能够测量0-5V的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。

关键词单片机;数字电压表;A/D转换;AT89C51;ADC0808目录1 引言 02 设计整体方案 (1)设计要求 (1)设计思路 (1)设计方案 (1)3 硬件电路设计 (2)A/D转换模块 (2)单片机系统 (6)复位电路和时钟电路 (8)LED显示系统设计 (9)整体电路设计 (12)4 程序设计 (14)程序设计总方案 (14)系统子程序设计 (14)5 仿真 (16)软件调试 (16)5.2显示结果及误差分析 (16)结论 (19)参考文献 (20)附录 (21)致谢 (24)1 引言在电量的测量中,电压、电流和频率是最大体的三个被测量,其中电压量的测量最为常常。

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

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

由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而取得普遍应用[1]。

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

简易数字电压表的设计学院:机电工程学院专业:自动化X班姓名:XXX学号:XXXXXXXXXX目录1.摘要及关键词-------------------------------------------32.总体设计方案-------------------------------------------33.硬件电路及仿真设计------------------------------------104.程序设计及调试----------------------------------------125.本人承担的小组工作以及设计体会------------------------136.参考文献----------------------------------------------137.元器件清单及程序清单----------------------------------13摘要:本次设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。

A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。

数据处理则由芯片AT89C52来完成,其负责把ADC0809传送来的数字量经过一定的数据处理,送到LCD1602液晶显示模块进行显示;此外,它还控制着ADC0809芯片工作。

关键词:数字电路单片机 ADC0809 LCD1602总体方案的设计:本次设计的要求如下:1.可以选择测量8路1-5V的8路电压值:2.可轮流显示或单路选择显示(可选);3.测量显示的最小分辨率为0.01V,测量的误差正负0.02V;4.具有电压过低,过高声光报警功能,报警限可独立设置。

设计思路:根据设计的要求,进行器件的选择。

芯片控制选取STC89C52单片机,由于要控制8路,故选取ADC0809的数模转换,显示部分选用目前很流行的LCD1602的液晶显示,最后采用8个开关控制8个通道,所以选取74LS148。

下面进行逐一叙述:STC89C52单片机芯片管脚如下STC89C52的管脚图STC89C52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。

在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口。

另外 STC89X52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。

空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。

掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。

最高运作频率35Mhz,6T/12T可选。

复位电路设计单片机在启动运行时都需要复位,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作。

MCS-51单片机有一个复位引脚RST,采用施密特触发输入。

当震荡器起振后,只要该引脚上出现2个机器周期以上的高电平即可确保时器件复位[1]。

复位完成后,如果RST端继续保持高电平,MCS-51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其他工作状态。

单片机的复位方式有上电自动复位和手动复位两种,下图是51系列单片机统常用的上电复位和手动复位组合电路,只要Vcc上升时间不超过1ms,它们都能很好的工作[1]。

复位电路时钟电路设计单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。

CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。

MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路[1]。

本设计系统采用内部时钟方式,利用单片机内部的高增益反相放大器,外部电路简,只需要一个晶振和 2个电容即可,如下图所示。

时钟电路ADC0809:ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

是目前国内应用最广泛的8位通用A/D芯片。

下图是内部电路结构及外部管脚图:1.主要特性1)8路输入通道,8位A/D转换器,即分辨率为8位。

2)具有转换起停控制端。

3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)4)单个+5V电源供电5)模拟输入电压范围0~+5V,不需零点和满刻度校准。

6)工作温度范围为-40~+85摄氏度7)低功耗,约15mW。

2.内部结构ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、逻辑控制和定时电路组成。

3.外部特性(引脚功能)ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。

下面说明各引脚功能。

IN0~IN7:8路模拟量输入端。

2-1~2-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:地。

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

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

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

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

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

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

注释:由于仿真软件proteus没有adc0809,故仿真的时候选取adc0808取代,只有输出数字信号时引脚的排序不同。

LCD1602液晶:Lcd1602的引脚图工业字符型液晶,能够同时显示16x02即32个字符。

(16列2行)注:为了表示的方便,后文皆以1表示高电平,0表示低电平。

1602液晶也叫1602字符型液晶它是一种专门用来显示字母、数字、符号等的点阵型液晶模块它有若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符。

每位之间有一个点距的间隔每行之间也有间隔起到了字符间距和行间距的作用。

1602是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。

管脚功能1602采用标准的16脚接口,其中:第1脚:VSS为电源地第2脚:VDD接5V电源正极第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。

第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。

第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。

第6脚:E(或EN)端为使能(enable)端。

第7~14脚:D0~D7为8位双向数据端。

1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。

因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如'A’。

以下是1602的16进制ASCII码表地址:读的时候,先读左边那列,再读上面那行,如:感叹号!的ASCII为0x21,字母B的ASCII为0x42(前面加0x表示十六进制)74LS148:管脚图如上输入输出关系如下图连接如图所示电路并仿真成功!误差分析通过以上仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表,标准电压值/V 简易电压表测量值/V绝对误差/V0.00 0.00 0.000.50 0.51 0.011.00 1.00 0.001.50 1.51 0.012.00 2.00 0.002.50 2.50 0.003.00 3.00 0.003.50 3.50 0.004.00 4.00 0.00 4.995.00 0.01初始工作状态设定,初始化子程序的主要工作是设置定时器的工作模式,初值预置,开中断和打开定时器等[9]。

A/D转换子程序A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值图13 A/D转换流程图3 显示子程序跟据LCD1602液晶的显示方式,先对其进行初始化,输入设置方式,在显示数值的时候要先写地址符号。

Write_LCD_Command(0x80);//设置显示的初始位置LCD_Display(display_buffer[0]); //显示测得的数据本人在小组中的工作及设计体会:由于我承担小组长的职位,在设计的时候兼顾整体的方案。

根据本小组成员的需要及个人所长,工作分配如下:XXX(我):仿真电路图的设计及程序的设计XX:仿真电路图的设计及电路图的布线XXX:元器件的采购及电路图的焊接设计体会:本次设计很大程度考验了一个团队的合作能力,一个人并不能擅长做所有的东西,而对于设计,其关键就在于设计的思路,有步骤的设计可以省去很多不必要的麻烦,我觉得做这样的课程设计,不仅仅是考验我们的设计能力,或者说是写程序能力,而是我们将成品做出来后,它并没有按照我们的设定工作,更大程度的考验我们解决问题的能力。

比如这次我们的设计,在仿真成功后,电路板焊接完毕,连线完毕,将程序输入到单片机里工作时就出了差错,检查了很久的连线都没有检查出来,然后就想到了测电位的方法来判断,当时就得出了结论:单片机没有工作。

相关文档
最新文档