学位论文--课程设计基于单片机系统的数字电压表_第1页
学位论文--课程设计基于单片机系统的数字电压表_第2页
学位论文--课程设计基于单片机系统的数字电压表_第3页
学位论文--课程设计基于单片机系统的数字电压表_第4页
学位论文--课程设计基于单片机系统的数字电压表_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录概述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其他电路部分简介131.显示电路132.A/D转换测量模拟电压输入部分143.晶振电路15五.软件设计15§5.1汇编流程图151.主汇编流程图152.A/D转换测量程序173.显示程序流程图18§5.2汇编程序清单18§5.3程序说明21六.调试仿真22七.设计总结与致谢23八.参考文献24概述在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础[2]。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型[4]。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面[3]。本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C52再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号[11]。设计目的与功能要求§1.1设计目的利用单片机及ADC0808核心元件制作4位数字电压表,更好地学习掌握ADC0808的工作原理及A/D的转换编程方法。§1.2功能要求⑴以MCS-52系列单片机为核心器件,组成一个实时模拟数字电压表。⑵采用1路模拟量输入,能够测量0-5V之间的直流电压值。⑶电压显示用4位一体的LED数码管显示,至少能够显示两位小数。⑷尽量使用较少的元器件。§1.3设计思路⑴根据设计要求,选择AT89C52单片机为核心控制器件。⑵A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。=3\*GB2⑶电压显示采用4位一体的LED数码管。=4\*GB2⑷LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生二.总体设计§2.1系统设计主要分为两部分:硬件电路及软件程序。硬件电路包括:单片机及外围电路,模拟信号采集电路,A/D转换电路,数码管显示电路,各部分电路的衔接。软件的程序可采用C语言或汇编,这里采用汇编语言,详细的设计思路在后面介绍。§2.2设计方案 数字电压表的设计方案很多,但采用集成电路来设计较流行。其设计主要是由模拟电路和数字电路两大部分组成,模拟部分包括A/D转换器,基准电源等;数字部分包括振荡器,数码显示,计数器等。其中,A/D转换器将输入的模拟量转换成数字量,它是数字电压表的一个核心部件,对它的选择一般有两种选择方案:1.采用双积分A/D转换器MC14433,它有多路调制的BCD码输出端和超量程输出端,采用动态扫描显示,便于实现自动控制。但芯片只能完成A/D转换功能,要实现显示功能还需配合其它驱动芯片等,使得整部分硬件电路板布线复杂,加重了电路设计和实际焊接的工作。2.逐次逼近式A/D转换器。它的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。这样电路设计简单,电路板布线不复杂,便于焊接、调试。这里采用这种方案。显示部分可以采用各类数码管或用LCD显示器显示。在此简化采用4位八段共阴极数码管对A/D转换变换后的结果加以显示。§2.3总体设计框图四位八段共阴极数码管单片机量程变换处理A/D转换器ADC080四位八段共阴极数码管单片机量程变换处理A/D转换器ADC0808数字信号采集外界模拟信号置入置入显示出模拟电压的数值显示出模拟电压的数值振荡器、时序脉冲预先写好的汇编程序预先写好的汇编程序三.设计原理图四.硬件电路设计§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根可编程I/O口线;具有3个可编程定时器;中断系统是具有8个中断源6个中断矢量2个级优先权的中断结构;串行口是具有一个全双工的可编程串行通信口;具有一个数据指针DPTR;低功耗工作模式有空闲模式和掉电模式;具有可编程的3级程序锁定位;AT89C52工作电源电压为5(1+0.2)V,且典型值为5V;AT89C52最高工作频率为24MHz。d.引脚描述VCC:电源电压GND:地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,p1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。在flash编程和校验时,P1口接收低8位地址字节。引脚号第二功能P1.0T2(定时器/计数器T2的外部计数输入),时钟输出P1.1T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)P1.5MOSI(在系统编程用)P1.6MISO(在系统编程用)P1.7SCK(在系统编程用)P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,p2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89S52特殊功能(第二功能)使用。端口引脚第二功能端口引脚第二功能P3.0RXDP3.1TXDP3.2INT0P3.3INT1P3.4T0P3.5T1P3.6WRP3.7RDP3口还接收一些用于闪烁存储器编程和程序校验的控制信号。RST:复位输入。当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。ALE/:当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。这个位置后只有一条MOVX和MOVC指令ALE才会被应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的PSEN信号不出现。EA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器,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位A/D转换器,即分辨率为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:A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-):基准电压。Vcc:电源,单一+5V。GND:接地。§4.1.2其它电路部分简介1.显示电路1.四位八段共阴极数码管这种数码管可显示4位值,每位由8个发光二极管(以下简称字段)即a、b、c、d、e、f、g、dp字段构成,通过控制不同的LED的亮灭的不同组合可用来显示数字0~9及小数点“.”。数码管又分为共阴极和共阳极两种结构。结构和接法分别如下图:2.静态显示方式直接利用并行口输出。LED显示工作于静态显示方式时,各位的共阴极连接在一起接地;每位的段选线分别于一个8位的锁存输出相连。一般称之为静态显示,是由于显示器中的各位相互独立。而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。3.动态显示方式对多位LED显示器的动态显示,通常都时采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。4.显示电路:2.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转换既照顾了转换速度,有具有一定的精度,这里选用的是逐次逼近型的A/D转换芯片ADC0808。采用中断控制的方式实现,不浪费时间,效率较高。这里设计将实际的模拟信号采集电路简化成一个分压电路模型如下图所示分压电路模型3.晶振电路晶振电路用于产生单片机工作所需的时钟信号,使用晶体震荡器时,c2,c3取值20~40PF,使用陶瓷震荡器时c1擦取值30~50PF。在设计电路板时,晶振和电容应尽量靠近芯片,以减小分布电容,保证震荡器的稳定性。18引脚接XTAL1,19引脚接XTAL2,20引脚接地五.软件设计§5.1汇编流程图:1.主汇编流程图:开始开始系统初始化启动A/D转换采集A/D转换值数据转换Y调用显示四位是否显示完?完?读电压值YNEND主程序流程图转换结束?YN2.A/D转换测量程序开始开始启动转换读取数据0808地址加1小于FFFF?结束中断请求中断服务YNA/D转换测量程序流程图3.显示程序流程图读取判断单元读取判断单元显示通道号显示电压整数部分显示电压小数部分返回开始程序32H30H31H显示程序流程图§5.2汇编程序清单LED_0 EQU 30H ;存放三个数码管的段码LED_1 EQU 31HLED_2 EQU 32H ADC EQU 35H ;存放AD转换后的数据ST BIT P3.2OE BIT P3.0EOC BIT P3.1 ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV LED_0,#00H ;给显示赋初值0 MOV LED_1,#00H MOV LED_2,#00H SETB P3.4 SETB P3.5 CLR P3.6 ;选择通道3WAIT: CLR ST SETB ST CLR ST ;启动AD转换 JNB EOC,$ ;等待转换结束 SETB OE ;允许输出 MOV ADC,P1 ;暂存转换结果 CLR OE ;关闭输出 LCALL CONVERT ;调用数据处理子程序 LCALL DISPLAY ;调用显示程序,显示转换的值 SJMP WAIT;*******************************************;将AD转换输出的数据转换成相应的电压值;*******************************************CONVERT:MOV A,ADC ;将AD转换结果转换成BCD码 MOV B,#51 ;255/51=5.00V DIV AB MOV LED_2,A ;个位数字存入LED_2中 MOV A,B ;余数大于19H,F0为1乘法溢出,结果加5 CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP2 ADD A,#5LOOP2: MOV LED_1,A ;小数后的第一位存入LED_1中 MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP3 ADD A,#5LOOP3: MOV LED_0,A ;小数后的第二位存入LED_0中 RET;*****************************************;显示程序;*****************************************DISPLAY:MOV A,LED_0 ;数码显示子程序 MOV DPTR,#TABLE ;送段码表首地址 MOVC A,@A+DPTR SETB P2.3 ;允许百位输出,该数码管为共阳极形 MOV P0,A ;将位段码送给P0口 LCALL DELAY ;调用延时程序 CLR P2.3 ;关闭百位显示 MOV A,LED_1 MOV DPTR,#TABLE ;送段码表首地址 MOVC A,@A+DPTR SETB P2.2 ;允许十位输出,该数码管为共阳极形 MOV P0,A ;将位段码送给P0口 LCALL DELAY ;调用延时程序 CLR P2.2 ;关闭十位显示 MOV A,LED_2 MOV DPTR,#TABLE2 ;送段码表首地址 MOVC A,@A+DPTR SETB P2.1 ;允许个位输出,该数码管为共阳极形 MOV P0,A ;将位段码送给P0口 LCALL DELAY ;调用延时程序 CLR P2.1 ;关闭个位显示 MOVA,#00 MOVDPTR,#TABLE MOVCA,@A+DPTR SETBP2.0 MOVP0,A LCALLDELAY CLRP2.0 RET;**************************************;延时程序;**************************************DELAY: MOV R6,#10 ;延时子程序D1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RETTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H DB 92H,82H,0F8H,80H,90H ;共阳

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论