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

合集下载

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

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

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

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

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

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

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

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

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

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

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

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

二、设计要求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 转换得到的数字量转换为实际的电压值,并进行精度处理。

单片机课程设计——数字电压表

单片机课程设计——数字电压表

单片机预习报告--------------电压表一.题目分析根据题目要求,系统设计需要基于自动控制原理,实现电压量程的自动切换、数据采样、电压显示等功能。

主要来说,系统由信号调理电路、A/D转换电路、单片机控制系统、数码显示系统等几个模块组成。

二.系统总体设计与框图系统框图如图下图所示。

该过程是:首先通过系列比较器检测输入电压的极性与范围,单片机根据电压极性与范围对继电器阵列进行相应的动作,实现了输入量程的全自动转换。

经过调理后的电压信号由AD转换后送出数码显示。

系统总体设计与框图三.各模块方案1)A/D采样系统采用ADC08322)自动量程切换量程切换电路包括电压衰减变换电路和无零漂小信号放大电路。

智能数字电压表中关键技术之一为自动量程转换问题。

用单片机控制多组继电器进行量程切换。

特点是简单实用,缺点是机械噪声大。

3)电压检测为了实现对输入的微小信号或大信号进行精确测量,我们拟采用信号放大或衰减预处理电路,即需要对被测量电压的极性、范围进行判断和确定,从而将被测电压的基本信息传递给单片机系统。

用多组比较器进行电压范围的分段检测,实现对输入电压的粗略测量。

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

4)显示部分采用LED数码管动态扫描显示。

采用3个位LED动态扫描显示的优点是能改善外部信号对显示的干扰,但单片机在工作时要求CPU不停地对LED更新,这将会降低系统的运行速度,且占用资源比较多。

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

7)继电器模块单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口.四.元件清单五.程序设计程序流程图如下。

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

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

单片机课程设计---基于单片机的数字电压表设计《单片机原理及应用》课程设计报告学院:源与动力工程学院__ 班级:_____建电1001______ 学号:_____101605121______ 姓名:______刘兹平________ 时间:2012-12-17 ~ 2012-12-21目录任务书 (1)第一章方案设计 (2)第二章硬件系统设计 (3)第三章软件设计 (7)第四章系统调试 (10)小结 (11)附录1:原理图 (13)附录2:源程序 (14)任务书1、题目:基于单片机的数字电压表设计2、设计要求:(1)利用单片机及ADC0809构成一个电压采集系统,实现8通道循环采样,循环显示。

(2)显示采用ZLG7290,显示精度到小数点后一位。

第1页共31页第一章方案设计1、总体设计方案本设计使用ADC0809对模拟信号进行转换,然后经过AT89C51转换后的结果来进行运算和处理,然后由数码管直接显示数字电压信号,其中分辨率为0.02v。

用电位器控制输入电压,经ADC0809模数转换,然后数据被单片机采集,并经过单片机利用相应的算法进行调整,最后利用串口将处理好的数据输出至数码管。

其中ADC0809通过IN0~IN7采集模拟电压信号送给单片机,单片机将采集来的信号通过一定的处理然后通过串口输出至共阳极的LED数码管显示采集到的电压值。

2、总体设计框图第2页共31页第二章硬件系统设计1、硬件系统设计思路8路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路等组成。

ADC0809具有8路模拟量输入通道IN0---IN7,通过3位地址输入端C、B、A(引脚23--25)进行选择。

引脚22为地址锁存控制端ALE,当输入为高电平时,C、B、A引脚输入的地址锁存于ADC0809内部是锁存器中,经内部译码电路译码选中相应的模拟通道。

引脚6为启动转换控制端START,当输入一个2μs宽的高电平脉冲时,就启动ADC0809开始对输入通道的模拟量进行转换。

单片机课程设计-数字电压表

单片机课程设计-数字电压表

目录1 引言 (1)2设计原理及要求 (2)2.1数字电压表的实现原理 (2)2.2数字电压表的设计要求 (2)3软件仿真电路设计 (4)3.1设计思路 (4)3.2仿真电路图 (4)3.3设计过程 (5)3.4 AT89C51的功能介绍 (5)3.4.1简单概述 (5)3.4.2主要功能特性 (6)3.4.3 AT89C51的引脚介绍 (6)3.5 ADC0808的引脚及功能介绍 (8)3.5.1芯片概述 (8)3.5.2 引脚简介 (9)3.5.3 ADC0808的转换原理 (9)3.6 74LS373芯片的引脚及功能 (9)3.6.1芯片概述 (9)3.6.2引脚介绍 (9)3.7 LED数码管的控制显示 (10)3.7.1 LED数码管的模型 (10)3.7.2 LED数码管的接口简介 (10)4系统软件程序的设计 (11)4.1 主程序 (11)4.2 A/D转换子程序 (12)4.3 中断显示程序 (13)5电压表的调试及性能分析 (14)5.1 调试与测试 (14)5.2 性能分析 (15)6电路仿真图 (15)7总结 (16)参考文献 (18)附录1 源程序 (19)附录2 仿真原理电路 (25)1 引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

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

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

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

