应用电子技术教育毕业设计(论文)-简易数值电压表设计.doc

上传人:小小飞 文档编号:3929394 上传时间:2019-10-10 格式:DOC 页数:25 大小:867.50KB
返回 下载 相关 举报
应用电子技术教育毕业设计(论文)-简易数值电压表设计.doc_第1页
第1页 / 共25页
应用电子技术教育毕业设计(论文)-简易数值电压表设计.doc_第2页
第2页 / 共25页
应用电子技术教育毕业设计(论文)-简易数值电压表设计.doc_第3页
第3页 / 共25页
应用电子技术教育毕业设计(论文)-简易数值电压表设计.doc_第4页
第4页 / 共25页
应用电子技术教育毕业设计(论文)-简易数值电压表设计.doc_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《应用电子技术教育毕业设计(论文)-简易数值电压表设计.doc》由会员分享,可在线阅读,更多相关《应用电子技术教育毕业设计(论文)-简易数值电压表设计.doc(25页珍藏版)》请在三一文库上搜索。

1、本科生毕业论文(设计)打印专用纸 200809241201 编号(学号): 本科学生毕业论文设计题 目: 简易数值电压表设计 The Simple Digital Voltage Design 学院名称: 物理与电子信息学院 专业名称: 应用电子技术教育 年 级: 2008级 学生姓名: 学 号: 指导教师: 职称/学历: 23目录摘要1Abstract1第一章 绪论2第二章 系统硬件电路图32.1 系统原理框图32.2 AT89S52的结构422.1 AT89S52内部结构概述42.2.2 CPU结构52.2.3 存储器和特殊功能寄存器52.2.4 P0-P3口结构52.2.5 时钟电路和复

2、位电路62.3 器件的比较与选择72.3.1显示器72.3.2模数(A/D)芯片82.4 系统硬件及仿真图112.4.1 系统仿真图112.4.2 系统原理图122.4.3 系统PCB图122.5 相关软件简介132.5.1 Protel99132.5.2 Keil132.5.3 Protues13第三章 程序流程图与源程序143.1 程序流程图143.2 程序编写143.2.1 C语言编程143.2.2 汇编语言编程14第四章系统功能分析与说明154.1 数字电压表的概述154.2 数字电压表的介绍164.3 数字电压表工作原理164.4 软硬件调试174.5 系统功能分析18第五章 设计总

3、结18第六章 参考文献18第七章 附录19数字电压表设计曾亚龙物理与电子信息学院 应用电子技术教育专业 2008级 指导老师: 摘要:数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,

4、由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本文介绍一种基于89S52单片机的一种电压测量电路,该电路采用ICL7135高精度、双积分A/D转换电路,测量范围直流0-5伏,使用LCD液晶模块显示,可以与PC机进行串行通信。关键词:电压测量,ICL7135,双积分A/D转换器,1284液晶模块Digital Voltmeter designZengyalongInstitute of Physics and Electronic Information Electronic and Information Engineering Grade 2008 I

5、nstructor: LuopengAbstract : The introduction of a cost-based 89S52 MCU a voltage measurement circuits, the circuits used ICL7135 high-precision, dual-scoring A/D conversion circuits, measuring scope DC 0-5 volts, the use of LCD that can be carried out with a PC serial communications. The paper focu

6、ses on providing a software and hardware system components circuit, introduced double integral circuit theory, 89S52 features ICL7135 functions and applications, LCD12864 functions and applications.the circuit design innovative, powerful, can be expansionary strong.Key Words : Digital Voltmeter ICL7

7、135 L CD12864 AT 89S52 第一章 绪论 1.1课题背景 数字电压表在1952年由美国NLS公司首次创造,它刚开始是4位,50多年来,数字电压表有了不断的进步和提高。数字电压表是从电位差计的自动化过程中研制成功的。开始是4位数码显示,然后是5位、6位显示,而现在发展到7位、8位数码显示;从最初的一两种类型发展到原理不同的几十种类型;从最早的采用继电器、电子管发展到全晶体管、集成电路、微处理器化;从一台仪器只能测1-2种参数到能测几十种参数的多用型;显示器件也从辉光数码管发展到等离子体管、发光二极管、液晶显示器等。数字电压表的体积和功耗越来越小,重量不断变轻,价格也逐步下降,可

