单片机电阻测量Word格式.doc

上传人:wj 文档编号:8442321 上传时间:2023-05-11 格式:DOC 页数:22 大小:436KB
下载 相关 举报
单片机电阻测量Word格式.doc_第1页
第1页 / 共22页
单片机电阻测量Word格式.doc_第2页
第2页 / 共22页
单片机电阻测量Word格式.doc_第3页
第3页 / 共22页
单片机电阻测量Word格式.doc_第4页
第4页 / 共22页
单片机电阻测量Word格式.doc_第5页
第5页 / 共22页
单片机电阻测量Word格式.doc_第6页
第6页 / 共22页
单片机电阻测量Word格式.doc_第7页
第7页 / 共22页
单片机电阻测量Word格式.doc_第8页
第8页 / 共22页
单片机电阻测量Word格式.doc_第9页
第9页 / 共22页
单片机电阻测量Word格式.doc_第10页
第10页 / 共22页
单片机电阻测量Word格式.doc_第11页
第11页 / 共22页
单片机电阻测量Word格式.doc_第12页
第12页 / 共22页
单片机电阻测量Word格式.doc_第13页
第13页 / 共22页
单片机电阻测量Word格式.doc_第14页
第14页 / 共22页
单片机电阻测量Word格式.doc_第15页
第15页 / 共22页
单片机电阻测量Word格式.doc_第16页
第16页 / 共22页
单片机电阻测量Word格式.doc_第17页
第17页 / 共22页
单片机电阻测量Word格式.doc_第18页
第18页 / 共22页
单片机电阻测量Word格式.doc_第19页
第19页 / 共22页
单片机电阻测量Word格式.doc_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机电阻测量Word格式.doc

《单片机电阻测量Word格式.doc》由会员分享,可在线阅读,更多相关《单片机电阻测量Word格式.doc(22页珍藏版)》请在冰点文库上搜索。

单片机电阻测量Word格式.doc

主任签字:

年月日

摘要

本设计电阻测量是利用A/D转换原理,将被测模拟量转换成数字量,并用数字方式显示测量结果的电子测量仪表。

通常测量电阻都采用大规模的A/D转换集成电路,测量精度高,读数方便,在体积、重量、耗电、稳定性及可靠性等方面性能指标均明显优于指针式万用表。

其中,A/D转换器将输入的模拟量转换成数字量,逻辑控制电路产生控制信号,按规定的时序将A/D转换器中各组模拟开关接通或断开,保证A/D转换正常进行。

A/D转换结果通过计数译码电路变换成BCD码,最后驱动显示器显示相应的数值。

本系统以单片机AT89C52为系统的控制核心,结合A/D转换芯片ADC0809设计一个电阻测量表,能够测量一定数值之间的电阻值,通过四位数码显示。

具有读数据准确,测量方便的特点。

关键词:

单片机(AT89C52);

电压;

A/D转换;

ADC0809

目录

设计要求 1

1电路的论证与对比 1

1.1方案一 1

1.2方案二 2

1.3方案的对比与比较 2

2系统硬件电路设计 2

2.1振荡电路模块 2

2.2A/D转换电路模块 2

2.2.1主要性能 3

2.2.2ADC0809芯片的组成原理 4

2.2.3ADC0809引脚功能 4

2.3主控芯片AT89C52模块 5

2.3.1主要功能特性 5

2.3.2主要引脚功能 6

2.4显示控制电路的设计及原理 8

3系统调试与分析 9

3.1硬件调试 9

3.2软件调试 9

3.3性能分析 10

4元器件清单 11

5总结与致谢 12

6参考文献 13

附一:

原理图 14

附二:

程序 15

电阻测量

设计要求

电阻测量(需要简单的外围检测电路,将电阻转换为电压)

测量100,1k,4.7k,10k,20k的电阻阻值,由数码管显示。

测试:

误差10%。

1电路的论证与对比

1.1方案一

利用单稳或电容充放电规律等,可以把被测电阻量的大小转换成脉冲的宽窄,即脉冲的宽度Tx与Rx成正比。

只要把此脉冲和频率固定不变的方波(以下称为时钟脉冲)相与,便可以得到计数脉冲,将它送给数字显示器。

