视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
基于单片机的直流数字电压表的设计
2025-10-02 14:00:47 责编:小OO
文档
              常用电子设备维护实践实习报告

                 学院:信息学院

                专业班级:电信10-1班

                姓名:黄致伟

                学号:3100718122

              设计题目:基于单片机的直流电压表的设计

1  题目名  

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

2  功能和技术指标要求

(1)能够测试负载的直流电压值1V-30VDC

(2)能用LCD1602显示电压值 

(3)测量精度达为±1%

(4)自制直流稳压电源 

(5)系统具备复位功能

3  国内外相关情况概述

3.1 数字电压表简介

  数字电压表简称DVM,它是采用数字化测量技术设计的电压表。从性能来看:数字电压表的发展从一九五二年美国NLS公司由四位电子管数字电压表精度千分之一到现在已经出现8位数字电压表。参数可测量直流电压、交流电压、电流、阻抗等。测量自动化程度不断提高,可以和计算机配合显示、计算结果、然后打印出来。目前世界上美国FLUKE公司,在直流和低频交流电量的校准领域居国际先进水平。例如该公司生产的“4700A”多功能校准器和“8505”危机数字多用电压表,可用8位显示,直流精度可达到±5/10-6,读书分辨力为0.1μV。带有A/D变换模式、数据输出接口形式IEEE-488。具有比率测量软件校准和有交流电阻、电流选件。还具有高精度电压校准器“5400A”、“5200A”、“5450A”等数字仪表,都是作为一级计量站和国家级计量站使用的标准仪表。还有英国的“7055”数字电压表采用脉冲调制技术。日本横河公司的“2501”型采用三次采样等等在不断的蓬勃发展。从发展过程来看:数字电压表自1952年问世以来,已有50年多年的发展史,大致经历了五代产品。第一代产品是20世纪50年代问世的电子管数字电压表,第二代产品属于20世纪60年代出现的晶体管数字电压表,第三带产品为20世纪70年代研制的中、小规模集成电路的数字电压表。今年来,国内外相继推出有大规模集成电路(LSI)或超大规模集成电路(VLSI)构成的数字电压表、智能数字电压表,分别属于、第五代产品。它们不仅开创了电子测量的先河,更以高准确度、高可靠性、高分辨力、高性价比等优良特性而受到人民的青睐。 

3.2 国内外的发展现状与趋势 

  数字电压表作为电压表的一个分支,在近五十年间得到巨大发展,构成数字电压表的核心器件已从早期的中小规模电路跨入到大规模ASIC(专用集成电路)阶段。数字电压表涉及的范围也从传统的测量扩展至自动控制、传感、通信等领域,展示了广阔的应用前景。 

传统电压表的设计思路主要分为:用电流计和电阻构成的电压表;用中小规模集成电路构成的电压表;用大规模ASIC(专用集成电路)构成的电压表。这几中电压表设计方式各有优势和缺点,分别适用于几种特定的应用环境,同时,也为很多新颖的电压表的设计所借鉴和依据。 

