课程设计基于单片机系统的数字电压表.doc

上传人:laozhun 文档编号:4150660 上传时间:2023-04-07 格式:DOC 页数:24 大小:320KB
返回 下载 相关 举报
课程设计基于单片机系统的数字电压表.doc_第1页
第1页 / 共24页
课程设计基于单片机系统的数字电压表.doc_第2页
第2页 / 共24页
课程设计基于单片机系统的数字电压表.doc_第3页
第3页 / 共24页
课程设计基于单片机系统的数字电压表.doc_第4页
第4页 / 共24页
课程设计基于单片机系统的数字电压表.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《课程设计基于单片机系统的数字电压表.doc》由会员分享,可在线阅读,更多相关《课程设计基于单片机系统的数字电压表.doc(24页珍藏版)》请在三一办公上搜索。

1、目 录 概述.3一.设计目的与功能要求.41.1设计目的.41.2功能要求.41.3设计思路.4二.总体设计.42.1 系统设计.42.2设计方案.42.3总体设计框图.5三.设计原理图.6四.硬件电路设计.7 4.1核心元器件介绍.7 4.1.1芯片介绍.74.1.2其他电路部分简介.13 1.显示电路.13 2.A/D转换测量模拟电压输入部分.14 3.晶振电路.15五.软件设计.155.1 汇编流程图.15 1.主汇编流程图.15 2.A/D转换测量程序.17 3.显示程序流程图.185.2汇编程序清单.185.3 程序说明.21六.调试仿真.22七.设计总结与致谢.23八.参考文献.2

2、4概述在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用1。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便

3、,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础2。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型4。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC化),另一方面,精度也从0.01%-0.005%。目前,数字电压表的内部核心部件是A/

4、D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面3。本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C52再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号11。一. 设计目的与功能要求1.1 设计目的利用单片机及ADC0808核心元件制作4位数字电压表,更好地学习掌握ADC0808的工作原理及A/D的转换编程方法。1.2功能要求以MCS-52系列单片机为核心器件,组成一个实时模拟数字

5、电压表。采用1路模拟量输入,能够测量0-5V之间的直流电压值。电压显示用4位一体的LED数码管显示,至少能够显示两位小数。 尽量使用较少的元器件。 1.3 设计思路根据设计要求,选择AT89C52单片机为核心控制器件。A/D转换采用ADC0808实现,与单片机的接口为P1口和P2口的高四位引脚。电压显示采用4位一体的LED数码管。LED数码的段码输入,由并行端口P0产生:位码输入,用并行端口P2低四位产生二.总体设计2.1系统设计主要分为两部分:硬件电路及软件程序。硬件电路包括:单片机及外围电路,模拟信号采集电路,A/D转换电路,数码管显示电路,各部分电路的衔接。软件的程序可采用C语言或汇编,

6、这里采用汇编语言,详细的设计思路在后面介绍。2.2设计方案数字电压表的设计方案很多,但采用集成电路来设计较流行。其设计主要是由模拟电路和数字电路两大部分组成,模拟部分包括A/D转换器,基准电源等;数字部分包括振荡器,数码显示,计数器等。其中,A/D转换器将输入的模拟量转换成数字量,它是数字电压表的一个核心部件,对它的选择一般有两种选择方案:1.采用双积分A/D转换器MC14433,它有多路调制的BCD码输出端和超量程输出端,采用动态扫描显示,便于实现自动控制。但芯片只能完成A/D转换功能,要实现显示功能还需配合其它驱动芯片等,使得整部分硬件电路板布线复杂,加重了电路设计和实际焊接的工作。2.

7、逐次逼近式A/D转换器。它的转换速度更快,而且精度更高,比如ADC0808、ADC0809等,它们通常具有8路模拟选通开关及地址译码、锁存电路等,它们可以与单片机系统连接,将数字量送单片机进行分析和显示。这样电路设计简单,电路板布线不复杂,便于焊接、调试。这里采用这种方案。 显示部分可以采用各类数码管或用LCD显示器显示。在此简化采用4位八段共阴极数码管对A/D转换变换后的结果加以显示。2.3总体设计框图四位八段共阴极数码管单片机量程变换处理A/D转换器ADC0808数字信号采集外界模拟信号 置 入显示出模拟电压的数值振荡器、时序脉冲预先写好的汇编程序三设计原理图四.硬件电路设计4.1核心元器

