基于51单片机的数字电压表设计.doc

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

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

1、苏州市职业大学毕 业 设 计 说 明 书毕业设计题目 基于51单片机的数字电压表设计 学 院 电子信息工程学院 专业班级 10电气4班 姓 名 魏达 学 号 107301434 指导教师 2013年5月18日摘要数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。数字电压表自从一九五二年问世以来,随着电子技术的飞跃发展,特别是目前,作为测量仪表、模拟指示仪表的数字化以及自动测量的系统,而得到了很大的发展。数字电压表是从电位差计的自动化这种想法研制出来的,因此即便是最初的数字电压表,其精度也要比模拟式仪表高,而其成本比电位差计

2、也高。以后,DVM的发展就着眼在高精度和低成本两个方面。单片机可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。本电路主要采用AT89S51芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的05 V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示。该电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片AT89S51来完成,其负责把ADC0809传送来的数字量经一定的数据处理,产生相应的显示码送到

3、显示模块进行显示;另外它还控制着ADC0809芯片的工作。关键词: 单片机 数字电压表 AT89S51 A/D转换 ADC0809AbstractDigital voltage meter DVM, It is the use of digital measurement technology, The continuous analog (DC input voltage) into discontinuous, discrete digital form and to display. Since 1952 since the advent of digital voltage meter

4、, With the rapid development of electronic technology, At present, especially, As the digital measuring instrument, analog gauges and automatic measurement system, achieved great development. Digital voltage meter is developed from the potential difference that automation meter, Therefore even the f

5、irst digital voltage meter, Its accuracy is compared to the analog meter high, the cost is higher than potential difference meter. The development of DVM, aimed at the high precision and low cost two aspects. SCM can be done alone modern industrial control intelligent control functions required, thi

6、s is the biggest feature of SCM. The circuit mainly uses the AT89S51 chip and the ADC0809 chip to complete a simple digital voltage meter , can measure DC voltage to the input analog 0 5 V, And the 7 LED digital display through an integration of the 4 tube. The circuit of the voltage meter mainly co

7、nsists of three modules: The A/D conversion module, data processing module and display control module. A/D conversion is mainly completed by the ADC0809, It is responsible to collect the analog conversion to digital quantity corresponding to the data processing module. Data processing is done by the

8、 AT89S51 chip, It is responsible for the digital ADC0809 transmission to the data processing and Generates code to display the display module to display the corresponding,It also controls the ADC0809 chip workKeywords : SCM Digital Voltmeter AT89S51 A/D conversion ADC080目录摘要iAbstractii第一章 设计相关说明11.1

9、设计目的11.2设计要求11.3设计思路11.4方案选择1第二章 主要单元电路元件介绍32.1 控制芯片AT89S5132.1.1单片机引脚32.1.2 主要性能参数42.2模数转换芯片ADC080952.2.1 ADC0809的工作原理52.2.2 ADC0809引脚功能62.2.3 ADC0809内部结构72.3 双D正沿触发器74LS7482.4 SEG-MPX4数码管9第三章 硬件电路设计分析113.1电源部分113.2 AD转换电路113.3单片机最小系统设计123.4数码管显示电路13第四章 程序设计154.1主程序设计154.2 A/D转化程序设计框图164.3显示模块程序框图1

10、7第五章 Protues仿真185.1软件简介185.2硬件仿真195.3调试结果分析20参考文献22附录A电路原理图23附录B程序代码24第一章 设计相关说明1.1设计目的通过制作简易数字电压表,加深对所学专业知识的认识,提高分析、解决工程实际问题的能力,提高对单片机的应用能力,提高收集文献、资料的能力,从而达到综合运用所学的专业知识进行电子产品设计、制作与调试的能力。1.2设计要求基本功能:1) 能用数码管显示电压值2) 测量精度达0.05V3) 自制直流稳压电源4) 系统具备复位功能1.3设计思路根据设计的要求,我们通过Protues软件对硬件进行仿真设计,其中电压表设计模块包括:电压采

