简易直流电压表Word格式.docx

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

简易直流电压表Word格式.docx

《简易直流电压表Word格式.docx》由会员分享,可在线阅读,更多相关《简易直流电压表Word格式.docx(19页珍藏版)》请在冰点文库上搜索。

简易直流电压表Word格式.docx

A、主要设计框图:

电压采集

0809

单片机处理

数码管显示

B、设计方案论述

ADC转换:

本次使用的单片机是带ADC转换的逐次比较型的ADC,ADC换口在P1口(P1.7-P1.0),有8路10位高速转换器。

本次设计使用P1.0口作模拟电压输入,ADC将模拟电压转化为相应的数字量。

数据处理并LCD显示:

ADC转换得到的二制数只是二进制数,还需要进一步处理得到十进数,并且进行精度处理,也就是课题要求的四位有效数据。

对数据的处理按下公式

式中D为ADC的转换的二进数,V为显示的数据。

V设为浮点型数,乘以1000输入电压 

ADC转换数据处理并送LCD显示后强制转换为整型。

则得到四位有效数据。

再依次除于1000取商则得个位,取余除于100取商则得十分位,再取余除10则得百分位,取余则得千分位将各位加0x30转化为ASCII码后送LCD显示。

C、硬件设计框图:

D、软件流程图

E、元器件确定

1)AT89C51单片机

AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机。

主要功能特性:

低功耗空闲和掉电模式,软件设置睡眠和唤醒功能。

兼容MCS51指令系统,8K可反复擦写(>

1000次)FlashROM。

3个16位可编程定时/计数器中断,时钟频率0—24MHZ。

32个双向I/O口,256B内部RAM。

2个串行中断,可编程UART串行通道。

2个外部中断源,共6个中断源。

2个读写中断口线,3级加密位。

2)ADC0809模数转换芯片

ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D模数转换器。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

ADC0809内部逻辑结构图

主要功能特性:

8路输入通道,8位A/D转换器,即分辨率为8位。

具有转换起停控制端。

转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)。

单个+5V电源供电。

模拟输入电压范围0~+5V,不需零点和满刻度校准。

工作温度范围为-40~+85摄氏度。

低功耗,约15mW。

引脚说明

IN0~IN7:

8路模拟量输入端。

D0~D8:

8位数字量输出端。

D0~D7均为三态缓冲输出形式,可以和单片机的数据线直接相连。

D0为最低位,D7为最高位。

A、B、C:

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

具体通道选择如表1所示。

本次设计使用的通道是IN0,故A、B、C均需接地。

ALE:

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

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

START:

A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

EOC:

A/D转换结束信号输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

OE:

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

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

CLK:

时钟脉冲输入端,要求时钟频率不高于640KHZ。

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

VREF(+)、VREF(-):

基准电压。

用来与输入的模拟信号进行比较,作为逐次逼近的基准。

VCC:

电源,单一+5V。

GND:

接地。

通道选择表

A/D转换后得到的数据应及时传送给单片机进行处理。

数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。

为此可采用下述三种方式:

(1)定时传送方式

对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。

例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。

可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。

(2)查询方式

A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。

因此可以用查询方式,测试EOC的状态,即可却只转换是否完成,并接着进行数据传送。

(3)中断方式

把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。

不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。

首先送出口地址并以点击浏览下一页信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。

3)四位共阴数码管

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

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

数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"

a,b,c,d,e,f,g,dp"

的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。

通过分时轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。

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

本设计使用的驱动方式是动态驱动,四位共阴数码管的段码输入依次由并行端口P0产生,位码输入用并行端口P2高四位产生。

4)P0口上拉电阻

一般作单键触发使用时,如果IC本身没有内接电阻,为了使单键维持在不被触发的状态或是触发后回到原状态,必须在IC外部另接一电阻。

数字电路有三种状态:

高电平、低电平、和高阻状态,有些应用场合不希望出现高阻状态,可以通过上拉电阻或下拉电阻排阻消除高阻状态。

九排上拉电阻

本次设计中使用的上拉电阻是一个九位排阻(如图所示)。

顾名思义,排阻就是若干个参数完全相同的电阻,它们的一个引脚都连到一起,作为公共引脚,其余引脚正常引出。

所以如果一个排阻是由n个电阻构成的,那么它就有n+1只引脚,一般来说,最左边的那个是公共引脚,它在排阻上一般用一个色点标出来。

由于排阻引脚众多,所以排阻比若干只固定电阻更为方便。

本次设计中九位排阻在依次连接单片机P0口各引脚的同时并依序连接数码管各引脚(上拉电阻VCC端接单片机VCC端)。

上拉电阻既能为单片机提供部分电压能力,同时也能起到预防线路中电流过大的作用。

1.4模拟仿真结果

A、总体电路设计

B、部分电路设计

1)晶振及复位电路

接12M晶振,根据数据手册,并联30pF微调电容构成并联谐振,帮助稳定输出波形。

AT89C51单片机要求至少两个高电平,以便单片机做好准备。

当上电时,由于电容的电压不能突变,会输出高电平,当电容充电到一定程度,就会输出低电平,单片机利用输出高电平的这段时间复位。

选择20uF的电容,10k电阻。

2)模拟输入电路

模拟输入信号则由IN0直接输入。

0—5V0—50V