单片机课程设计报告数字电压表

单片机课程设计报告数字电压表

单片机课程设课题名称:数字电压表课程原理:1、模数转换原理:试验中,我们选用ADC0809作为模数转换的芯片,其为逐次逼近式AD转换式芯片,其工作时需要一个稳定的时钟输入,根据查找资料,得到ADC0809的时钟频率在10KHZ~1200KHZ,我们选择典型值640KHZ。

课题要求测量电压范围是0到5V,又ADC0809的要求:V ref+<=Vcc,V ref->=GND,故我们取V ref+=+5V,V ref-=0V。

由于ADC0809有8个输入通道可供选择,我们选择IN0通道,直接使ADC0809的A、B、C接地便可以了,在当ADC0809启动时ALE引脚电平正跳变时变可以锁存A、B、C 上的地址信息。

ADC0809可以将从IN0得到的模拟数据转换为相应的二进制数,由于ADC0809输出为8位的二进制数,转换时将0到5V分为255等分,所以我们可以得到转换公式为x/255*5化简为:x/51,x为得到的模拟数据量,也就是直接得到的电压量。

在AD转换完成后,ADC0809将在EOC引脚上产生一个8倍于自身时钟周期的正脉冲,以此来作为转换结束的标志。

然后当OE引脚上产生高电平时,ADC0809将允许转换完的二进制数据输出。

2、数据处理原理:由ADC0809的转换原理可以知道我们从其得到数据还只是二进制数据,我们还需要进一步处理来的到x的十进制数,并且对其进行精度处理,也就是课题要求的的精确到小数点后两位,在这里我们用51单片机对数据进行处理。

我们处理数据的思路是:首先将得到的二进制数直接除以十进制数51,然后取整为x的整数部分,然后就是将得到的余数乘以10,然后再除以51,再取整为x的十分位,最后将得到的余数除以5得到x的百分位。

3、数据显示原理:试验中我们用到四位一体的七段数码管,所以我们只能考扫描显示来完成数码管对x的显示,我们用的是四位数码显示管,但是x只是三位的,故我们将将第四位显示为单位U,通过程序的延时,实现四位数码管的稳定显示。

单片机课程设计(数字电压表,数字温度计,计时器设计)资料

单片机课程设计(数字电压表,数字温度计,计时器设计)资料

《单片机原理与应用》课程设计目录第1章简易数字电压表的设计..........................1第2章DS18B20数字温度计的设计......................4第3章秒表/时钟计时器的设计.........................12第一章简易数字电压表的设计1.1 功能要求简易数字电压表的设计可以测量0~5V的8路输入电压值,并在四位上轮流显示或单路选择显示。

测量最小分辨率为0.019V,测量误差为±0.02V。

1.2 方案论证按系统功能实现要求,决定控制系统采用AT89C52单片机,A/D转换采用ADC0809。

系统除能确保实现要求的功能外,还可以方便地进行8路其它A/D转换量的测量、远程测量结果传送等扩展功能。

数字电压表系统设计方案框图如图1.1。

1.3 系统硬件电路的设计简易数字电压测量电路由A/D转换、数据处理及显示控制等组成,电路原理图如图1.2所示。

A/D转换由集成电路0809完成,0809具有8路模拟输入端口,地址线(23~25脚)可决定对哪一路模拟输入作A/D转换。

22脚为地址锁存控制,当输入为高电平时,对地址信号进行锁存。

6脚为测试控制,当输入一个2μs宽高电平脉冲时,就开始A/D转换。

7脚为A/D转换结束标志,当A/D 转换结束时,7脚输出高电平。

9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出10脚为0809的时钟输入端,利用单片机30脚的六分频晶振频率再通过14024二分频得到1MHz时钟。

单片机的P1、P3.0~P3.3端口作为四位LED数码管显示控制。

P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择通道。

P0端口作A/D转换数据读入用,P2端口用作0809的A/D转换控制。

1.4 系统程序的设计1.4.1 初始化程序系统上电时,初始化程序将70H~77H内存单元清0,P2口置0。

单片机数字电压表课程设计报告

单片机数字电压表课程设计报告

单片机数字电压表课程设计报告单片机数字电压表课程设计报告摘要:本次课程设计采用单片机来实现数字电压表的设计,通过对市场上常见单片机的选型和开发工具的使用,实现了数字电压表的硬件和软件设计。

该数字电压表具有分辨率高、测量精度高、响应速度快等特点,可广泛应用于测量高压、低压、直流电压等领域。

关键词:单片机、数字电压表、驱动电路、计数器一、课程设计目的本次课程设计旨在让学生了解数字电压表的设计方法和原理,通过使用单片机来实现数字电压表的设计,提高学生的实践能力和创新能力。

同时,通过本次课程设计,还可以让学生了解单片机的使用方法和开发工具的使用,加深对单片机应用的理解。

二、课程设计内容本次课程设计采用单片机来实现数字电压表的设计,具体包括以下内容:1. 对市场上常见单片机的选型和开发工具的使用。