近入21世纪,随着信息技术一日千里的发展,电压表也必经历从单一测量向数据处理、自动控制等多功能过度的这一历程,特别是计算机技术的发展必将出现智能化技术。因此,把电压表和计算机技术相结合的智能化电压表就将成为21世纪的新课题。目前,数字化仪器与微处理器取得令人瞩目的进展,就其技术背景而言,一个内藏微处理器的仪表意味着计算机技术向仪器仪表的移植,它所具有的软件功能使仪器 呈现出有某种延伸,强化的作用。这相对于过去传统的、纯硬件的仪器来说是一种新的突破,其发展潜力十分巨大,这已为70年代以来仪表发展的历史所证实。概括起来,具有微处理器的仪表具有以下特点:①测量过程的软件控制对测量数据进行存储及运算的数据处理功能是仪表最突出的特点;②在仪器的测量过程中综合了软件控制及数据处理功能,使一机多用或仪器的多功能化易于实现,成为这类仪器的又一特点;③以其软件为主体的智能仪器不仅在使用方便、功能多样化等方面呈现很大的灵活性。 下面从5个方面阐述新型数字仪表的发展趋向。(1)广泛采用新技术,不断开发新产品随着科学技术的发展,新技术的广泛应用,新器件的不断出现。首先是A/D转换器:20世纪90年代世界各国相继研发了新的A/D转换技术。例如,四斜率A/D转换技术(美国)、余数再循环技术(美国)、自动校准技术(英国)、固态真有效值转换技术(英国)、约瑟夫森效应基准源(2个纳米稳定度)、智能化专用芯片(80C51系列,荷兰)等,这些新技术使数字电压表向高准确度、高可靠性及智能化、低成本方向发展。另外,集成电路的发展使电压表只在外围配置少量元器件,即可构成完整的智能仪表,可以完成储存、计算、比较、控制等多项功能。 (2)广泛采用新工艺新一代数字仪表正朝着标准模块化的方向发展。预计在不久的将来,更多的数字仪表将由标准化、通用化、系列化的模块所构成,给电路设计、安装调试和维修带来极大方便。(3)多从显示仪表 为彻底解决数字仪表不便于观察连续变化量的技术难题;“数字/模拟条图”双显示仪表已成为国际流行款式,它兼有数字仪表准确度高、模拟式仪表便于观察被测量的变化过程及变化趋势这两大优点。(4)提高安全性仪器仪表在设计和使用中的安全性,对生产厂家和广大用户都至关重要。一方面厂家必须为仪表设计安全保护电路,并使之符合国家标准;另一方面用户必须安全操作,时刻注意仪表上的各种安全警告指示(5)操作简单化 集成电路的发展使电压表只在外围配置少量元件,即可构成完整的智能仪表,可以完成储存、计算、比较、控制等多项功能。这使的按键变少,操作简单。但是数字电压表并不能完全取代指针式的电压表,在反映电压的连续变化和变化趋势方面不如指针表的直观。为克服这种缺憾,20世纪90年代初,一种“数字/光柱”的双重显示仪表已经出现,并成功地应用于生产实践中。

综上所述,十几年来智能仪器虽然有了很大的发展,但总的看来,人们还是较习惯于从硬件的角度做工作,这是由于设计者的(硬件)技术背景,LSI器件不断迅速更新的冲击以及在现阶段仪器硬件更新的数量还很大等因素所造成的。这种趋势虽然仍会继续下去,但从智能仪表的内涵,从软件的角度上看,软件的作用还远未发挥出来,这里有许多的领域等待着去开发。智能仪表最终必然会与人工智能联系起来开创出全新的仪器。从这个观点看,目前的智能仪器尚处于“幼年时期”。所以,就仪表的发展看来电压表会朝着具有微控制处理单元的智能仪表方向发展。

4  技术方案

4.1 检测的基本原理

  根据设计要求,系统可分为电压采集模块、A/D转换模块 、主控模块、显示模块。 A/D转换模块: 

方案一: A/D转换器采用ICL7107型三位半显示的芯片,输入信号,流经取样电路取样后送到ICL7107型三位半A/D转换器,只需要很少的简单外围元件,就可组成数字电流表模块,直接驱动三位半LED显示器显示,最后输入电流在显示部分显示。由于本人对此电路不熟悉,而且ICL7107做的LED数字表,最大的缺点就是数字乱跳不稳定,特别最后一位。接口模块:使用数字电路实现,采用译码芯片CD4543作为接口芯片,这种方案能实现功能,但稳定性不高,结构复杂。

  方案二: 采用ADC0809转换芯片,其中A/D转换器用于实现模拟量向数字量的转换,单电源供电。它是具有8路模拟量输入、8位数字量输出功能的A/D转换器,转换时间为100μs,模拟输入电压范围为0V~+30V,不需零点和满刻度校准,功耗低,约15mW。 由于模拟转换电路的种类很多,通过对转换速度,精度和价格方面考虑,所以选择方案二采用ADC0809为本次设计的转换芯片。单片机模块采用ATS51单片机作为系统的控制单元,通过A/D转换将被测值转换为数字量送入单片机中,再由单片机来送显。此方案各类功能易于实现,成本低、功耗低,显示稳定。 

