数字电压表的设计.docx

上传人:b****4 文档编号:7018631 上传时间:2023-05-11 格式:DOCX 页数:20 大小:453.67KB
下载 相关 举报
数字电压表的设计.docx_第1页
第1页 / 共20页
数字电压表的设计.docx_第2页
第2页 / 共20页
数字电压表的设计.docx_第3页
第3页 / 共20页
数字电压表的设计.docx_第4页
第4页 / 共20页
数字电压表的设计.docx_第5页
第5页 / 共20页
数字电压表的设计.docx_第6页
第6页 / 共20页
数字电压表的设计.docx_第7页
第7页 / 共20页
数字电压表的设计.docx_第8页
第8页 / 共20页
数字电压表的设计.docx_第9页
第9页 / 共20页
数字电压表的设计.docx_第10页
第10页 / 共20页
数字电压表的设计.docx_第11页
第11页 / 共20页
数字电压表的设计.docx_第12页
第12页 / 共20页
数字电压表的设计.docx_第13页
第13页 / 共20页
数字电压表的设计.docx_第14页
第14页 / 共20页
数字电压表的设计.docx_第15页
第15页 / 共20页
数字电压表的设计.docx_第16页
第16页 / 共20页
数字电压表的设计.docx_第17页
第17页 / 共20页
数字电压表的设计.docx_第18页
第18页 / 共20页
数字电压表的设计.docx_第19页
第19页 / 共20页
数字电压表的设计.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

数字电压表的设计.docx

《数字电压表的设计.docx》由会员分享,可在线阅读,更多相关《数字电压表的设计.docx(20页珍藏版)》请在冰点文库上搜索。

数字电压表的设计.docx

数字电压表的设计

 

单片机原理及应用

 

课程设计报告书

 

题目:

数字电压表的设计

姓名:

杜典武

学号:

103521034

专业:

电气工程及其自动化

指导教师:

万青教师

设计时间:

2012年11月

数字电压表的设计

1.引言

〔1〕设计意义:

我们学习的是单片机这门课程,这门课程最显著的特点就是它是一门实用技术课程,它要求我们不仅仅要掌握扎实的理论根底,更重要的是要学会如何去真真利用它为我们的电路设计效劳,也只有通过课程设计这样的动手实践才是我们掌握这门技术的最正确途径,因此,我们开设这样的实践是很重要的,也是我们努力去学习钻研的动力。

数字电压表设计意义:

数字电压表是采用数字化检测技术,把连续的模拟量〔直流输入电压〕换成不连续的、离散的数字形式并加以现实的仪表,克制了传统模拟电压表的读书不方便和不准确等问题。

不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强集成方便,还可以与PC进展实时通信。

目前,由各种单片A/D转换器构成的数字电压表,已广泛应用于电子电工测量、工业自动化仪表、自动测试系统等智能化测量领域,展现了强大的生命力。

与此同时,由数字电压表扩展而成的各种通用及专用数字化仪器,也把电量及非电量测量技术提高到了崭新的水平,因此,通过这次课程设计能让我们了解这些知识,为以后研究相关技术打下坚实的根底。

〔2〕系统功能要求:

简易数字电压表可以测量0~5VX围内的8路输入电压值,并在4位LED数码管上轮流显示或单路选择显示。

其测量最小分辨率位0.02V.

2.方案论证及方框图

〔1〕硬件设计方案及方框图:

数字电压表系统设计方框图

数字电压表测量电路是由A/D转换、数字处理及显示控制等组成。

A/D转换由集成芯片ADC0809电路完成。

ADC0809具有8路模拟输入端口,地址线〔第23~25脚〕可决定对哪一路模拟输入作A/D转换。

第22引脚为地址锁存控制,当输入为高电平时,对地址信号进展锁存。

第6引脚为测试控制,当输入一个2us宽电平脉冲时,就开场A/D转换。

第7引脚为A/D转换完毕标志,当A/D转换完毕时,第7引脚输出高电平。

第9引脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从端口输出。

第10引脚为ADC0809的时钟输入端,利用单片机第30引脚的六分频晶振频率,再通过14024二分频的得到1MHz的时钟。

单片机的P1/P3.0-P3.3端口作为4位LED数码管显示控制。

P3.5端口用作单路显示/循环显示转换按钮,P3.6端口用作单路显示时选择显示通道。

P0端口用作A/D转换数据输入,P2端口用作ADC0809的A/D转换控制。

(2)软件设计方案及方框图:

 

主程序流程图

系统刚上电时,初始化程序主要执行70H-77H内存单元清0和P2口置0等准备工作。

在刚上电时,系统默认为循环显示8个通道的电压值状态。

当进展一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间在1S左右。

主程序在调用显示子程序与测试子程序之间循环。

A/D转换测试子程序流程图