8、靠性越来越高,量程范围也逐步扩大。DVM的高速发展,使它已成为实现测量自动化、提高工作效率不可缺少的仪表,数字化是当前计量仪器发展的主要方向之一,而高准度的DC-DVC的出现,又使DVM进入了精密标准测量领域。随着现代化技术的不断发展,数字电压表的功能和种类将越来越强,越来越多,其使用范围也会越来越广泛。采用智能化的数字仪器也将是必然的趋势,它们将不仅能提高测量准确度,而且能提高电测量技术的自动化程序,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表(如:温度计、湿度计、酸度计、重量、厚度仪等),几乎覆盖了电子电工测量、工业测量、自动化仪表等各个领域。从而提高计量检定人员的工作

9、效率。这个课题的目的和意义在于使自己掌握对数字电压表的理解,自己动手设计数字电压表与仿真,它可以广泛的应用于电压测量外,通过各种变换器还可以测量其他电量和非电量,测量是一种认识过程,就是用实验的方法将被测量和被选用的相同参量进行比较,从而确定它的大小。DVM广泛应用于测量领域每期测量的准确度和可信度取决于它的主要性能和技术指标。所示我们要学习和掌握如何设计DVM就显得十分重要。1.2 研究目的和意义1.通过亲身的设计应用电路,将所用的理论知识应用到实践中,增强实践动手能力,进 而促进理论知识的强化。2.通过数字电压表的设计系统掌握51单片机的应用。掌握A/D转换的原理及软件编程及硬件设计的方法

10、,掌握根据课题的要求,提出选择设计方案,查找所需元器,设计并搭建硬件电路,编程写入EPROM并进行调试等。1.3设计内容与要求 1、用ADC0809设计一个数字电压表,能测量05V间的直流电压。 2、在2位数码管上显示0.0 5.0 V。 第二章 系统硬件电路图2.1 系统原理框图选择AT89S52作为单片机芯片,选用两位8段共阳极LED数码管实现电压显示,利用ADC0809作为数模转换芯片。将数据采集接口电路输入电压传入ADC0809数模转换元件,经转换后通过D0至D7与单片机P1口连接,把转换完的模拟信号以数字信号的信号的形式传给单片机,信号经过单片机处理从LED数码显示管显示。P2口接数

11、码管位选,P0接数码管段选,实现数据的动态显示,如图2.1所示。AT89S52P1 P0P3 P2AD0809D0D7IN0IN7VREF+VREF- CLKOEST、ALE两位数码管位选段选控制线数据待测电压图2.1 系统原理框图2.2 AT89S52的结构在本次课题设计中我们选择了AT89S52芯片。AT89S52是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和

12、在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提 供高灵活、超有效的解决方案。 图2.2 单片机(AT89S52)引脚图2.2.1 AT89S52内部结构概述 三级程序存储器保密锁定 256*8位内部RAM 32条可编程I/O线 三个16位定时器/计数器 八个中断源 低功耗的闲置和掉电模式 可编程串行通道 片内振荡器和时钟电路2.2.2 CPU结构 CPU 是单片机的核心部件。它由运算器和控制器等部件组成。1.运算器 运算器以完成二进制的算术/逻辑运算部件ALU为核心。它可以对半字节(4)、单字节等数据进行操作。2.程序计数器PCPC是一个16位的计数器,用于存放一条要执

