基于AT89C51单片机的数字电压表设计.docx
- 文档编号:26219340
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:18
- 大小:153.81KB
基于AT89C51单片机的数字电压表设计.docx
《基于AT89C51单片机的数字电压表设计.docx》由会员分享,可在线阅读,更多相关《基于AT89C51单片机的数字电压表设计.docx(18页珍藏版)》请在冰豆网上搜索。
基于AT89C51单片机的数字电压表设计
单片机课程设计报告
基于at89c51得数字电压表设计
设计课题:
专业班级:
学生姓名:
指导教师:
设计时间:
基于AT89C51单片机得数字电压表设计
摘要
数字电压表就是常用得对电子电路进行检测得较精密仪器之一.本文得设计思想就是一种基于单片机得数字电压表设计方式。
该设计主要由三个模块组成:
A/D转换模块、数据处理主控模块与显示模块。
A/D转换模块主要由芯片ADC0808来完成,它负责将采集到得模拟量转换为相应得数字量传送到数据处理模块(单片机)。
数据处理主控模块由单片机AT89C51来完成,它负责将ADC0808传送过来得数字量经过一定得数据处理,产生相对应得显示码传送到显示模块进行显示。
此外,它还控制芯片ADC0808得工作。
经过仿真软件结果表明本设计中得电压表电路简单,所用元件较少,成本低且测量精度高。
此电压表可以测量0-5V得模拟输入电压值,并通过一个四位一体得共阴数码管显示出来。
关键词:
数字电压表,单片机,A/D转换,AT89C51,ADC0808
目 录
第1章 绪论1
2、1设计题目2
2、2 设计思路2
2、3设计方案ﻩ2
3、1单片机主控制模块得设计3
3、1、2AT89C51各引脚功能ﻩ3
3、1、3AT89C51得复位电路与时钟电路ﻩ5
3、2 A/D转换电路设计ﻩ6
3、2、1 ADC0808得主要特性ﻩ7
3、2、2 ADC0808各引脚功能7
3、3 显示电路得设计ﻩ8
3、4总体电路设计ﻩ10
第4章 数字电压表得软件设计11
4、1设计流程图ﻩ11
4、2各子程序简介ﻩ12
第5章 软件调试13
5、1软件调试13
5、2误差分析13
结论15
附录程序截图及解释ﻩ17
第1章绪论
在电量得测量中,电压、电流与频率就是最基本得三个被测量,其中电压量得测量最为经常。
而且随着电子技术得发展,更就是经常需要测量高精度得电压,所以数字电压表就成为一种必不可少得测量仪器。
数字电压表(Digital Voltmeter)简称DAM,它就是采用数字化测量技术,把连续得模拟量转换成不连续、离散得数字形式并加以显示得仪表。
传统得指针式电压表功能单一、精度低,不能满足数字化时代得需求,采用单片机得数字电压表,有精度高、抗干扰能力强、集成方便,还可与PC进行实时通信等优点。
目前,由各种单片机与A/D转换器构成得数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等领域,显示出了它极强得生命力。
与此同时,由DVM扩展而成得各种通用及专用数字仪表仪器,也把电量及非电量技术提高到崭新水平。
新型数字电压表以其高准确度、高可靠性、高分辨率、高性价比等优良特性备受人们得青睐。
本文就是以简易数字直流电压表得设计为研究内容,本系统主要包括三大模块:
转换模块、数据处理模块及显示模块。
其中,A/D转换采用ADC0808对输入得模拟信号进行转换,控制核心AT89C51再对转换得结果进行运算处理,最后驱动输出装置LED显示数字电压信号。
第2章系统整体设计思路及方案
2、1设计题目
基于单片机AT89C51数字电压表得设计
2、2 设计思路
(1)根据设计题目,选择AT89C51单片机为核心控制器件。
(2)A/D转换采用ADC0808实现,连接单片机得P1口与P3口得四位引脚。
(3)电压显示采用4位一体得LED数码管。
(4)LED数码管得段码输入由端口P0产生;位码输入用端口P2产生。
2、3设计方案
本设计选择AT89C51单片机作为核心控制器件。
A/D转换采用ADC0808来实现。
输入采用0~5V得直流电压源,电压显示采用4位一体得LED数码管,LED数码管得段码输人由端口P0输出,位码输人由端口P2输出。
硬件电路设计由6个部分组成:
A/D转换电路,AT89C51单片机系统,LED显示系统、时钟电路、复位电路以及测量电压输入电路.硬件电路设计如图2-1所示。
图2—1系统设计框图
第3章数字电压表得硬件设计
3、1单片机主控制模块得设计
3、1、1 AT89C51性能简介
AT89C51就是美国ATMEL公司生产得低电压,高性能CMOS8位单片机,片内含有4KB得可反复擦写得只读程序存储器与128字节得随机存储器。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准得MCS-51指令集与输出管脚相兼容,由于将多功能8位CPU与闪烁存储器组合在单个芯片中,ATMEL得AT89C51就是一种高效微控制器,它为很多嵌入式控制系统提供了一种灵活性高且价廉得方案。
AT89C51功能性能:
与MCS-51成品指令系统完全兼容;4KB可编程闪速存储器;寿命:
1000次写/擦循环;数据保留时间:
10年;全静态工作:
0—24MHz;三级程序存储器锁定;128*8B内部RAM;32个可编程I/O口线;2个16位定时/计数器;5个中断源;可编程串行UART通道;片内震荡器与掉电模式.
3、1、2AT89C51各引脚功能
AT89C51提供以下标准功能:
4KB得Flash闪速存储器,128B内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路,同时,AT89C51可降至0Hz静态逻辑操作,并支持两种软件可选得节电工作模式.空闲方式停止CPU得工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作,掉电方式保存RAM中得内容,但震荡器停止工作并禁止其她所有工作直到下一个硬件复位。
AT89C51采用PDIP封装形式,引脚配置如图3-1所示。
图3—1 AT89C51引脚图
AT89C51芯片得各引脚功能为:
P0口:
这组引脚共有8条,P0、0为最低位.这8个引脚有两种不同得功能,分别适用于不同得情况,第一种情况就是89C51不带外存储器,P0口可以为通用I/O口使用,P0、0-P0、7用于传送CPU得输入/输出数据,这时输出数据可以得到锁存,不需要外接专用锁存器,输入数据可以得到缓冲,增加了数据输入得可靠性;第二种情况就是89C51带片外存储器,P0、0—P0、7在CPU访问片外存储器时先传送片外存储器得低8位地址,然后传送CPU对片外存储器得读/写数据。
P0口为开漏输出,在作为通用I/O使用时,需要在外部用电阻上拉。
P1口:
这8个引脚与P0口得8个引脚类似,P1、7为最高位,P1、0为最低位,当P1口作为通用I/O口使用时,P1、0-P1、7得功能与P0口得第一功能相同,也用于传送用户得输入与输出数据。
P2口:
这组引脚得第一功能与上述两组引脚得第一功能相同即它可以作为通用I/O口使用,它得第一功能与P0口引脚得第二功能相配合,用于输出片外存储器得高8位地址,共同选中片外存储器单元,但不像P0口那样传送存储器得读/写数据.
P3口:
这组引脚得第一功能与其余三个端口得第一功能相同,第二功能为控制功能,每个引脚并不完全相同,如下表3—1所示:
表3—1P3口各位得第二功能
P3口各位
第二功能
P3、0
RXT(串行口输入)
P3、1
TXD(串行口输出)
P3、2
/INT0(外部中断0输入)
P3、3
/INT1(外部中断1输入)
P3、4
T0(定时器/计数器0得外部输入)
P3、5
T1(定时器/计数器1得外部输入)
P3、6
/WR(片外数据存储器写允许)
P3、7
/RD(片外数据存储器读允许)
Vcc为+5V电源线,GND接地。
ALE:
地址锁存允许线,配合P0口得第二功能使用,在访问外部存储器时,89C51得CPU在P0、0-P0、7引脚线去传送随后而来得片外存储器读/写数据。
在不访问片外存储器时,89C51自动在ALE线上输出频率为1/6震荡器频率得脉冲序列。
该脉冲序列可以作为外部时钟源或定时脉冲使用.
EA:
片外存储器访问选择线,可以控制89C51使用片内ROM或使用片外ROM,
若EA=1,则允许使用片内ROM,若EA=0,则只使用片外ROM。
PSEN:
片外ROM得选通线,在访问片外ROM时,89C51自动在PSEN线上产生一个负脉冲,作为片外ROM芯片得读选通信号。
RST:
复位线,可以使89C51处于复位(即初始化)工作状态.通常89C51复位有自动上电复位与人工按键复位两种.
XTAL1与XTAL2:
片内震荡电路输入线,这两个端子用来外接石英晶体与微调电容,即用来连接89C51片内OSC(震荡器)得定时反馈回路。
3、1、3AT89C51得复位电路与时钟电路
单片机中CPU每执行一条指令,都必须在统一得时钟脉冲得控制下严格按时间节拍进行,而这个时钟脉冲就是单片机控制中得时序电路发出得.CPU执行一条指令得各个微操作所对应时间顺序称为单片机得时序。
MCS-51单片机芯片内部有一个高增益反相放大器,用于构成震荡器,XTAL1为该放大器得输入端,XTAL2为该放大器输出端,但形成时钟电路还需附加其她电路。
单片机AT89C51得时钟电路如图3-2所示,主要由电容C1—C3、电阻R1、晶振X1等组成。
AT89C51得18脚(XTAL2)与19脚(XTAL1)接时钟电路,其中19脚就是AT89C51内部振荡器倒相放大器得输入端,用于接外部晶振与微调电容得一端;18脚就是AT89C51内部振荡器倒相放大器输出端,用于接外部晶振与微调电容得另一端。
图3—2 AT89C51得时钟电路图
单片机在启动运行时都需要复位,使CPU与系统中得其她部件都处于一个确定得初始状态,并从这个状态开始工作。
MCS-51单片机有一个复位引脚RST,采用施密特触发输入。
当震荡器起振后,只要该引脚上出现2个机器周期以上得高电平即可确保时器件复位。
复位完成后,如果RST端继续保持高电平,MCS—51就一直处于复位状态,只要RST恢复低电平后,单片机才能进入其她工作状态。
图3-3就是51系列单片机统常用得复位电路。
图3-3 AT89C51得复位电路
3、2A/D转换电路设计
现实世界得物理量都就是模拟量,能把模拟量转化成数字量得器件称为模/数转换器(A/D转换器),A/D转换器就是单片机数据采集系统得关键接口电路,按照各种A/D芯片得转化原理可分为逐次逼近型,双重积分型等等。
双积分式A/D转换器具有抗干扰能力强、转换精度高、价格便宜等优点.与双积分相比,逐次逼近式A/D转换得转换速度更快,而且精度更高,如ADC0809、ADC0808等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送到单片机进行分析与显示。
一个n位得逐次逼近型A/D转换器只需要比较n次,转换时间只取决于位数与时钟周期,逐次逼近型A/D转换器转换速度快,因而在实际中广泛使用。
3、2、1ADC0808得主要特性
ADC0808就是CMOS单片型逐次逼近式A/D转换器,带有使能控制端,与微机直接接口,片内带有锁存功能得8路模拟多路开关,可以对8路0—5V输入模拟电压信号分时进行转换,由于ADC0808设计时考虑到若干种模/数变换技术得长处,所以该芯片适应于过程控制,微控制器输入通道得接口电路,智能仪器与机床控制等领域。
ADC0808就是分辨率为8位得、以逐次逼近原理进行模/数转换得器件。
其内部有一个8通道多路开关,它可以根据地址码锁存译码后得信号,只选通8路模拟输入信号中得一个进行A/D转换。
ADC0808就是ADC0809得简化版本,功能基本相同.一般硬件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换.
3、2、2ADC0808各引脚功能
图3-4ADC0808引脚图
ADC0808芯片有28条引脚,采用双列直插式封装,其引脚图如图3-4所示。
下面说明各个引脚功能:
IN0-IN7(8条):
8路模拟量输入线,用于输入与控制被转换得模拟电压。
ALE:
地址锁存允许输入线,高电平有效,当ALE为高电平时,为地址输入线,用于选择IN0-IN7上那一条模拟电压送给比较器进行A/D转换。
ADDA,ADDB,ADDC:
3位地址输入线,用于选择8路模拟输入中得一路,其对应关系如表3-2所示:
表3-2ADC0808通道选择表
地址码
对应得输入通道
C
B
A
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
IN0
IN1
IN2
IN3
IN4
IN5
IN6
IN7
START:
START为“启动脉冲”输入法,该线上正脉冲由CPU送来,宽度应大于100ns,上升沿清零SAR,下降沿启动ADC工作。
EOC:
EOC为转换结束输出线,该线上高电平表示A/D转换已结束,数字量已锁入三态输出锁存器。
OE:
数据输出允许信号,输入,高电平有效.当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
REF+、REF-:
参考电压输入量,给电阻阶梯网络供给标准电压。
Vcc、GND:
Vcc为主电源输入端,GND为接地端,一般REF+与Vcc连接在一起,REF-与GND连接在一起、
CLK:
时钟输入端.
3、3显示电路得设计
LED就是发光二极管显示器得缩写。
LED由于结构简单、价格便宜、与单片机接口方便等优点而得到广泛应用。
LED显示器就是由若干个发光二极管组成显示字段得显示器件.在单片机中使用最多得就是七段数码显示器。
在应用系统中,设计要求不同,使用得LED显示器得位数也不同,因此就生产了位数,尺寸,型号不同得LED显示器供选择,在本设计中,选择4位一体得数码型LED显示器,简称“4-LED”。
本系统中前一位显示电压得整数位,即个位,后三位显示电压得小数位。
4-LED显示器引脚如图3—5所示,就是一个共阴极接法得4位LED数码显示管,其中a,b,c,e,f,g为4位LED各段得公共输出端,1、2、3、4分别就是每一位位数选端,DP就是小数点引出端,4位一体LED数码显示管得内部结构就是由4个单独得LED组成,每个LED得段输出引脚在内部都并联后,引出到器件得外部。
图3—54位LED引脚
本设计中LED与单片机得连接如图3—6,图中可以瞧出,本设计用单片机得P0、0~P0、7作为LED显示得片选端口,P2端口作为LED得位选信号。
图3—6显示电路连接图
3、4总体电路设计
经过以上得设计过程,可设计出基于单片机得简易数字电压表硬件电路原理图如图3-7所示。
图3—7 设计电路总图
此电路得工作原理就是:
+5V模拟电压信号通过变阻器RV1分压后由IN0进入ADC0808,经过A/D转换后,读取转换后得采样值,通过公式:
电压=采样值/采样精度*参考电压,将通过公式计算后得数字量经过其输出通道A0—A7传送给AT89C51芯片得P1口,AT89C51负责把接收到得数字量经过数据处理,产生正确得显示段码通过P0口传送给共阴数码管,P2、0、P2、1、P2、2、P2、3产生位选信号控制数码管得亮灭.
AT89C51通过P3、4给ADC0808得CLOCK提供时钟信号,当给单片机得P3、0输出一个正脉冲,利用其下降沿可启动A/D转换,由P3、2检测A/D转换就是否完成,转换完成后,通过P3、1使输出允许控制端OE置为高电平,允许单片机读取转换数据,将转换结果送给共阴数码管显示出来。
第4章数字电压表得软件设计
4、1 设计流程图
主程序主要完成信号存储、信号处理、A/ D转换以及调用显示等。
主程流程如图4—1所示:
程序首先从ORG0000H开始,然后无条件件跳转至主程序得首地址开始,初始化后,先调用模数转换程序进行输入信号得数字化,然后调用显示子程序将处理后得数字输出,一次数据结束后,循环执行调用得两个子程序。
图4-1 主程序流程图
A/D转换子程序如图4—2所示:
首先进行开始模数转化,执行后,如果检测到转化没有完成则继续转化,如果转化完成,执行下一条指令,将取得模数转化结果并转换为工程量,然后显示转换结果,此为一次模数转换,如此循环可转换下一组数据,全部转换完毕后,结束。
图4—2A/D转换子程序流程图
4、2 各子程序简介
初始化子程序得主要工作就是设置定时器得工作模式,初值预置,开中断与打开定时器等。
A/D转换子程序用来控制对输入得模块电压信号得采集测量,并将对应得数值存入相应得内存单元。
显示子程序采用动态扫描实现四位数码管得数值显示,在本设计中,为了简化硬件设计,主要采用软件定时得方式,即用定时器0方式2产生40ms定时,通过软件延时程序来实现10ms得延时。
第5章软件调试
5、1软件调试
软件调试得主要任务就是排查错误,错误主要包括逻辑与功能错误,这些错误有些就是显性得,而有些就是隐形得,可以通过仿真开发系统发现逐步改正。
Proteus软件可以对基于微控制器得设计连同所有得周围电子器件一起仿真。
Proteus支持得微处理芯片包括8051系列、AVR系列、PIC系列、HC11系列及Z80等等。
Proteus可以完成单片机系统原理图电路绘制、PCB设计,更为显著得特点就是可以与uVisions3IDE工具软件结合进行编程仿真调试。
本系统得调试主要以软件为主,其中,系统电路图得绘制与仿真我采用得就是Proteus软件,程序方面,采用得就是C语言,用Keil软件将程序写入单片机。
5、2误差分析
由于单片机AT89C51为8位处理器,当输入电压为5、00V时,ADC0808输出数据值为255(FFH),因此单片机最高得数值分辨率为0、0196V(5/255).这就决定了电压表得最高分辨率只能到0、0196V,从下表可瞧到,测试电压以接近0、01V得幅度变化。
本文得数字电压表可以测量0—5V得电压值,最大分辩率为0、001V.通过仿真测量结果可得到简易数字电压表与“标准”数字电压表对比测试表。
本次设计得电压表误差分析采用多次测量求绝对差值得方法,并把各组数据列成表格,这样能更加清晰地瞧出误差得波动范围及大小,如下表5-1所示:
标准电压
(V)
0、00
0、50
1、00
1、50
2、00
2、50
3、00
3、50
4、00
4、50
5、00
测量电压
(V)
0、00
0、509
1、000
1、509
2、000
2、490
3、000
3、490
4、000
4、490
5、000
绝对误差(V)
0
0、009
0
0、009
0
0、010
0
0、010
0
0、010
0
表5-1误差分析
从上表可以瞧出,简易数字电压表测得得值与标准电压值偏差在0-0、02V,这可以通过校正ADC0808得基准电压来解决.因为该电压表设计时直接用5V得供电电源作为电压,所以电压可能有偏差.
结论
经过近段时间得努力,基于AT89C51单片机得数字电压表设计基本完成。
但设计中仍然存在许多不足之处。
这次设计就是我第一次设计电路,并用Proteus实现了仿真。
在这过程中,我对电路设计,单片机得使用等都有了新得认识。
通过这次设计学会了Proteus与Keil软件得使用方法,掌握了从系统得需要、方案得设计、功能模块得划分、原理图电路图得仿真得设计流程,积累了不少经验.
基于单片机得数字电压表使用性强、结构简单、成本低、外接元件少。
在实际应用工作应能好,测量电压准确,精度高。
系统功能、指标达到了论文得预期要求,本文设计主要实现了简易数字电压表测量一路电压得功能,详细说明了从原理图得设计、电路图得仿真再到软件得调试。
通过本次设计,我对单片机这门课有了进一步得了解。
无论就是在硬件连接方面还就是在软件编程方面。
本次设计采用了AT89C51单片机芯片,设计中还用到了模/数转换芯片ADC0808,以前在学单片机课程时只就是对其理论知识有了初步得理解。
通过这次设计,对它得工作原理有了更深得理解。
在调试过程中遇到很多问题,硬件上得理论知识学得不够扎实,对电路得仿真方面也不够熟练。
总之这次电路得设计与仿真,基本上达到了设计得功能要求。
在以后得实践工作中,我将继续努力学习电路设计方面得理论知识,并理论联系实际,争取在电路设计方面能有所提升。
参考文献
[1]王瑾、基于Proteus得数字电压表仿真设计[J]、电子设计工程,2013
[2]赵兆、基于FPGA得瞬变电磁数据采集系统得设计[J]、自动化与仪器仪表,2016(03)
[3]高荣杰,章海亮,龚亮明,等、基于PROTEUS得单片机AD转换仿真[J]、计算机与现代化,2009(11)、
[4]胡健、单片机原理及接口技术、北京:
机械工业出版社,2004年10月
[5]王毓银、数字电路逻辑设计、高等教育出版社,2005年12月
[6]宋凤娟,孙军,李国忠、基于89C51单片机数字电压表设计[J]、工业控制计算机,2007/04
[7]谢维成、杨加国、单片机原理与应用及C51程序设计实例、电子工业出版社,2006年3月
[8]李广弟、单片机基础、北京航空航天大学出版社,2007年5月
[9]姜志海,黄玉清等著、单片机原理及应用[M]、北京:
电子工业出版社、2005年7月
[10]魏立峰、单片机原理及应用技术、北京大学出版社,2005年
[11]周润景、Protues在MCS-51&ARM7系统应用百例、第一版、北京:
电子工业出版社2006年
[12]边春远等著、MCS-51单片机应用开发实用子程序[M]、北京:
人民邮电出版社、2005/9
[13]苗红霞、单片机实现数字电压表得软硬件设计[J] 、河海大学常州分校学报,2002,(03)、
[14]于殿泓、王新年、单片机原理与程序设计实验教程、西安电子科技大学出版社,2007/5
附录程序截图及解释
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 AT89C51 单片机 数字 电压表 设计