课程设计(论文)-基于单片机的数字电压表设计.docx_第1页
课程设计(论文)-基于单片机的数字电压表设计.docx_第2页
课程设计(论文)-基于单片机的数字电压表设计.docx_第3页
课程设计(论文)-基于单片机的数字电压表设计.docx_第4页
课程设计(论文)-基于单片机的数字电压表设计.docx_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的数字电压表设计摘要: 在电路设计中我们时常会用到电压表,过去大部分电压表还是模拟的,虽然精度较高但模拟电压表采用用指针式,里面是磁电或电磁式结构,所以响应较慢。为适应许多高速信号领域目前已广泛使用数字电压表。本设计是基于Atmel51单片机开发平台和自动控制原理的基础上实现的一种数字电压表系统。该系统采用Atmel89C52单片机作为控制核心,以ADC0809为数据采样系统,实现被测电压的数据采样;使用系列比较器检测输入电压的范围,并通过继电器阵列实现了输入量程的自动转换;使用共阴极数码管显示被测电压。关键词: 单片机、电压检测、模数转换、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 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 Atmel89C52 microcontroller as the control core, ADC0809 for the sampled data system, data sampling to achieve the measured voltage;Series compared with the range of detected voltage, and relay array to achieve through the automatic conversion of the input range; using common cathode LED display the measured voltageKey words: Single Chip Micyoco、Voltage detection、Analog Digital Conversion目 录摘 要1第一章 引 言3第二章 开发平台Keil42.1 系统概述42.2 整体架构5第三章 硬件设计思想和原理图63.1 系统总体设计框图63.2 单片机系统73.3 AD转换电路83.4 信号调理模块9第四章 软件设计与流程104.1 程序流图104.2 功能介绍10第五章 软件仿真及测试数据115.1 仿真结果11参考文献12附 录13第一章 引 言 电子电压表主要用于测量各种高、低频信号电压,它是电子测量中使用最广泛的仪器之一。根据测量结果的显示方式及测量原理不同,电压测量仪器可分为两大类:模拟式电压表(AVM)和数字式电压表(DVM)。模拟式电压表是指针式的,多用磁电式电流表作为指示器,并在表盘上刻以电压刻度。数字式电压表首先将模拟量经模数(A/D)转换器变成数字量,然后用电子计数器计数,并以十进制数字显示被测电压值。众所周知,模拟电压表精度较高,曾经有很广阔的市场,现在依然有不少工程师依然在使用模拟电压表。的确模拟电压表在显示测量值方面精度校准,然而却也存在问题。模拟电压表采用用指针式,里面是磁电或电磁式结构,所以其响应速度较慢。然而在高速发展的当今社会,高速信号处理的需求越来越多,由于模拟电压表响应速度较慢已经不适用与高速信号领域,取而代之的将是数字电压表。但数字电压表由于存在采样误差,精度不是很高。不过目前可以通过技术手段来缩小误差。使其精度达到与模拟电压表一样精确甚至更高。可见将来数字电压表必将取代模拟电压表。现在有越来越多的数字测量仪器的出现但原理皆与数字电压表殊途同归,因此研究数字电压表有着很大现实意义。第二章 开发平台KeilKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2.1 系统概述Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。2.2 整体架构C51工具包的整体结构较为丰富,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及C51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 使用独立的Keil仿真器时,注意事项 ) 仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 ) 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 ) 仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。第三章 硬件设计思想和原理图3.1 系统总体设计框图 本系统采样Atmel89C52单片机作为控制核心,以ADC0809为数据采样系统,实现被测电压的数据采样;使用系列比较器检测输入电压的范围,用共阴极数码管显示结果。 显示电路 输入电压 51单片机 极性检测 AD转换 电压检测3.2 单片机系统单片机最小系统包括复位电路,晶振电路,电源电路,仿真时需搭建复位电路和晶振电路。晶振电路: 单片机最小系统如下所示,其中P1口用于驱动数码管,P0口用于接收ADC0809转换的数据。P2口用于控制ADC0809。 单片机最小系统: 3.3 AD转换电路 利用ADC0809作为AD数据采样器件, ADC0809是CMOS单片型逐次逼近式AD转换器它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型DA转换器、逐次逼近。ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 AD转换,之后EOC输出信号变低,指示转换正在进行。直到AD转换完成,EOC变为高电平,指示AD转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。ADC0809各个管教功能:IN0IN7:8路模拟量输入端。2-12-8:8位数字量输出端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路ALE:地址锁存允许信号,输入,高电平有效。START: AD转换启动信号,输入,高电平有效。EOC: AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-):基准电压。Vcc:电源,单一5V。GND:地。ADC0809与单片机的连接。3.4 信号调理模块该部分主要实现的功能是自动量程切换和电压变换,模块主要由电压极性检测电路、电压范围粗测电路、电压变换电路三部分组成。电压极性检测电路电压极性检测电路采用过零比较器检测负电压的方式实现的,运算放大器LM324的反向端接地,同向端通过100K电阻接输入信号。电压范围粗测电路为了粗略地得到被测量的电压范围我们采用多组比较器的方式,通过阶梯式比较的方法确定输入电压的范围。量程切换电路电路由衰减电阻、切换继电器和运算放大器组成,对应的是衰减1/2、1/3、1/4和无零漂放大50倍,切换电路如图所示。电压变换到0-5V标准信号后,再由A/D转换进行采样,最后由单片机算法还原。第四章 软件设计与流程4.1 程序流图软件部分采用模块化程序设计的方法,由单片机控制主程序、A/D转换子程序、电压检测及继电器控制程序、液晶显示组成。系统软件设计是在KeilC编译环境下进行的,由于C语言程序可移植性好,所以提高了编程的效率。软件程序流程图:4.2 功能介绍P0首先接收数据,据此控制PC6,PC7实现电压转换,保证正电压输出。PB0,PB1,PB2,PB3,PA6的输入值通过PA1,PA2,PA3,PA4,PA5控制继电器1,2,3,4,5实现电压增减并输入A/D转换器MAX187进行测量。最后输入PB4,PB6,PB7并由输入数码管显示。第五章 软件仿真及测试数据5.1 仿真结果将写好的程序下载到仿真软件中的单片机中,点击运行,观察数码管显示数值与图中输入电压进行比较。理解其误差有多大。由于仿真软件缺少相应器材,故而未能进行彻底仿真。总体电路图:参考文献:1马潮 詹卫前 耿德根 编Atmel51原理及应用手册 清华大学出版社2 谭浩强 编C语言程序设计(第二版) 清华大学出版社3马潮 编AVR单片机嵌入式系统原理与应用实践 北京航空航天大学出版社附 录主程序:#includeUnsignedcharcode dispbitcode=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char dispbuf4;unsigned int i;unsigned int j;unsigned char getdata;unsigned int temp;unsigned int temp1;unsigned char count;unsigned char d;sbit ST=P30;sbit OE=P31;sbit EOC=P32;sbit CLK=P33;sbit P20=P20;sbit P21=P21;sbit P22=P22;sbit P23=P23;sbit P17=P17;void TimeInitial();void Delay(unsigned int i);void TimeInitial() TMOD=0x10; TH1=(65536-200)/256; TL1=(65536-200)%256; EA=1; ET1=1; TR1=1; void Delay(unsigned int i) unsigned int j; for(;i0;i-) for(j=0;j125;j+) ; void Display() P1=dispbitcodedispbuf3; P20=0; P21=1; P22=1; P23=1; Delay(10); P1=0x00; P1=dispbitcodedispbuf2; P17=1; P20=1; P21=0; P22=1; P23=1; Delay(10); P1=0x00; P1=dispbitcodedispbuf1; P20=1; P21=1; P22=0; P23=1; Delay(10); P1=0x00; P1=dispbitcodedispbuf0; P20=1; P21=1; P22=1; P23=0; Delay(10); P1=0x00;void ma

温馨提示

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

评论

0/150

提交评论