13、行的指令地址,寻址范围为64kB,PC有自动加1功能,即完成了一条指令的执行后,其内容自动加1。3.指令寄存器 指令寄存器用于存放指令代码。CPU执行指令时,由程序存储器中读取的指令代码送如指令寄存器,经指令译码器译码后由定时有控制电路发出相应的控制信号,完成指令功能。2.2.3 存储器和特殊功能寄存器1. 存储器(Memory)是计算机系统中的记忆设备,用来存放程序和数据。它根据控制器指定的位置存入和取出信息。2.特殊功能寄存器特殊功能寄存器(SFR)的地址范围为80HFFH。在MCS51中,除程序计数器PC和四个工作寄存器区外,其余21个特殊功能寄存器都在这SFR块中。2.2.4 P0-P

14、3口结构P0口功能 :P0口具有两种功能:第一,P0口可以作为通用I/O接口使用,P0.7P0.0用于传送CPU的输入/输出数据。输出数据时可以得到锁存,不需外接专用锁存器,输入数据可以得到缓冲。第二,P0.7P0.0在CPU访问片外存储器时用于传送片外存储器de低8位地址,然后传送CPU对片外存储器的读写。P1口 功能 :P1口的功能和P0口de第一功能相同,仅用于传递I/O输入/输出数据。 P2口的功能 :P2口的第一功能和上述两组引脚的第一功能相同,即它可以作为通用I/O使用。它的第二功能和P0口引脚的第二功能相配合,作为地址总线用于输出片外存储器的高8位地址。 P3口功能 :P3口有两

15、个功能:第一功能与其余三个端口的第一功能相同;第二功能作控制用,每个引脚都不同。 表2.1 P3口第二功能引脚名称功能P3.0RXD串行数据接收口P3.1TXD串行数据发送口P3.2INT0外中断0输入P3.3INT1外中断1输入P3.4T0计数器0计数输入P3.5T1计数器1计数输入P3.6WR外部RAM写选通信号P3.7RD外部RAM读选通信号2.2.5 时钟电路和复位电路1.时钟电路单片机的时钟一般需要多相时钟,所以时钟电路由振荡器和分频器组成。 MCS-51内部有一个用于构成振荡器的可控高增益反向放大器。两个引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。在片外跨接一晶振和两

16、个匹配电容C1、C2如图2.3所示,就构成一个自激振荡器。振荡频率根据实际要求的工作速度,从几百千赫至24MHz可适当选取某一频率。匹配电容C1、C2要根据石英晶体振荡器的要求选取。当晶振频率为12MHz时,C1C2一般选30pF左右。图2.3中PD是电源控制寄存器PCON.1的掉电方式位,正常工作方式PD=0。当PD=1时单片机进入掉电工作方式,是一种节能工作方式。上述电路是靠MCS-51单片机内部电路产生振荡的。也可以由外部振荡器或时钟直接驱动MCS-51。本设计采用内部电路产生振荡。 图2.3时钟电路的内部及外部方式2.复位电路复位是单片机的初始化操作。其功能主要是将程序计数器(PC)初

17、始化为0000H,使单片机从0000H单元开始执行程序,并将特殊功能寄存器赋一些特定值。复位是使单片机退出低功耗工作方式而进入正常状态一种操作。复位是上电的第一个操作,然后程序从0000H开始执行。在运行中,外界干扰等因素可能会使单片机的程序陷入死循环状态或“跑飞”。要使其进入正常状态,唯一办法是将单片机复位,以重新启动。复位后,程序计数器(PC)及各特殊功能寄存器(SFR)的值如表2.2所示。表2.2 程序计数器及各特殊功能寄存器的复位值寄存器复位状态寄存器复位状态PC0000HTH100HACC00HP0P3FFHPSW00HIPxx000000BSP07HIE0xx00000BDPTR0