A/D转换测量子程序用来控制对ADC0809的8路模拟输入电压的A/D转换,并将对应的数值移入70H~77H内存单元。

3.单元电路设计细那么

〔1〕数码管显示器:

数码管的驱动方式的不同,可以分为静态式和动态式两类。

  数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到一样的字形码,但终究是那个数码管会显示出字形,取决于单片机对位选通端电路的控制,所以我们只要将需要显示的数码管的选通控制翻开,该位就显示出字形,没有选通的数码管就不会亮。

在轮流显示过程中,每位数码管的点亮时间为1~2ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。

共阴极数码管及其接口电路

〔2〕单片机的晶振电路:

晶振是晶体振荡器的简称,在电气上它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络,电工学上这个网络有两个谐振点,以频率的上下分其中较低的频率是串联谐振,较高的频率是并联谐振。

由于晶体自身的特性致使这两个频率的距离相当的接近,在这个极窄的频率X围内,晶振等效为一个电感,所以只要晶振的两端并联上适宜的电容它就会组成并联谐振电路。

这个并联谐振电路加到一个负反应电路中就可以构成正弦波振荡电路,由于晶振等效为电感的频率X围很窄,所以即使其他元件的参数变化很大,这个振荡器的频率也不会有很大的变化。

晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。

一般的晶振振荡电路都是在一个反相放大器〔注意是放大器不是反相器〕的两端接入晶振,再有两个电容分别接到晶振的两端,每个电容的另一端再接到地,这两个电容串联的容量值就应该等于负载电容,请注意一般IC的引脚都有等效输入电容,这个不能忽略。

本设计采用12MHz晶振,并联两个30pF电容构成晶振电路。

单片机晶振电路

 

〔3〕显示模块:

该模块为数字电压表的显示模块,主要由4位7端共阳LED数码管和PNP三极管构成的选通电路构成。

其中,我们需注意共阳数码管的数字0-9的编码,另外,每个位选管要与程序对应。

位选是通过单片机P3.0-P3.3口控制三极管的基极从而控制每位数码管的选通。

显示模块电路

〔4〕ADC0809模块:

1构造和转换原理

如图(3-15)所示为ADC0809的内部构造框图。

ADC0809由3局部组成:

8路模拟量选通开关、8位A/D转换器和三态输出数据锁存器。

ADC0809允许8路模拟信号输入,由8路模拟开关选通其中一路信号,模拟开关受通道地址锁存和译码电路的控制。

当地址锁存信号ALE有效时,3位地址C、B、A进入地

ADC0809的内部构造

ADC0809的引脚

地址锁存器,经译码后使8路模拟开关选通某一路信号。

8位A/D转换器为逐次逼近式,由256R电阻分压器、树状模拟开关〔这两局部组成一个D/A变换器〕、电压比拟器、逐次逼近存放器、逻辑控制和定时电路组成。

三态门输出锁存器用来保存A/D转换结果,当输出允许信号OE有效时,翻开三态门,输出A/D转换结果。

因输出有三态门,便于与单片机总线连接。

2引脚功能

由引脚图(3-15)b所示,ADC0809共有28个引脚,

采用双列直插式封装。

ADC0809虽然有8路模拟

通道可以同时输入8路模拟信号,但每个瞬间只能

转换一路,各路之间的切换由软件变换通道地址来

实现。

其主要引脚功能如下所示。

IN0~IN7:

8路模拟量输入端。

  D7~D0:

8位数字量输出端。

  A、B、C:

3位地址输入线,用于选通8路模拟输入中的一路。

ALE:

地址锁存允许信号,输入,高电平有效。

  START:

A/D转换启动信号,输入,高电平有效。

  EOC:

A/D转换完毕信号,输出,当A/D转换完毕时,此端输出一个高电平〔转换期间一直为低电平〕。

  OE:

数据输出允许信号,输入,高电平有效。

当A/D转换完毕时,此端输入一个高电平,才能翻开输出三态门,输出数字量。

  CLK:

时钟脉冲输入端。

要求时钟频率不高于640KHZ。

  REF〔+〕、REF〔-〕:

基准电压。

  Vcc:

电源,单一+5V。

  GND:

地。

(5)通道选择及单路/循环模块:

该模块两个按键开关分别是控制单路/循环和通道选择的,当单路/循环按键未按下时,数码管上的通道位是循环显示通道,当该键按下时,数码管通道位显示的是某一路通道,看起来就像暂停一样,即单路测压。

另外一个按键通道选择按键,当你选择单路时,按一下通道选择键,数码管上的通道位显示的数字会加1,即通道移向下一位测压。

通道选择及单路/循环按键电路

4.调试及性能分析

(1)调试方法及步骤:

a.软件仿真调试:

