基于51单片机制作的数字电压表

合集下载

基于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转换器,增加参考电压的精度,或者通过校准电路对测量误差进行校正。

基于51单片机的电压表

基于51单片机的电压表

电路原理图程序清单://*******************************头文件及宏定义************************** *#include<REG52.h>#define TIME0H 0x3C#define TIME0L 0xB0#define uchar unsigned char#define uint unsigned int//******************端口设置********** #define OUTPORT P2 //ADC0809数据接口#define LCDPORT P0 //LCD数据接口sbit SET=P1^3; //定义调整键sbit DEC=P1^4; //定义减少键sbit ADD=P1^5; //定义增加键uchar x=0; //计数器sbit LCDRS=P3^5;// 寄存器选择信号sbit LCDRW=P3^6; //读写信号sbit LCDE=P3^7; //片选信号sbit LED1=P1^0; //下限提示灯sbit LED2=P1^1; //上限提示灯sbit START=P3^4;//ATART,ALE接口。

0->1->0:启动AD转换。

sbit EOC=P3^3; //转换完毕由0变1. sbit alarmflag=P1^2;sbit CLK=P3^2;//********************************全局变量***************************** unsigned int shangxian=300; //上限报警温度,默认值为38 unsigned int xiaxian=200; //下限报警温度,默认值为38 unsigned char uc_Clock=0;//定时器0中断计数bit b_DATransform=0; //启动adc0809转换时间到标志,为1是启动A/D转换bit lowflag; //下限标志bit highflag; //上限标志uchar set_st=0; //状态标志bit shanshuo_st; //闪烁间隔标志//******************************函数声明***************************** void vDelay(); // 延时函数void vWriteCMD(unsigned char ucCommand);//把一个命令写入LCD函数void vWriteData(unsigned char ucData); //把一个数据写入LCD函数void vShowOneChar(unsigned char ucChar);//把一个字符写入LCD函数void vShowChar(unsigned char ucaChar[]); //把一组字符写入LCD函数void vShowVoltage(unsigned int uiNumber); //显示函数void vdInitialize(); //LCD初始化函数void Time0(); // 定时器0中断函数unsigned int uiADTransform(); // AD转换函数//*****外部中断0服务程序***** void int0(void) interrupt 0{EX0=0; //关外部中断0if(DEC==0&&set_st==1){vDelay();do{}while(DEC==0&&set_st==1); shangxian=shangxian-5;if(shangxian<xiaxian)shangxian=300;}else if(DEC==0&&set_st==2){ vDelay();do{}while(DEC==0&&set_st==2);xiaxian=xiaxian-5;if(xiaxian<0)xiaxian=0;}}//*****外部中断1服务程序*****void int1(void) interrupt 2{EX1=0; //关外部中断1if(ADD==0&&set_st==1){ vDelay();do{}while(ADD==0&&set_st==1);shangxian=shangxian+5;if(shangxian>500)shangxian=500;}else if(ADD==0&&set_st==2){vDelay();do{}while(ADD==0&&set_st==2);xiaxian=xiaxian+5;if(xiaxian>shangxian)xiaxian=200;}}//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<AD转换函数>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> unsigned int uiADTransform(){unsigned int uiResult;OUTPORT=0x00;START=1; //启动AD转换。

基于51单片机的ADC0832数字电压表(仿真+程序)

基于51单片机的ADC0832数字电压表(仿真+程序)

仿真图:/*********************************包含头文件********************************/ #include <reg52.h>#include <intrins.h>/*********************************端口定义**********************************/ sbit CS = P3^5;sbit Clk = P3^3;sbit DATI = P3^4;sbit DATO = P3^4;sbit P20=P2^0 ;/*******************************定义全局变量********************************/ unsigned char dat = 0x00; //AD值unsigned char count = 0x00; //定时器计数unsigned char CH; //通道变量unsigned char dis[] = {0x00, 0x00, 0x00}; //显示数值/*******************************共阳LED段码表*******************************/ unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};char code tablewe[]={ 0xfd,0xfb,0xf7,0xef,0xdf,0xfe };/**************************************************************************** 函数功能:AD转换子程序入口参数:CH 出口参数:dat****************************************************************************/ unsigned char adc0832(unsigned char CH){unsigned char i,test,adval;adval = 0x00;test = 0x00;Clk = 0; //初始化DATI = 1;_nop_();CS = 0;_nop_();Clk = 1;_nop_();if ( CH == 0x00 ) //通道选择{Clk = 0;DATI = 1; //通道0的第一位_nop_();Clk = 1;_nop_();Clk = 0;DATI = 0; //通道0的第二位_nop_();Clk = 1;_nop_();}else{Clk = 0;DATI = 1; //通道1的第一位_nop_();Clk = 1;_nop_();Clk = 0;DATI = 1; //通道1的第二位_nop_();Clk = 1;_nop_();}Clk = 0;DATI = 1;for( i = 0;i < 8;i++ ) //读取前8位的值{_nop_();adval <<= 1;Clk = 1;_nop_();Clk = 0;if (DATO)adval |= 0x01;elseadval |= 0x00;}for (i = 0; i < 8; i++) //读取后8位的值{test >>= 1;if (DATO)test |= 0x80;elsetest |= 0x00;_nop_();Clk = 1;_nop_();Clk = 0;}if (adval == test) //比较前8位与后8位的值,如果不相同舍去。

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

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