4.2 总体技术方案

  本次直流电压表的设计采用的是上述两种方案中的方案二。数字电压表的设计即将连续的模拟电压信号经过A/D转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。按系统实现要求,决定控制系统采用ATC51单片机,A/D转换采用的是ADC0809,数字电压表系统整体框图如下图所示。

系统通过软件设置单片机的内部定时器T1产生中断信号。通过片选选择8路通道中的一路,将该路电压送入ADC0809的EOC端口产生高电平,同时将ADC0809的OE端口置为高电平,单片机将转换后结果存到片内RAM。系统调出转换显示程序,将转换为二进制的数据在转换成十进制数并输出到LCD显示电路,将相应电压显示出来。

5  硬件设计

5.1 各模块电路介绍

5.1.1 单片机模块

  接口分配电路设计如下图4.1.1所示: P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/ 地址的第八位。在这里P0口作为输入与输出分别与ADC0809的输出端和LCD显示的输入端相连,且P0外部被阻值为1KΏ的电阻拉高。  

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。这里只用到了P2.0~P2.3四个端口,其中P2.1~P2.3都是作为输出端口控制显示电路的寄存器选择、读写信号和使能端口。  

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为ATC51的一些特殊功能口,在这里用到了P3.3/INT1(外部中断1)、P3.6/WR(外部数据存储器写选通)、P3.7/RD(外部数据存储器读选通)。

图4.1.1

5.1.2 A/D转换电路模块

5.1.2.1 A/D转换芯片的选择 

  A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。如果按照转换原理划分,主要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。目前最常用的是双积分和逐次逼近式。

  双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点,比如ICL71XX系列等,它们通常带有自动较零、七段码输出等功能。与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。 

  本设计中,要求精度小于0.5%,则选用分辨率为8位的芯片,如ADC0809,ADC0801,ADC0808就能满足设计要求。本电路采用ADC0809。ADC0809转换原理介绍ADC是一种基本的外围扩展器件,其种类很多,工作原理也不仅相同,比较有代表性的是:单积分型,双积分型,脉宽调制型和逐次比较型(逐次逼近型)。从产品性价比、转换速度和精度等方面综合分析,逐次比较型ADC是相对应用比较广的类型之一。所以有着广泛的应用。逐次逼近型ADC实际采用的方法上从高到底开始逐位设定,比较模拟量输出,再来确定原设定位的正确与否。逐次比较型ADC原理结构如图5.1.2.1所示。其主要由采集保持电路、电压比较器、逐次比较寄存器、数/模转换器ADC和锁存器等部分组成。

图5.1.2.1

5.1.2.2 ADC0809工作原理

  其工作原理如下:首先,被测模拟电压ui通过逐次比较寄存器,将传递进的脉冲CP信号转换成数字信号,该数字量再经过数/模转换器生成对应的模拟量Us。当获得模拟量Us的数值达到并接近被测电压所对应ui后,就可以检测出电压比较器完成最后的反转。此时,逐次比较积存器的计数值就是被测电压ui所对应的数字量,从而完成模拟量的转换。以上的分析表明,逐次比较的模/数转换方法,归根到底是数/模转换,采用逐次与模拟量进行比较后得到最终的数字标定值

  ADC0809是一种8位逐次逼近型A/D转换器。带8个模拟量输入通道,芯片内有通道地址译码锁存器,有输出三态数据锁存器,启动信号为脉冲启动方式,每个通道的转换时间大约为100μs,可以和单片机直接接口[9]ADC0809的引脚图和内部逻辑结构如图5.1.2.2所示。

