简易直流电压表的设计

简易直流电压表的设计
简易直流电压表的设计

目录

1技术要求.................................................. 错误!未定义书签。2基本原理.................................................. 错误!未定义书签。

设计的具体思想.......................................... 错误!未定义书签。

主要芯片介绍............................................ 错误!未定义书签。

89c51系列芯片介绍.................................. 错误!未定义书签。

ADC0809芯片介绍.................................... 错误!未定义书签。

LED基本结构........................................ 错误!未定义书签。

%

LED显示器的选择.................................... 错误!未定义书签。3建立模型描述.............................................. 错误!未定义书签。

方案一.................................................. 错误!未定义书签。

方案二.................................................. 错误!未定义书签。4模块功能分析或源程序代码.................................. 错误!未定义书签。

方案一代码.............................................. 错误!未定义书签。

方案二代码.............................................. 错误!未定义书签。5调试过程及结论............................................ 错误!未定义书签。-

6心得体会.................................................. 错误!未定义书签。7参考文献.................................................. 错误!未定义书签。

简易直流电压表的设计

1技术要求

以89s51单片机为核心芯片,设计一个简易直流电压表,要求如下:

~

A、能够对直流电压进行相应的采集和转换;

B、利用led对电压值进行显示,精确到小数点后一位。

2基本原理

对于数字电压表的设计,其主要功能从外界获取模拟电压信号,再通过相应的芯片(即ADC0809)转换为数字电压信号,用微处理芯片89C51芯片处理后在数码管上输出显示。其设计工作原理图如图1所示。

图1 设计工作原理图

设计的具体思想

测量电压输入:这是模拟电压的输入端,输入0~5V的电压,特别地,为了使电压能够连续输入到系统中,使用了滑动变阻器来控制输入电压的大小。为了能够与数字显示的

电压大小相比较,在输入端加入了电压表。

时钟电路:这部分电路是为了给89s51芯片提供时钟脉冲的,在proteus软件仿真时可以不加时钟电路,但在实际电路时,一定要加时钟电路。

复位电路:这部分电路可以直接接80c51的引脚9,当输入高电平时,可进行复位操作,也可以在时钟电路部分加如开关,当无时钟信号输入时,同样可以达到复位的目的,两种方法都可以。

A/D转换电路:这部分的功能是将模拟电压量转换为数字信号输入到89s51中。对于A/D转化芯片使用的是ADC0809芯片,只要连好电路,不要线,这并不是很难。

$

多位数字显示系统:这个系统是使用两个LED数码管显示需要输出的数字,特别要注意小数点的位数显示规则;也可以使用一个多位数码显示管,流水显示,这一点也可以达到实验要求。

主要芯片介绍

89c51系列芯片介绍

微处理芯片89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压、高性能CMOS8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除10000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,89C51是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此这种芯片使用范围十分广泛,是初学者学习微处理器的敲门砖。

89C51结构特点:

8位CPU,一次处理8位字节的数据;

具有片内振荡器和时钟电路;

^

32根I/O线,即4*8个数据交换端口;

外部存贮器寻址范围ROM、RAM64K;

2个16位的定时器/计数器;

5个中断源,两个中断优先级,使用INT和INTR、端口控制中断;

觉有全双工串行口;

布尔处理器;

89C51芯片的实物管脚图如图2所示

|

图2 89c51芯片的管脚

89C51芯片的管脚说明:

VCC:供电电压,+5V。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可

以被定义为数据/ 地址的低八位。在FIASH编程时,P0 口作为原码输入口,当

FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL 门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉

为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,

P1口作为第八位地址接收。

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。

并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉

的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,

P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外

部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在

FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。

当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由

于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

-

P3口也可作为AT89C51的一些特殊功能口,如下表所示:

管脚备选功能

RXD(串行输入口)

TXD(串行输出口)

/INT0(外部中断0)

/INT1(外部中断1)

T0(记时器0外部输入)

T1(记时器1外部输入)

/WR(外部数据存储器写选通)

/RD(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

在设计时,正确使用,可以帮助结束死循环。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不

变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用

作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部

数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH

地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。

另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置

位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将

不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;

当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引

脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。

)

XTAL2:来自反向振荡器的输出。

ADC0809芯片介绍

芯片ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D 模数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

(1)ADC0809主要特性

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外部特性(引脚功能)

ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。下面说明各引脚功能。

IN0~IN7: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:接地引脚。

~

(3)ADC0809工作过程

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。

ADC0809的管脚图如图3所示。

不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。

LED基本结构

LED是发光二极管显示器的缩写。LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。LED显示器是由若干个发光二极管组成显示字段的显示器件[6]。在单片机中使用最多的是七段数码显示器。LED七段数码显示器由8个发光二极管组成显示字段,其中7个长条形的发光二极管排列成“日”字形,另一个圆点形的发光二极管在显示器的右下角作为显示小数点用,其通过不同的组合可用来显示各种数字。LED引脚排列顺序如下图4所示:

图4 LED引脚排列

LED显示器的选择

在应用系统中,设计要求不同,使用的LED显示器的位数也不同,因此就生产了位数,尺寸,型号不同的LED显示器供选择,在本设计中,选择4位一体的数码型LED显示器,简称“4-LED”。本系统中前一位显示电压的整数位,即个位,后两位显示电压的小数位。

4-LED显示器引脚如图5所示,是一个共阴极接法的4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段的公共输出端,1、2、3、4分别是每一位的位数选端,dp是小数点引出端,4位一体LED数码显示管的内部结构是由4个单独的LED组成,每个LED 的段输出引脚在内部都并联后,引出到器件的外部。