11、集模块、A/D转换模块 、主控模块、显示模块、电源模块。1.4方案选择控制与运算核心的选择:应用AT89S51作为控制器。51系列优点之一是它从内部的硬件到软件有一套完整的按位操作系统,称作位处理器,或布尔处理器。它的处理对象不是字或字节而是位。它不光能对片内某些特殊功能寄存器的某位进行处理,如传送、置位、清零、测试等,还能进行位的逻辑运算,其功能十分完备,使用起来得心应手。而且,51系列的I/O脚的设置和使用非常简单,当该脚作输入脚使用时,只须将该脚设置为高电平(复位时,各I/O口均置高电平)。当该脚作输出脚使用时,则为高电平或低电平均可。低电平时,吸入电流可达20mA,具有一定的驱动能力;

12、而为高电平时,输出电流仅数十A甚至更小(电流实际上是由脚的上拉电流形成的),基本上没有驱动能力。AD转换的选择:ADC0809是8位ADC芯片,它是采用逐次逼近的方法完成A/D转换的ADC0809由单一+5V电源供电,片内有带锁存功能的8路模拟多路开关,可对8路05V的输入模拟电压信号分时进行转换,完成一次转换约需100us;输出具有TTL三台锁存缓冲器,可以直接接到单片机数据总线上。通过适当的外接电路,ADC0809可对0到5V的双级性模拟信号进行转换。如图1-4数字电压表的设计框图。图1-4 数字电压表设计框图第二章 主要单元电路元件介绍2.1 控制芯片AT89S512.1.1单片机引脚图

13、2-1-1 80C51引脚总线型DIP40引脚封装电源引脚(2个)VCC:接+5V电源。GND:接地端。外接晶体引脚(2个)XTAL1:外接晶振输入端(采用外部振荡器时,此引脚接地)。XTAL2:外接晶振输入端(采用外部振荡器时,此引脚作为外部振荡信号输入端)。并行输入/输出引脚(32个)P0.0P0.7:通用I/O引脚。P1.0P1.7:通用I/O引脚。P2.0P2.7:通用I/O引脚或数据低8位地址总线复用引脚。P3.0P3.7:通用I/O引脚或第二功能引脚(RXD、TXD、INT0、INT1、T0、T1、 WR 、RD)。控制引脚(4个)RST/VPD:复位信号输入引脚/备用电源输入引脚

14、。ALE/PROG:地址锁存允许信号输出引脚/编程脉冲输入引脚。EA/VPP:内、外存储器选择引脚/片内EPROM(或Flatiron)编程电压输入引脚。PSEN:片外程序存储器读选通信号输出引脚2.1.2 主要性能参数与MCS-51产品指令系列完全兼容;4K字节在系统编程(ISP)Flash闪速存储器;1000次擦写周期;4.05.5 V工作电压范围;全静态工作模式:0Hz33MHz;三级程序加密锁;128字节内部RAM;32个可编程I/O口线;2个16位的定时/计数器;6个中断源全双工串行UART通道;低工耗空闲和掉电模式;中断可从空闲模式唤醒系统;看门狗(WDT)及双数据指针;掉电标识和

15、快速编程特性;灵活的在系统编程(ISP-字节或页写模式)。如图2-1-2 AT89S51芯片内部总体结构图。 图2-1-2 AT89S51芯片内部总体结构图2.2模数转换芯片ADC08092.2.1 ADC0809的工作原理首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上

16、。2.2.2 ADC0809引脚功能IN0IN7:8个模拟量的输入端。D0D7:8位数字量输出端。START:启动A/D转换,加正脉冲后A/D转换开始。EOC:转换结束信号。转换开始时,EOC信号变低电平;转换结束时,EOC信号返回高电平。该信号可以作为CPU查询A/D转换是否完成的信号,也可以作为向CPU发出中断申请的信号。OE:输出允许信号,输入高电平有效。OE端的电平由低变高时,转换结果被送到数据线上。此信号有效时,CPU可以从ADC0809中读取数据,同时也可以作为ADC0809的片选信号。CLK:实时时钟,频率范围为10KHZ1280KHZ,典型值为640KHZ。ALE:通道地址锁存