首先将电路原理图用Proteus7.0仿真软件画出来,再用Keil单片机编程软件将数字电压表程序编写出来,通过Proteus7.0仿真软件中与Keil软件的联调功能,将编好的程序导入单片机中,在Proteus7.0中实现软件仿真。

b.实物调试:

将硬件电路都连接完好后,将单片机编号的数字电压表程序通过ISP程序烧入软件烧入到单片机中,用直流可调电压源给ADC0809的模拟输入端口通以不同电压值的电压,将数字电压表装置上的数码管上读出的电压值记录下来,与可调电压源上显示的标准值进展比拟并分析。

实物调试数据:

数据误差分析:

a.绝对误差

任取三组进展分析:

1 4.23-4.2=0.02V

2 3.68-3.6=0.08V

3 3.18-3.2=-0.02V

由于我们用的可调直流电压源只能准确0.1V,所以实际上,我们的误差可以说已经可以忽略了,相当的小。

该数字电压表的设计的最高分辨率约为0.02V。

我们因为不知道标准电压值的小数点后第二位的数值,而无法估计误差,但从这些数据上看,足以证明我们的此次设计相当成功。

b.相对误差

根据相对误差=〔测试值-标准值〕/标准值x100%

在数据记录表中任取3组值进展分析:

1 〔4.23-4.2〕/4.2*100%=7.1%

2 〔2.62-2.6〕/2.6*100%=7.7%

3 〔3.18-3.2〕/3.2*100%=-6.3%

计算得的相对误差也相当小,充分说明了此电压表制作之成功。

(2)性能分析:

1 从记录表中可以看出简易电压表测得的值根本比标准表电压值偏大,这可以通过校正ADC0809的基准电压来解决。

因为该电压表设计时直接用5V的供电电源作为基准电压,所以电压可能有偏差。

2 ADC0809的直流输入阻抗为1MΩ,能满足常用的电压测试需要。

另外,经测试的ADC0809可直接在2MHz的时钟频率下工作,这样可省去二分频器14024集成块。

3 当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要计算程序的被除数进展调整就行了。

但量程越大,测量精度就会越低。

5.系统的电路原理图

6.电子元器件清单

序号

器件名称

型号、规格

单位

数量

单价

1

单片机

AT89S52

1

13

2

IC座

40脚

2

0.4

3

芯片

ADC0809

1

8

4

IC座

28脚

1

0.3

5

芯片

74LS244

1

2

6

IC座

20脚

1

0.2

7

芯片

14024

1

2.5

8

IC座

14脚

1

0.2

9

4联体数码管

共阳

1

4

10

晶振

12M

1

1

11

电容

30pf

2

0.1

12

电解电容

10uf

1

0.2

13

按键

2

0.2

14

电阻

10K

2

0.05

15

电阻

510

8

0.05

16

电阻

8.2K

1

0.05

17

电阻

4,.7K

4

0.05

18

三极管

9012

4

0.1

19

插针

10

0.05

20

导线

Φ0.4

6

0.5

21

焊锡

5

0.8

22

标签纸

1

23

帽钉

4

0.1

24

万能印刷电路板

中号

1

20

7.源程序清单

/*使用AT89C52单片机,12MHZ晶振,P0口读入AD值,P2口作AD控制,用共阳LED数码管

P1口输出段码,P3口扫描,最高位指示通道〔0-7〕。

*/

#include"reg52.h"//52系列单片机定义文件

#include"intrins.h"//调用_nop_();延时函数用

#definead_conP2//AD控制口

#defineaddataP0//AD数据计入读入口

#defineDisdataP1//显示数据段码输出口

#defineucharunsignedchar//无符号字符〔8位〕

#defineuintunsignedint//无符号整数〔16位〕

sbitALE=P2^3;//锁存地址控制位

sbitSTART=P2^4;//启动一次转换位

sbitOE=P2^5;//0809输出数据控制位

sbitkey1=P3^5;

sbitkey2=P3^6;

sbitEOC=P3^7;//转换完毕标志位

sbitDISX=Disdata^7;//LED小数点

//

//

ucharcodedis_7[11]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff};

/*共阳七段LED段码表"0""1""2""3""4""5""6""7""8""9""不亮"*/

ucharcodescan_con[4]={0xf7,0xfb,0xfd,0xfe};//四位列扫描控制字

uchardataad_data[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};//定义8个数据内存单元

uintdatadis[5]={0x00,0x00,0x00,0x00,0x00};//定义4个显示数据单元、1个数据暂存单元

//

//

/********1毫秒延时子函数**********/

delay1ms(uintt)