2. 设计数字电压表的硬件电路,包括驱动电路、计数器、计数器清零电路等。

3. 设计数字电压表的软件电路,包括计数器清零程序、计数器累加程序、显示程序等。

4. 将数字电压表与单片机连接,进行测试和调试。

三、课程设计原理数字电压表的设计原理是利用单片机的计数器来实现对电压值的计数和显示。

单片机通过外部时钟信号来控制计数器的计数频率,将计数器的计数值累加到显示寄存器中,从而实现对电压值的显示。

同时,通过对电压值的测量和计算,可以实现对高压、低压、直流电压的测量和显示。

四、课程设计步骤1. 对市场上常见单片机的选型和开发工具的使用。

2. 设计数字电压表的硬件电路,包括驱动电路、计数器、计数器清零电路等。

3. 设计数字电压表的软件电路,包括计数器清零程序、计数器累加程序、显示程序等。

4. 将数字电压表与单片机连接,进行测试和调试。

五、课程设计成果通过本次课程设计,学生可以独立完成数字电压表的硬件和软件设计,掌握单片机的应用和开发技巧,提高实践能力和创新能力。

同时,学生还可以根据实际应用需求,对数字电压表进行改进和创新,提高其实用性和市场竞争力。

单片机数字电压表课程设计 ppt课件

单片机数字电压表课程设计  ppt课件
4ppt课件3adc0809简介adc0809仿真引脚图8路模拟输入通过3根地址线addaaddbaddc来选通一路模拟通道选择地址信号adda为低位addc为高位ad转换后的数据输出正负参考电压输入端地址锁存允许信号高电平有效输出允许信号高电平有效时钟脉冲信号ad转换启动信号正脉冲有效转换结束信号高电平有效1adc0809
数字电压表特Leabharlann :★显示清晰直观、读数准确
★准确度高、分辨率高
★测量范围宽、扩展能力强
3
★PPT课抗件 干扰能力强等
2.设计要求
此次课程设计的设计要求是: 利用AT89C52与A/D转换器ADC0809设
计一个数字电压表,使其能够测量0~5v直流电 压,4位数码管显示。
4
PPT课件
3.ADC0809简介
7
PPT课件
启动A/D转换

转换是否结束?

输出转换结果
数值转换 显示
4.程序设计及仿真
2.C语言程序源代码
#include<reg52.h>
#include<intrins.h>
sbit EOC=P2^6;
sbit START=P2^5;
sbit OE=P2^7;
sbit CLK=P2^4;
long int a;
}
4.程序设计及仿真
3.Proteus仿真
13 PPT课件
4.程序设计及仿真
3.Proteus仿真
14 PPT课件
滑动变阻器在100%位置时
4.程序设计及仿真
3.Proteus仿真
15 PPT课件
滑动变阻器在80%位置时
4.程序设计及仿真
3.Proteus仿真

单片机课程设计(直流数字电压表)

单片机课程设计(直流数字电压表)

课程设计总结与展 望
课程设计目标:掌握单片机基础知识,学会设计直流数字电压表 课程设计内容:包括硬件设计、软件设计、调试和测试等 课程设计成果:成功设计并制作出直流数字电压表 课程设计收获:提高了单片机应用能力,增强了团队合作和沟通能力
课程设计展望:未来将继续深入学习单片机技术,提高实践能力,为未来就业做好准备
实际应用:可用于测量直流电压,广泛应用于电子、电力等领域 市场前景:随着电子技术的发展,市场需求不断增长 技术更新:需要不断更新技术,提高测量精度和稳定性 市场竞争:面临国内外竞争对手的压力,需要提高产品质量和降低成本
智能化:单片机技术在智能设备中的应用越来越广泛,未来发展方向将更加智能化。
物联网:单片机技术在物联网中的应用越来越广泛,未来发展方向将更加注重物联网技术的应用。
单片机课程设计(直 流数字电压表)
汇报人:
目录
添加目录标题
单片机课程设计概 述
硬件电路设计
软件程序设计
系统调试与测试
课程设计总结与展 望
添加章节标题
单片机课程设计概 述
掌握单片机的基本原理和编程方法 提高动手实践能力和创新能力 培养团队合作精神和解决问题的能力 为未来的学习和工作打下坚实的基础
电源测试:检查电源电压是 否稳定,是否符合要求
信号测试:检查信号输入、 输出是否正常,是否符合要 求
功能测试:检查系统功能是 否正常,是否符合设计要求
性能测试:检查系统性能是 否满足设计要求,如响应时 间、精度等
稳定性测试:检查系统在 长时间运行下的稳定性, 如温度、湿度等环境因素 对系统的影响
软件调试:通过运行程序,发现并修复程序中的错误 软件测试:通过测试程序,验证程序的功能和性能是否符合预期 测试方法:包括单元测试、集成测试、系统测试等 测试工具:可以使用自动化测试工具,如JUnit、Selenium等

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

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