目录摘要 (I)1 绪论 (1)1.1数字电压表介绍 (1)1.2仿真软件介绍 (1)1.3 本次设计要求 (2)2 单片机和AD相关知识 (3)2.1 51单片机相关知识 (3)2.2 AD转换器相关知识 (4)3 数字电压表系统设计 (5)3.1系统设计框图 (5)3.2 单片机电路 (5)3.3 ADC采样电路 (6)3.4显示电路 (6)3.5供电电路和参考电压 (7)3.6 数字电压表系统电路原理图 (7)4 软件设计 (8)4.1 系统总流程图 (8)4.2 程序代码 (8)5 数字电压表电路仿真 (15)5.1 仿真总图 (15)5.2 仿真结果显示 (15)6 系统优缺点分析 (16)7 心得体会 (17)参考文献 (18)1 绪论1.1数字电压表介绍数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示。

而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编码等几部分组成。

因此AD转换是此次设计的核心元件。

输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。

本次自己的设计作品从各个角度分析了AD转换器组成的数字电压表的设计过程及各部分电路的组成及原理,并且分析了数模转换进而使系统运行起来的原理及方法。

通过自己的实践提高了动手能力,也只有亲历亲为才能收获掌握到液晶学过的知识。

其实也为建立节约成本的意识有些帮助。

本次设计同时也牵涉到了几个问题:精度、位数、速度、还有功耗等不足之处,这些都是要慎重考虑的,这些也是在本次设计中的收获。

1.2仿真软件介绍Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。

它运行于Windows 操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:(1)现了单片机仿真和SPICE电路仿真相结合。

基于51单片机的数字电压表仿真设计(有参考文献)

基于51单片机的数字电压表仿真设计(有参考文献)

基于51单片机的数字电压表仿真设计一、引言随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。

数字电压表是采用数字化测量技术设计的电压表。

数字电压表与模拟电压表相比,具有读数直观、准确、显示范围宽、分辨力高、输入阻抗大、集成度高、功耗小、抗干扰能力强,可扩展能力强等特点,因此在电压测量、电压校准中有着广泛的应用。

而单片机也越来越广泛的应用与家用电器领域、办公自动化领域、商业营销领域、工业自动化领域、智能仪表与集成智能传感器传统的控制电路、汽车电子与航空航天电子系统。

单片机是现代计算机技术、电子技术的新兴领域。

本文采用ADC0808对输入模拟信号进行转换,控制核心C51单片机对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号,通过Proteus仿真软件实现接口电路设计,并进行实时仿真。

Proteus软件是一种电路分析和实物模拟仿真软件。

它运行于Windows 操作系统上,可以进行仿真、分析(SPICE)各种模拟器件和集成电路,是集单片机和SPICE分析于一身的仿真软件,功能强大,具有系统资源丰富、硬件投入少、形象直观等优点,近年来受到广大用户的青睐。

二、数字电压表概述1、数字电压表的发展与应用电压表指固定安装在电力、电信、电子设备面板上使用的仪表,用来测量交、直流电路中的电压。

传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,并且传统的电压表在测量电压时需要手动切换量程,不仅不方便,而且要求不能超过该量程。

目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量领域,并且由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

2、本次设计数字电压表的组成部分本设计是由单片机AT89C51作为整个系统控制的核心,整个系统由衰减输入电路、量程自动转换电路、交直流转换电路、模数转换及控制电路以及接口电路五大部分构成。

