单片机简易电压表课程设计.docx

上传人:b****6 文档编号:4087515 上传时间:2022-11-27 格式:DOCX 页数:19 大小:304.68KB
下载 相关 举报
单片机简易电压表课程设计.docx_第1页
第1页 / 共19页
单片机简易电压表课程设计.docx_第2页
第2页 / 共19页
单片机简易电压表课程设计.docx_第3页
第3页 / 共19页
单片机简易电压表课程设计.docx_第4页
第4页 / 共19页
单片机简易电压表课程设计.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

单片机简易电压表课程设计.docx

《单片机简易电压表课程设计.docx》由会员分享,可在线阅读,更多相关《单片机简易电压表课程设计.docx(19页珍藏版)》请在冰豆网上搜索。

单片机简易电压表课程设计.docx

单片机简易电压表课程设计

成绩

 

课程设计报告

 

题目简易数字电压表

 

课程名称单片机原理及接口技术

院部名称龙蟠学院

专业M电气工程及其自动化

班级M09电气工程及其自动化Ⅱ班

学生姓名XXX

学号09XXXXXXXXXX

课程设计地点C314

课程设计学时16学时

指导教师姜玉东

金陵科技学院教务处制

1绪论

随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

本章重点介绍单片A/D转换器以及由它们构成的基于单片机的数字电压表的工作原目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,展示出强大的生命力。

2.设计目的及要求

2.1设计目的

(1).熟悉单片机系统综合设计方法。

(2).掌握数码管的动态显示原理。

(3).掌握ADC0808的工作原理。

2.2.设计要求

数字电压表的基本原理,是对直流电压进行模数转换,其结果用数字直接显示出来,按其基本工作原理可分为积分式和比较式。

基本要求:

简易数字电压表可以测量0-5V的单通道输入电压值,并在四位LED数码管上显示相应的通道和电压值。

测量最小分辨率为0.019V,测量误差约为±0.02V。

扩展要求:

系统能进行单路/多通道选择,多路转换时要求在LED上轮流显示各路电压值。

 

3.硬件设计

3.1方法选择

实现数字电压表的方案较多,目前广泛采用的是基于74系列逻辑器件方案。

74系列逻辑器件方案采用双积分电路+液晶显示器+逻辑电路+定时采样电路+数据处理实现,被测电压信号有信号输入端加到测量系统,进行预处理后送到后级电路。

单片机系统方案此方案采用输入处理电路+ADC0808+AT89C51+液晶显示实现,被测信号由ADC0808模拟输入端输入,单片机采集转换数据,将这转换数据送出显示。

系统除能确保实现要求的功能外,还可以方便地进行8路其他A/D转换量的测量,远程测量结果传送等扩展功能。

我们做好了现在的电路图,进过仿真,我们达到了预期的结果。

3.2.方案设计

经过以上方法设计,决定采用如图1-1所示方案流程图

 

图1-1

设计模块说明:

本设计方案主要有四大模块:

(1)LED显示模块

(2)时钟复位电路

(3)ADC0808数模转换模块

(4)AT89C51单片机控制模块

 

3.3.硬件电路设计

3.3.1.AT89C51单片机简单概述

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

AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如图3-2所示。

 

图3-2AT89C51芯片模型

3.3.2.AT89C51主要功能特性

(1)4K字节可编程闪烁存储器。

(2)32个双向I/O口;128×8位内部RAM。

(3)2个16位可编程定时/计数器中断,时钟频率0-24MHz。

(4)可编程串行通道。

(5)5个中断源。

(6)2个读写中断口线。

(7)低功耗的闲置和掉电模式。

(8)片内振荡器和时钟电路。

3.3.3.AT89C51引脚介绍

89C51单片机多采用40只引脚的双列直插封装(DIP)方式,下面分别简单介绍。

(1)电源引脚

电源引脚接入单片机的工作电源。

Vcc(40引脚):

+5V电源。

GND(20引脚):

接地。

(2)时钟引脚

XTAL1(19引脚):

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

XTAL2(20引脚):

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

图3-3电源接入方式

(3)复位RST(9引脚)

在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。

(4)

/Vpp(31引脚)

为外部程序存储器访问允许控制端。

当它为高电平时,单片机读片内程序存储器,在PC值超过0FFFH后将自动转向外部程序存储器。

当它为低电平时,只限定在外部程序存储器,地址为0000H~FFFFH。

Vpp为该引脚的第二功能,为编程电压输入端。

(5)ALE/

(30引脚)

ALE为低八位地址锁存允许信号。

在系统扩展时,ALE的负跳沿江P0口发出的第八位地址锁存在外接的地址锁存器,然后再作为数据端口。

为该引脚的第二功能,在对片外存储器编程时,此引脚为编程脉冲输入端。

(6)

(29引脚)

片外程序存储器的读选通信号。

在单片机读片外程序存储器时,此引脚输出脉冲的负跳沿作为读片外程序存储器的选通信号。