目录摘要 (2)1.设计目的与功能要求 (3)1.1设计目的 (3)1.2功能要求 (3)2.总体设计 (3)2.1系统设计 (3)2.2设计方案 (3)2.3总体设计框图 (4)3.硬件电路设计 (5)3.1核心元器件介绍 (5)3.1.1芯片介绍 (5)3.1.2其它部分简介 (11)1.模拟电压输入部分 (11)2.四位八段共阴极数码管 (12)3.报警装置 (13)4.软件设计 (13)4.1 C语言流程图 (13)4.2 C语言程序清单 (15)5.调试仿真 (18)6.设计总结 (20)<参考文献> (21)摘要数字电压表的诞生打破了传统电子测量仪器的模式和格局。

它显示清晰直观、读数准确,采用了先进的数显技术,大大减少了因人为因素所造成的误差事件。

数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。

数字电压表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。

本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0808,系统除能保确实现要求的功能以外,还能方便进行8路其他A/D转换量得测量、远程测量结果传送等扩展功能。

简易数字电压测量电路由A/D转换、数据处理、显示控制等组成。

关键词:单片机;AT98C52;A/D转换;ADC0808;数据处理AbstractThe birth of the digital voltmeter broken the traditional electronic surveyinginstrument patterns and structure.It shows clear intuitive, readings accurate, use of advanced digital display technology, greatly reducing the caused by human factors error of events. Digital voltmeter is the continuous analogue (dc input voltage) convert discontinuous, discrete digital form, and to display appearance.The digital voltmeter electronic technology, computing technology, automation technology results with the precision electric measurement technology closely together,become instrument and meter field independent and complete a branch, digital voltmeter electronic instruments field marks a revolution, also started the modern electronic measurement technology precedent. This design USES A USES singlechip development platform, and control department AT89C52 microcontroller, A/D conversion using ADC0808, except that the system realized required functions,but also can facilitate assessment of no.8 other A/D conversion amount must measurement, remote measurement results delivery etc function expansion. Simple digital voltage measurement circuit by the A/D conversion, data processing, display and control etc.Keywords: SCM;AT89C52;A/D conversion;ADC0808;data processing1.设计目的与功能要求1.1 设计目的利用单片机AT89C52及ADC0808制作3位数字电压表,更好地学习掌握单片机AT89C52的工作原理及A/D的转换编程方法。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

单片机数字电压表设计LED显示含C源代码

单片机数字电压表设计LED显示含C源代码

1. 绪论............................... 错误!未定义书签。

1.1 课程设计规定...................... 错误!未定义书签。

1.2 数字电压表简介.................... 错误!未定义书签。

2. 硬件单元电路设计................... 错误!未定义书签。

2.1数字电压表构造框图................. 错误!未定义书签。

2.1.1 AT89C51单片机简介............ 错误!未定义书签。

2.1.2 ADC0832转换器简介............ 错误!未定义书签。

2.1.3 时钟电路..................... 错误!未定义书签。

2.1.4 复位电路..................... 错误!未定义书签。

2.1.5 LED显示电路.................. 错误!未定义书签。

3. 软件单元电路设计................... 错误!未定义书签。

3.1 主程序流程图...................... 错误!未定义书签。

3.2显示子程序流程图................... 错误!未定义书签。

3.3 A/D转换子程序流程图............... 错误!未定义书签。

3.4 数据解决子程序流程图.............. 错误!未定义书签。

4. 数字电压表仿真设计图与实物图....... 错误!未定义书签。

4.1 仿真图............................ 错误!未定义书签。

4.2 器件清单.......................... 错误!未定义书签。

4.3 硬件电路实物图.................... 错误!未定义书签。

5. 程序代码.............................. 错误!未定义书签。

单片机课程设计 数字电压表 程序和电路图

单片机课程设计  数字电压表  程序和电路图