如果时钟脉冲的频率等参数合适,便可实现测量电阻。

计数控制电路输出的脉冲宽度Tx应与Rx成正比,其电路原理图及具体555单稳态触发器的构成及仿真如图1所示。

用555构成的单稳态电路在正常工作条件下输出脉冲的宽度Tx与Rx的函数关系是:

图1方案一原理图

所产生的时间误差可能达到百分之十五,再加上其他原因产生的误差,测量是的时间

1.2方案二

用ADC0809 电阻测量,以一个1K的电阻作为基准电阻。

和被测电阻进行分压,分压比例得出电阻比例。

用ACD0809测量电阻时间误差为10%以下,分辨率高,输出能与TTL电平兼容。

其原理图如图2所示。

图2方案二原理图

1.3方案的对比与比较

由于课程设计的要求是电阻测量需要简单的外围检测电路,将电阻转换为电压,测量100,1k,4.7k,10k,20k的电阻阻值,由数码管显示。

通过比较以上两个方案,可知方案二相对来说比较适合。

所以选用方案二作为实验方案。

2系统硬件电路设计

2.1振荡电路模块

振荡电路通过这两个引脚外并接石英晶体振荡器和两只电容(电容和一般取33pF),这样就构成一个稳定的自激振荡器。

为单片机提供时钟信号。

如图3所示。

图3振荡电路

2.2A/D转换电路模块

ADC0809是采用逐次逼近式原理的A/D转换器。

ADC0809的工作过程是:

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地址经译码选通8路模拟输入之一到比较器。

START上升沿将逐次逼近寄存器复位。

下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。

直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上,9电路图如图4所示。

图4A/D转换电路原理图

2.2.1主要性能

1分辨率为8位二进制数。

2模拟输入电压范围0V—5V,对应A/D转换值为00H—FFH。

3每路A/D转换完成时间为100µ

s。

4允许输入4路模拟电压,通过具有锁存功能的4路模拟开关,可以分时进行4路A/D转换。

5工作频率为500kHz,输出与TTL电平兼容。

2.2.2ADC0809芯片的组成原理

具体设计要求如图5所示,它是由地址锁存器、4路模拟开关、8位逐次A/D转换器和三态锁存输出缓冲器构成。

由3位地址输入线ADDRA、ADDRB、ADDRC决定4路模拟输入中的1路进8位A/D转换器,A/D转换值进入三态锁存输出缓冲器暂存,在CPU发来输出允许控制信号OE后,三态门打开,经DB7—DB0进入CPU总线,完成一次A/D转换全过程。

图5A/D转换电路原路图

2.2.3ADC0809引脚功能

ADC0809采用28引脚的封装,双列直插式。

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

ADC0809具有8路模拟输入端口,地址线(23—25脚—即C,B,A,)可决定对哪一路模拟输入作A/D转换。

22脚为地址锁存控制(ALE),当输入为高电平时,对地址信号进行锁存。

6脚为测试控制(START),当输入一个2us宽高电平脉冲时,就开始A/D转换。

7脚为A/D转换结束标志(EOC),当A/D转换结束时,7脚输出高电平。

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

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

单片机的P1、P3.0—P3.3端口作为四位LED数码管显示控制。

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

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

2.3主控芯片AT89C52模块

AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS—51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

图6AT89C52管脚图

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口。

3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。

其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。

如图6所示为AT89C52管脚图。

2.3.1主要功能特性

·

与MCS—51产品指令和引脚完全兼容

8k字节可重擦写Flash闪速存储器

1000次擦写周期

全静态操作:

0Hz—24MHz

三级加密程序存储器

32个可编程I/O口线

低功耗空闲和掉电模式

3个16位定时/计数器

可编程串行UART通道

2.3.2主要引脚功能

VCC:

电源

GND:

P0口:

P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。

P1口:

P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。

对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。

此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。

P2口:

P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。

对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。

在这种应用中,P2口使用很强的内部上拉发送1。

在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。

在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P1口和P2口的第二功能如下表1所示。

表1P0和P1口的第二功能

引脚号

功能特性