18、000HTMOD00HTCON00HSCON00HTL000HSBUF不定TH000HPCON0xxx0000BTL100HRST引脚是复位端,高电平有效。在该引脚输入至少连续两个机器周期以上的高电平,单片机复位。RST引脚内部有一个斯密特ST触发器以对输入信号整形,保证内部复位电路的可靠,所以外部输入信号不一定要求是数字波形。使用时,一般在此引脚与VSS引脚之间接一个8.2k的下拉电阻,与VCC引脚之间接一个约10F的电解电容,即可保证上电自动复位。图2.4自动和手动复位电路图上电或手动复位要求电源接通后,单片机自动复位,并且在单片机运行期间,用开关操作也能使单片机复位。上电后,由于电容C3

19、的充电和反相门的作用,使RST持续一段时间的高电平。当单片机已在运行当中时,按下复位键K后松开,也能使RST为一段时间的高电平,从而实现上电或手动复位的操作。本设计采用手动复位电路。2.3器件的比较与选择2.3.1显示器本次设计中有显示模块,而常用的显示器件比较多,有数码管,LED点阵,1602液晶,12864液晶等。 数码管是最常用的一种显示器件,它是由几个发光二极管组成的8字段显示器件,其特点是价格非常的便宜,使用也非常的方便,显示效果非常的清楚。小电流下可以驱动每光,发光响应时间极短,体积小,重量轻,抗冲击性能好,寿命长。但数码管只能是显示09的数据。不能够显示字符。这也是数码管的不足之

20、处。经过性能的比较和根据本设计的要求以及价格的考虑,选择数码管显示器。单位数码管如图2.4所示。 图2.5 单位数码管2.3.2模数(A/D)芯片A/D转换器是模拟量输入通道中的一个环节,单片机通过A/D转换器把输入模拟量变成数字量再处理。A/D转换的常用方法有:计数式A/D转换,逐次逼近型A/D转换,双积分式A/D转换, V/F变换型A/D转换。目前最常用的是双积分和逐次逼近式。常用的有ADC0809、AD0832。1. ADC0809是8位逐次逼近型A/D转换器,它是由一个8路的模拟开关、一个地址锁存译码器、一个A/D 转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8 路

21、模拟量分时输入,共用A/D 转换器进行转换。些A/D转换器是的特点是8位精度,属于并行口,如果输入的模拟量变化大快,必须在输入之前增加采样电路。2. DAC0832也是8位逐次逼近型A/D转换器,它易于和微处理器接口或独立使用;可满量程工作;可用地址逻辑多路器选通各输入通道。综合上述,逐次逼近型A/D转换既兼顾了转换速度,又具有一定的精度,这里选用的是逐次逼近型的A/D转换芯片ADC0809。图2.6 ADC0809内部结构 图2.6 ADC0809引脚图(2)ADC0809 的工作原理 1.IN0IN7:8 条模拟量输入通道 ADC0809 对输入模拟量要求:信号单极性,电压范围是05V,若

22、信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。 地址输入和控制线:4条。ALE 为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A, B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和C 为地址输入线,用于选通IN0IN7 上的一路模拟量输入。通道选择表如表2.3所示。表2.3 ADC0809通道选择表 ADC0809工作时序图CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN5110IN6111IN72.数字量输出及控制线

23、:11 条 ST :转换启动信号。当ST 上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D 转换;在转换期间,ST 应保持低电平。EOC :转换结束信号。当EOC 为高电平时,表明转换结束;否则,表明正在进行A/D 转换。OE:输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE1,输出转换得到的数据;OE0,输出数据线呈高阻状态。D7D0: 数字量输出线。 CLK:时钟输入信号线。因ADC0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500KHZ, VREF()、VREF():参考电压输入。 3. ADC0809 应用说明 ADC0809 内部带

24、有输出锁存器,可以与AT89S52单片机直接相连。 初始化时,使ST 和OE信号全为低电平。 送要转换的哪一通道的地址到A,B,C 端口上。 在ST 端给出一个至少有100ns 宽的正脉冲信号。 是否转换完毕,我们根据EOC 信号来判断。 当EOC变为高电平时,这时给OE 为高电平,转换的数据就输出给单片机了。AD0809的启动方式为脉冲启动方式,启动信号START启动后开始转换,EOC 信号在START 的下降沿10us后才变为无效的低电平。这要求查询程序待EOC无效后再开始查询,转换完成后,EOC 输出高电平,再由OE 变为高电平来输出转换数据。我们在设计程序时可以利用EOC 信号来通知单

