1、- -2021年期末课程设计基于单片机的数字电压表系 别: 计算机与信息科学系 专 业: 08网络工程 指导教师: 新民 组 长: 威 3 组 员: 叶 琳 4 钦 8 连淑群 0 朝云 2 基于单片机的数字电压表摘要: 在电路设计中我们时常会用到电压表,过去大局部电压表还是模拟的,虽然精度较高但模拟电压表采用用指针式,里面是磁电或电磁式构造,所以响应较慢。为适应许多高速信号领域目前已广泛使用数字电压表。本设计是基于Atmel51单片机开发平台和自动控制原理的根底上实现的一种数字电压表系统。该系统采用Atmel89C51单片机作为控制核心,以ADC0808为数据采样系统,实现被测电压的数据采样
2、;使用系列比拟器检测输入电压的围,并通过继电器阵列实现了输入量程的自动转换;使用共阴极数码管显示被测电压。关键词:单片机、电压检测、模数转换、Abstract:In circuit design, we often use voltage meter,Over the past most of the voltage meter or a simulation,Although high precision analog voltage used in the table, but with the pointer, which is a magnetic or electromagnetic
3、 structure,so the slow responseTo meet the many areas of high-speed signal has been widely used digital voltmeterThe design is based on Atmel51 microcontroller development platform and automatic control based on the principle of a digital voltage meter systemThe system uses Atmel89C51 microcontrolle
4、r as the control core, ADC0808 for the sampled data system, data sampling to achieve the measured voltage;Series pared with the range of detected voltage, and relay array to achieve through the automatic conversion of the input range; using mon cathode LED display the measured voltageKey words: Sing
5、le Chip Micyoco、Voltage detection、Analog Digital Conversion目 录摘要1第一章 3第二章 4第三章 63.1.63.2 73.3 83.49第四章 104.1 。04.2 011附 录第一章 引 言电子电压表主要用于测量各种高、低频信号电压,它是电子测量中使用最广泛的仪器之一。根据测量结果的显示方式及测量原理不同,电压测量仪器可分为两大类:模拟式电压表(AVM和数字式电压表DVM。模拟式电压表是指针式的,多用磁电式电流表作为指示器,并在表盘上刻以电压刻度。数字式电压表首先将模拟量经模数A/D转换器变成数字量,然后用电子计数器计数,并以十
6、进制数字显示被测电压值。众所周知,模拟电压表精度较高,曾经有很广阔的市场,现在依然有不少工程师依然在使用模拟电压表。确实模拟电压表在显示测量值方面精度校准,然而却也存在问题。模拟电压表采用用指针式,里面是磁电或电磁式构造,所以其响应速度较慢。然而在高速开展的当今社会,高速信号处理的需求越来越多,由于模拟电压表响应速度较慢已经不适用与高速信号领域,取而代之的将是数字电压表。但数字电压表由于存在采样误差,精度不是很高。不过目前可以通过技术手段来缩小误差。使其精度到达与模拟电压表一样准确甚至更高。可见将来数字电压表必将取代模拟电压表。现在有越来越多的数字测量仪器的出现但原理皆与数字电压表殊途同归,因
7、此研究数字电压表有着很大现实意义。第二章 开发平台Keil:开发工具Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、构造性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能表达高级语言的优势。Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在的完整开发方案,通过一个集成开发环境
8、uVision将这些局部组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选目前在国你只能买到该软件、而你买的仿真机也很可能只支持该软件,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。Proteus ISIS:仿真工具Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Win
9、dows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量
10、、存放器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。第三章 设计思想和原理图3.1 数字电压表的介绍数字电压表简称DMM(Digtial Multimeter)。它是采用数字化测量技术,把连续的模拟量转换成不连续的、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单精度低,不能满足数字化时代的需求,采用单片的数字电压表,精度高、抗干扰能力强,可扩展尾强、集成方便,目前,由各种单片机芯片构成的数字电
11、压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。数字电压表具有以下几点特点:1显示清晰直观,计数准确2显示位数4分辨力高5测试功能强6测量围宽7测量速率快8输入阻抗高9集成度高,微功耗10保护功能完善,抗干扰能力强3.2 数字电压表的硬件介绍及总体框架图 电流A/D电压信号AT89C51模块复位电路晶阵电路4位LED显示驱动电路功能键总体设计框架图框图功能说明:A/D转换器:将输入的模拟信号转换成数字信号。基准电源: 提供精细电压,供A/D转换器作参考电压。译码器: 将二-十进制BCD码转换成七段信号。驱动器: 驱动显示器的a、b、c、d、e
12、、f、g七个发光段,驱动发光数码管LED进展显示。显示器: 将译码输出的七段信号进展数字显示,读出A/D转换结果。3.3 选用芯片介绍用单片机AT89C51与ADC0808设计一个数字万用表,配合分流电阻、分压电阻、基准电阻可以测量交、直流电压值,四位数码显示,实现直流电压测量,其量程围是0V5V。芯片功能简介3.3-1 AT89C51介绍 AT89C51芯片图AT89C51是一个低电压,高性能CMOS8位单片机带有4K字节的可反复擦写的程序存储器PENROM。和128字节的存取数据存储器RAM,这种器件采用ATMEL公司的高密度、不容易丧失存储技术生产,并且能够与MCS-51系列的单片机兼容
13、。片含有8位中央处理器和闪烁存储单元,有较强的功能的AT89C51单片机能够被应用到控制领域中。功能特性:AT89C51提供以下的功能标准:4K字节闪烁存储器,128字节随机存取数据存储器,32个I/O口,2个16位定时/计数器,1个5向量两级中断构造,1个串行通信口,片震荡器和时钟电路。另外,AT89C51还可以进展0HZ的静态逻辑操作,并支持两种软件的节电模式。闲散方式停顿中央处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存随机存取数据存储器中的容,但震荡器停顿工作并制止其它所有部件的工作直到下一个复位。3.3-2、ADC0808介绍ADC
14、0808是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。ADC0808的部逻辑构造 ADC0808的部逻辑构造上图可知,ADC0808由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进展转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。外部引脚构造 ADC0808引脚构造图功能介绍:IN0IN7:8条模拟量输入通道 ADC0808对输入模拟量要求:信号单极
15、性,电压围是05V,假设信号太小,必须进展放大;输入的模拟量在转换过程中应该保持不变,如假设模拟量变化太快,那么需在输入前增加采样保持电路。 地址输入和控制线:4条 ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进展锁存,经译码后被选中的通道的模拟量进转换器进展转换。A,B和C为地址输入线,用于选通IN0IN7上的一路模拟量输入。ADC0808应用说明:1ADC0808部带有输出锁存器,可以与AT89C51单片机直接相连。 2初始化时,使ST和OE信号全为低电平。 3送要转换的哪一通道的地址到A,B,C端口上。 4在ST端给出一个
16、至少有100ns宽的正脉冲信号。 5是否转换完毕,我们根据EOC信号来判断。 6当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机3.3-374LS74介绍(74LS74引脚介绍)在输入信号为单端的情况下,D触发器用起来最为方便,其状态方程为Qn+1Dn,其输出状态的更新发生在CP脉冲的上升沿,故又称为上升沿触发的边沿触发器,触发器的状态只取决于时钟到来前D端的状态,D触发器的应用很广,可用作数字信号的存放,移位存放,分频和波形发生等。3.4 单片机系统介绍3.4-1单片机最小系统 (U1)单片机最小系统包括复位电路,电源电路。3.4-2 A/D转换电路系统 (U2)利用ADC
17、0808作为AD数据采样器件, ADC0809是CMOS单片型逐次逼近式AD转换器它由8路模拟开关、地址锁存与译码器、比拟器、8位开关树型DA转换器、逐次逼近。ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比拟器。START上升沿将逐次逼近存放器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进展。直到AD转换完成,EOC变为高电平,指示AD转换完毕,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门翻开,转换结果的数字量输出到数据总线上3.4-3 74LS74触发器系统 (U
18、3)在输入信号为单端的情况下,D触发器用起来最为方便,其状态方程为Qn+1Dn,其输出状态的更新发生在CP脉冲的上升沿,故又称为上升沿触发的边沿触发器,触发器的状态只取决于时钟到来前D端的状态,D触发器的应用很广,可用作数字信号的存放,移位存放,分频和波形发生等。3.4-4 LCD数码显示系统用二进制数码表示,为了能直观地读出信号大小的数值,需经过数码变换(译码)后由数码管或液晶屏显示出来。3.5 系统流程图软件局部采用模块化程序设计的方法,由单片机控制主程序、A/D转换子程序、电压检测及触发器系统、液晶显示组成。系统软件设计是在ISIS 7 Professional编译环境下进展的,由于汇编
19、语言程序性能好,所以提高了编程的效率。 第四章 软件仿真及测试数据4.1 仿真测试翻开ISIS 7 Professional编译环境下将写好的程序参加到仿真软件中点击运行,观察数码管显示数值与图中输入电压进展比拟,并调节电压值。观察结果测量误差有多大。由于仿真软件缺少相应器材,故而未能进展彻底仿真。总体电路图:测试结果: 附 录主程序:CHEQU 30H DPTEQU 31H DPBUFEQU 33H GDATAEQU 32H STBIT P3.0 OEBIT P3.1 EOCBIT P3.2 ORG 00H LJMP START ORG 0BH LJMP T0X ORG 30H START:
20、MOV CH,#0BCH MOV P3,CH /通道3MOV DPT,#00H MOV R1,#DPT MOV R7,#5 MOV A,#10 MOV R0,#DPBUF LOP:MOV R0,A INC R0 DJNZ R7,LOP MOV R0,#00H INC R0 MOV R0,#00H INC R0 MOV R0,#00H MOV TMOD,#01H MOV TH0,#(65536-4000)/256 MOV TL0,#(65536-4000) MOD 256 SETB TR0 SETB ET0 SETB EA WT:CLR ST SETB ST CLR ST WAIT:JNB EO
21、C,WAIT SETB OE MOV GDATA,P0 CLR OE mov dptr,#tab ;将AD转换结果转换成BCD码 mov a,GDATA movc a,a+dptrmov b,#2div abmov r1,bmov b,#10div ab mov 38H,a mov 39H,b cjne r1,#01,kk1 mov 3AH,#05back: SJMP WT kk1: mov 3AH,#00 ajmp back /MOV A,GDATA /MOV B,#100 /DIV AB /MOV 33H,A /MOV A,B /MOV B,#10 /DIV AB /MOV 34H,A /
22、MOV 35H,B /SJMP WT T0X:NOP MOV TH0,#(65536-350)/256 MOV TL0,#(65536-350) MOD 256 MOV A,#0FFHMOV P2,A /清屏 MOV A,DPT CJNE A,#5,NEXMOV DPTR,#DPCD MOV A,DPT ADD A,#DPBUF MOV R0,A MOV A,R0 MOVC A,A+DPTR ORL A,#080HMOV P1,A SJMP NEX1NEX: MOV DPTR,#DPCD MOV A,DPT ADD A,#DPBUF MOV R0,A MOV A,R0 MOVC A,A+DPT
23、R MOV P1,A NEX1: MOV DPTR,#DPBT MOV A,DPT MOVC A,A+DPTR MOV P2,A INC DPT MOV A,DPT CJNE A,#8,NEXT MOV DPT,#00H NEXT:RETI DPCD:DB 3FH,06H,5BH,4FH,66H DB 6DH,7DH,07H,7FH,6FH,00H DPBT:DB 0FEH,0FDH,0FBH,0F7H DB 0EFH,0DFH,0BFH,07FH .tab:db 0,0, 0,1,0,2,0,0,3,0db4,0,0,5,0,6,0,0,7,0db8,0,0,9,0,0,10,0,11,0d
24、b0,12,0,13,0,0,14,0,15,0db0,16,0,17,0,0,18,0,19,0db0,20,0,0,21,0,22,0,0,23db0,24,0,0,25,0,26,0,0,27db0,28,0,0,29,0,0,30,0,31db0,0,32,0,33,0,0,34,0,35db0,0,36,0,37,0,0,38,0,39db0,0,40,0,0,41,0,42,0,0db43,0,44,0,0,45,0,46,0,0db47,0,48,0,0,49,0,50,0,0db51,0,0,52,0,53,0,0,54,0db55,0,0,56,0,57,0,0,58,0db59,0,0,60,0,0,61,0,62,0db0,63,0,64,0,0,65,0,66,0db0,67,0,68,0,0,69,0,70,0db0,71,0,0,72,0,73,0,0,74db0,75,0,0,76,0,77,0,0,78db0,79,0,0,80,0,0,81,0,82db0,0,83,0,84,0,0,85,0,86db0,0,87,0,88,0,0,89,0,90db0,0,91,0,0,92,0,93,0,0db94,0,95,0,0,96,0,97,0,0db98,0,99,0,0,100,0,0,0END- word.zl