P1.0

T2(定时/计数器2外部计数脉冲输入),时钟输出

P1.1

T2EX(定时/计数2捕获/重载触发和方向控制)

P3口:

P3口是一个具有内部上拉电阻的8位双向I/O口,P3口输出缓冲器能驱动4个TTL逻辑电平。

对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。

P3口亦作为AT89C52特殊功能(第二功能)使用,在flash编程和校验时,P3口也接收一些控制信号。

具体功能如表2所示:

表2 P3口的第二功能

端口引脚

第二功能

P3.0

RXD(串行输入口)

P3.1

TXD(串行输出口)

P3.2

外中断0

P3.3

外中断1

P3.4

T0(定时/计数器0)

P3.5

T1(定时/计数器1)

P3.6

外部数据存储器写选通

P3.7

外部数据存储器读选通

RST:

复位输入。

晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。

看门狗计时完成后,RST脚输出96个晶振周期的高电平。

特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。

DISRTO默认状态下,复位高电平有效。

ALE/PROG:

地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。

在flash编程时,此引脚(PROG)也用作编程输入脉冲。

在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。

然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。

如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。

这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。

否则,ALE将被微弱拉高。

这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。

PSEN:

外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。

当AT89C52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。

EA/VPP:

访问外部程序存储器控制信号。

为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。

为了执行内部程序指令,EA应该接VCC。

在flash编程期间,EA也接收12伏VPP电压。

XTAL1:

振荡器反相放大器和内部时钟发生电路的输入端。

XTAL2:

振荡器反相放大器的输出端。

2.4显示控制电路的设计及原理

显示子程序采用动态扫描法实现4位数码管的数值显示。

测量所得的A/D转换数据放70H—77H内存单元中,测量数据在显示时须经过转换成为十进制BCD码放在78H—7BH单元中,其中7B存放通道标志数。

寄存器R3用作8路循环控制,R0用作显示数据地址指针。

图7 8255芯片

本系统显示部分采用4位数码管动态扫描显示。

动态扫描显示接口是单片机中应用最为广泛的一种显示方式之一。

其接口电路是把所有显示器的8个笔划段a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受I/O线控制。

CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O控制的,所以我们就可以自行决定何时显示哪一位了。

而所谓动态扫描就是指我们采用分时的方法,轮流控制各个显示器的COM端,使各个数码管轮流点亮。

本系统采用4位共阴极数码管,COM端接接P20—P23端,8个笔划段a-h分别按顺序接P07—P00,轮流给P20—P23口低电平,使各个数码管轮流点亮。

显示控制电路由图7的8255芯片和图8的数码管显示电路两部分组成。

在轮流点亮扫描过程中,每位显示器的点亮时间是极为短暂的(约1ms),但由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感。

图8数码管显示电路

3系统调试与分析

3.1硬件调试

硬件调试时可以检查印制板和外围电路是否有断路或短路问题,在检查无误的情况下,通过外围电路接入一个被测电阻,检查数码管显示是否正常,若不正常,用万用表检查出电路的问题所在,并纠正电路的焊接问题。

为了测量的精准度,用万用表选择一千欧姆的基准电阻,尽量使基准电阻接近一千欧姆,减少测量的误差。

3.2软件调试

将用keil编译产生的HEX文件下载到单片机开发板中,通过外围电路接入一个已知的被测电阻,看数码管上的显示数值是否接近已知的电阻值,若不对,则反复调试程序,直到正确为止。

3.3性能分析

1.误差,如表3所示。

2.误差分析

AD的分辨率只有八位,分辨率小,分辨率是指输出数字量变化一个相邻数码所需的输入模拟电压的变化量。

AD的分辨率定义为满刻度电压与2n比值,其中n位AD转换器的位数。

故AD的分辨率为。

所以测量小电阻的时候误差小,随着测量电阻的变大误差变大。

表3系统测试结果

测量序号

理论值

测量值

100Ω

998Ω

996Ω

1kΩ

1000Ω

999Ω

4.7kΩ

4700Ω

4698Ω

10kΩ

10000Ω

9986Ω

20kΩ

20000Ω

19898Ω

4元器件清单

