精品毕业论文基于单片机系统的数字电压表.docx
- 文档编号:23358186
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:21
- 大小:204.47KB
精品毕业论文基于单片机系统的数字电压表.docx
《精品毕业论文基于单片机系统的数字电压表.docx》由会员分享,可在线阅读,更多相关《精品毕业论文基于单片机系统的数字电压表.docx(21页珍藏版)》请在冰豆网上搜索。
精品毕业论文基于单片机系统的数字电压表
目录
概述....................................................3
一.设计目的与功能要求.....................................................4
§1.1设计目的....................................................4
§1.2功能要求....................................................4
§1.3设计思路....................................................4
二.总体设计....................................................4
§2.1系统设计....................................................4
§2.2设计方案...............................................4
§2.3总体设计框图...............................................5
三.设计原理图...............................................6
四.硬件电路设计...............................................7
§4.1核心元器件介绍...............................................7
§4.1.1芯片介绍...............................................7
§4.1.2其他电路部分简介...............................................13
1.显示电路...............................................13
2.AD转换测量模拟电压输入部分....................................14
3.晶振电路...............................................15
五.软件设计...............................................15
§5.1汇编流程图.....................................................15
1.主汇编流程图.....................................................15
2.AD转换测量程序.................................................17
3.显示程序流程图.....................................................18
§5.2汇编程序清单...............................................18
§5.3程序说明...............................................21
六.调试仿真...............................................22
七.设计总结与致谢...............................................23
八.参考文献...............................................24
概述
在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。
而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。
数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。
由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。
传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。
采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。
数字电压表是诸多数字化仪表的核心与基础[2]。
以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。
目前,由各种单片机和AD转换器构成的数字电压表作全面深入的了解是很有必要的。
最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型[4]。
数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。
目前,数字电压表的内部核心部件是AD转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面[3]。
本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:
转换模块、数据处理模块及显示模块。
其中,AD转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C52再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号[11]。
一.设计目的与功能要求
§1.1设计目的
利用单片机及ADC0808核心元件制作4位数字电压表,更好地学习掌握ADC0808的工作原理及AD的转换编程方法。
§1.2功能要求
⑴以MCS-52系列单片机为核心器件,组成一个实时模拟数字电压表。
⑵采用1路模拟量输入,能够测量0-5V之间的直流电压值。
⑶电压显示用4位一体的LED数码管显示,至少能够显示两位小数。
⑷尽量使用较少的元器件。
§1.3设计思路
⑴根据设计要求,选择AT89C52单片机为核心控制器件。
⑵AD转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。
电压显示采用4位一体的LED数码管。
LED数码的段码输入,由并行端口P0产生:
位码输入,用并行端口P2低四位产生
二.总体设计
§2.1系统设计
主要分为两部分:
硬件电路及软件程序。
硬件电路包括:
单片机及外围电路,模拟信号采集电路,AD转换电路,数码管显示电路,各部分电路的衔接。
软件的程序可采用C语言或汇编,这里采用汇编语言,详细的设计思路在后面介绍。
§2.2设计方案
数字电压表的设计方案很多,但采用集成电路来设计较流行。
其设计主要是由模拟电路和数字电路两大部分组成,模拟部分包括AD转换器,基准电源等;数字部分包括振荡器,数码显示,计数器等。
其中,AD转换器将输入的模拟量转换成数字量,它是数字电压表的一个核心部件,对它的选择一般有两种选择方案:
1.采用双积分AD转换器MC14433,它有多路调制的BCD码输出端和超量程输出端,采用动态扫描显示,便于实现自动控制。
但芯片只能完成AD转换功能,要实现显示功能还需配合其它驱动芯片等,使得整部分硬件电路板布线复杂,加重了电路设计和实际焊接的工作。
2.逐次逼近式AD转换器。
它的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。
这样电路设计简单,电路板布线不复杂,便于焊接、调试。
这里采用这种方案。
显示部分可以采用各类数码管或用LCD显示器显示。
在此简化采用4位八段共阴极数码管对AD转换变换后的结果加以显示。
§2.3总体设计框图
三.设计原理图
四.硬件电路设计
§4.1核心元器件介绍
§4.1.1芯片介绍
1.单片机AT89C52介绍
a.芯片引脚图:
b.描述:
AT89C52只是51系列单片机的一个型号,AT89C52是美国Atmel公司生产的低电压、高性能CMOS8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。
AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等方面兼容。
AT89C52单片机在电子行业中有着广泛的应用。
C.主要特性:
片内程序存储器内含8KB的Flash程序存储器,可擦写寿命为1000次;
片内数据存储器内含256字节的RAM;
具有32根可编程IO口线;
具有3个可编程定时器;
中断系统是具有8个中断源
6个中断矢量
2个级优先权的中断结构;
串行口是具有一个全双工的可编程串行通信口;
具有一个数据指针DPTR;
低功耗工作模式有空闲模式和掉电模式;
具有可编程的3级程序锁定位;
AT89C52工作电源电压为5(1+0.2)V,且典型值为5V;
AT89C52最高工作频率为24MHz。
d.引脚描述
VCC:
电源电压
GND:
地
P0口:
P0口是一个8位漏极开路的双向IO口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器时,P0口也被作为低8位地址数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向IO口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器计数器2的外部计数输入(P1.0T2)和时器计数器2的触发输入(P1.1T2EX)。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能
P1.0T2(定时器计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器计数器T2的捕捉重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向IO口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向IO口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用。
端口引脚第二功能
端口引脚
第二功能
P3.0
RXD
P3.1
TXD
P3.2
INT0
P3.3
INT1
P3.4
T0
P3.5
T1
P3.6
WR
P3.7
RD
P3口还接收一些用于闪烁存储器编程和程序校验的控制信号。
RST:
复位输入。
当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。
ALE:
当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。
即使不访问外部存储器,ALE以时钟震荡频率的116输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。
要注意的是:
每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。
如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。
这个位置后只有一条MOVX和MOVC指令ALE才会被应用。
此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。
PSEN:
程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN有效,即输出两个脉冲。
在此期间,当访问外部数据存储器时,这两次有效的PSEN信号不出现。
EAVPP:
外部访问允许。
欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。
需要注意的是:
如果加密位LBI被编程,复位时内部会锁存EA端状态。
如EA端为高电平,CPU则执行内部程序存储器中的指令。
闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。
XTAL1:
震荡器反相放大器及内部时钟发生器的输入端。
XTAL2:
震荡器反相放大器的输出端。
时钟震荡器:
AT89C52中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。
这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自然震荡器。
外接石英晶体及电容C1,C2接在放大器的反馈回路中构成并联震荡电路。
对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程序及温度稳定性。
如果使用石英晶体,我们推荐电容使用30PF±10PF,而如果使用陶瓷振荡器建议选择40PF±10PF。
用户也可以采用外部时钟。
采用外部时钟的电路如图示。
这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。
由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。
电路内部振荡外部振荡电路
2.ADC0808芯片
a.引脚图:
b.主要特性
1)8路输入通道,8位AD转换器,即分辨率为8位。
2)具有转换起停控制端。
3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz)
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准。
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
C.外部特性(引脚功能)
IN0~IN7:
8路模拟量输入端。
DB0-DB7:
8位数字量输出端。
ADDA、ADDB、ADDC:
3位地址输入线,用于选通8路模拟输入中的一路
ALE:
地址锁存允许信号,输入,高电平有效。
START:
AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动AD转换)。
EOC:
AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:
数据输出允许信号,输入,高电平有效。
当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:
时钟脉冲输入端。
要求时钟频率不高于640KHZ。
REF(+)、REF(-):
基准电压。
Vcc:
电源,单一+5V。
GND:
接地。
§4.1.2其它电路部分简介
1.显示电路
1.四位八段共阴极数码管
这种数码管可显示4位值,每位由8个发光二极管(以下简称字段)即a、b、c、d、e、f、g、dp字段构成,通过控制不同的LED的亮灭的不同组合可用来显示数字09及小数点“”。
数码管又分为共阴极和共阳极两种结构。
结构和接法分别如下图:
2.静态显示方式
直接利用并行口输出。
LED显示工作于静态显示方式时,各位的共阴极连接在一起接地;每位的段选线分别于一个8位的锁存输出相连。
一般称之为静态显示,是由于显示器中的各位相互独立。
而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。
3.动态显示方式
对多位LED显示器的动态显示,通常都时采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。
这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。
4.显示电路:
2.AD转换测量模拟电压输入部分
AD转换的常用方法有:
①计数式AD转换,②逐次逼近型AD转换,③双积分式AD转换,④VF变换型AD转换。
在这些转换方式中,记数式AD转换线路比较简单,但转换速度较慢,所以现在很少应用。
双积分式AD转换精度高,多用于数据采集及精度要求比较高的场合,如5G14433(312位),AD7555(412位或512位)等,但速度更慢。
逐次逼近型AD转换既照顾了转换速度,有具有一定的精度,这里选用的是逐次逼近型的AD转换芯片ADC0808。
采用中断控制的方式实现,不浪费时间,效率较高。
这里设计将实际的模拟信号采集电路简化成一个分压电路模型如下图所示
分压电路模型
3.晶振电路
晶振电路用于产生单片机工作所需的时钟信号,使用晶体震荡器时,c2,c3取值20~40PF,使用陶瓷震荡器时c1擦取值30~50PF。
在设计电路板时,晶振和电容应尽量靠近芯片,以减小分布电容,保证震荡器的稳定性。
18引脚接XTAL1,19引脚接XTAL2,20引脚接地
五.软件设计
§5.1汇编流程图:
1.主汇编流程图:
2.AD转换测量程序
AD转换测量程序流程图
3.显示程序流程图
显示程序流程图
§5.2汇编程序清单
LED_0EQU30H;存放三个数码管的段码
LED_1EQU31H
LED_2EQU32H
ADCEQU35H;存放AD转换后的数据
STBITP3.2
OEBITP3.0
EOCBITP3.1
ORG0000H
LJMPMAIN
ORG0030H
MAIN:
MOVLED_0,#00H;给显示赋初值0
MOVLED_1,#00H
MOVLED_2,#00H
SETBP3.4
SETBP3.5
CLRP3.6;选择通道3
WAIT:
CLRST
SETBST
CLRST;启动AD转换
JNBEOC,$;等待转换结束
SETBOE;允许输出
MOVADC,P1;暂存转换结果
CLROE;关闭输出
LCALLCONVERT;调用数据处理子程序
LCALLDISPLAY;调用显示程序,显示转换的值
SJMPWAIT
;*******************************************
;将AD转换输出的数据转换成相应的电压值
;*******************************************
CONVERT:
MOVA,ADC;将AD转换结果转换成BCD码
MOVB,#51;25551=5.00V
DIVAB
MOVLED_2,A;个位数字存入LED_2中
MOVA,B;余数大于19H,F0为1乘法溢出,结果加5
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10
MULAB
MOVB,#51
DIVAB
JBF0,LOOP2
ADDA,#5
LOOP2:
MOVLED_1,A;小数后的第一位存入LED_1中
MOVA,B
CLRF0
SUBBA,#1AH
MOVF0,C
MOVA,#10
MULAB
MOVB,#51
DIVAB
JBF0,LOOP3
ADDA,#5
LOOP3:
MOVLED_0,A;小数后的第二位存入LED_0中
RET
;*****************************************
;显示程序
;*****************************************
DISPLAY:
MOVA,LED_0;数码显示子程序
MOVDPTR,#TABLE;送段码表首地址
SETBP2.3;允许百位输出,该数码管为共阳极形
MOVP0,A;将位段码送给P0口
LCALLDELAY;调用延时程序
CLRP2.3;关闭百位显示
MOVA,LED_1
MOVDPTR,#TABLE;送段码表首地址
SETBP2.2;允许十位输出,该数码管为共阳极形
MOVP0,A;将位段码送给P0口
LCALLDELAY;调用延时程序
CLRP2.2;关闭十位显示
MOVA,LED_2
MOVDPTR,#TABLE2;送段码表首地址
SETBP2.1;允许个位输出,该数码管为共阳极形
MOVP0,A;将位段码送给P0口
LCALLDELAY;调用延时程序
CLRP2.1;关闭个位显示
MOVA,#00
MOVDPTR,#TABLE
SETBP2.0
MOVP0,A
LCALLDELAY
CLRP2.0
RET
;**************************************
;延时程序
;**************************************
DELAY:
MOVR6,#10;延时子程序
D1:
MOVR7,#250
DJNZR7,$
DJNZR6,D1
RET
TABLE:
DB0C0H,0F9H,0A4H,0B0H,99H
DB92H,82H,0F8H,80H,90H;共阳极0~9十个段码
TABLE2:
DB40H,79H,24H,30H,19H,12H;带小数点的0~9十个段码
END
§5.3程序说明
由于单片机AT89C51为8位处理器,当输入电压为5.00V时,ADC
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品 毕业论文 基于 单片机 系统 数字 电压表