基于AT89S51和ADC0809简易数字电压表的设计.docx
- 文档编号:10331155
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:39
- 大小:819.73KB
基于AT89S51和ADC0809简易数字电压表的设计.docx
《基于AT89S51和ADC0809简易数字电压表的设计.docx》由会员分享,可在线阅读,更多相关《基于AT89S51和ADC0809简易数字电压表的设计.docx(39页珍藏版)》请在冰豆网上搜索。
基于AT89S51和ADC0809简易数字电压表的设计
桂林电子科技大学
微机综合设计
设
计
报
告
指导老师:
学生:
黎金辉
学号:
**********
桂林电子科技大学机电工程学院
《微机综合设计》设计报告
一、设计题目
二、设计内容与要求
三、设计目的意义
四、系统硬件电路图
五、程序流程图与源程序
六、系统功能分析与说明
七、设计体会
八、参考文献
基于AT89S51的简易数字电压表的设计
摘要:
本课题是利用单片机设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码管显示,使用的元器件数目较少。
外界电压模拟量输入到A/D转换部分的输入端,通过ADC0809转换变为数字信号,输送给单片机。
然后由单片机给数码管数字信号,控制其发光,从而显示数字。
此外,本文还讨论了设计过程中的所用的软件硬件环境,调试所出现的问题等。
关键词:
单片机;AT89S51;数字电压表;ADC0809,四位数码管
Abstract:
Thistopicistheuseofmicrocontrollerdesignadigitalvoltmeter,capableofmeasuringbetween0-5VDCvoltage,fourdigitaldisplay,theuseoffewercomponents.ExternalanalogvoltageinputtotheA/DconversionpartoftheinputoftheconversionintoadigitalsignalthroughtheADC0809,transmissiontothemicrocontroller.Andthenbythemicrocontrollertothedigitalcontroldigitalsignal,controlthelight,sothedisplayednumber.Inaddition,thearticlealsodiscussesthedesignprocessofsoftwareusedinthehardwareenvironment,debuggingtheproblemsandsoon.
Keywords:
SCM;AT89S51;digitalvoltmeter;ADC0809,fourdigital
一、设计题目
基于AT89S51的简易数字电压表的设计。
二、设计内容与要求
用AT89S51单片机和ADC0809组成一个数字电压表,要求能够测量0~5V的直流电压值,并用四位数码管显示,并要求所用元器件最少。
三、设计目的意义
1.通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进而促进理论知识的强化。
2.通过数字电压表的设计系统掌握51单片机的应用。
掌握A/D转换的原理及软件编程及硬件设计的方法,掌握根据课题的要求,提出选择设计方案,查找所需元器,设计并搭建硬件电路,编程写入EPROM并进行调试等。
四、系统硬件电路图
4.1系统原理框图
选择AT89S51作为单片机芯片,选用四位8段共阴极LED数码管实现电压显示,利用ADC0809作为数模转换芯片。
将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P0口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。
P2口接数码管位选,P1接数码管,实现数据的动态显示,如图4.1所示。
4.2AT89S51的结构
在本次课题设计中我们选择了AT89S51芯片。
AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
4.2.1AT89S51内部结构概述
•三级程序存储器保密锁定
•128*8位内部RAM
•32条可编程I/O线
•两个16位定时器/计数器
•6个中断源
•可编程串行通道
•低功耗的闲置和掉电模式
•片内振荡器和时钟电路
4.2.2CPU结构
CPU是单片机的核心部件。
它由运算器和控制器等部件组成。
1. 运算器
运算器以完成二进制的算术/逻辑运算部件ALU为核心。
它可以对半字节(4)、单字节等数据进行操作。
例如,能完成加、减、乘、除、加1、减1、BCD码十进制调整、比较等算术运算,完成与、或、异或、求反、循环等逻操作,操作结果的状态信息送至状态寄存器。
运算器还包含有一个布尔处理器,用以处理位操作。
它以进位标志位C为累加器,可执行置位、复位、取反、位判断转移,可在进位标志位与其他可位寻址的位之间进行位数据传诵等操作,还可以完成进位标志位与其他可位寻址的位之间进行逻辑与、或操作。
2.程序计数器PC
PC是一个16位的计数器,用于存放一条要执行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。
3.指令寄存器
指令寄存器用于存放指令代码。
CPU执行指令时,由程序存储器中读取的指令代码送如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。
4.2.3存储器和特殊功能寄存器
1.存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。
计算机中的全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。
它根据控制器指定的位置存入和取出信息。
2.特殊功能寄存器
特殊功能寄存器(SFR)的地址范围为80H~FFH。
在MCS-51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。
其中5个是双字节寄存器,它们共占用了26个字节。
各特殊功能寄存器的符号和地址见附表2。
其中带*号的可位寻址。
特殊功能寄存器反映了8051的状态,实际上是8051的状态字及控制字寄存器。
用于CPUPSW便是典型一例。
这些特殊功能寄存器大体上分为两类,一类与芯片的引脚有关,另一类作片内功能的控制用。
与芯片引脚有关的特殊功能寄存器是P0~P3,它们实际上是4个八位锁存器(每个I/O口一个),每个锁存器附加有相应的输出驱动器和输入缓冲器就构成了一个并行口。
MCS-51共有P0~P3四个这样的并行口,可提供32根I/O线,每根线都是双向的,并且大都有第二功能。
其余用于芯片控制的寄存器中,累加器A、标志寄存器PSW、数据指针DPTR等的功能前已提及。
4.2.4P0-P3口结构
P0口功能:
P0口具有两种功能:
第一,P0口可以作为通用I/O接口使用,P0.7—P0.0用于传送CPU的输入/输出数据。
输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。
第二,P0.7—P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写
P1口功能 :
P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。
P2口的功能:
P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。
它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。
P3口功能:
P3口有两个功能:
第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。
表4.1P3口第二功能
引脚
名称
功能
P3.0
RXD
串行数据接收口
P3.1
TXD
串行数据发送口
P3.2
INT0
外中断0输入
P3.3
INT1
外中断1输入
P3.4
T0
计数器0计数输入
P3.5
T1
计数器1计数输入
P3.6
WR
外部RAM写选通信号
P3.7
RD
外部RAM读选通信号
4.2.5时钟电路和复位电路
1.时钟电路
单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。
MCS-51内部有一个用于构成振荡器的可控高增益反向放大器。
两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
在片外跨接一晶振和两个匹配电容C1、C2如图2.5所示。
就构成一个自激振荡器。
振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。
匹配电容C1、C2要根据石英晶体振荡器的要求选取。
当晶振频率为12MHz时,C1C2一般选30pF左右。
图2.5中PD是电源控制寄存器PCON.1的掉电方式位,正常工作方式PD=0。
当PD=1时单片机进入掉电工作方式,是一种节能工作方式。
上述电路是靠MCS-51单片机内部电路产生振荡的。
也可以由外部振荡器或时钟直接驱动MCS-51。
图4.3复位电路的内部及外部方式
2.复位电路
复位是单片机的初始化操作。
其功能主要是将程序计数器(PC)初始化为0000H,使单片机从0000H单元开始执行程序,并将特殊功能寄存器赋一些特定值。
复位是使单片机退出低功耗工作方式而进入正常状态一种操作。
复位是上电的第一个操作,然后程序从0000H开始执行。
在运行中,外界干扰等因素可能会使单片机的程序陷入死循环状态或“跑飞”。
要使其进入正常状态,唯一办法是将单片机复位,以重新启动。
复位后,程序计数器(PC)及各特殊功能寄存器(SFR)的值如表4.2所示。
表4.2程序计数器及各特殊功能寄存器的复位值
寄存器
复位状态
寄存器
复位状态
PC
0000H
TH1
00H
ACC
00H
P0~P3
FFH
PSW
00H
IP
xx000000B
SP
07H
IE
0xx00000B
DPTR
0000H
TMOD
00H
TCON
00H
SCON
00H
TL0
00H
SBUF
不定
TH0
00H
PCON
0xxx0000B
TL1
00H
RST引脚是复位端,高电平有效。
在该引脚输入至少连续两个机器周期以上的高电平,单片机复位。
RST引脚内部有一个斯密特ST触发器(图2.10)以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。
使用时,一般在此引脚与VSS引脚之间接一个8.2kΩ的下拉电阻,与VCC引脚之间接一个约10μF的电解电容,即可保证上电自动复位。
上电或手动复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。
上电后,由于电容C3的充电和反相门的作用,使RST持续一段时间的高电平。
当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或手动复位的操作。
4.3器件的比较与选择
4.3.1显示器
本次设计中有显示模块,而常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。
1.数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的清楚。
小电流下可以驱动每光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。
但数码管只能是显示0——9的数据。
不能够显示字符。
这也是数码管的不足之处。
2.LED点阵显示器件是由好多个发光二极管组成的。
具有高亮度,功耗低,视角大,寿命长,耐湿,冷,热等特点,LED点阵显示器件可以显示数字,英文字符,中文字符等。
3.1602液晶是工业字符型液晶,能够同时显示16*2即32个字符。
1602液晶模块内部的字符发生存储器已经存储了160个不同的点阵字符图形,这些字这些字符有:
阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码。
使用时直接编写软件程序按一定的时序驱动即可。
它的特点是显示字迹清楚,价格相对便宜。
4.12864液晶也是一种工业字符型液晶,它不仅能够显示1602液晶所可以显示的字符,数字等信息,而且还可以显示8*4个中文汉字和一些简单的图片,显示信息也非常的清楚。
使用时也直接编写软件程序按一定的时序驱动即可。
不过它的价格比1602液晶贵了很多。
综合上述,根据本设计的要求和价格的考虑,选择数码管显示器。
单位数码管如图4.4所示,四位共阴极数码管如图4.5所示。
图4.4单位数码管
4.3.2模数(A/D)芯片
A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。
A/D转换的常用方法有:
①计数式A/D转换,②逐次逼近型A/D转换,③双积分式A/D转换,④V/F变换型A/D转换。
在这些转换方式中,记数式A/D转换线路比较简单,但转换速度较慢,所以现在很少应用。
双积分式A/D转换精度高,多用于数据采集及精度要求比较高的场合,如5G14433(31/2位),AD7555(41/2位或51/2位)等,但速度更慢。
随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。
如果按照转换原理划分,主要有3种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器。
目前最常用的是双积分和逐次逼近式。
(1)A/D芯片的比较
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点,比如ICL71XX系列等,它们通常带有自动较零、七段码输出等功能。
与双积分相比,逐次逼近式A/D转换的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。
1.AD0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。
些A/D转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。
2.AD0832也是8位逐次逼近型A/D转换器,可支持致命伤个单端输入通道和一个差分输入通道。
它易于和微处理器接口或独立使用;可满量程工作;可用地址逻辑多路器选通各输入通道。
3.TLC2543C是12位开关电容逐次逼近A/D转换,每个器件有三个控制输入端,片选,输入/输出时钟以及地址输入端。
它可以从主机高速传输转换数据。
它有高速的转换,通用的控制能力,具有简化比率转换,刻度以及模拟电路与逻辑电路和电源噪声隔离,耐高温等特点。
综合上述,逐次逼近型A/D转换既照顾了转换速度,有具有一定的精度,这里选用的是逐次逼近型的A/D转换芯片ADC0809。
图4.6ADC0809内部结构
图4.6ADC0809引脚图
(2)ADC0809的工作原理
1.IN0-IN7:
8条模拟量输入通道
ADC0809对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:
4条。
ALE为地址锁存允许输入线,高电平有效。
当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。
A,B和C为地址输入线,用于选通IN0-IN7上的一路模拟量输入。
通道选择表如表4.3所示。
表4.3ADC0809通道选择表
2.数字量输出及控制线:
11条
ST为转换启动信号。
当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。
EOC为转换结束信号。
当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。
OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。
OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。
D7-D0为数字量输出线。
CLK为时钟输入信号线。
因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ,
VREF(+),VREF(-)为参考电压输入。
3.ADC0809应用说明
①ADC0809内部带有输出锁存器,可以与AT89S51单片机直接相连。
②初始化时,使ST和OE信号全为低电平。
③送要转换的哪一通道的地址到A,B,C端口上。
④在ST端给出一个至少有100ns宽的正脉冲信号。
⑤是否转换完毕,我们根据EOC信号来判断。
⑥当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。
AD0809的启动方式为脉冲启动方式,启动信号START启动后开始转换,EOC信号在
START的下降沿10us后才变为无效的低电平。
这要求查询程序待EOC无效后再开始查询,
转换完成后,EOC输出高电平,再由OE变为高电平来输出转换数据。
我们在设计程序时
可以利用EOC信号来通知单片机(查询法或中断法)读入已转换的数据,也可以在启动
AD0809后经适当的延时再读入已转换的数据。
AT89S51的输出频为晶振频的1/6(2MHZ),AT89S1与SUN7474连接经与7474的ST脚提供AD0809的工作时钟。
AD0809的工作频范围为10KHZ-1280KHZ,当频率范围为500KHZ时,其转换速度为128us。
4.4系统硬件及仿真图
4.4.1系统仿真图
4.4.2系统原理图
4.4.3系统PCB图
4.5相关软件简介
4.5.1Protel99
Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。
(1)Protel99SE的系统组成
按照系统功能来划分,Protel99se主要包含以下俩大部分和6个功能模块。
1.电路工程设计部分
①电路原理设计部分(AdvancedSchematic99):
电路原理图设计部分包括电路图编辑器(简称SCH编辑器)、电路图零件库编辑器(简称Schlib编辑器)和各种文本编辑器。
本系统的主要功能是:
绘制、修改和编辑电路原理图;更新和修改电路图零件库;查看和编辑有关电路图和零件库的各种报表。
②印刷电路板设计系统(AdvancedPCB99):
印刷电路板设计系统包括印刷电路板编辑器(简称PCB编辑器)、零件封装编辑器(简称PCBLib编辑器)和电路板组件管理器。
本系统的主要功能是:
绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。
③自动布线系统(AdvancedRoute99):
本系统包含一个基于形状(Shape-based)的无栅格自动布线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。
(2)电路仿真与PLD部分
①电路模拟仿真系统(AdvancedSIM99):
电路模拟仿真系统包含一个数字/模拟信号仿真器,可提供连续的数字信号和模拟信号,以便对电路原理图进行信号模拟仿真,从而验证其正确性和可行性。
②可编程逻辑设计系统(AdvancedPLD99):
可编程逻辑设计系统包含一个有语法功能的文本编辑器和一个波形编辑器(Waveform)。
本系统的主要功能是;对逻辑电路进行分析、综合;观察信号的波形。
利用PLD系统可以最大限度的精简逻辑部件,使数字电路设计达到最简化。
③高级信号完整性分析系统(AdvancedIntegrity99):
信号完整性分析系统提供了一个精确的信号完整性模拟器,可用来分析PCB设计、检查电路设计参数、实验超调量、阻抗和信号谐波要求等。
(3)Protel99SE的功能特性
①开放式集成化的设计管理体系
②超强功能的、修改与编辑功能
③强大的设计自动化功能
4.5.2Keil
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
(1)系统概述
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍KeilC51开发系统各部分功能和使用。
(2)KeilC51单片机软件开发系统的整体结构
C51工具包的整体结构,其中uVision与Ishell分别是C51forWindows和forDos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及C51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89S51 ADC0809 简易 数字 电压表 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)