图5.1.2.2

   ADC0809由一个8路模拟开关,一个地址锁存与译码器、一个8位A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道IN0—IN7,允许8路模拟分量输入,共用A/D转换器 进行转换。三态输出锁存器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。IN0—IN7:模拟量输入通道。ADC0809对输入模拟量的要求是信号单极性电压范围是0—5V,若信号太小,必须进行放大:输入的模拟量在转换过程中应保持不变,如若模拟信号变化太快,则需在输入前增加采样保持电路。地址输入和控制线:4条,ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转化器进行转换。A,B,C为地址输入线,用于选通IN0—IN7上的一路模拟量输入。通道选择如表5.1.2.3所示。

图5.1.2.3

 数字量输出及控制线11条。START为上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换:在转换期间,START应保持底电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束:否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据。OE=0,输出数据线呈高阻状态。D7—D0为数字量输出线。CLK为时钟输入信号线。由于ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHz,最大不能超过1280KHz[11]。VREF(+),VREF(-)为参考电压输入,决定了输入模拟量的范围。一般情况VREF(-)接地,VREF(+)接+5V电源。

5.1.2.3 ADC0809与单片机的接口方法 

  从电路原理图可以看出ADC0809的数据D0—D7直接与单片机的总线P0相连。模拟输入通道地址A、B、C直接接地,因此ADC0809只对通道IN0输入的电压进行模数转换,其他通道直接接地(接地的目的主要是为了减少输入噪声,一般情况对于模数转换芯片中没用到的模拟输入端都这样处理)。时钟CLK由单片机的ALE取得,对于晶振为12MHz的单片机ALE输出为2MHz的方波,但前面提到ADC0809的时钟频率一般为500KHz,最大能超过1280KHz,但在实际应用中2MHz的信号也可以使ADC0809正常工作。START、ALE和OE分别由单片机的WR、RD和P2.7经或非门接入、这样主要是满足ADC0809的信号电平与时序的要求。按此图中的片选接法。ADC0809通道—IN0的地址为7FFFH。由于EOC未接入单片机,故只能采用延时等待的方法来读取A/D转换的结果(即当单片机启动ADC0809后延时一段时间再主动去读ADC0809的转换结果)。但是如果单片机在进行A/D转换时还要执行其他的程序可以将EOC接在单片机的中断上,这样当A/D转换完后EOC可以对单片机产生中断使其读取A/D转换的结果,这样做单片机的使用效率更高。

5.1.3 显示电路模块

5.1.3.1 1602LCD 主要技术参数: 

(1)显示容量:16×2个字符  

(2)芯片工作电压:4.5—5.5V 

(3)工作电流:2.0mA(5.0V)  

(4)模块最佳工作电压:5.0V  

(5)字符尺寸:2.95×4.35(W×H)mm  

5.1.3.2 引脚功能说明  

第1脚:VSS为地电源。

第2脚:VDD接5V正电源。 

第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。 

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

第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平 R/W 为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。  

第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。  

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

第15脚背光源正极。 

第16脚背光源负极。

接口分配设计如图5.1.4所示:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。由单片机P2.1口控制 R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电 平R/W为低电平时可以写入数据。由单片机P2.2口控制 E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。由单片机P2.3口控制 D0~D7为8位双向数据线。由单片机P0口输入,经过阻值为1KΏ的上拉电阻连接。

图5.1.4

5.1.4    复位电路模块

  TC51单片机在启动运行时或者出现死机时需要复位,使CPU以及其他功能部件处于一个确定的初始状态,并从这个状态开始工作。复位电路产生的复位信号(高电平有效)由RST引脚送入到内部的复位电路,对ATS52单片机进行复位,复位信号要持续两个机器周期(24个时钟周期)以上,才能使ATS52单片机可靠复位。ATC51单片机复位电路如图5.1.5所示:

图5.1.5

复位电路工作原理:上电瞬间RST引脚的电位与VCC等电位,RST引脚为高电平,随着电容C6充电电流的减少,RST引脚的电位不断下降,其充电时间常数为T=R9*C6=100ms,此时间常数足以RST引脚在保持为高电平的时间内完成复位操作。当单片机已在运行当中时,按下复位键S1后松开,也能使单片机RST引脚维持一段时间的高电平,从而实现ATC51单片机手动复位。