17、允许信号,输入高电平有效。在ALE=1时,锁存ADDAADDC,选中模拟量输入。ADDCADDC:通道地址选择输入,其排列顺序从低到高依次为ADDA 、ADDB、 ADDC。该地址与8个模拟量输入,通道的对应关系如表1所示:VREF+、VREF-正负参考电压。一般情况下,VREF+接+5V,VREF-接地。VCCGND:工作电源和接地如图2-2-2 ADC0809引脚图。图2-2-2 ADC0809引脚图8位模拟开关地址锁存与译码8位A/D转换器三态输出锁存缓冲器IN0IN7IN1IN2IN3IN4IN5IN626272812345ADDAADDBADDCALE25242322610START

18、CLK9 V+V V-V1216ADC08097EOC212019188151417D7D6D5D4D3D2D1D011132.2.3 ADC0809内部结构图2-2-3 ADC0809内部结构ADC0809的内部结构如图2-2-3所示,它包含以下几部分:(1)8路模拟量选择开关根据地址锁存与译码装置所提供的地址,从8个输入的0V5V模拟量中选择一个输出。(2)8位A/D转换器能对所选择的模拟量进行A/D转换。(3)3位地址码的锁存与译码装置对所输入的3位地址码进行锁存和译码,并将地址选择结果送给8路模拟量选择开关。(4)三态输出的锁存缓冲器是TTL结构,负责输出转换的最终结果。此结果可直接连

19、接到单片机的数据总线上。(5)图中多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表2-2所示。表2-2 ADC0809通道选择表 C(ADDC)B(ADDB)A(ADDA)选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN72.3 双D正沿触发器74LS7474LS74这个集成块是一个双D触发器,其功能比较的多,可用作寄存器,移位寄存器,振荡器,单稳态,分频计数器等功能。74LS74内含两个独立的D上升沿双d触发器,每个触发器有数据输入(

20、D)、置位输入()复位输入()、时钟输入(CP)和数据输出(Q、/Q)。、的低电平使输出预置或清除,而与其它输入端的电平无关。当、均无效(高电平式)时,符合建立时间要求的D数据在CP上升沿作用下传送到输出端。表2-3 74LS74引脚功能表脚号引脚代码引脚功能参数备注1CLR1复位信号9.10/4.381、该集成块为14脚封装。2、电源:14脚为+5.00V。3、复位:1脚、13脚。4、主要用途:双D触发器。2D1触发信号/4.713CK1时钟信号9.10/4.914PR1控制/4.685Q1同相位输出3.71/3.006反相位输出/6.287GND地0/08反相位输出/6.289Q2同相位输

21、出3.71/3.0010PR2控制0.21/0.2111CLK2时钟信号/4.2012D2触发信号0.33/0.3313CLR2复位信号9.10/4.3814Vcc电源0.21/0.21图2-3 74LS74引脚图 2.4 SEG-MPX4数码管本实验的显示模块主要由一个4位一体的7段LED数码管构成,用于显示测量到的电压值。它是一个共阳极的数码管。每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收AT89S51产生的显示段码。1,2,3,4引脚端为其位选端,用于接收AT89S51的P3口产生的位选码。在此电路中,通过P1口控制数码管的段选信号,通过朋P2.4P2.7控

22、制数码管的位选信号。图2-4 四位一体数码管实物图第三章 硬件电路设计分析3.1电源部分电源部分电路主要是要求能提供稳定可靠的电压,使整个系统能正常的工作。采用220V的工频交流电压,而单片机的工作电压是直流+5V,为此,先通过一个普通的变压器降低电压,再通过桥式整流,然后再通过7805芯片的进一步稳压,确保+5V电源的稳定、可靠。而且7805集成稳压器是常用的固定输出+5V电压的集成稳压器。它的内部含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源,工作稳定可靠。1脚为输入端,2脚为接地端,3脚为输出端,使用十分方便,可以在任何有交流电压的地方使用,不需另带电池。通过

23、整流滤波以后输出直流电压,为了确保整个电路能正常工作,考虑到不接负载或电源电压有波动时电容能承受的耐压,必须加电容。发光二极管D2点亮表示电源电路正常工作,其电源电路如图3-1所示:图 3-1 电源电路3.2 AD转换电路A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。随着大规模集成电路的发展,目前不同厂家已经生产出了多种型号的A/D转换器,以满足不同应用场合的需要。如果按照工作原理划分,ADC主要有4种类型,即双积分式A/D转换器、逐次逼近式A/D转换器和并行式A/D转换器和计数比较式A/D转换器。目前最常用的是双积分和逐次逼近式。图3-2 A/

