用单片机设计数字电压表Word文件下载.docx

上传人:b****4 文档编号:17270229 上传时间:2022-11-30 格式:DOCX 页数:33 大小:114.45KB
下载 相关 举报
用单片机设计数字电压表Word文件下载.docx_第1页
第1页 / 共33页
用单片机设计数字电压表Word文件下载.docx_第2页
第2页 / 共33页
用单片机设计数字电压表Word文件下载.docx_第3页
第3页 / 共33页
用单片机设计数字电压表Word文件下载.docx_第4页
第4页 / 共33页
用单片机设计数字电压表Word文件下载.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

用单片机设计数字电压表Word文件下载.docx

《用单片机设计数字电压表Word文件下载.docx》由会员分享,可在线阅读,更多相关《用单片机设计数字电压表Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。

用单片机设计数字电压表Word文件下载.docx

②能用数码管显示电压值;

③测量精度达0.1V;

④要求系统具备复位功能;

⑤自制直流稳压电源;

⑥系统具备自检功能。

1.2发挥部分:

①电压测量范围5~20V;

②同时采集8路信号分时显示;

③电压表具备20V超量程报警功能;

④测量精度:

0~5V内可调可达0.02V,5~20V可达0.1V;

⑤电压表具备抑制脉冲干扰的能力;

⑥尽可能减少芯片的使用节约成本;

⑦其他发挥。

2、系统基本方案

2.1简易数字电压表系统框图如图1

2.2主控部分的选择

方案一:

用以AT89S52为核心的单片机控制系统方案。

AT89S52具有较大程序存储空间

,并且其数据存储空间也能够满足用户的需要,它还易于实现功能拓展,AT89S52内部置有ISP在线编程技术,这就省去了专用的程序焼写器。

从而提高了它的性价比。

方案二:

用以AT89C51为核心的单片机控制系统方案。

AT89C51易于实现对程序的编写,但其程序存储空间和数据存储空间小,编写较长程序时不可用,其不支持ISP在线编程技术,需要专用的烧写器来烧写程序,成本高,进而降低了系统性价比。

方案三:

应用ICL7107集成芯片制作的方案。

ICL7107是一块应用非常广泛的集成电路。

它包含31/2位数字A/D转换器,可直接驱动LED数码管,内部设有参考电压、独立模拟开关、逻辑控制、显示驱动、自动调零功能等。

ICL7107是一种制作数字电压表典型的应用电路。

由于该集成芯片在使用上有一定的局限性,不可编程故不能实现功能拓展,无法满足作品的设计要求。

综合以上三种方案分析,采用AT89S52作为主控制系统,其性价比最高。

2.3显示器的选择

运用液晶显示器。

主要能显示大量的文字、数字和图形,清晰化程度高,但是成本高。

运用点阵显示器。

主要能显示文字、数字,但其内部结构较为复杂,不易连接。

运用数码管显示器。

显示数字比较直观,且其在使用方面连线比较简单、成本低。

综合各方面考虑系统的性价比故采用方案三。

2.4A/D转换器的选择

采用双积分A/D转换器MC14433,它有多路调制的BCD码输出端和超量程输出端,采用动态扫描显示,便于实现自动控制。

但芯片只能完成A/D转换功能,要实现显示功能还需配合其它驱动芯片等,使得整部分硬件电路板布线复杂,加重了电路设计和实际焊接的工作。

采用A/D转换芯片ADC0809。

ADC0809是一块8路8位模数转换芯片,将模拟电路和数字电路集成在一个有28个功能端的电路内,包含了A/D转换,逻辑控制,译码驱动等电路,其转换时间为100μS左右,符合作品8路采集要求且电路设计简单,电路板布线不复杂,便于焊接、调试。

综上所述,故采用方案二。

二、系统的硬件设计与实现

1系统硬件概述

该作品由六大部分组成,分别是主控模块、A/D转换模块、显示模块、声光报警模块、

量程选择模块,直流稳压电源模块。

2主要单元电路的设计

2.1主控模块

数字电压表的控制模块采用AT89S52单片机,AT89S52是DIP-40集成电路芯片,该芯

片有4个八位并行的双向I/O口,分别为P0、P1、P2、P3口。

如图

(2)示。

20引脚为接地端;

40引脚为电源端;

31引脚需要接高电位使单片机选用内部程序存储器;

18,19引脚上接一个12MHZ的晶振为单片机提供时钟信号,第9脚为复位引脚.在P0口接上一个蜂鸣器和一个发光二极管,作为声光报警。