51单片机的数字电压表设计不需要仿真

51单片机的数字电压表设计不需要仿真

51单片机的数字电压表设计不需要仿真
摘要:
1.51单片机数字电压表设计简介
2.硬件电路组成及原理
3.软件程序设计要点
4.系统性能与应用
正文:
一、51单片机数字电压表设计简介
51单片机数字电压表设计是一种基于嵌入式技术的电子测量工具,具有体积小、精度高、操作简便等优点。

本设计以51单片机为核心,结合A/D转换器、显示模块等硬件,实现对输入模拟电压信号的采集、处理和显示。

二、硬件电路组成及原理
1.核心控制器:51单片机
2.A/D转换器:将模拟电压信号转换为数字信号
3.显示模块:采用共阳极数码管,实现数字电压值的显示
4.模拟量输入:电阻分压电路,可测量0-5V范围内的电压信号
三、软件程序设计要点
1.初始化:配置单片机的工作模式、时钟频率等参数
2.A/D转换:设置A/D转换器的工作模式,进行电压信号的采样和转换
3.数据处理:对A/D转换后的数字信号进行处理,如数据调整、滤波等
4.显示更新:根据处理后的数据,通过动态扫描显示技术更新数码管的显
示内容
5.循环检测:持续监测输入电压信号,实时更新显示
四、系统性能与应用
本设计的51单片机数字电压表具有以下特点:
1.测量范围:0-5V
2.精度:±1%
3.响应速度:≤100ms
4.电源:直流5V
广泛应用于工业生产、实验室测量、电子产品研发等领域,为工程师提供了一种高效、准确的电压测量解决方案。

通过以上介绍,我们可以了解到51单片机数字电压表的设计原理、硬件组成和软件程序设计方法。

在实际应用中,根据具体需求可以对电路和程序进行优化调整,提高系统的性能和稳定性。

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

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

摘要随着电子技术的发展,电子测量技术对测量的精度和功能的要求也越来越高,而数字电压表作为实验室的基本测量设备,它可以很好的满足测量精度和功能的要求。

本设计利用AT89S51单片机技术结合A/D转换(采用ADC0809)构建了一个直流数字电压表。

经过对数字电压表基本原理的分析,本文设计了一个以51单片机为核心的数字电压表系统,给出了直流数字电压表的设计流程,设计了电压测量子系统和电流测量子系统,给出了硬件电路的框图、电气原理图和软件流程图。

系统设置了3个键的键盘,用于设定电压、电流切换的功能键、系统复位键以及清零键。

关键词:数字电压表;AT89S51单片机;A/D转换;ADC0809;AbstractAs electronic science and technology development, electronic measurement technology on the accuracy of measurement and functional requirements are increasingly high, and digital voltmeter measurement equipment as the basic laboratory, it can well meet the measuring precision and function requirements. A dc digital voltmeter is built by using AT89S51 with the A/D convertor (ADC0809)in the paper.This paper first introduces the main method and design voltmeter SCM system advantage; Then introduces the design process of dc digital voltmeter, and hardware system and the design of software system, and gives the hardware circuit design system diagram and software system design flow diagram.Keywords: Digital voltmeter; AT89S51MCS; A/D conversion; ADC0809.目录1 绪论 (1)1.1前言 (1)1.2数字电压表的介绍 (1)1.2.1数字电压表的发展概况 (1)1.2.2数字电压表在各领域中的应用 (2)1.2.3数字电压表的优点 (2)1.3单片机的介绍 (3)1.3.1单片机简介 (3)1.3.2单片机的发展概况 (3)1.3.3单片机的应用 (4)1.3.4单片机的特点 (6)1.4课题背景,国内外研究现状 (6)1.5本文主要研究内容 (8)2 数字电压表的工作原理 (9)2.1数字电压表的基本结构 (9)2.2数字电压表的工作原理 (9)2.2.1模数(A/D)转换与数字显示电路 (10)2.2.2多量程数字电压表分压原理 (10)2.2.3多量程数字电压表分流原理 (11)3 硬件系统各模块具体设计及实现 (14)3.1单片机的选择 (14)3.1.1AT89S51的引脚框图 (15)3.1.2AT89S51的内部结构图 (17)3.2A/D转换器的选择 (18)3.2.1ADC0809的引脚结构 (19)3.2.2ADC0809的内部逻辑结构 (21)3.3显示器的选择 (21)3.4键盘的选择 (23)3.5表笔探针设计 (23)4 系统总体方案研究 (25)4.1总体方案确定 (25)4.2系统框图及阐述 (25)4.3ADC0809与AT89S51的连接 (26)4.4键盘与单片机的连接 (27)4.5多量程数字电压表档位切换原理 (28)4.5.1多量程电压的测量 (28)4.5.2多量程电流的测量 (30)5 系统的软件设计 (31)5.1系统软件设计的总体思想 (31)5.2系统单片机的软件设计 (31)5.2.1键盘的处理 (31)5.2.2显示的处理 (31)5.2.3档位切换的处理 (32)6 系统软件流程图 (33)6.1主程序流程图 (33)6.2A/D转换流程图 (34)7 设计总结 (35)参考文献 (36)致谢 (37)附录 (38)1 绪论1.1前言数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

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

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

