当前位置:文档之家› 单片机课程设计 数字电压表设计

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

《单片机原理及应用》课程设计报告书课题名称数字电压表设计名姓学号专业指导教师机电与控制工程学院月年日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八段数码管显示测量结果。

相关主题