24、D转换电路图3.3单片机最小系统设计单片机内部每个部件要想协调一致地工作,必须在统一口令时钟信号的控制下工作。单片机工作所需要的时钟信号有两种产生方式,即内部时钟方式和外部时钟方式。图3.5是内部时钟方式:单片机内部有一个构成振荡器的增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输入端,这个放大器与作为反馈元件的片外晶振一起构成自激振荡器。在该图中,电容C1和C2取20PF,晶体的振荡频率取12MHz,晶体振荡频率高,则系统的时钟频率也高,单片机运行速度也就快。图3-3 单片机最小系统电路图3.4数码管显示电路本电路的显示模块主要由一个4位一体的7段LED数码管构成,用于显

25、示测量到的电压值。它是一个共阳极的数码管,每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收AT89S51的P1口产生的显示段码。1,2,3,4引脚端为其位选端,用于接收AT89S51的P3口产生的位选码。本系统采用动态扫描方式。扫描方法是用其接口电路把所有数码管的8个比划段ag和DP同名端连在一起,而每一个数码管的公共极COM各自独立地受I/O线控制。CUP从字段输出口送出字型码时,所有数码管接收到相同的字型码,但究竟是哪个数码管亮,则取决于COM端。COM端与单片机的I/O接口相连接,由单片机输出位位选码到IO接口,控制何时哪一位数码管被点亮。在轮流点亮数码管的位扫

26、描过程中,每位数码管的点亮时间极为短暂。但由于人的视觉暂留现象,给人的印象就是一组稳定显示的数码。动态方式的优点是十分明显的,即耗电省,在动态扫描过程中,任何时刻只有一个数码管是处于工作状态的。具体原理图如图3-4所示图3-4 显示电路图第四章 程序设计4.1主程序设计初始化中主要对AT89S51,ADC0809的管脚和数码管的位选及所用到的内存单元进行初始化设置。准备工作做好后便启动ADC0809对IN0脚输入进的05V电压模拟信号进行数据采集并转换成相对应的0255十进制数字量。在数据处理子程序中,运用标度变换知识,编写算法将0255十进制数字量转换成0.005.00V的数据,输出到显示子

27、程序进行显示。整个主程序就是在A/D转换,数据处理及显示程序循环执行。整个程序流程框图如下图所示。4-1主程序流程图4.2 A/D转化程序设计框图启动ADC0809对模拟量输入信号进行转换,通过判断EOC(P3.2引脚)来确定转换是否完成,若EOC为0,则继续等待;若EOC为1,则把OE置位,将转换完成的数据存储到dispbuf数组中。程序流程图如下图所示:4-2 A/D转换程序流程图4.3显示模块程序框图显示子程序采用动态扫描法实现四位数码管的数值显示,在定时器中断里实现。测量所得的A/D转换数据放在dispbuf数组中,测量数据在显示时需转换成10进制BCD码。用单片机的P2.4P2.7作