{

uinti,j;

for(i=0;i

for(j=0;j<120;j++)

;

}

//

//

/***********显示扫描子函数**********/

scan()

{

uchark,n;

inth;

dis[3]=0x00;//通道初值为0

for(n=0;n<8;n++)//每次显示8个数据

{

dis[2]=ad_data[n]/51;//测得值转换为三位BCD码,最大为5.00V

dis[4]=ad_data[n]%51;//余数暂存

dis[4]=dis[4]*10;//计算小数第一位

dis[1]=dis[4]/51;//

dis[4]=dis[4]%51;//

dis[4]=dis[4]*10;//计算小数第二位

dis[0]=dis[4]/51;//

for(h=0;h<500;h++)//每个通道值显示时间控制〔约1秒〕

{

for(k=0;k<4;k++)//四位LED扫描控制

{

Disdata=dis_7[dis[k]];

if(k==2){DISX=0;}

P3=scan_con[k];delay1ms

(1);P3=0xff;

}

}

dis[3]++;//通道值加1

}

}

//

//

/*******0809AD转换子函数***********/

test()

{

ucharm;

uchars=0x00;

ad_con=s;

for(m=0;m<8;m++)

{

ALE=1;_nop_();_nop_();ALE=0;//转换通道地址锁存

START=1;_nop_();_nop_();START=0;//开场转换命令

_nop_();_nop_();_nop_();_nop_();//延时4微秒

while(EOC==0);//等待转换完毕

OE=1;ad_data[m]=addata;OE=0;s++;ad_con=s;//取AD值,地址加1

}

ad_con=0x00;//控制复位

}

//通道选择及单路/循环控制程序

td_dx()

{

ucharnum=1,flag=0;

uintad_data;

voiddelay(ucharms)//延时子函数

{

ucharj,i;

for(i=ms;i>0;i--)

for(j=110;j>0;j--);

}

voidkey_scan()

{

if(key1==0)

{

num=1;

}

while(key1==0);

}

if(key2==0)

{

delay(10);//消抖延时

if(key2==0)

{

num=2;

}

while(key2==0);

}

 

}

/**************主函数****************/

main()

{

P0=0xff;//初始化端口

P2=0x00;

P1=0xff;

P3=0xff;

while

(1)

{

td_dx();

scan();//依次显示8个通道值一次

test();//测量转换一次

}

}

//*********************完毕**************************//

8.参考资料

[1] 新编MCS-51单片机应用设计 X毅刚编著 XX XX工业大学 2008.3

[2] 电子技术根底模拟局部 康华光主编  高等教育 2006.1

[3] 电子技术根底数字局部康华光主编高等教育2006.1

[4] PROTELDXP电路设计与实例精解 黎文模,段晓峰编著  人民邮电 2006

[5]李科杰新编传感器技术手册[M]国防工业,1995

[6]PROTELDXP电子电路设计精彩X例 林庭双等编著  机械工业 2005.6

[7]微型计算机原理及应用X学坚,周斌编著清华大学2001

[8]电路邱关源编著高等教育1999

9.收获

选题时,因为暑期校电子竞赛培训期间,我已经做过了温度传感器,所以,我觉得要学到真东西,就要不断挑战新的东西,去钻研。

而且数字电压表采用8位A/D转换。

可能懂的人认为没什么大不了的,对于没有没有接触过A/D转换芯片的我,太不容易了。

我一心想做的完美些,加些难度,加些挑战。

这个设计的重点在于编程,通道选择和单路/循环程序更增加了设计难度。

为了尽量追求完美,我尝试了很屡次编程,发现有时候在别人的程序中参加自己的程序也是有难度的。

调试程序时,我遇到了很多困难,例如:

参考文献错误的误导,调试环境的错误使用,硬件改装,程序本身不可预见的错误等。

经历了,写程序,调试,仿真,没有人告诉你错在那里,没有人告诉你该怎么做,我在走没人可借见的路,坎坷充满荆棘的路。

那短日子真的是难熬啊,几乎每时每刻都在想方法。

有空就在纸上写画着,最后,再历经屡次调试后成功了,我快乐的大喊大叫起来,真的太难了,大家也很为我快乐,做好一件事真的不容易!

在以后的学习中我会更加努力的学习理论知识,在理论的根底上加强实践,到达理论与实践的更好结合。

在这次的设计中也让我明白了一个道理,只有多加练习运用才会真正的吸收知识,使之成为自己的东西。

单片机这种东西不是在理论中练出高手的,而是实践。

光写程序也不行,你必须把它和硬件电路联系起来,不断的调试,不断地改程序,调试,再改程序,在调试,在经历无数次的修改之后,你会发现你的程序是多么的完美,越来越完美!

那种成就感不言而喻,也正是这种头疼的过程后绽放的美丽让你越来越痴迷上它了。

单片机技术也在这种无形之中被你慢慢掌握甚至到达精通!

这种魅力太精彩了!

这也许就是为什么有时看程序看到头疼你还不由自主的坚持着的原因吧!

因为你已经爱上它了。

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

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2