5.1.5 晶振电路模块

  XTAL1和XTAL2是片内振荡电路输入端,这两个端子用来外接石英晶体和微调电容,即用来连接ATC51单片机片内OSC的定时反馈回路。晶振起振后要能在XTAL2端输出一个3V左右的正弦波,以便使片内OSC电路按晶振相同频率自激振荡。通常,OSC的输出时钟频率FOSC为6MHZ—16MHZ,典型值为12MHZ或11.0592MHZ。电容C5和C6帮助晶振起振,典型值为30pf,调节它们可以达到微调FOSC的目的。本系统中,晶振为12MHZ,C5=C6=30pf。晶振电路如图5.1.6所示。

图5.1.6

5.1.6 量程转换电路模块

  量程转换电路如图所示5.1.7所示:其中P8为模拟电压输入端,可输入0~20V电压,R10,R11,R12三个分压电阻和继电器RE1,RE2控制电压衰减倍数,使得输入到ADC0809的模拟电压不超过5V,D2为5v稳压管。

图 5.1.7

5.1.7    时钟电路模块

  单片机中CPU每执行一条指令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片机控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应时间顺序称为单片机的时序。MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器的输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其他电路。

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

图 5.1.8

5.1.8    电源电路模块

  电源部分电路主要是要求能提供稳定可靠的电压,使整个系统能正常的工作。采用220V的工频交流电压,而单片机的工作电压是直流+5V,为此,先通过一个普通的变压器降低电压,再通过桥式整流,然后再通过7805芯片的进一步稳压,确保+5V电源的稳定、可靠。而且7805集成稳压器是常用的固定输出+5V电压的集成稳压器。它的内部含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源,工作稳定可靠。1脚为输入端,2脚为接地端,3脚为输出端,使用十分方便,可以在任何有交流电压的地方使用,不需另带电池。通过整流滤波以后输出直流电压,为了确保整个电路能正常工作,考虑到不接负载或电源电压有波动时电容能承受的耐压,必须加电容。发光二极管D2点亮表示电源电路正常工作,其电源电路如图5.1.9所示:

图 5.1.9

6  总体电路原理图

7  PCB图:

8  软件设计

8.1 主程序设计

  由于ADC0809在进行A/D转换时需要有CKL信号,而此时的ADC0809的CLK是连接在ATC51单片机的30管脚,也就是要求从30管脚输出CLK信号供ADC0809使用。因此产生CLK信号的方法就等于从软件产生。电压表系统有主程序,A/D转换子程序和显示子程序,如下流程8.1所示:

图 8.1