(7)pin39-pin32为P0.0-P0.7输入输出脚,称为P0口。

P0是一个8位漏极开路型双向I/O口。

内部不带上拉电阻,当外接上拉电阻时,P0口能以吸收电流的方式驱动八个LSTTL负载电路。

通常在使用时外接上拉电阻,用来驱动多个数码管。

在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,不需要外接上拉电阻。

(8)Pin1-Pin8为P1.0-P1.7输入输出脚,称为P1口,是一个带内部上拉电阻的8位双向I/0口。

P1口能驱动4个LSTTL负载。

(9)Pin21-Pin28为P2.0-P2.7输入输出脚,称为P2口。

P2口是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载。

端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接收高8位地址和控制信息。

在访问外部程序和16位外部数据存储器时,P2口送出高8位地址。

而在访问8位地址的外部数据存储器时其引脚上的内容在此期间不会改变。

(10)Pin10-Pin17为P3.0-P3.7输入输出脚,称为P3口。

P3口是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载,这8个引脚还用于专门的第二功能。

端口置1时,内部上拉电阻将端口拉到高电平,作输入用。

对内部Flash程序存储器编程时,接控制信息。

3.3.4.时钟电路与复位电路的设计

时钟电路是计算机最核心的部分,它控制着计算机的工作MCS-51单片机允许的时钟频率典型值为12MHZ。

80C51单片机内部有一个高增益反向放大器,用于构成振荡器。

反相放大器的输入端为XTAL1,输出端为XTAL2,分别是80C51的19脚和18脚。

在XTAL1和XTAL2两端跨接石英晶体及两个电容就可以构成稳定的自激振荡器。

石英晶振起振后要能在XTAL2线上输出一个3V左右的正弦波,使MCS-51片内的OCS电路按石英晶振相同频率自己振荡。

通常OCS的输出时钟频率fosc为0.5MHZ~16MHZ,典型值为12MHZ,电容器C1和C2通常取30PF左右,对振荡频率有微调作用。

调节它们可以达到微调振荡周期fosc的目的。

单片机的RET管脚为主机提供一个外部复位信号输入端口。

复位信号是高电平有效,高电平有效的持续时间应为2个机器周期以上。

单片机的复位方式有上电自动复位电路和手工复位电路,只要Vcc上升时间不超过1ms,它们都能很好的工作。

复位以后,单片机内部各部件恢复到初始状态。

硬件图如图1-3所示

图1-3

时钟电路如图1-3左上角所示,复位电路如图1-3左半部分图所示,本电路采用手动复位

 

3.3.5模数转换芯片ADC0808及其内部结构

ADC0808是一种典型的A/D转换器。

它是由8位A/D转换器,一个8路模拟量开关,8位模拟量地址锁存译码器和一个三态数据输出锁存器组成;+5V单电源供电,转化时间在100us左右;内部没有时钟电路,故需外部提供时钟信号。

芯片模型如图3-4所示。

图3-4ADC0808芯片模型

3.3.6.ADC0808引脚简介

(1)IN0~IN7:

8路模拟量输入端。

(2)D0~D7:

8位数字量输出端口。

(3)START:

A/D转换启动信号输入端。

(4)ALE:

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

(5)EOC:

输出允许控制信号,高电平有效。

(6)OE:

输出允许控制信号,高电平有效。

(7)CLK:

时钟信号输入端。

(8)A、B、C:

转换通道地址,控制8路模拟通道的切换。

A、B、C分别与地址线或数据线相连,三位编码对应8个通道地址端口,A、B、C=000~111分别对应IN0~IN7通道的地址端口。

3.3.7.A/D转换原理

A/D转换由集成电路0808完成,0808具有8路模拟输入端口,地址线(23~25脚)可决定那一路模拟输入做A/D转换。

ADC0808采用逐次比较的方法完成A/D转换,由单一的+5V电源供电。

片内带有锁存功能的8路选1的模拟开关,由A、B、C的编码来决定所选的通道。

ADC0809完成一次转换需100μs左右,它具有输出TTL三态锁存缓冲器,可直接连接到AT89C51的数据总线上。

通过适当的外接电路,ADC0808可对0~5V的模拟信号进行转换。

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

6脚为测试控制,当输入一个

宽高电平脉冲时,就开始A/D转换。

7脚为A/D转换结束标志,当A/D转换数据从端口输出10脚为0808的时钟输入端,利用单片机30脚的六分频晶振频率再通过14024二分频得到1MHZ时钟。

单片机的P2.1~P2.3端口作为三位LED数码管显示控制,P1端口作A/D转换数据读入,P0端口用于数码管的显示。

A/D转换电路如图1-4所示。

图1-4A/D转换电路

如图1-4所示,ADC0808的23~25脚接地,控制IN0为输入端。

图上方的电源和滑动变阻器来模拟电压的输入,经过A/D转换后从OUT口输出送入AT89C51的P1口。

3.3.8.数码管动态原理

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

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

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