题目:基于51单片机的简易数字电压表的设计目录毕业设计任务书 (2)开题报告...................................................................................... 错误!未定义书签。

摘要........................................................................................ 错误!未定义书签。

关键词. (3)引言 (3)第一章A/D转换器 (5)1.1A/D转换原理 (5)1.2 ADC性能参数 (7)1.2.1 转换精度 (7)1.2.2. 转换时间....................................................... 错误!未定义书签。

1.3 常用ADC芯片概述 (9)第二章8OC51单片机引脚 (10)第三章ADC0809 (12)3.1 ADC0809引脚功能 (12)3.2 ADC0809内部结构 (14)3.3ADC0809与80C51的接口 (15)3.4 ADC0809的应用指导 (16)3.4.1 ADC0809应用说明 (16)3.4.2 ADC0809转换结束的判断方法 (16)3.4.3 ADC0809编程方法 (17)第四章硬件设计分析 (18)4.1电源设计 (18)4.2 关于74LS02,74LS04 (18)4.3 74LS373概述 (19)4.3.1 引脚图 (19)4.3.2工作原理 (19)4.4简易数字电压表的硬件设计 (20)结论 (21)参考文献 (21)附录........................................................................................ 错误!未定义书签。

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

基于51单片机数字电压表的设计基于51单片机数字电压表的设计摘要:本文介绍了基于STC89C52单片机为核心的,以AD0809数模转换芯片作为采样,以四位八段数码管作为显示的具有测量功能的具有一定精度的数字电压表。

在实现基础功能的情况下,另外还可以扩展串行口通信,时钟,等其他一系列功能,使系统达到了良好的设计效果和要求。

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

关键词:STC89C52;数字电压表;模数转换;数字信号Abstract:This paper introduces STC89C52 SCM as the core based on AD0809 analog-to-digital conversion chip, as sampled to four seven segment digital tube as display with certain with measuring function of digital voltmeter accuracy. The basic function in realizing circumstance, also can expand serial port communication, clock, and other series of function, make the system to achieve a good design effect and requirements.This subject mainly to solve AD, data processing and display control three modules.Key words: Digital voltmeter; Frequency-field; Digital signal本设计在分析研究和总结了单片机技术的发展历史及趋势的基础上,以使用可靠,经济,精度高等设计原则为目标,设计出基于单片机的数字测量电压表。

单片机有着微处理所具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。

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

由于单片机具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此,现在单片机控制范畴无所不在,例如通信产品,家用电器,智能化仪器仪表,过程控制和专用控制装置等等,单片机的应用领域越来越广泛。

1 系统构成该电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。

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

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

显示模块主要由7段数码管显示测量到的电压值系统构成框图2 系统硬件设计2.1 电源电路原理由于本系统的主控芯片是单片机,所以应提供五伏的恒流源作为单片机的基准电压。

主要原理是用变压器将220V交流电压进行变压,然后经过电桥整流,将交流电变为直流电源,经过稳压管稳压,得到稳定的5V电源供单片机使用。

电桥由整流二极管1N4007所搭建的电桥将交流变为直流,为了保证电源更加的平稳,减少波动分别在稳压管两端加470μF滤波电容,和两个0.1μF的104瓷片电容。

由三极稳压管7805稳压,保证有稳定的五伏电源,为了显示通电状况,有一红色发光二级管作为显示电路显示,外接限流电阻1k Ω。