功能:电压报警5V直流测量0.02V 误差LCD显示名字程序COM EQU 50H ;指令寄存器DAT EQU 51H ;数据寄存器RS EQU P2.1 ;LCD寄存器选择信号RW EQU P2.2 ;LCD读/写选择信号E EQU P2.3 ;LCD使能信号ORG 0000HLJMP MAIN ;主程序入口地址ORG 000BHLJMP BT0 ;T0中断入口ORG 0030H ;主程序,初始化MAIN:MOV SP,#60HLCALL INTMOV 30H,#30H ;电压整数位MOV 31H,#0A5H ;小数点位MOV 32H,#30H ;小数个位MOV 33H,#30H ;小数十位MOV 34H,#30H ;小数百位MOV 35H,#56H ;字符"V"MOV R7,#30HLCALL STR0 ;显示字符串0LCALL DELAYLCALL STR1 ;显示字符串1LCALL DELAYLCALL N2 ;显示V oltage=0.000V;***********定时器初始化程序***********MOV TMOD,#00H ;定时器T0设为方式0MOV TH0,#00H ;装入定时常数定时100usMOV TL0,#00HSETB TR0 ;启动T0MOV 24H,#08H;装入T0中断次数MOV IE,#82H ;开中断LP:MOV R7,#30H ;显示缓冲区首地址LCALL DISPL YSJMP LP ;循环显示LED1:CLR P3.0RET;********************************************************************;定时器T0中断服务子程序,读取ADC0809第0通道的A/D转换结果并化为显示值* ;********************************************************************BT0:PUSH ACCPUSH PSWMOV PSW,#08HCLR TR0MOV TH0,#00H ;重新装入初值MOV TL0,#00HDEC 24HMOV A,24HJNZ RTN1MOV 24H,#08HLCALL ADCRTN1: SETB TR0POP PSWPOP ACCRETIADC:MOV DPTR,#0F6FFHMOV A,#0 ;选择通道0MOVX @DPTR,A ;启动AD转换MOV A,#40HDJNZ ACC,$MOVX A,@DPTRMOV 22H,AMOV 21H,#0CCHCJNE A,21H,BJ0BJ0:JNC LEDSJMP LL0LL0:SETB P3.0SJMP LLLED:LCALL LED1LL: MOV A,22HMOV B,#05H ;A/D转换结果化为显示值MUL AB ;(AD*5)/256MOV 30H,B ;AD*5的高字节为整数部分MOV B,#0AHMUL AB ;AD*5的低字节为/256的结果,为小数部分MOV 32H,B ;二进制小数换为10进制数MOV B,#0AHMUL ABMOV 33H,BMOV B,#0AHMUL ABMOV 34H,BMOV A,30HMOV DPTR,#TABMOVC A,@A+DPTRMOV 30H,AMOV A,32HMOVC A,@A+DPTRMOV 32H,AMOV A,33HMOVC A,@A+DPTRMOV 33H,AMOV A,34HMOVC A,@A+DPTRMOV 34H,ARETDISPL Y: ;LCD显示子程序MOV COM,#0CAHLCALL PR1MOV DAT,30HLCALL PR2MOV DAT,31HLCALL PR2MOV DAT,32HLCALL PR2MOV DAT,33HLCALL PR2MOV DAT,34HLCALL PR2MOV DAT,35HLCALL PR2RETSTR0:MOV COM,#01HLCALL PR1MOV COM,#06HLCALL PR1MOV COM,#090H ;设置DDRAM地址LCALL PR1 ;调写指令代码子程序MOV DPTR,#TAB4MOV R2,#16MOV R3,#00HWRIN0:MOV A,R3MOVC A,@A+DPTRMOV DAT,ALCALL PR2INC R3DJNZ R2,WRIN0MOV COM,#0D0HLCALL PR1MOV DPTR,#TAB5MOV R2,#16MOV R3,#00HWRIN1:MOV A,R3MOVC A,@A+DPTRMOV DAT,ALCALL PR2INC R3DJNZ R2,WRIN1MOV R3,#10HZUOYI:MOV COM,#18HLCALL PR0DJNZ R3,ZUOYILCALL DELAY00LCALL DELAY00LCALL DELAY00LCALL DELAY00RETRETSTR1:MOV COM,#01H ;LCD清0命令LCALL PR1 ;调写指令代码子程序MOV COM,#06H ;输入方式命令,光标右移LCALL PR1 ;调写指令代码子程序MOV COM,#40HLCALL PR1MOV R5,#20HMOV DPTR,#ZIMOV R4,#0LOOP1:MOV A,R4MOVC A,@A+DPTRMOV DAT,ALCALL PR2INC R4DJNZ R5,LOOP1MOV COM,#80HLCALL PR1MOV DPTR,#TAB2MOV A,#00HMOVC A,@A+DPTR MOV DAT,ALCALL PR2MOV A,#01HMOV DPTR,#TAB2 MOVC A,@A+DPTR MOV DAT,ALCALL PR2MOV A,#02HMOV DPTR,#TAB2 MOVC A,@A+DPTR MOV DAT,ALCALL PR2MOV A,#03HMOV DPTR,#TAB2 MOVC A,@A+DPTR MOV DAT,ALCALL PR2MOV R1,#00HMOV R0,#0dHMOV DPTR,#TAB3 LOOP2:MOV A,R1MOVC A,@A+DPTRMOV DAT,ALCALL PR2INC R1DJNZ R0,LOOP2RETN2: MOV COM,#0C0HLCALL PR1MOV DPTR,#TAB1MOV R2,#10MOV R3,#00HWRIN:MOV A,R3MOVC A,@A+DPTRMOV DAT,ALCALL PR2INC R3DJNZ R2,WRINRETTAB: DB "0123456789"TAB1: DB "VOLTAGE = "TAB2: DB 00HDB 01HDB 02HDB 03HDB 04HDB 05HZI: DB 01FH,008H,00EH,00AH,00AH,00AH,012H,000H DB 00EH,00EH,019H,00EH,01DH,00DH,00FH,000H DB 00FH,01EH,00EH,01DH,01DH,00EH,014H,000H;*****************************************;****LCD间接控制方式下的初始化子程序******;*****************************************INT:LCALL DELAYMOV COM,#38H ;设置工作方式LCALL PR1MOV COM,#01HLCALL PR1MOV COM,#06HLCALL PR1MOV COM,#0EHLCALL PR1RETDELAY: ;延时子程序MOV R6,#0FHMOV R7,#00HDELAY1:NOPDJNZ R7,DELAY1DJNZ R6,DELAY1RETDELAY00: ;延时子程序MOV R6,#0FFHMOV R7,#0FFHDELAY0:NOPDJNZ R7,DELAY1DJNZ R6,DELAY1RET;1 读BF和AC值PR0: PUSH ACCMOV P0,#0FFH ; P0置位, 准备读CLR RS ; RS=0SETB RW ; R/W=1SETB E ; E=1LCALL DELAYMOV COM,P0 ; 读BF和AC6-4值CLR E ; E=0POP ACCRET;********************************************* ;*******LCD间接控制方式下的驱动子程序********* ;********************************************* ;2 写指令代码子程序PR1:PUSH ACCCLR RSSETB RWPR11:MOV P0,#0FFHSETB ELCALL DELAYNOPMOV A,P0CLR EJB ACC.7,PR11CLR RWMOV P0,COMSETB ECLR EPOP ACCRET;3 写显示数据子程序PR2:PUSH ACCCLR RSSETB RWPR21:MOV P0,#0FFHSETB ELCALL DELAYMOV A,P0CLR EJB ACC.7,PR21SETB RSCLR RWMOV P0,DATSETB ECLR EPOP ACCRET;4 读显示数据子程序PR3: PUSH ACCCLR RS ; RS=0SETB RW ; R/W=1PR31: MOV P0,#0FFH ; P0置位, 准备读SETB E ; E=1LCALL DELAYMOV A,P0 ; 读BF和AC6-4值CLR E ; E=0JB ACC.7,PR31SETB RS ; E=1SETB RW ; R/W=1MOV P0,#0FFH ; 读数据SETB E ; E=1MOV DA T,P0CLR E ; E=0POP ACCRETEND。

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

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