8.2 AD转换子程序

  A动ADC0809对模拟量输入信号进行转换通过判断EOC(P3.7来确定转换是否完成若EOC为0则继续等待若EOC为1则把OE置位,将转换完成。程序流程图如8.2所示。

图 8.2

8.3 显示子程序 

  系统上电后,配置好液晶端口,然后对LCD1602进行初始化,再调用LCD1602的读写函数,可将采集处理后的电压数值实时显示。当电压值在量程临界值是,液晶显示警告信息。其程序流程图如图8.3所示。

 

图 8.2

9  硬件调试 

9.1 调试步骤 

(1)按电路原理图进行焊接,在焊接过程中首先要对PCB进行检测,查看PCB是否制作合格。 

(2)按电路原理图焊接元件。 

(3)上电测试:在系统上电开始测量前,要用万用表的电压档对被测电压进行估测,然后以此选择适当的量程,防止过大电压烧坏A/D转换器。选择好量程之后就可以对系统上电测量了。

 

9.2 可能出现的问题解答 

(1)上电后电路不工作,数码管无反应 

  检查此类错误情况需要从两个方面入手:硬件上,检查电源供电是否正常、晶振是否起振、电路接线是否良好可靠;软件上,检查程序触发的时序是否正确,片选是否选通、程序中延时是否正确。 

(2)数码管出现闪烁现象 

  正常工作的ZLG72驱动数码管显示应处于一个很稳定的状态,数码管被点亮后不会出现闪烁和跳动的现象。出现闪烁的很大原因是在选定ZLG72(即

将片选信号/CS置为低电平)后很长时间没有释放,导致72中断扫描的时间太长,从而肉眼看到数码管出现闪烁和不稳定的现象;正确的使用方法是在CS置为低电平后减少不必要的延时,使ALG72被中断扫描的时间降到最低而不至于影响显示。 

(3)上电后显示正常,就是显示数值不准确。 

 显示正常表示硬件电路和软件都正确,对于数值显示不准确需要调节ADC0809的输入比较电压。所以需要找一块更高精度的电压表进行校准。

10  软件调试 

 软件调试的主要任务是排查错误,错误主要包括逻辑和功能错误,这些错误有些是显性的,而有些是的,可以通过仿真开发系统发现逐步改正。Proteus软件可以对基于微控制器的设计连同所有的周围电子器件一起仿真,用户甚至可以实时采用诸如LED/LCD、键盘、RS232终端等动态外设模型来对设计进行交互仿真。Proteus支持的微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著点的特点是可以与uVisions3IDE工具软件结合进行编程仿真调试。本系统的调试主要以软件为主其中系统电路图的绘制和仿真我采用的是Proteus软件,而程序方面,采用的是汇编语言,用Keil软件将程序写入单片机。

11  显示结果及误差分析

11.1 显示结果

(1)当IN0口输入电压值为0V时,显示结果如图11.1.1所示,测量误差为0V。

图 11.1.1

(2) 当IN0输入电压值为1.50V时,显示结果如图11.1.2所示。测量误差为0.01V。 

图 11.1.2

(3)当IN0口输入电压值为3.50V时,显示结果如图11.1.3。测量误差为0.01V。

图 11.1.3

11.2 误差分析

  通过以上仿真测量结果可得到简易直流数字电压表与“标准”数字电压表对比测试表,如下表11.2所示:

图 11.2

  从上表可看到,测试电压一般以0.01V的幅度变化。从上表可以看出,直流数字电压表测得的值基本上比标准电压值偏大0-0.01V,这可以通过校正ADC0809的基准电压来解决。因为该电压表设计时直接用5V的供电电源作为电压,所以电压可能有偏差。当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。

12  实习总结:

  经过一段时间的努力,基于单片机的直流数字电压表基本上设计完成。但设计中的不足之处仍然存在。这次设计是我第四次次设计电路,并用Proteus实现了仿真。在这过程中,我对电路设计单片机的使用等都有了进一步的认识。通过这次设计我对Proteus和Keil软件的使用方法也有了进一步的了解,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。基于单片机的直流数字电压表使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量电压准确,精度高。系统功能、指标达到了设计的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了直流数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。本次设计采用了ATC51单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0809,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练,但是在同学们和老师的帮助下我还是克服了种种困难,最后这次电路的设计和仿真基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有更大的提升。

13 基于单片机的直流数字电压表设计C51源程序

    ORG 0000H

    LJMP START

    RS EQU P3.3

    RW EQU P3.2

    E EQU P3.1

START: CLR A

       MOV 7AH,A

       MOV 7BH,A

       MOV 7CH,A

       MOV 7AH,A

     

LOOP:LCALL AD

     LCALL ZHDY

     LCALL DISP

     LCALL DELAY

     LJMP LOOP

AD:

    SETB P2.7 ;START 

    SETB P2.4 ;A

    SETB P2.5 ;B

    CLR P2.6  ;C

    MOV R5,#0AH     ;延迟10us

DLX:DJNZ R5,DLX               

    JB P2.1,WAIT

WAIT:MOV R5,#05H

    CLR P2.7

    MOV P0,#0FFH

    SETB P2.0

    MOV A,P0

    MOV R0,A

ZHDY:                ;开始数据转换

    MOV A,R0

    MOV B,#8

    DIV AB

    MOV R1,B     ;存余数到R1

    MOV B,#10

    DIV AB

    MOV 7AH,A

    MOV 7BH,B

    MOV A,R1

    MOV B,#10

    MUL AB

    MOV B,#8

    DIV AB

    MOV 7CH,A

    MOV A,B

    MOV B,#10

    MUL AB

    MOV B,#8

    DIV AB

    MOV 7DH,A

    RET

DISP:MOV A,#00H

    MOV P1,A

    MOV SP,#6FH

    ACALL LCDRST

DY:    MOV A,#85H

     ACALL WCOM

    MOV A,7AH        ;显示整数第一位

    MOV DPTR,#TAB

    MOVC A,@A+DPTR

    ACALL WDATA

    MOV A,7BH

    MOV DPTR,#TAB    ;显示整数第二位

    MOVC A,@A+DPTR

    ACALL WDATA        

    MOV A,#'.'        ;显示小数点

    ACALL WDATA        

    MOV A,7CH        ;显示小数第一位

    MOV DPTR,#TAB

    MOVC A,@A+DPTR

    ACALL WDATA

    MOV A,7DH        ;显示小数第二位

    MOV DPTR,#TAB

    MOVC A,@A+DPTR

    ACALL WDATA

    MOV A,#'V'         ;显示字母V

    ACALL WDATA            

YJ: MOV A,#0C3H        ;第一行中间位置开始显示

    ACALL WCOM

    MOV A,#'G'         ;显示Good luck!

    ACALL WDATA

    MOV A,#'o'        

    ACALL WDATA    

    MOV A,#'o'        

    ACALL WDATA    

    MOV A,#'d'        

    ACALL WDATA    

    MOV A,#' '         

    ACALL WDATA    

    MOV A,#'l'         

    ACALL WDATA    

    MOV A,#'u'    

    ACALL WDATA    

    MOV A,#'c'         

    ACALL WDATA    

    MOV A,#'k'        

    ACALL WDATA    

    MOV A,#'!'        

    ACALL WDATA    

    RET

LCDRST:    MOV R6,#15

    ACALL DELAY

    MOV A,#38H

    ACALL WCOMN

    MOV R6,#15

    ACALL DELAY

    ACALL WCOMN

    MOV A,#0CH

    ACALL WCOM

    RET

LCDBUSY:PUSH ACC

    CLR RS

    SETB RW

    CLR E

    MOV P1,#0FFH

    SETB E

WAIT2:MOV A,P1

    JB ACC.7,WAIT2

    CLR E

    POP ACC

    RET

WCOM:MOV R6,#3

    CALL DELAY

WCOMN:CLR RS

       CLR RW

    CLR E

    MOV P1,A

    SETB E 

    NOP

    CLR E

    RET

WDATA:MOV R6,#3

    CALL DELAY

    SETB RS

    CLR RW

    CLR E

    MOV P1,A

    SETB E

    NOP

    CLR E

    RET

DELAY:    

   D1:  MOV R5,#10

   D2:  MOV R4,#20

    DJNZ R4,$

    DJNZ R5,D2

    DJNZ R6,D1

    RET

TAB:  DB 30H,31H,32H,33H,34H

      DB 35H,36H,37H,38H,39H

       END

14                   参考文献 

[1] 作者:魏立峰,《单片机原理及应用技术》,北京大学出版社2006年。

[2] 作者:陈光绒,《单片机技术应用教程》,北京大学出版社2005年。

[3] 作者:李广弟,《单片机基础》,北京航空航天大学出版社2007年。.

[4] 作者:刘树林,《低频电子线路》,电子工业出版社2003年。

[5] 作者:何宏,《单片机原理与接口技术》,国防工业出版社2006年 

[6] 作者:张志良,《单片机原理与控制技术》,机械工业出版社2001年。

[7] 作者:郭强,《液晶显示器件应用技术》,北京邮电学院出版社1993年。

[8] 作者: 王辛之,《AT系列单片机原理与接口技术》,北京航空航天大学出版社2004年。下载本文

显示全文
专题