28、为数码管的位选,P1口作为数码管的段选。程序流程图如下图所示。4-3显示子程序流程图第五章 Protues仿真5.1软件简介Proteus 是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:ARM7(

29、LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。图5-1Protues界面5.2硬件仿真通过Prtotues仿真,实现数字电压表的模拟调试工作。图5-2-1 数字电压表硬件仿真图设定模

30、拟电压值图5-2-2模拟设定电压值位3.55V模拟结果显示在数码管中图5-2-3采集到的电压值显示在数码管上5.3调试结果分析在系统上电开始测量前,首先在Protues上模拟硬件仿真是否正确,如果设计的电路可行,再在电路板上焊接,在这里只进行Protues的仿真工作。同时焊接电路板时要注意一下情况:要用万用表的电压档对被测电压进行估测,然后以此选择适当的量程,防止过大电压烧坏A/D转换器。首先用万用表按照原理图逐步检查印刷板中各器件的电源及各引脚的连接是否正确,有否断路、短路或者虚焊,尤其是给电路供电的电源部分要重点检查,用数字万用表测量7805输出端的电压是否为+5V,是否稳定,能够输出+5

31、V,且稳定即可说明电源电路的设计基本达到要求。如果电压没有达到要求,要及时排查给予解决,以免烧坏芯片和其他元器件。软件调试时先进行单元测试,分别对各个代码模块进行测试,看其是否实现了规定功能,再把已经测试过的模块组合起来进行测试,一旦不能正确运行,要找出程序中的错误,确定大致的出错位置,研究有关部分的错误程序,找出错误原因,修改设计和代码,以排除错误。我们在程序编写完成后,就可以利用仿真器进行初步调试,观察在计算机里能否通过编译与运行并达到设计的基本要求。在基本符合的情况下,利用仿真器与工作正常的硬件连接进行仿真调试;或用编程器把程序烧写到芯片中,直接观察能否正常运行。如果达不到设计要求或者不

32、能正常运行,可以直接在程序中进行修改。系统调试中遇到的问题及解决的方法:1)在应用滤波电容的过程中,一开始是把电容串联在电路中,导致电路无法导通,而后我们短路电容,解决了问题。2)电源指示灯上,一开始发现接上电源,指示灯不亮,经过仪器测量发现正负极接反,后重新焊接,问题解决。3)由于源程序的多处错误,使得仿真无法通过,后经过单步调试,把存在的错误一一排除,通过了软件仿真。4)在烧录芯片的过程中,由于选择烧录文件的错误及芯片自身问题(因多次烧录,无法再次烧录)使得烧录失败,后经过老师指导并更换了AT89C51芯片,解决了问题。 参考文献1 作者:陈洁,EDA软件仿真技术快速入门-Protel99

33、e+Multisim+Protues 7,中国电力出版社2009年。2 作者:魏立峰,单片机原理及应用技术,北京大学出版社2006年。3 作者:陈光绒,单片机技术应用教程,北京大学出版社2005年。4 作者:李广弟,单片机基础,北京航空航天大学出版社2007年。.5 作者:刘树林,低频电子线路,电子工业出版社2003年。6 作者:何宏,单片机原理与接口技术,国防工业出版社2006年7 作者:张志良,单片机原理与控制技术,机械工业出版社2001年。8 作者:郭强,液晶显示器件应用技术,北京邮电学院出版社1993年。9 作者: 王辛之,AT89系列单片机原理与接口技术,北京航空航天大学出版社200

34、4年。附录附录A电路原理图MCU部分 电源部分附录B程序代码#include Unsigned char code dispbitcode=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; unsigned char code dispcode=0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00; unsigned char dispbuf8=10,10,10,10,10,0,0,0; unsigned char dispcount; unsigned char getdata; unsigned i

35、nt temp; long int i; 代替原来的unsigned char i; sbit ST=P30; sbit OE=P31; sbit EOC=P32; sbit CLK=P33; void main(void) ST=0; OE=0; ET0=1; ET1=1; EA=1; TMOD=0x12; TH0=216; TL0=216; TH1=(65536-5000)/256; TL1=(65536-5000)%256; TR1=1; TR0=1; ST=1; ST=0; while(1) if(EOC=1) OE=1; getdata=P0; OE=0; i=getdata*196

36、;dispbuf5=i/10000; i=i%10000; dispbuf6=i/1000;i=i%1000; dispbuf7=i/100;/*原来的:temp = getdata * 235;temp=temp/128;i=5;dispbuf0=10;dispbuf1=10;dispbuf2=10;dispbuf3=10;dispbuf4=10;dispbuf5=0;dispbuf6=0;dispbuf7=0;while(temp/10) dispbufi=temp%10;temp=temp/10;i+;dispbufi=temp; */ ST=1; ST=0; void t0(void) interrupt 1 using 0 /定时器0中断服务 CLK=CLK; void t1(void) interrupt 3 using 0 /定时器1中断服务 TH1=(65536-6000)/256; TL1=(65536-6000)%256; P1=dispcodedispbufdispcount; P2=dispbitcodedispcount; if(dispcount=5) P1=P1 | 0x80; dispcount+; if(dispcount=8) dispcount=0;

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号