P3.6接VCC,P3.7接GNDP3.6接GND,P3.7接VCC

2、实际制作和调试

2.1测试方法和测试仪器

仿真平台为Proteus软件。

硬件调试采用小系统板(51+数码管+573+138+排阻)、星研集成环境软件,调试过程用到学生用安全电源(5V)、万用表。

2.2软件调试

Proteus软件是世界上著名的EDA工具,能完成原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件,是目前最好的仿真单片机及外围器件的工具。

程序清单:

#include<

reg52.h>

unsignedcharcode

dispbitcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//不带小数点的

dispbitcode2[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};

//带小数点的

unsignedchardispbuf[4];

unsignedinti;

unsignedintj;

unsignedchargetdata;

unsignedinttemp;

unsignedinttemp1;

unsignedcharcount;

unsignedchard;

sbitST=P3^0;

sbitOE=P3^1;

sbitEOC=P3^2;

sbitCLK=P3^3;

sbitP25=P2^5;

sbitP26=P2^6;

sbitP27=P2^7;

sbitP07=P0^7;

sbitP24=P2^4;

voidTimeInitial();

voidDlay(unsignedinti);

voidTimeInitial()

{

TMOD=0x10;

TH1=(65536-200)/256;

TL1=(65536-200)%256;

EA=1;

ET1=1;

TR1=1;

}

voidDelay(unsignedinti)

unsignedintj;

for(;

i>

0;

i--)

{

for(j=0;

j<

125;

j++)

{;

}

voidDisplay()

{if(P24==0)//大量程

{P0=dispbitcode[dispbuf[3]];

P25=0;

P26=1;

P27=1;

Delay(10);

P0=0x00;

P0=dispbitcode[dispbuf[2]];

P27=0;

P0=dispbitcode2[dispbuf[1]];

P26=0;

P0=dispbitcode[dispbuf[0]];

else//小量程

P0=dispbitcode2[dispbuf[2]];

P0=dispbitcode[dispbuf[1]];

voidmain()

TimeInitial();

while

(1)

ST=0;

//st正脉冲启动

OE=1;

//输出允许

ST=1;

while(EOC==0);

//eoc给出1转换完成

getdata=P1;

OE=0;

temp=(getdata*1.0/255)*500;

dispbuf[0]=temp%10;

//取0.0x

dispbuf[1]=temp/10%10;

//取0.x

dispbuf[2]=temp/100%10;

//取个位

dispbuf[3]=temp/1000;

//取十位

Display();

voidt1(void)interrupt3using0

CLK=~CLK;

2.3硬件调试

用面包板完成0809外围电路的搭建,用星研配套仿真器装载程序开始调试。

硬件连接图

面包板实物图

0—5V硬件电路测量结果示例

0—50V硬件电路测量结果示例

2.4调试中的问题记录

1)装载程序后,通电运行,发现怎么改变电压都没有变化且显示0

根据星研软件的调试结果发现单片机根本就没有处理数据,拔了仿真器和不拔仿真器一样的结果数码管都会显示一个0,调试过程根据程序运行流程发现,0809没有将采集到的数据在中断的作用下传给单片机,后来改了程序还是没有正确的结果,下载点亮所有数码管的程序到仿真器,发现正常运行,排除了单片机和数码管是坏的的可能性,怀疑0809没有完成数据的转换,经过测量相关管脚的电压也排除了这一可能,后来通过研究电路板发现程序中用P2控制138时所用的引脚与实际电路板上P2和138之间的引脚连接不一致。

数码管显示的数字比较闪

更改程序将延迟的时间增大就解决了这一问题。

2)0—50V量程测量结果误差较大

经过调节电位器,测量结果得到改善。

3、测试结果分析

0—5V量程通过实际电压表测量后,误差基本保持在0.01V,测量结果误差小,0—50V电压源与所制作电压表结果误差保持在0.2V,误差较大,经过电位器调节后,得到改善。

4、课程设计总结

本次课程设计温习了单片机的基本原理,功能以及构造,以及ADC0809的基本原理,学会了使用Protuse和星研集成环境仿真、查错。

利用C语言进行编程实现所需要的功能,同时在Protuse软件上画电路图并进行仿真,通过硬件电路搭建提高了动手能力和分析问题的能力。

软件部分的编程,主要是通过看资料参考范例编写,弄清楚基本的工作原理,实现方案以及所需要注意的地方,其实一切开始了就会发现没有想象中那么那么难。

对于硬件部分,利用Keil烧程序到单片机中,懂得将程序下载到单片机的方法和原理。

对一些基本电路检测问题,做到自己分析再和组员交换意见相互协作共同实验。

仿真结果比较理想,但是由于没有注意到程序和最小系统电路板的匹配,导致各种不出结果,然后各种换器件都没有用,一度怀疑硬件有问题是坏的,但实际发现是程序编写端口与硬件板子端口不对应导致,通过改变程序,现象便出现了。

【参考文献】

1、郭天祥编著,新概念51单片机C语言教程入门、提高、开发、扩展全攻略,电子工业出版社,2009年1月

2、翟朝霞等编著,《单片机原理与应用》实验及课程设计指导书,大连海事大学出版社,2013年3月

3、蔡美琴等编著,MCS—51系列单片机系统及其应用,高等教育出版社,2012年6月

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

当前位置:首页 > 总结汇报 > 学习总结

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

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