原理图如图所示:组成电桥电源模块总原理图2.2 单片机最小系统电路1、复位电路:复位电路为高电平复位通常在复位引脚RST上接一个电容到VCC,在连接一个电阻到GND,由此形有足够的高电平时间进行复位,随后返回到低电平进入正常的工作状态,这个电阻和电容的典型值是8.2k和10uF。

复位电路原理图2、振荡电路:STC89C52使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。

51单片机引脚图2.3 A/D转换器与单片机接口电路A/D转换器主要采用ADC0809,由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在STC89C52单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。

因此产生CLK 信号的方法就得用软件来产生了,单片机的P0.0~P0.7与A/D转换器D0~D7相连,产生相应的数字量经过其输出通道D0~D7传送给单片机进行处理。

P3.0与A/D转换器ST相连,控制A/D转换器的启动端,P3.1与A/D转换器OE相连,控制A/D转换器的输出允许端,P3.2 与A/D转换器EOC相连,控制转换结束信号。

2.4 显示电路显示电路主要由四位一体七段LED数码管组成,用于显示测量到的电压值。

它是一个共阳极的数码管,每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收单片机的P1口产生的显示段码。

1,2,3,4引脚端为其位选端,用于接收单片机的P2口产生的位选码。

数码管内部原理图数码管引脚图2.5 总电路原理图:3 单片机内部程序源C语言源程序#include <AT89C52.H>unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00}; unsigned char dispbuf[8]={10,10,10,10,10,0,0,0}; unsigned char dispcount;unsigned char getdata;unsigned int temp;long int i; \\代替原来的unsigned char i;sbit ST=P3^0;sbit OE=P3^1;sbit EOC=P3^2;sbit CLK=P3^3;void main(void){ST=0;OE=0;ET0=1;ET1=1;EA=1;TMOD=0x12;TH0=216;TL0=216;TH1=(65536-5000)/256;TL1=(65536-5000)%256;TR1=1;TR0=1;ST=1;ST=0;while(1){if(EOC==1){OE=1;getdata=P0;OE=0;i=getdata*196;dispbuf[5]=i/10000;i=i%10000;dispbuf[6]=i/1000;i=i%1000;dispbuf[7]=i/100;/*原来的:t emp = getdata * 235;temp=temp/128;i=5;dispbuf[0]=10;dispbuf[1]=10;dispbuf[2]=10;dispbuf[3]=10;dispbuf[4]=10;dispbuf[5]=0;dispbuf[6]=0;dispbuf[7]=0;while(temp/10){dispbuf[i]=temp%10;temp=temp/10;i++;}dispbuf[i]=temp; */ST=1;ST=0;}}}void t0(void) interrupt 1 using 0 //定时器0 中断服务{CLK=~CLK;}void t1(void) interrupt 3 using 0 //定时器1 中断服务{TH1=(65536-6000)/256;TL1=(65536-6000)%256;P1=dispcode[dispbuf[dispcount]]; P2=dispbitcode[dispcount];if(dispcount==5){P1=P1 | 0x80;}dispcount++;if(dispcount==8){dispcount=0;}}4 测试结果与误差分析4.1 电源模块电源模块通电后测量,显示电压值为4.98V,基本属于稳定的五伏直流电源,产生误差的原因可能是焊接问题,也可能是廉价的硬件不够精准,但基本达到预期目的。

4.2 最小系统模块经过对单片机内部程序的编写,最小系统模块可以控制流水灯的闪烁,证明单片机没有问题,最小系统性能完好,复位电路正常工作。

4.3 数码管测试将万用表调到测试档,逐个点亮数码管,数码管显示没有问题,数码管正常工作。

4.4 整体测试在A/D转换器上加3V电压,数码管没有显示,经过多项测试,数码管均没有显示。

整体测试失败。

4.5 针对问题进行讨论与分析后经过分析,可能是由于系统电流过低,无法使数码管正常点亮。

于是在数码管上加上8050三极管进行放大处理,从而驱动数码管显示。

连接完毕后,仍无法解决问题。

于是进行软件仿真来测试电路问题。

5 proteus仿真测试仿真后效果图:经过仿真测试,证明原理图没有问题,单片机内部程序无问题,所以可能是导线有断裂,或者接触不良所产生的。

6结语本文通过单片机和A/D转换器经过数码管显示,制作了数字电压表,虽然实验作品失败了,没有通过测试,但是经过仿真证明,数字电压表是可以实现的,以后还要进行深一步的了解和研究,同时要提高焊接技术。

相关文档
最新文档