25、片机(查询法或中断法)读入已转换的数据,也可以在启动AD0809 后经适当的延时再读入已转换的数据。AT89S52的输出频为晶振频的1/6(2MHZ),AT89S51与SUN7474连接经与7474的ST脚提供ADC0809的工作时钟。ADC0809的工作频范围为10KHZ-1280KHZ,当频率范围为500KHZ 时,其转换速度为128us。2.4 系统硬件及仿真图2.4.1 系统仿真图2.4.2 系统原理图 2.4.3 系统PCB图 2.5 相关软件简介2.5.1 Protel99 Protel99SE是应用于Windows9X/2000/NT操作系统下的EDA设计软件,采用设计库管理模式

26、,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源-地层和16个机加工层。 Protel 99 SE的系统组成(1)电路工程设计部分 电路原理设计部分(Advanced Schematic 99) 印刷电路板设计系统(Advanced PCB 99)自动布线系统(Advanced Route 99)(2)电路仿真与PLD部分电路模拟仿真系统(Advanced SIM 99)可编程逻辑设计系统(Advanced PLD 99)高级信号完整性分析系统(Advan

27、ced Integrity 99)(3)Protel 99 SE的功能特性开放式集成化的设计管理体系 超强功能的、修改与编辑功能 强大的设计自动化功能 2.5.2 KeilKeil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。2.5.3 Protues Protues软件是英国Labcenter elect

28、ronics公司出版的EDA工具软件(该软件中国总代理为广州风标电子技术有限公司)。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件PCB设计软件和虚拟模型仿真软件三合一的设计平台。 第三章 程序流程图与源程序3.1 程序流程图ADC0809的分辨率为8位,当输入电压为05时,对应的数字量为00HFFH,而显示范围为0.05.0,故显示前应进行标度变

29、换,即将00HFFH的变化转换为0.05.0的变化范围。对于该数字电压表将采集的数值除以51即可,该数字电压表的软件流程图如图5.1所示。开始启动A/D标度转换十进制转换查段码,输出低位查段码,带小数点输出高位转换完?YN图3.1 数字电压表软件流程图3.2 程序编写3.2.1 C语言编程(见附录1)3.2.2 汇编语言编程存储空间定义安排(1)70H用于存放A/D转换结果,71H、72H分别存储显示用的两位数据如表3.1所示。表3.1存储空间定义表70H用于存放A/D转换结果71H电压值整数部分72H电压值小数部分(2)地址30H39H存放显示在数码管上09的数。如表3.2所示。 表3.2

30、数码管表存储数据地址存储值数码显示值30H0C0H031H0F9H132H0A4H233H0B0H334H99H435H92H 536H82H 637H0F8H 738H80H839H90H9 第四章 系统功能分析与说明4.1 数字电压表的概述数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字

31、电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。4.2 数字电压表的介绍模拟电压表具有电路简单、成本低、测量方便等特点,但测量精度较差,特别是受表头精度的限制,即使采用0.5级的高灵敏度表头,读测时的分辨力也只能达到半格。再者,模拟式电压表的输入阻抗不高,测高内阻源时精度明显下降。数字电压表作为数字技术的成功应用,发展相当快。数字电压表(Digital VoIt Me-

32、ter,DVM),以其功能齐全、精度高、灵敏度高、显示直观等突出优点深受用户欢迎。特别是以AD转换器为代表的集成电路为支柱,使DVM向着多功能化、小型化、智能化方向发展。DVM应用单片机控制,组成智能仪表;与计算机接口,组成自动测试系统。目前,DVM多组成多功能式的,因此又称数字多用表(Digital Multi Meter,DMM)。DVM是将模拟电压变换为数字显示的测量仪器,这就要求将模拟量变成数字量。这实质上是个量化过程,即将连续的无穷多个模拟量用有限个数字表示的过程,完成这种变换的核心部件是AD转换器,最后用电子计数器计数显示,困此,DVM的基本组成是AD转换器和电子计数器。DVM最基

