数字电压表课程设计副本_第1页
数字电压表课程设计副本_第2页
数字电压表课程设计副本_第3页
数字电压表课程设计副本_第4页
数字电压表课程设计副本_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、皖 西 学 院课程设计报告书课题:数字电压表学院:机电学院班级:电信1004班姓名:孙太明(2010010875) 姜彩玲(2010010862) 指导老师: 杨 婷 下达任务日期:2013年6月17日目录一.设计目的.2二.设计内容及实现功能.3三.设计过程 .4 3.1问题分析.4 3.2方案提出.4 3.3元件认识 .4 3.3.1AT89C51介绍.4 3.3.2ADC08080介绍.5 3.3.3数码管模块介绍.7 3.3.4复位电路和时钟电路.8 3.3.5软件流程图.9四.调试过程.10 4.1仿真图.10 4.2数据分析.11 4.3程序.11五.课程总结.15一、设计目的 数

2、字电压表是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。有别于传统的以指针加刻度盘进行读数的方法, 避免了读数的视差和视觉疲劳。Proteus软件是一种电路分析和实物模拟仿真软件。它运行于Windows操作系统上,可以进行仿真、分析( SPICE)各种模拟器件和集成电路,是集单片机和SPICE分析于一身的仿真软件,功能强大. Keil C51是美国Keil Software公司出品的51系列

3、兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用,本设计就是基于Proteus和Keil平台利用C语言编程实现的一款数字电压表。二、设计内容及实现功能 数字电压表是诸多数字化仪表的核心与基础,电压表的数字化是将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示。目前数字电压表的内部核心部件是A/D转换器, 转换器的精度很大程度上影响着数字电压表的准确度,本设计A/D转换器采用ADC0808对输入模拟信号进行转换, 控制核心AT89C51再对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号。 本次设计简易数字电压表

4、可以测量05V的8路输入电压值,并且在液晶上显示出实时的电压值,在达到2.5v时LED灯亮,同时,蜂鸣器响。三、设计过程 3. 1问题分析 本设计要测量电压值,电压值输出是模拟信号,但是单片机只识别0和1的数字信号,要想让单片机识别电压信号就要通过模数转换芯片,数据经过单片机的处理后将电压值传输到液晶上显示出来。除此之外,我们也可以将电压值通过数码管显示。 3.2方案提出 本设计单片机采用AT89C51,51单片机具有体积小,重量轻,价格便宜,技术成熟的优势,测量电压值不需要经过复杂的运算,同时我们上学期所学的单片机也是基于51的芯片,因此,51单片机是非常不错的选择。 AD转换芯片的选择上采

5、用ADC0808这个八位逐次逼近式AD数码管采用LMO16L,本来想采用1602,在proteus中只提供了LMO16L,所以采用LMO16L电路设计过程及各芯片的引脚原理认识。3.3元件认识 3.3.1 AT89C51介绍 AT89C51是一种带4K字节闪存可编程可擦除只读存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储

6、器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图所示 图3.3.1 AT89C513.3.2 ADC0808介绍 1.ADC0808是采样分辨率为8位的、以逐次逼近原理进行模/数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。ADC0808是ADC0809的简化版本,功能基本相同。一般在硬

7、件仿真时采用ADC0808进行A/D转换,实际使用时采用ADC0809进行A/D转换。 图3.3.2 ADC08082. ADC0808芯片有各引脚功能介绍如下: 15和2628(IN0IN7):8路模拟量输入端。 8、14、15和1721:8位数字量输出端。 22(ALE):地址锁存允许信号,输入,高电平有效。 6(START): AD转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 7(EOC): AD转换结束信号,输出,当AD转换结束时,此端输出一个高电平(转换期间一直为低电平)。 9(OE):数据输出允许信号,输入,高电