#

图5 4位LED引脚

对于这种结构的LED显示器,它的体积和结构都符合设计要求,由于4位LED阴极的各段已经在内部连接在一起,所以必须使用动态扫描方式(将所有数码管的段选线并联在一起,用一个I/O接口控制)显示,即我们常说的流水显示。

3建立模型描述

方案一

(1)时钟电路部分:时钟电路如图6所示,使用晶体振荡器来得到时钟电路,与之相关的电容的大小决定了振荡频率的大小,C1=C2=30pF,C3=10uF,R1=10K。

图6 时钟电路部分

(2)测量电压输入:使用5V电压输入,且用滑动变阻器控制输入电压的大小,电压表的读数与数字显示的电压相比较,分析出误差来。测量电压输入的电路图如图7所示。

误差计算公式:误差=(模拟电压-数字电压)/模拟电压

}

图7测量电压输入

(3)A/D转换电路:这部分的功能是将模拟电压量转换为数字信号输入到89s51中。对于A/D转化芯片使用的是ADC0809芯片,只要连好电路,不要线,这并不是很难。注意PROTEUS软件LBL功能的应用,这样可以使得电路变得简单,清楚。A/D转换电路如图8所示。

&

图8 A/D转换电路

(4)多位数字显示系统:这一部分的电路输出数字显示信号,与模拟电压相比较,注意在选择显示器是要注意是选择共阳极还是共阴极。多位数字显示系统如图9所示。

图9 多位数字显示系统

电路的仿真总图如下图10所示。

<

图10电路的仿真总图

方案二

方案二与方案一的很多地方有相同之处,因此相同的地方在这里不再介绍。

(1)时钟电路部分:在这里与方案一相比较,加入了复位按钮,使得可以方便控制电路的输出。时钟电路部分如图11所示。

图11 时钟电路部分

(2)测量电压输入:测量电压输入如下图12所示。

|

图12 测量电压输入

(3)A/D转换电路:此部分电路与方案一相同,A/D转换电路如图13所示。

图13 A/D转换电路

(4)多位数字显示系统:为了提高显示的精度,可以使用多位显示数码管,使精度精确到小数点后两位,但89c51只有3组输出端口,只好使用串口显示电路,即动态显示结果(一个I/O端口,多个控制位)。多位数字显示系统如图14所示。

;

图14 多位数字显示系统

综上分析得到电路的仿真总图。特别注意,这个电路中使用了P1端口作为了输出口,因此一定要使用上拉电阻,且这是必不可少的。仿真总图如下图15所示。

图15 电路的仿真总图

4模块功能分析或源程序代码

方案一代码

}

ORG 0000H

AJMP STAR

ORG 000BH

LJMP INT_T0

ORG 0030H

STAR:

MOV 80H,#00H ;设置单片机的工作状态~

MOV 0A0H,#00H

MOV TMOD,#02H

MOV TH0,#245

MOV TL0,#00H

MOV IE,#82H

SETB TR0

WAIT: CLR ;将该端口清零

SETB ;将该端口置一

CLR

JNB ,$

SETB

MOV R6,P1

XIA50: CJNE R6,#50,JUD50

MOV A,#B

MOV P0,A

\

MOV A,#00111111B

MOV P2,A

JMP WAIT

JUD50: JNC XIA100

MOV A,#B

MOV P0,A

MOV A,R6

XHC1: MOV B,#5

*

DIV AB

CJNE A,#0,OU1

MOV 0A0H,#00111111B

JMP WAIT

OU1: CJNE A,#1,OU2 ;输出显示控制 MOV 0A0H,#00000110B

JMP WAIT

OU2: CJNE A,#2,OU3

[

MOV 0A0H,#01011011B

JMP WAIT

OU3: CJNE A,#3,OU4

MOV 0A0H,#01001111B

JMP WAIT

OU4: CJNE A,#4,OU5

MOV 0A0H,#01100110B

JMP WAIT

OU5: CJNE A,#5,OU6

MOV 0A0H,#01101101B

JMP WAIT

OU6: CJNE A,#6,OU7

MOV 0A0H,#01111101B

JMP WAIT

OU7: CJNE A,#7,OU8

MOV 0A0H,#00000111B

'

JMP WAIT

OU8: CJNE A,#8,OU9

MOV 0A0H,#01111111B JMP WAIT

OU9: CJNE A,#9,WAIT

MOV 0A0H,#01101111B JMP WAIT

XIA100: CJNE R6,#100,JUD100 >

MOV A,#B

MOV P0,A

MOV A,#00111111B

MOV P2,A

JMP WAIT

JUD100: JNC XIA150

MOV A,#B

MOV P0,A

!

CLR C

MOV A,R6

SUBB A,#50

LJMP XHC1

XIA150: CJNE R6,#150,JUD150 MOV A,#B

MOV P0,A

MOV A,#00111111B

#

MOV P2,A

;SETB

LJMP WAIT

JUD150: JNC XIA200

MOV A,#B

MOV P0,A

CLR C

MOV A,R6

^

SUBB A,#100

LJMP XHC1

XIA200: CJNE R6,#200,JUD200 MOV A,#B

MOV P0,A

MOV A,#00111111B

MOV P2,A

;SETB

*

LJMP WAIT

JUD200: JNC XIA250

MOV A,#B

MOV P0,A

MOV A,R6

SUBB A,#150

LJMP XHC1

XIA250: CJNE R6,#250,JUD250 [

MOV A,#B

MOV P0,A

MOV A,#00111111B

MOV P2,A

;SUBB A,#200

相关主题
相关文档
最新文档