《单片机原理及应用》课程设计报告书课题名称数字电压表设计姓名学号专业指导教师机电与控制工程学院年月日任务书电压表是测量仪器中不可缺少的设备,目前广泛应用的是采用专用集成电路实现的数字电压表。

本系统以8051单片机为核心,以逐次逼近式A/D转换器ADC0809、LED显示器为主体,设计了一款简易的数字电压表,能够测量0~5V 的直流电压,最小分辨率为0.02V。

该设计大体分为以下几个部分,同时,各部分选择使用的主要元器件确定如下:1、单片机部分。

使用常见的8051单片机,同时根据需要设计单片机电路。

2、测量部分。

该部分是实验的重点,要求将外部采集的模拟信号转换成数字信号,通过单片机的处理显示在显示器上,该部分决定了数字电压表的精度等主要技术指标。

根据需要本设计采用逐次逼近型A∕D转换器ADC0809进行模数转换。

3、键盘显示部分。

利用4×6矩阵键盘的一个按键控制量程的转换,3或4位LED显示。

其中一位为整数部分,其余位小数部分。

关键词:8051 模数转换LED显示矩阵键盘目录1 绪论 (1)2 方案设计与论证 (2)3 单元电路设计与参数计算 (3)4 总原理图及参考程序 (8)5 结论 (14)6 心得体会 (15)7 参考文献 (16)1.绪论数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。

较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。

电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。

数字电压表的核心部件就是A/D 转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。

一般说来,A/D转换的方式可分为两类:积分式和逐次逼近式。

积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。

单片机课设 简易数字电压表

单片机课设  简易数字电压表

1.总体设计方案选择与说明要实现电压的测量有多种方案,其中两种比较简单的且精度比较高的方法,分别采用并行ADC0808芯片和和TLC1543/TLC2543芯片。

方案一:用ADC0808芯片做模数转换采样芯片,占用的单片机I/O口线多,占用的板子面积较大,但是可以循环采样8路模拟通道,编程相对简单。

方案二:用TLC1543/TLC2543芯片做模数转换采样芯片,占用的单片机I/O口线少,且占用电路面积小,但是编程比较复杂。

我采用方案一,因为方案一所用到的芯片我们都比较熟悉,采用常用的51单片机作为控制芯片,ADC0808芯片的CLOCK脚(时钟脉冲输入端)接单片机的P2.4脚,DATA OUT接单片机的P0.0-P0.7脚;ADD A-ADD C脚(3位地址输入线)接单片机的P1.0-P1.2;ALE脚(地址锁存允许信号)接单片机的P2.5;OE脚(数据输出允许信号)接单片机的P2.7;IN0-INT7接输入电压(及测试电压),ADC0808通过采样进来的数据信号送给单片机,通过计算再送入显示电路将其电压值显示出来。

电压的范围是0-5V。

2.系统结构框图与工作原理2图1.1 系统结构框图 2.2系统工作原理数字电压表工作原理:这里主要是利用ADC0808并行接口芯片,ADC0808芯片的基准电压脚外接电压为+5V ,则最大可以测得的电压为5V ,ADC0808芯片的模拟输入脚通过电位器接+5V 电压,进行模拟采样,通过调整电位器的值改变模拟量。