元件名称

类型或量程

数量

芯片

AT89C52

1片

8255

杜邦线

3根

万用表

1个

电阻

1K、4.7K、10K、20k、100

各一个

电源线

供电电源线

1根

5总结与致谢

这次单片机课程设计意义非同一般,把我从单深入的理论编程到硬件软件综合实现一个使用的电路。

通过这学期的单片机的学习,知道了单片机在实际应用中占据很重要的作用,也了解单片机本身的功能,用编程控制;

也了解了单片机的一些扩展功能。

通过这次设计,我更深入地了解到单片机的使用原理和功能。

为期两周的设计中,我看到很多同学都很努力,很认真,我也不敢懈怠。

虽说两周的时间有点仓促,但老师和同学们夜以继日在解决问题,我做电阻测量的设计中也遇到些许问题,但通过他人的指点,并查阅很多有价值的书籍,我从中认识了不少。

也增强了自己发现问题解决问题的能力。

还有在编程的时候要仔细,要实现一个完整的功能就要考虑全面,在测试程序的时候要善于发现错误,而且可能是一些小问题,比如说把立即数和地址混用,这是很常见的。

两周的设计完满结束了,经过自己的努力和同学的帮忙终于有了成果,特别离不开指导老师谭周文的悉心教导,我受益匪浅,相信他的工作作风和知识筑成都是我们学习榜样,给我很大的启迪。

感谢这些老师不畏辛劳,热心精心的指导。

在这里向他们说声谢谢,你们辛苦了。

6参考文献

[1]张鑫.《单片微机原理与应用》.[M]北京.电子工业出版社.2008

[2]楼然苗.李光飞.《单片机课程设计指导》.[M]北京.航空航天大学出版社.2007

[3]长洪润.刘秀英.《单片机应用设计200例(上、下)》.[M]北京.航空航天大学出版社.2006

[4]张毅刚.《新编MCS—51单片机应用设计(第3版)》.[M]哈尔滨工业大学出版社.2008

[5]马静.《单片机原理与应用》.[M]实践教学指导书中国计量出版社.2003

原理图

程序

#include<

reg52.h>

#include<

intrins.h>

///包含了_nop_()//////

absacc.h>

#definea8255_PAXBYTE[0xD9FF]//PA口地址

#definea8255_PBXBYTE[0xDAFF]//PB口地址

#definea8255_PCXBYTE[0xDDFF]//PC口地址

#definea8255_CONXBYTE[0xDFFF]//控制字地址

#defineVREF4.75//基准电压///

//////////////定义0809控制端口////////////////

sbitST=P2^7;

sbitEOC=P3^4;

sbitOE=P2^3;

sbitCLK=P2^0;

//////////////////////////////

unsignedcharget_val;

//用于单片机获取0809转化数值/////

intt;

//中间变量

floatlight;

///中间变量

unsignedchardis_table[]={0xa0,0xbb,0x62,0x2a,0x39,0x2c,0x24,0xba,0x20,0x28};

unsignedcharcho_led[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};

//数码管的位

/************************************

*延时函数*

************************************/

voiddelay(unsignedinti)

{while(i--);

}

*显示函数*

voiddisplay(unsignedintt)

{unsignedchar x0,x1,x2,x3,x4,x5;

x0=t%10;

//个位

x1=t/10%10;

//十位

x2=t/100%10;

//百位

x3=t/1000%10;

//千位

x4=t/10000%10;

//万位

x5=t/100000%10;

//十万位

a8255_PA=0xdf;

a8255_PB=dis_table[x0];

//个位显示

delay(180);

a8255_PA=0xff;

a8255_PA=0xef;

a8255_PB=dis_table[x1];

//十位显示

a8255_PA=0xf7;

a8255_PB=dis_table[x2];

//百位显示

a8255_PA=0xfb;

a8255_PB=dis_table[x3];

//千位显示

a8255_PA=0xfd;

a8255_PB=dis_table[x4];

//万位显示

a8255_PA=0xfe;

a8255_PB=dis_table[x5];

//十万位显示

}

*初始化 *

************************************

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

当前位置:首页 > 高等教育 > 军事

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

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