8、平有效。当AD转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 10(CLK):时钟脉冲输入端。要求时钟频率不高于640KHZ。 12(VREF(+)和16(VREF(-):参考电压输入端 11(Vcc):主电源输入端。 13(GND):地。 2325(ADDA、ADDB、ADDC):3位地址输入线,用于选通8路模拟输入中的一路3.3.3数码管模块介绍 LED数码管(LED Segment Displays)是由多个发光二极管封装在一起组成“8”字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极。LED数码管常用段数一般为7段有的另加一个小数点,还有一种是类似于

9、3位“+1”型。位数有半位,1,2,3,4,5,6,8,10位等等,LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。图2是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。颜色有红,绿,蓝,黄等几种。LED数码管广泛用于仪表,时钟,车站,家电等场合。选用时要注意产品尺寸颜色,功耗,亮度,波长等。数码管的功能表以及其余单片机的连接图如图a,b。图3.3.3 a图3.3.3 b 3.3.4 复位电路和时钟电路 A.时钟电路 图3.3.4 A .时钟电路

10、B.复位电路 图3.3.4 B.复位电路 3.3.5软件流程图图3.3.5四、调试过程 4.1仿真图图4.1 4.2数据分析 万用表和设计电压表测量同一组电压值所得结果如表一电压值(v)0.000.541.061.542.052.543.033.504.024.515.03测量值(v)0.0000.5131.0201.5082.0162.5123.0103.5094.0124.5165.014误差(v)0.0000.0270.0150.0270.0140.0280.0070.0090.0080.0060.000 表 一 4.3程序 主程序#include<at89x52.h>#in

11、clude <intrins.h>#define uchar unsigned char#define uint unsigned intuchar display_data4;uchar temp4;uchar ledcode=0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,/ 数码管编码表 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E;sfr PORTD = 0x80;/P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口sbit ST =P30;/0808 引脚sbit EOC=P31;sb

12、it OE =P32;sbit wei_1=P20;/4个数码管位选sbit wei_2=P21;sbit wei_3=P22;sbit wei_4=P23;sbit bz=P37;sbit led=P36;float getdate_1;uint getdate;uchar num=0; void delay(uint z)/1MS 延时 uint a,b; for(a=z;a>0;a-) for(b=120;b>0;b-); void delay1(uint z)/US 延时 uint a; for(a=z;a>0;a-); void temptoseg() / 数码管扫

13、描程序 display_data0 = ledcodegetdate/1000; /最高位显示位置 display_data1 = ledcodegetdate/100%10; display_data2 = ledcodegetdate/10%10; display_data3 = ledcodegetdate%10; display_data0&=0x7f; PORTD = display_data0;/扫描4位数码管 wei_1=0; delay(1); wei_1=1; PORTD = display_data1; wei_2=0; delay(1); wei_2=1; POR

14、TD = display_data2; wei_3=0; delay(1); wei_3=1; PORTD = display_data3; wei_4=0; delay(1); wei_4=1; uchar GET_AD() /获取AD 值 uchar nn; ST=0; _nop_(); ST=1; _nop_(); ST=0;/启动AD转换 while(EOC=0)/等待转换结束 OE=1; nn=P1; OE=0; return nn;main()uchar i;while(1) getdate=GET_AD()*19.607843;/显示5.000v temptoseg();if(g

15、etdate>=2500)/过2.5V 报警for(i=0;i<20;i+)/产生蜂鸣器频率bz=!bz;delay1(100);led=0;elsebz=1;led=1;五、课设总结 本次课程设计是基于51单片机的,同时也运用了一部分数电方面的知识。通过此次课程设计,让我在掌握理论的同时并把它运用与实践。很多时候学习枯燥的理论是很无聊的,通过这次课程设计,让我更深层次的认识了微型计算机,由于本身对汇编语言掌握的不是很好,所以在软件方面运用了C语言代替,但是作用效果是相同的。通过这次课设,我还了熟悉了Proteus和keil两软件的应用,这对以后学习单片机以及计算机仿真起到了极大的促进作用。本次课设主要利用了AT85C51和ADC0808两块芯片。在单片机的学习中我们接触了ADC0809,ADC0809主要用在实物中,在仿真中一般运用ADC0808来仿真。在软件编程过程中主要针对ADC0809和数码管显示的驱动程序。总之通过此次课设,不仅让我提高了学习单片机的兴趣,同时也锻炼了自己的实践能力,学到了很多课堂上学不到的知识。 参考文献:1

温馨提示

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

评论

0/150

提交评论