输入的模拟量经ADC0808芯片的内部8位开关电路逐次逼近A/D 转换器,转换成8位二进制数,其最小的分辨率为0.0196(V R E F =0.0196V),D 为转化的数字量,再通过 255/V V REF IN D ⨯=可以求得模拟电压,最后输入四位LED 显示器就可将所测得电压显示出来。

3.硬件电路设计及说明3.1键盘接口电路独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。

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

《单片机原理及应用》课程设计报告书课题名称数字电压表设计名姓学号专业指导教师机电与控制工程学院月年日1任务书电压表是测量仪器中不可缺少的设备,目前广泛应用的是采用专用集成电路实现的数字电压表。

本系统以8051单片机为核心,以逐次逼近式A/D转换器ADC0809、LED显示器为主体,设计了一款简易的数字电压表,能够测量0~5V的直流电压,最小分辨率为0.02V。

该设计大体分为以下几个部分,同时,各部分选择使用的主要元器件确定如下:1、单片机部分。

使用常见的8051单片机,同时根据需要设计单片机电路。

2、测量部分。

该部分是实验的重点,要求将外部采集的模拟信号转换成数字信号,通过单片机的处理显示在显示器上,该部分决定了数字电压表的精度等主要技术指标。

根据需要本设计采用逐次逼近型A∕D转换器ADC0809进行模数转换。

3、键盘显示部分。

利用4×6矩阵键盘的一个按键控制量程的转换,3或4位LED显示。

其中一位为整数部分,其余位小数部分。

关键词:8051 模数转换LED显示矩阵键盘2目录1 绪论 (1)2 方案设计与论证 (2)3 单元电路设计与参数计算 (3)4 总原理图及参考程序 (8)5 结论 (14)6 心得体会 (15)参考文献16 (7)31.绪论数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。

较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。

电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。

数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。

一般说来,A/D 转换的方式可分为两类:积分式和逐次逼近式。

积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。

根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。

逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。

斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。

在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。

本设计以8051单片机为核心,以逐次比较型A/D转换器ADC0809、LED 显示器为主体,构造了一款简易的数字电压表,能够测量1路0~5V直流电压,最小分辨率0.02V。

42.方案设计与论证基于单片机的多路数字电压表电路的基本组成如图3.1所示。

图2.1 基于单片机的多路数字电压表电路的原理框图根据设计要求,采用的方案如下。

部分实现数据的采集、编译,A/D转换以及显示的功能,包括单片机电路模块、A/D转换器模块、数码管显示电路模块、按键处理电路模块;软件部分实现控制芯片,使各部件能够正常的运行,同时实现仿真的功能,主要设计思想是利用软件进行仿真,通过仿真得到实验的结果。

多路数字式电压表应用主要利用A/D转换器,先用A/D转换器对各路电压值进行采样,得到相应的数字量,按数字量与模拟量成正比关系运算得到对应的模拟电压值,然后把模拟值通过显示器显示出来。

根据系统功能要求,控制系统采用AT89C52单片机,A/D转换器采用ADC0809。

ADC0809是8位的A/D转换器。

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

ADC0809具有8路模拟输入端,通过3位地址输入端的地址,就能依次对8路中选择一路进行转换。

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

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

通过按键选择可8路显示,也可单路显示,单路显示可通过按键选择显示通道53.单元电路设计与参数计算3.1ADC08093.1.1主要特性1)8路8位A/D转换器,即分辨率8位。

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

3)转换时间约为128μs4)单个+5V电源供电5)模拟输入电压范围0~+5V,不需零点和满刻度校准。

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

3.1.2内部结构图3.1 ADC0809内部结构框图ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图4.1所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。

因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。

输入输出与TTL兼容。

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

下面说明各引脚功能。

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

D0~D7:8位数字量输出端。

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

ALE:地址锁存允许信号,输入,高电平有效。

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

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

CLK:时钟脉冲输入端。

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

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。

如表1所示。

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

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

VCC:电源,接+5V。

GND:地。

7表3.1 地址与通道对应关系ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

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

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

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

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

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

3.2 LED数码显示3.2.1 LED显示器LED是由若干个发光二极管组成的。

当发光二极管导通时,相应的一个点或一个笔划发亮。

控制不同组合的二极管导通,就能显示出各种字符。

这种笔划式的七段显示器,能显示的字符数量少,但控制简单、使用方便。

发光二极管的阳极连在一起的称为共阳极显示器,阴极连在一起的称为共阴极显示器3.2.2LED结构及显示原理通常的七段LED显示块中有八个发光二极管,故也有人叫做八段显示块。

其中七个发光二极管构成七笔字形“8”。

一个发光二极管构成小数点。

七段显示块与单片机接口非常容易。

只要将一个8位并行输出口与显示块的发光二极管引脚相连即可。

8位并行输出口输出不同的字节数据即可获得不同的数字或字符。

通常将控制发光二极管的8位字节数据称为段选码或段数据。

8一些字形的段选码如下表:3.2.3LED的结构及其工作原理点亮显示器有静态和动态两种方法。