在P1口接上七段译码器74LS47来提供给LED的显示,在P3口的P3.2,P3.4,P3.5分别接上两个按键开关和一个发光二极管起到手动切换通道的作用。

(2)

2.2显示模块

2.2.1显示模块芯片介绍

①74LS47是一种BCD输入,开路输出的4线—七段译码器。

DCBA作为4线输入,a~g作为七段输出,输出低电平有效。

例如,输入DCBA=0011时,a,b,c,d,g等段输出为低电平,输出显示十进制数3。

345引脚为功能扩展端。

3脚LT是测试灯输入端。

作用是检查数码七段显示是否都能够正常发光。

当LT=1,BI=1时,七段显示部件全部点亮,显示“日”字。

译码器正常工作时LT=1。

4脚RBI是动态灭灯输入端,作用是将数码管显示的、不用的零熄灭。

5脚BI/RBO,BI是灭灯输入端,当BI=0时,不管输入如何,a~g均为1,数码管不显示。

RBO是动态灭灯输出端。

作用是控制低位灭零信号。

若RBO=1,说明本位处于显示状态;

若RBO=0且低位为零,则低位被熄灭,它于BI组成线与关系345引脚使用时应接上高电位。

管脚信息与LED连接如图(3)所示

图(3)②LED管脚信息如图(4)

图(4)

2.22显示模块的连接从图(5)可以观察到单片机P1口低4位连接一块七段译码器74LS47,由于74LS47是共阳极的七段译码器所以要选用共阳极的数码管。

单片机P1.0—P1.3的输出信号经过74LS47译码后就可以驱动数码管显示相应的数字,另外在74LS47的输出与数码管之间还要接上7个470欧姆的限流电阻,以防止有过大的电流流过时烧坏数码管。

P1.4—P1.7口接于四个PNP三极管的基极,四个三极管分别接于六个数码管的公共端。

通过由P1.4—P1.6口的输出量来控制数码管的点亮。

采用PNP型的三极管来驱动数码管,在此三极管相当于一个开关的作用。

依靠74LS47七段译码器和四个PNP三极管就可以实现数码管的动态显示。

2.3A/D转换模块

图(5)显示模块

A/D转换器用于实现模拟量向数字量的转换,由于模数转换电路的种类很多,选择A/D的转换器件主要从速度、精度和价格方面考虑。

目前最常用的是双积分式和逐次逼近式A/D转换器。

双积分式A/D转换器的优点是转换精度高,抗干扰性能好,价格便宜;

但转换速度较慢。

因此这种转换器主要用于速度要求不高的场合。

逐次逼近式A/D转换器是一种速度较快、精度较高的转换器,其转换时间大约在几微秒到微秒之间。

该系统采用的模数转换器芯片为ADC0809,该芯片为8路模拟信号的分时采集.

片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100

μS左右。

2.3.1ADC0809的内部逻辑结构

ADC0809的内部逻辑结构图如图(6)所示

图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D转换器进行转换,这是种经济的多路采集方法。

地址锁存与译码电路完成对A、B、C3个地址进行锁存译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线。

表(6.1)为通道选择表

2.3.2ADC0809引脚功能

(1)ADC0809引脚图(6.2)

ADC0809芯片为DIP-28,其主要信号引脚的功能说明如下:

IN7~IN0——模拟量输入通道。

A、B、C——地址线。

通道端口选择线,A为低地址,C为高地址,引脚图中ADDC、ADDB和ADDC。

其地址状态与通道对应关系见表(6.1)

ALE——地址锁存允许信号。

对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。

START——转换启动信号。

START上升沿时,复位ADC0809;

START下降沿时启动芯片,开始进行A/D转换;

在A/D转换期间,START应保持低电平。

写为ST。

D4~D0——数据输出线。

为三态缓冲输出形式。

可以和单片机的数据线直接相连。

D0为最低位,D7为最高。

OE——输出允许信号。

用于控制三态门输出锁存器向单片机输出转换得到的数据。

OE=0,输出数据线呈高阻;

OE=1,输出转换所得到的数据。

CLK——时钟信号。

ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。

通常使用频率为500KHZ的时钟信号。

EOC——转换结束信号。

EOC=0,正在进行转换;

EOC=1,转换结束。

使用中该状态信号即可作为查询的状态标志,又可以作为中断请求信号使用。

VCC——+5V电源。

Vref——参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。