33、本功能是测直流电压,考虑到仪器的多功能化,可将其他物理量,如电阻、电容、交流电压、电流等,都变成直流电压,因此,还应有一个测量功能选择变换器,它包含在输入电路中。DVM对直流电压直接测量时的测量精度最高,其他物理量在变换成直流电压时,受功能选择变换器精度的限制,测量精度有所下降。4.3 数字电压表工作原理数字电压表的系统工作原理:首先,被测电压信号进入AD转换器,单片机中控制信号线发出控制信号,启动AD转换器进行转换,其采样得到的数字信号数据在相应的码制转换模块中转换为显示代码。最后发出显示控制与驱动信号,驱动外部的数码管显示相应的数据。图4.1所示为DVM的基本组成框图,需指出的是,图中将D

34、VM分成模拟和数字两大部分,从框图上看,AD转换器包含在模拟部分,这样划分并不严格,因为AD转换器本身具有数字电路的性质,特别是大规模集成化AD转换器是模拟与数字两系统相互结合的,就连逻辑控制也集成在其中。输入电路A/D转换器单片机显示器逻辑控制器时钟脉冲图4.1 数字电压表基本组成框图4.4软硬件调试软件调试的任务是利用开发工具进行调试,发现和纠正程序的错误,同时也能发现硬件的故障。软件调试是一个模块接一个模块进行的。首先单独调试各子程序是否能够按照预期的功能,接口电路的控制是否正常。最后调试整个程序。尤其注意的是各模块间能否正确的传递参数。1. 检查数码管显示模块程序。观察数码管上是否能够

35、显示相应的字符。2. 检查A/D转换模块程序。可以在硬件电路的输入端输入已知的几个电压,分别观察数码管上是否显示相应的电压值。3. 检查数据的转换模块程序。 程序可分为数据采集系统、数据转换系统、显示系统,这三部分先独立测试,然后整体调试。数据采集系统:因为ADC0809本身并没有内部时钟,需要外部时钟来提供工作的时钟频率。如果利用单片机ALE端脚提供的频率为6MHZ,而ADC0809工作的频率在10KHZ-1MHZ。因此,需要增加含触发器功能的器件,从面增加了系统的复杂程度。后来,经过小组不断的讨论与思考,最终用软件编程来提供ADC0809工作的时钟频率,从而解决了这个问题。显示系统的调试:

36、要显示的数据存放在71H、72H单元中,先在30H39H分单元中存放09的数,运行显示程序,进行查表指令,察看显示的结果是否与存放值一样。在测试的过程中发现小数点没有显示,通过下面几条指令,把小数点显示出来。MOVC A,A+DPTRCJNE R2,#0FEH,NOT_ONE ;不是左边第一个数码管,则转移ORL A,#80H ;左边第一个数码管显示小数点NOT_ONE:MOV P0,A ;数码管段选 另外,发现四位数码管显示的亮度不一样,有时还存在闪烁的情况,后来经过调整各位数码管显示的间隔,调用延时函数解决了亮度不一的问题。整体测试:把三部分进行程序联调,编译程序,看是否存在错误。经过多次

37、的尝试与查找相资料,最后做出并完善了整体的方案。4.系统进一步改进方案为进一步提高测量精度,建议把精确到小数点后一位改为精确到小数点后三位。4.5系统功能分析 本课程设计是利用单片机设计一个数字电压表,能够测量05V之间的直流电压值,两位数码显示,使用的元器件数目较少。外界电压模拟量输入到A/D转换部分的输入端,通过A/D转换变为数字信号,输送给单片机。然后由单片机给数码管数字信号,控制其发光,从而显示数字电压值。 第五章 设计总结 经过近二周的单片机课程设计,终于完成了我的数字电压表的设计,基本达到设计要求。对于此次课程设计,有许多的感触与体会,遇到的难题多,学习到的知识也就更多。第一,硬件