1)静态显示:当显示某一个字符时,相应的发光二极管恒定地导通或截止。

例如七段显示器的a、b、c、d、e、f导通,g、dp截止,显示0。

静态显示的特点是:每一位都需要一个8位输出口控制,用于显示位数较少(仅一、二位)的场合。

较小的电流能得到较高的亮度,可以由8255的输出口直接驱动。

图示为三位显示器的接口逻辑。

图3.3 三位显示器的接口逻辑9(2)动态显示:一位一位地轮流点亮各位显示器(扫描)。

对于每一位显示器来说,每隔一段时间点亮一次。

显示器的亮度既与导通电流有关,也和点亮时间与间隔时间的比例有关。

若显示器的位数不大于8位,则控制显示器公共极电位只需一个8位并行口(称为扫描口或位选口)。

控制各位显示器所显示的字形也需一个共用的8位口(称为段数据口),用于显示位数稍多的场合,需编写扫描程序。

104.总原理图及参考程序4.1总原理图114.2程序流程图及参考程序4.2.1程序流程图STARTADC080的转换轨选择设置定时器提供时钟信号A/转换启动N转换是否结束?Y输出转换结果数值转换显示参考程序4.2.2EQU 09002H OUTBITEQU 09004H OUTSEGEQU 09001H INEQU 60H LEDBUFLJMP MAINLEDMAP:3FH, 06H, 5BH, 4FH, 66H, 6DB, 7DB, 07H DB7FH, 6FH, 77H, 7CH, 39H, 5EH, 79H, 71H DB 12DELAY:MOV R7,#0DELAYLOOP:DJNZ R7,DELAYLOOPDJNZ R6,DELAYLOOPRETDISPLAYLED:MOV R0,#LEDBUFMOV R1,#4MOV R2,#000000001BLOOP:MOV A,@R0MOV DPTR,#OUTSEGMOVX @DPTR,AMOV DPTR,#OUTBITMOV A,R2MOVX @DPTR,AMOV R6,#01CALL DELAYMOV A,R2R1 AMOV R2,AINC R0DJNZ R1,LOOPTESRKEY:MOV DPTR, #OUTBITMOV A,#0MOV A,#0MOVX @DPTR,AMOV DPTR,#INMOVX A,@DPTRCPL AANL A,#0FHRETKEYTABLE:DB 16H, 15H, 14H, 0FFHDB 13H, 12H, 11H, 10HDB 0dH, 0cH, 0bH, 0aHDB 0eH, 03H, 06H, 09HDB 0FH, 02H, 05H, 08HDB 00H, 01H, 04H, 07H GETKEY:MOV DPTR,#OUTBIT13MOV P2,DPHMOV R0,#INMOV R1,#00100000BMOV R2,#6KLOOP:MOV A,R1CPL AMOVX @DPTR,AMOVX A,@R0CPL AANL A,#0FHJNZ GOON1GOON1:MOV R1,AMOV A,R2DEC ARL ARL AMOV R2,AMOV A,R1MOV R1,#2LOOPC:RRC AJC EXITDJNZ R1,LOOPC EXIT:MOV A,R2MOV DPTR,#KEYTABLEMOVC A,@A+DPTRMOV R2,A WAITRELEASE:MOV DPTR,#OUTBITCLR AMOVX @DPTR,AMOV R6,#10CALL DELAYCALL TESTKEYJNZ WAITRELEASEMOV A,R2RETMAIN:MOV DPTR,#8000HMOVX @DPTR,A14HERE:JNB P3.3,HEREMOVX A,@DPTRMOV P1,AMOV R5,ACALL DISPLAYLEDCALL TESTKEYJZ L5CALL GETKEYMOV 40H,AL5:MOV 63H,#00HMOV A,R5MOV B,#51MOV ABMOV 62H,AMOV A,BJZ LOOP1RL ASUBB A,#2MOV B,#10MOV 61H,AMOV 60H,BAJMP MLOOPLOOP1:MOV 61H,#00MOV 60H,#00AJMP MLOOPMLOOP:MOV R0, #LEDBUF FILLBUF:MOV A,@R0MOV DPTR,#LEDMAPMOVC A,@A+DPTRMOV 50H,ACLR CMOV A,40HADD A,41HANL A,#01HMOV 41H,ARRC AMOV 40H,#00HJC WEI2WEI1:15CJNE R0,#62H,XS01MOV A,50HADD A,#80HSJMP XS1XS01:MOV A,50HXS1:MOV @R0,AINC R0CJNE R0,#LEDBUF+3, FILLBUFLJMP STARTWEI2:CJNE R0,#63H,XS0MOV A,50HADD A,#80HSJMP XSXS0:MOV A,50HXS:MOV @R0,AINC R0CJNE R0,#LEDBUF+4, FILLBUFLJMP STARTEND165.结论本设计以8051单片机为控制核心,通过集成摸数转换芯片ADC0809将被测信号转换成数字信号,经单片机内部程序处理后,由LED八段数码管显示测量结果。

相关文档
最新文档