起典型值为+5V{Vref(+)=5V,Vref(-)=-5V。

2.3.3AT89S52与ADC0809接口电路AT89S52与ADC0809接口电路如图(6.3)

接口电路的连接要涉及两个问题。

一是8路模拟信号通道的选择,二是A/D转换完成后转换数据的传送还处理。

图(6.3)所示模拟通道选择信号A、B、C分别接到74LS373三态锁存器的A0、A1、A2即接到P0口最低三位地址(P0.0、P0.1、P0.2)而地址锁存端由P2.0控制,8路模拟选通地址为0FEF8H—0FEFFH。

通道地址选择以WR ̄作写选通信号,把ALE信号与STAET信号接在一起这样使得在信号的前沿写入(锁存)通道地址,紧接着其后沿就启动转换。

这就是A/D转换模块电路连接,之后的数据采集、通道选择、量程选择、数据处理都由后续的程序编写来完成。

2.4声光报警模块

为了判断采集的电压量是否超出量程,增加了声光报警模块。

该模块工作原理如下当系统采集到的电压值大于20V时,发光二极管点亮蜂鸣器响且数码管不显示数据,此时实现声光报警功能.声光报警电路模块如图(7)

2.5量程选择模块

图(7)声光报警电路

量程模块根据电阻分压原理而设计,该系统的量程模块由一个15K的电阻和10K的滑动电阻串上8个1K的电阻构成分压模式,根据作品设计要求采集电压值的量程可在0V至5V和

5V~20V之内的电压量进行选择,图(8)中SW开关就起到选择量程的作用,AT89S52的P3.3~P3.5所对应接的按键开和发光二极管起到这里则起来到选择量程通道的作用。

量程模块电路图如图(8)

三、系统的软件设计

3.1系统软件概述

图(8)量程模块电路

该系统由AT89S52单片

机系统、A/D转换模块、LED动态显示模块、电源模块、量程选择模块和报警系统组成。

该系统能完成电压量的采集、A/D转换、手动量程切换、实时显示采集到电压量和声光提示等功能。

依据实际的情况还可以添加自动量程切换功能。

3.2数字电压表总程序流程图

数字电压表主程序流程图

开始

自检

量程选择

8次A/D转换

滤除干扰

报警子程序

延时切换通道

数据处理

显示程序

3.3子程序的设计

该系统程序由上电自检、数据采集、通道选择、量程选择、超量程报警子程序还有数据

处理等子程序组成下面对各子程序简单介绍如下:

3.3.1上电自检子程序自检子程序是检测显示模块的好坏看是否能正常工作同时可以检查出硬件是否焊接正确,当运行自检时数码管上显示四个“8”红灯绿灯亮且蜂鸣器发出报警,说明显示模块可以正常运行.

自检程序如下:

START:

MOVR2,#250;

自检子程序

L1:

MOVR3,#250;

自检循环设定

ZOO:

MOVP1,#11101000B;

设置数码管自检显示全部为8

MOVP1,#11011000BMOVP1,#10111000BMOVP1,#01111000BSETBP3.0

CLRP3.1

CLRP3.3

DJNZR3,ZOO;

延时等待一段时间

DJNZR2,L1

SETBP3.1;

灭数码管,灯和蜂鸣器

CLRP3.0

SETBP3.2

SETBP3.3

SETBP3.4

SETBP3.5

MOVP1,#11111111B

MOV60H,#00H;

给寄存器清零

MOV61H,#00HMOV62H,#00HMOV63H,#00HMOV64H,#00HMOV65H,#00HMOV66H,#00HMOV67H,#00HMOV21H,#00HMOV22H,#00HMOV23H,#00HMOV24H,#00H

3.3.2数据采集子程序

数据采集程序就是把模拟电压值送到ADC0809中,由0809进行模数转换最后得出8位数字量的位码,在由单片机进行位码与BCD码的转换并由数码管显示出来,即为当前的测量电压值,具体程序如下:

LIANGCHENG1:

;

0到5伏量程子程序

MOVR1,#60H

MOVR6,#5

DD11:

检测第一路

JNBP3.5,LIANGCHENG11;

判断是否要进行8路采集

CLREA

MOVDPTR,#0FEF8H;

选择通道1

MOVX@DPTR,A

JBP3.2,$;

判断AD转换是否完成

MOVXA,@DPTR;

单片机进行读超做

MOV@R1,A

INCR1;

采集5次

DJNZR6,DD11

JNBP3.5,LIANGCHENG11

LCALLPAIXU1;

排序

LCALLDEL3;

显量程

LCALLPIS;

对采集的数据进行处理

LCALLPANDUAN1;

判断是否超量程

NOP

LJMPLIANGCHENG1;

返回

3.3.3通道选择及量程选择子程序

通道选择程序是由按键开关控制来完成的,通过软件对按键的反复扫描来判断是否有按键按下,当有按键会跳到相应的量程子程序,并进行八路采集,程序流程图如下:

3.3.4数据处理子程序

数据处理子程序包含有对采集到的数据进行排序,求和,求平均值,从而减小测量误差,程序流程图如下:

3.3.5超量程报警子程序

每个系统都有它的最高耐压值,当超出它的额定电压时会对系统带来损坏,所以设置了超量程报警,判断寄存器中的数据是否超出设定值,如果超出则发出声光报警,否则继续采集。

四、系统测试

4.1测试仪器与设备测试仪器及设备如表4-1所示

表4-1测试仪器及设备

仪器名称

型号

用途

数量

可跟踪直流稳压电源

SS2323

提供电压源电压

1(台)

烧写软件

双龙

烧写程序

1(个)

数字万用表

VC9800

测量输出电压

2(个)

ISP下载板

调试程序

4.2测试指标和误差分析

(1)基本要求

0~5V预置电压与实测电压的偏差测试如表4-2所示

表4-2预置电压与实测电压的偏差

输入档位/V

预置电压/V

实测电压/V

误差/V

00.00

00.02

1.5

01.50

01.47

00.03

2.5

02.50

02.47

3.5

03.50

03.47

5

05.00

05.03

(2)发挥部分

5V~20V预置电压与实测电压的偏差测试如表4-3所示

6

06.00

05.90

00.10

10

10.00

09.90

14

14.00

13.95

00.15

18

18.00

17.90

20

20.00

20.30

00.30

4.3测试结果分析

根据检测结果,分析简易电压表的技术性能指标:

误差较小,达到了电路的设计要求。

电压值小时相对误差较大,主要是采集电压值小,导致采样电压时分辨率不够高,这时可使用软件编程,提高采样电压的次数求平均值,从而提高分辨率,减小相对误差。

另外由于电源提供的电压很不稳定,也会导致采集到的电压值存在一定误差。

五、总结

1、作品总结

本系统以AT89S52单片机为核心部件,结合模数电路的设计原理,利用电阻分压的原理选择测试点电压的技术,并配合一套独特的程序完成了题目所有的功能。

在设计中力求发挥软件灵活方便的特点,来满足系统的设计要求。

2、自我总结

经过自己的努力与同伴的合作以及辅导老师的点拨终于如期完成了简易数字电压表的设计。

在刚开始选择这个课题的时侯感觉很自信,觉得自己能够把这个课题做的很好,因为原理与工作机理自己都很了解。

但真正让自己一步步去做的时候,才发现很多细节问题自己之前根本没考虑到,觉得一时慌了手脚。

其实这次课题用的都是以前学过的理论知识,我们要做的只是适当的发挥与扩展。

将自己学过的理论知识举一反三,并且用于实践。

虽然之前也做过一些实训课题,像抢答器,收音机,也有了一些经验。

但是这次课题要求比以前提高了很多,不再是单纯的硬件问题。

它需要自己编写程序,收集资料,还要解决一些新的问题,所以一开始感到有些棘手。

同时也发现自己确实存在很多问题与不足,看问题容易犯眼高手低的毛病,做事缺乏耐心与钻劲儿,没能够把已学的知识灵活应用。

通过这次实训培养了我积极解决问题的能力,和面对新问题解决新问题的自信。

同时也提高了自己的合作意识与沟通能力,能够坦然面对自己的不足并且逐步改正,这在我以后的学习与工作中将会有很大的帮助。

六、致谢词

感谢领导给我们提供这次锻炼的机会,使得我们得到一个自我能力提升的平台,使我们有机会把自己掌握的理论知识通过实践得以应用.感谢辅导老师的点拨和帮助,在我们制作的过程中帮我们解除疑难.通过这次实训提高了我解决问题的积极性以及和同学的合作与老师的互动交流.。

七、参考文献

[1]王法能.单片机原理及应用.科学出版社.2004

[2]刘勇.数字电路.电子工业出版社.2004

[3]赵伟军.PROTEL99SE教程.人民邮电出版社.2004

[4]黄强.模拟电子技术.科学出版社.2003

[5]21IC资料搜索

附录一:

系统总原理图

ORG0000HLJMPSTART

附录二:

系统总程序清单

ORG0030HSTART:

MOVP1,#11101000BMOVP1,#11011000BMOVP1,#10111000BMOVP1,#01111000BSETBP3.0

DJNZR3,ZOODJNZR2,L1

START2:

JNBP3.4,LIANGCHENG1;

JNBP3.5,LIANGCHENG2

LJMPSTART2

LIANGCHENG2:

LJMPLIANGCHENG3

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1