38、电路遇到了ADC0809无内部时钟,需外接外部时钟,如何解决这个问题,我们小组进行了多次讨论,最终确定了在程序中提供时钟信号,大大降低了硬件电路的复杂度。第二,则是解决程序设计的问题,而程序设计是一个很灵活的东西,它反映了你解决问题的逻辑思维和创新能力,它才是一个设计的灵魂所在。因此在整个设计过程中大部分时间是用在程序上面的。其中,我遇到了很多的问题,虽然以前也做过这样的设计,但是以前的都是用C语言进行编程。而此次运用汇编语言编程,着实让我当头一棒,因为除了微机原理实验进行过相关编程,汇编语言的编程能力还停留在理论阶段。在此次编程中,首先,我是先用C语言编程,进行调试后,成功的达到了课程设计的

39、要求。其次,查找汇编语言的相关资料,经过不懈的努力与调试,终于将汇编语言版的成功编程出来。第三,在一个课题中,要设计一个成功的电路,必须要有耐心,要有坚持的毅力。在整个电路的设计过程中,重要的是各个单元电路的连接及电路的细节设计上,如在多种方案的选择中,我们仔细比较分析其原理以及可行的原因。这就要求我们对硬件系统中各组件部分有充分透彻的理解和研究,并能对之灵活应用。完成这次设计后,我在书本理论知识的基础上又有了更深层次的理解。第四,在本次设计的过程中,我还学会了高效率的查阅资料、运用工具书、利用网络查找资料。我发现,在我们所使用的书籍上有一些知识在实际应用中其实并不是十分理想,各种参数都需要自

40、己去调整,这就要求我们应更加注重实践环节。最后,还要在此感谢课程设计的指导老师和我的组员们,他们在整个过程中都给予了我充分的帮助与支持。参考文献1 赵全利、肖兴达.单片机原理及应用教程(第二版).机械工业出版社,20072 蔡美琴等.MCS-51系列单片机系统及其应用.高等教育出版社.3 吴国经.单片机应用技术.北京:中国电力出版社,2003.4 徐爱钧.智能化测量控制仪表原理与设计(第二版)M.北京:北京航空航天大学出版社,2004. 附录 主程序程序代码:/*=#includeunsigned char LED_W= /位选 0x02, /0000 0010 P2.1选通 0x01, /0

41、000 0001 P2.0选通;unsigned char DATA= 0xc0, / 0 0xf9, / 1 0xa4, / 2 0xb0, / 3 0x99, / 4 0x92, / 5 0x82, / 6 0xf8, / 7 0x80, / 8 0x90, / 9;unsigned char temp;unsigned char high;unsigned char low;bit wei=0;sbit ST=P30;sbit OE=P31;sbit EOC=P32;sbit CLK=P33;void INT_0 (void);/ 定时/计数器初始化子程序声明void delay(int

42、 i);/ 延时子程序声明void main (void) / 主程序INT_0();while(1) OE=0; /禁止0809数据输出 ST=0;/给脉冲让0809工作 delay(10); ST =1; delay(10); ST =0; while(!EOC); /判断转换是否结束 OE=1;/转换结束 允许输出 temp=P1*50/256; high=temp/10; /高位数据 low=temp%10; /低位数据 void INT_0 (void)/定时/计数器用于定时/计数初始化 TMOD=0x12; /计数器0设为方式2计数 定时器1设为方式1定时 TH0 =216; /装初值 TL0 =216; TH1 =(65536-5000)/256; TL1 =(65536-5000)%256; EA =1; /开中断 ET0 =1; ET1 =1; TR0 =1;/启动定时/计数器 TR1 =1; void T_0 (void)interrupt 1 using 1 /计数器0中断程序 CLK=CLK; void T_1(void)

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1