显示电路如图1-5所示

图1-5显示电路

 

4.软件电路设计

4.1.主程序流程图

主程序包含初始化部分、调用A/D转换子程序和相应外部0中断显示电压数值程序,初始化部分包含存放通道的缓冲区初始化和显示缓冲区初始化。

另外,对于单路显示和循环显示,系统设置了一个标志位00H控制,初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示控制,00H位通过单路、循环按键控制。

流程图如图4-1所示。

如图2-1所示

图2-1

 

4.2.显示子程序流程图

A/D转换子程序用于对ADC0808的4路输入模拟电压进行A/D转换,并将转换的数值存入4个相应的存储单元中,A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次,如图4-2所示。

如图2-2所示

图2-2

 

4.3.A/D转换测量流程图

如图2-3所示

图2-3A/D转换子程序

 

5系统仿真与调试

本设计应用Proteus和KEIL51软件,首先根据自己设计的电路图用Proteus软件画出电路模型,关于这个软件的使用通过查一些资料和自己的摸索学习;然后我们用KEIL51软件对所编写的程序进行编译、链接,如果没有错误和警告便可生成程序的hex文件,将此文件加到电路图上使软硬件结合运行,最后测试仿真成果图电压如3-1,3-2所示

图3-1

 

图3-2

 

6.总结

经过努力终于设计成功,LED的显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理的范围之内。

由于仪器误差,LED显示最大值只能是4.9V,离标准最大值5.0V已经不远,达到预期目的,设计成功。

本设计参考了89C51与ADC0809转换的接口连线,设计出电路图的连线,从并中理解了许多基本的知识和接线方法,在程序的设计与电压表调试的过程中中遇到了很多的问题,刚开始时四个数码管根本不显示,后来发现用的是共阴极的数码管,而设计是共阳极的,更换后数码管终于显示,但问题又出现了,单路显示和循环显示的开关不能控制电路的单路显示和循环显示,经过仔细地检查电路和修改程序,采用中断的方法,产生一次外部中断0,程序转移到单路显示,按一次单路显示开关,地址加一,转换的模拟通道相应的加一,如果按下循环按键就返回循环显示的程序,功夫不负有心人,最后终于调试成功。

在此再次向带领我们这次课程设计的老师和其他小组组员说声:

谢谢!

 

7参考文献

[1]蒋廷彪,刘电霆,高富强,方华.单片机原理及应用.出版社:

重庆大学出版社.出版时间:

2005

年1月第2次印刷

[2]8051实验指导书电子电气综合实训系统.出版社:

北京精仪达盛科技有限公司

[3]徐爱钧.智能化测量控制仪表原理与设计(第二版)[M].北京:

北京航空航天大学出版

社,2004

[4]吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:

清华大学出版社,2002

[5]张国勋.缩短ICL7135A/D采样程序时间的一种方法[J].电子技术应用.1993.第一期

[6]高峰.单片微型计算机与接口技术[M].北京科学出版社,2003.

 

附录1程序清单

LED_0EQU30H

LED_1EQU31H

LED_2EQU32H

ADCEQU35H

STBITP3.2

OEBITP3.0

EOCBITP3.1

ORG0000H

LJMPMAIN

ORG0030H

MAIN:

MOVLED_0,#00H

MOVLED_1,#00H

MOVLED_2,#00H

SETBP3.4

SETBP3.5

CLRP3.6

WAIT:

CLRST

SETBST

CLRST

JNBEOC,$

SETBOE

MOVADC,P1

CLROE

LCALLCONVERT

LCALLDISPLAY

SJMPWAIT

CONVERT:

MOVA,ADC

MOVB,#51

DIVAB

MOVLED_2,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP3

ADDA,#5

LOOP2:

MOVLED_1,A

MOVA,B

CLRF0

SUBBA,#1AH

MOVF0,C

MOVA,#10

MULAB

MOVB,#51

DIVAB

JBF0,LOOP3

ADDA,#5

LOOP3:

MOVLED_0,A

RET

DISPLAY:

MOVA,LED_0

MOVDPTR,#TABLE

MOVCA,@A+DPTR

SETBP2.3

MOVP0,A

LCALLDELAY

CLRP2.3

MOVA,LED_1

MOVDPTR,#TABLE

MOVCA,@A+DPTR

SETBP2.2

MOVP0,A

LCALLDELAY

CLRP2.2

MOVA,LED_2

MOVDPTR,#TABLE2

MOVCA,@A+DPTR

SETBP2.1

MOVP0,A

LCALLDELAY

CLRP2.1

RET

DELAY:

MOVR6,#10

MOVR7,#250

DJNZR7,$

DJNZR6,D1

RET

TABLE:

DB0C0H,0F9H,0A4H,0B0H,99H

DB92H,82H,0F8H,80H,90H

TABLE2:

DB40H,79H,24H,30H,19H,12H

END

附录2系统硬件图

 

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

当前位置:首页 > 初中教育 > 政史地

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

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