8、件介绍4.1.1 芯片介绍1.单片机AT89C52介绍a.芯片引脚图:b. 描述:AT89C52只是51系列单片机的一个型号,AT89C52是美国Atmel公司生产的低电压、高性能CMOS 8位单片机,片内含8KB的可反复檫写的程序存储器和12B的随机存取数据存储器(RAM),器件采用Atmel公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内配置通用8位中央处理器(CPU)和Flash存储单元,功能强大的AT89C52单片机可灵活应用于各种控制领域。AT89C52单片机属于AT89C51单片机的增强型,与Intel公司的80C52在引脚排列、硬件组成、工作特点和指令系统等

9、方面兼容。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位漏极

10、开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。 当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。 在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验 时,需要外部上拉电阻。 P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入 口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 此外,P1.0和P

11、1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX)。 在flash编程和校验时,P1口接收低8位地址字节。 引脚号第二功能 P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出 P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制) P1.5 MOSI(在系统编程用) P1.6 MISO(在系统编程用) P1.7 SCK(在系统编程用) P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个TTL 逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口

12、使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(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”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被

13、外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为AT89S52特殊功能(第二功能)使用。端口引脚 第二功能端口引脚第二功能P3.0RXDP3.1TXDP3.2INT0P3.3INT1P3.4T0P3.5T1P3.6WRP3.7RDP3口还接收一些用于闪烁存储器编程和程序校验的控制信号。RST:复位输入。当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。ALE/:当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是

14、:每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。这个位置后只有一条MOVX和MOVC指令ALE才会被应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的PSEN 信号不出现。EA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。需要注意的是

15、:如果加密位LBI被编程,复位时内部会锁存EA端状态。如EA端为高电平,CPU则执行内部程序存储器中的指令。闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1:震荡器反相放大器及内部时钟发生器的输入端。XTAL2:震荡器反相放大器的输出端。时钟震荡器:AT89C52中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自然震荡器。 外接石英晶体及电容C1,C2接在放大器的反馈回路中构成并联震荡电路。对外接电容C1,C2虽然没

16、有十分严格的要求,但电容容量的大小会轻微影响震荡频率的高低、震荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF10PF,而如果使用陶瓷振荡器建议选择40PF10PF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2则悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。 电路内部振荡 外部振荡电路 2.ADC0808芯片a.引脚图:b. 主要特性 1)8路输

17、入通道,8位AD转换器,即分辨率为8位。 2)具有转换起停控制端。 3)转换时间为100s(时钟为640kHz时),130s(时钟为500kHz) 4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。C. 外部特性(引脚功能)IN0IN7:8路模拟量输入端。 DB0-DB7:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。 START: AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使080

18、9复位,下降沿启动A/D转换)。 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的亮灭的不同组合可用来显示数字

19、09及小数点“.”。数码管又分为共阴极和共阳极两种结构。结构和接法分别如下图:2. 静态显示方式直接利用并行口输出。LED显示工作于静态显示方式时,各位的共阴极连接在一起接地;每位的段选线分别于一个8位的锁存输出相连。一般称之为静态显示,是由于显示器中的各位相互独立。而且各位的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。3. 动态显示方式对多位LED显示器的动态显示,通常都时采用动态扫描的方法进行显示,即逐个循环点亮各位显示器。这样虽然在任一时刻只有一位显示器被点亮,但是由于间隔时间较短,且人眼具有视觉残留效应,看起来与全部显示器持续点亮一样。4.显示电路:2. A/

20、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。采用中断控制的方式实现,不浪费时间,效率较高。这里设计将实际的模拟信号采集电路简化成一个分压电路模型如下图所示分压电路模型

21、3.晶振电路晶振电路用于产生单片机工作所需的时钟信号,使用晶体震荡器时,c2,c3取值2040PF,使用陶瓷震荡器时c1 擦取值3050PF。在设计电路板时,晶振和电容应尽量靠近芯片,以减小分布电容,保证震荡器的稳定性。18引脚接XTAL1,19引脚接XTAL2,20引脚接地五.软件设计5.1汇编流程图:1.主汇编流程图:开始系统初始化启动A/D转换采集A/D转换值数据转换Y调用显示四位是否显示完?完?读电压值YNEND主程序流程图转换结束?YN2.A/D转换测量程序开始启动转换读取数据0808地址加1小于FFFF?结束中断请求中断服务YN A/D转换测量程序流程图3.显示程序流程图读取判断单

22、元显示通道号显示电压整数部分显示电压小数部分返回开始程序32H30H31H显示程序流程图5.2汇编程序清单LED_0 EQU 30H;存放三个数码管的段码LED_1 EQU 31HLED_2EQU 32H ADC EQU 35H;存放AD转换后的数据ST BIT P3.2OE BIT P3.0EOC BIT P3.1ORG 0000HLJMPMAINORG0030HMAIN:MOVLED_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

23、 ST;启动AD转换 JNB EOC,$;等待转换结束 SETB OE;允许输出 MOV ADC ,P1;暂存转换结果 CLR OE;关闭输出 LCALL CONVERT;调用数据处理子程序 LCALL DISPLAY;调用显示程序,显示转换的值 SJMP WAIT;*;将AD转换输出的数据转换成相应的电压值;*CONVERT:MOVA,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,

24、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,#51DIV AB JB F0,LOOP3 ADD A,#5LOOP3:MOV LED_0,A;小数后的第二位存入LED_0中 RET;*; 显示程序;*DISPLAY:MOVA,LED_0;数码显示子程序MOV DPTR,#TABLE ;送段码表首地址 MOVC A,A+DPTR SETB P2.

25、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;将位段码送给P

26、0口 LCALL DELAY ;调用延时程序 CLR P2.1;关闭个位显示MOV A,#00MOV DPTR,#TABLEMOVC A,A+DPTRSETB P2.0MOV P0,ALCALL DELAYCLR P2.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;共阳极09十个段码TABLE2:DB 40H,79H,24H,30H,19H,12H;带小数点的09十个段码

27、 END5.3 程序说明由于单片机AT89C51为8位处理器,当输入电压为5.00V时,ADC0808输出数据值为255(FFH),因此单片机最高的数值分辨率为0.0196V(5/255)。这就决定了电压表的最高分辨率只能到0.0196V,从上表可看到,测试电压一般以0.01V的幅度变化。 从从实验中出,简易数字电压表测得的值基本上比标准电压值偏大0-0.01V,这可以通过校正ADC0808的基准电压来解决。因为该电压表设计时直接用5V的供电电源作为电压,所以电压可能有偏差。当要测量大于5V的电压时,可在输入口使用分压电阻,而程序中只要将计算程序的除数进行调整就可以了。六.调试仿真电路在pro

28、teus中的仿真图如下:123仿真结果:输入的电压从05V变化时,数字电压表能够测量出并利用数码管显示出来。测量的精度与要求的一致,前两位精确,百分位不作精确。要更精确,只需修改相应的源程序代码即可。七.设计总结与致谢通过这次设计,我学到了许多课外的东西,加深了对单片机等知识的了解,提高了应用思考和设计能力。在分析设计课题,查阅资料,了解设计原理并进行仿真的过程中尽管遇到了些许问题,但在老师的指导下,最终独立地完成了任务,不仅锻炼了分析解决问题的能力,更重要的是加强了我对电子应用学习的兴趣。在设计的过程中老师给予一定的启发和指导,并叮嘱我们独立认真完成本次课程设计,在此表示衷心的感谢。八参考文

29、献1 单片机微型计算机原理及应用 鲍小南等编著 浙江大学出版社2 .单片机课程设计指导楼然苗、李光飞编著 .电子工业出版社,20073 单片机应用技术. 吴经国等编著 .中国电力出版社,2000 4 8052单片机实践与应用 吴金戌 沈庆阳 郭庭青 编著 清华大学出版社5 单片机原理及应用 余修武 编著 电子科技大学出版社6单片微型计算机原理、应用及接口技术张迎新主编,国防工业出版社7单片机原理与接口技术余锡存 主编 西安电子科技大学出版社8微型计算机技术及应用戴梅萼 编著 清华大学出版社9微型计算机原理及应用李伯成 主编 西安电子科技大学出版社 10微机原理与应用 张宗根 主编 陕西师范大学出版社

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

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号