首页 数字式电压表设计

数字式电压表设计

举报
开通vip

数字式电压表设计数字式电压表设计 成都理工大学工程技术学院毕业论文 数字电压表的设计 作者姓名:羊文军 专业名称:测控技术与仪器 指导教师:熊 斌 讲师 数字电压表的设计 摘要 数字电压表是对电子电路进行现场检测的常用仪表,常需用高精度数字电压表进行现场检测,将检测到的数据送入微计算机系统,完成计算、存储、控制和显示等功能。本文中数字电压表的控制系统采 A/D转换器采用ADC0809为主要硬件,实现数字用AT89S51单片机, 电压表的硬件电路与软件设计。该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作...

数字式电压表设计
数字式电压 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 设计 成都理工大学工程技术学院毕业论文 数字电压表的设计 作者姓名:羊文军 专业名称:测控技术与仪器 指导教师:熊 斌 讲师 数字电压表的设计 摘要 数字电压表是对电子电路进行现场检测的常用仪表,常需用高精度数字电压表进行现场检测,将检测到的数据送入微计算机系统,完成计算、存储、控制和显示等功能。本文中数字电压表的控制系统采 A/D转换器采用ADC0809为主要硬件,实现数字用AT89S51单片机, 电压表的硬件电路与软件设计。该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作可实现自动化。还可以方便地进行8路A/D转换量的测量,远程测量结果传送等功能。数字电压表可以测量0,5V的8路输入电压值,并在四位LED数码管单路选择显示。 关键词 :单片机 数字电压表 A/D转换 AT89S51 ADC0809 - I - 数字电压表的设计 Abstract In modern measuring technology ,it is often required to conduct site measuring with a high-precision digital voltmeter(The data measured will then be input into the micro-computer system to execute such functions like calculating、storing、controlling and displaying(In this paper, the control system of digital voltmeter is composed of AT89S51 single-chip and ADC0809 A/D converter , which are used as the main hardware to realize the digital voltmeter of the hardware circuit and software design. The system of the digital voltmeter circuit is simple, using fewer components, Low-cost, regulation work can be automated. Also can be easily carried out 8-channel A / D converter measurement, distance measurement function of transmission . The voltmeter is capable of measuring voltage inputs from 8 routes ranging from 0 to 5 volt, and displaying the 4-way LED digital tube from a selected single route( Keywords:singlechip,digital,voltmeter,A/D,conversion,AT89S51,ADC0809 - II - 数字电压表的设计 目录 摘要 ....................................................................................................... I Abstract............................................................................................... II 目录 ..................................................................................................... III 1 绪论 ................................................................................................... 1 1.1 课题选择的背景和意义 ......................................................... 1 1.2 课题研究的现状和发展趋势 ................................................. 1 1.3 智能仪表目前发展状况 ......................................................... 2 2 数字电压表系统 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 设计 ................................................................. 4 2.1 系统设计要求 ........................................................................ 4 2.2 系统设计思路 ........................................................................ 4 3 系统硬件选择 .................................................................................... 5 3.1 单片机的选择 ........................................................................ 5 3.2 A/D转换器的选择 ................................................................. 6 3.3 LED显示电路选择 ................................................................ 7 3.4 驱动芯片的选择..................................................................... 8 4 硬件电路设计 .................................................................................... 9 4.1 硬件电路设计概述 ................................................................. 9 4.2 主要元器件的介绍 ............................................................... 10 4.2.1 单片机AT89S51 ............................................................. 10 4.2.2 A/D转换芯片ADC0809 ................................................ 19 4.2.3 驱动芯片74HC244......................................................... 22 4.2.4 4位一体7段LED数码管 ............................................. 23 4.3 AT89S51单片机主控电路 ................................................... 24 4.4 A/D转换电路 ...................................................................... 24 4.5 显示电路 .............................................................................. 25 5 软件流程设计 ................................................................................ 27 5.1 初始化程序 .......................................................................... 27 - III - 数字电压表的设计 5.2 主程序流程 .......................................................................... 27 5.3 各个模块子程序流程 ........................................................... 28 5.3.1 显示程序流程 ................................................................ 28 5.3.2 A/D转换程序流程 ........................................................ 29 总结 初级经济法重点总结下载党员个人总结TXt高中句型全总结.doc高中句型全总结.doc理论力学知识点总结pdf ..................................................................................................... 30 致谢 ..................................................................................................... 31 参考文献.............................................................................................. 32 附件1:数字电压表电路原理图 ........................................................ 33 附件2:程序清单 ............................................................................... 34 - IV - 数字电压表的设计 1 绪论 1.1 课题的选择的背景和意义 传统的指针式刻度电压表功能单一,精度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需求。采用单片机的数字电压表,将连续的模拟量如直流电压转化成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC 实时通信。数字电压表是诸多数字化仪表的核心与基础。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和 A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域。显示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新的水平。因此对数字电压表作全面深入的了解是很有必要的。 1.2 课题研究的现状和发展趋势 最近的十几年来,随着半导体技术、集成电路 (IC)和微处理器技术的发展, 数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的日新月异,并不断出现新的类型。 数字电压表从 1952 年问世以来,经历了不断改进的过程,从最早采用继电器、电子管的型式发展到了现在的全固态化、集成化(IC 化〕,另一方面,精度也从0.1%提高到了现在的0.01%——0.005%,而且从实验中空用的“高价样品” 开始已发展到了现在为厂矿企业广所使用的的“廉价型”,进而出现了能够用于安装板上作指示仪表的“安装型”。 目前,数字电压表的内部核心部件是A/D 转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面。 - 1 - 数字电压表的设计 1.3 智能仪表目前发展状况 在自动化控制系统中,仪器仪表作为其构成元素,它的技术进展是跟随控制系统技术的发展的。常规的自动化仪器仪表适应常规控制系统的要求,它们以经典控制理论和现代控制理论为基础,以控制对象的数学模型为依据。当今,控制理论已发展到智能控制的新阶段,自动化仪器仪表的智能化就成为必然和必须。本文将就自动化仪器仪表的智能化的状况与进展,以及当今对智能仪器仪表研究、开发热点做概要的分析与表述。作者建议人们关注自动化仪器仪表智能化技术的进展,关注仪器仪表装置与控制系统技术的互动发展,这对推进我国自动化技术水平的进一步提高将是大为有益的。智能化的自动化仪器仪表应以智能控制理论为基础,体现人的智能行为。人工智能是智能控制理论的基本组成部分之一,它以知识为基础,它的目标是建造智能化的计算机系统,用来模拟和执行人类的智力功能,如判断、理解、推理、识别、规划、学习和问题求解等等,进而用自动机模仿人类的思维过程和智能行为。基于智能控制理论基础的智能仪器仪表目前大致有几方面的进展: (1)专家控制系统(expert control system, ECS)是典型的基于知识控制系统,它是一个具有大量的专门知识与经验的程序系统。它运用人工智能技术和计算机技术,根据某领域一个或多个专家提供的知识和经验,进行推理和判断,模拟人类专家的决策过程,解决那些需要人类专家才能解决好的复杂问题。专家控制器的结构按控制要求的不同而有所不同。典型的结构由知识库、推理机、人机接口等组成。其中,知识的获取、知识库的建立是关键。人们已经总结出的方法是领域专家和知识专家的有机结合,同时收集、归纳有经验的操作员方面的知识。然后把获取的知识变成可用的规则,以期在推理过程中得到更高的命中率。专家控制已在工业控制中得到广泛的应用。 (2)模糊控制器(FC-Fuzzy Controller),也称模糊逻辑控制器(FLC-Fuzzy Logic Controller)。自然界的事物都具有一定的模糊性,模糊逻辑在控制领域中的应用产生了模糊控制技术。由于模糊控制技术具有处理不确定性、不精确性和模糊信息的能力,对无法建造数学模型的被控过程能进行有效的控制,能解决一些用常规控制方法 - 2 - 数字电压表的设计 不能解决的问题,因而模糊控制在工业控制领域得到了广泛的应用。模糊控制器一般由输入标定、模糊化、模糊决策、清晰化、输出标定等几个部分组成。其中,模糊化、模糊决策、清晰化是主要和基本的部分,“模糊化”将输入量(精确量)变为模糊量,“模糊决策”进行模糊运算,其过程是由推理机进行预估输出推理,得到模糊量输出。“清晰化”将模糊量输出转化为精确量,提供给系统的驱动器定标后使用。当前,模糊控制技术在工业控制中得到广泛的应用,尤其在不确定性过程、难于建模的场合发挥了模糊控制技术的长处。模糊控制器在家电和其它行业同样得到了广泛的应用。 (3)神经网络在工业控制系统中的应用提高了系统的信息处理能力,提高了系统的智能水平。所谓神经网络控制,简称神经控制,它是指采用神经网络这一技术对复杂的非线性对象进行建模,或担当控制器,或优化计算,或进行推理,或故障诊断等工作。由于神经网络具有高度的并行结构和并行实现能力,具有对任意非线性关系的描述能力,具有通过训练学习归纳全部数据能力,使得它在控制系统中被广泛灵活地应用。 数字电压表(Digital Voltmeter)简称DVM,作为智能仪表的一种,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。 - 3 - 数字电压表的设计 2 系统方案设计 2.1 系统设计要求 1、 可以测量0-5V的8路输入电压值; 2、 测量结果可在四位LED数码管上轮流显示后单路选择显 示; 3、 测量最小分辨率为0.019V; 4、 测量误差约为+0.02V; 2.2 系统设计思路 1、 根据设计要求,选择AT89S51单片机作为核心控制器件。 2、 A/D 转换采用ADC0809 实现。与单片机的接口为 P0 口和 P2 端口的高四位引脚。 3、 电压显示采用4 位一体的LED 数码管。 4、 LED 数码管的段码输入,由并行端口 P1 产生;位码输入,由并行端口 P3 低三位产生。 显示模块 主控模块 A/D转换模块 图2.1设计思路框图 - 4 - 数字电压表的设计 3 系统硬件的选择 3.1 单片机的选择 20世纪80年代以来,单片机的发展非常迅速,就通用单片机而言,世界上一些著名的计算机厂家已投放市场的产品就有50多个系列,数百个品种。目前世界上较为著名的8位单片机的生产厂家和主要机型如下: 美国Intel公司:MCS—51系列及其增强型系列 美国Motorola公司:6801系列和6805系列 美国Atmel公司:89C52等单片机 美国Zilog公司:Z8系列及SUPER8 美国Fairchild公司:F8系列和3870系列 美国Rockwell公司:6500/1系列 美国TI(德克萨司仪器仪表)公司:TMS7000系列 NS(美国国家半导体)公司:NS8070系列 等等。 尽管单片机的品种很多,但是在我国使用最多的还是Intel公司的MCS—51系列单片机和美国Atmel公司的89C52单片机 MCS—51系列单片机包括三个基本型8031、8051、8751 8031内部包括一个8位CPU、128个字节RAM,21个特殊功能寄存器(SFR)、4个8位并行I/O口、1个全双工串行口、2个16位定时器/计数器,但片内无程序存储器,需外扩EPROM芯片。比较麻烦,不予采用 8051是在8031的基础上,片内集成有4K ROM,作为程序存储器,是一个程序不超过4K字节的小系统。ROM内的程序是公司制作芯片时,代为用户烧制的,出厂的8051都是含有特殊用途的单片机。所以8051适合与应用在程序已定,且批量大的单片机产品中。也不予采用。 8751是在8031基础上,增加了4K字节的EPROM,它构成了一个程序小于4KB的小系统。用户可以将程序固化在EPROM中,可以反复修改程序。但其价格相对8031较贵。8031外扩一片4KB EPROM的就相当于8751,它的最大优点是价格低。随着大规模集成电路技术的不 - 5 - 数字电压表的设计 断发展,能装入片内的外围接口电路也可以是大规模的。也不予采用。 AT89S51是美国ATMEL公司生产的低功耗、高性能CMOS 8位单片机。图1-6和1-7分别为其实物图和内部总体结构图。AT89S51片内含有4k字节Flash闪速存储器,128字节内部 RAM,32个I/O 口线,看门狗(WDT),两个数据指针,两个16 位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。因此我选择AT89S51为系统的控制器。 3.2 A/D转换器的选择 A/D转换器大致分有三类:一是双积分A/D转换器,二是逐次逼近式A/D转换器,三是并行A/D转换器。 双积分A/D转换器通过两次积分将输入的模拟电压转换成时间或频率,然后由定时器/计数器获得数字值。它的优点是分辨率高,抗干扰性好,价格便宜,但转换速率低。 逐次逼近式A/D转换器是将采样输入信号与给定电压不断地进行比较,从逐次逼近寄存器的最高位开始,顺序地对寄存器的每一位将输入电压与内置D/A转换器输出进行比较,一个时钟周期完成1位转换,进过n次比较而得到数字值。它的优点是精度、速度、价格适中、不存在延迟问题。适合于中速率而分辨率较高的场合。 并行A/D转换器是内部有多个比较器,只需要作一次比较就可完成转换。优点是它是所有A/D转换器中速度最快的,但价格也昂贵,分辨率却不是很高。 在转换精度、转换速率、以及经济上的考虑,该系统决定选用逐次逼近式A/D转换器的ADC0809型。ADC0809是典型的8位MOS型8通道逐次逼近式A/D转换器,每采集一次一般需100μs。 - 6 - 数字电压表的设计 输入电压 输入数字电压 顺序脉冲 逐次逼近 电压 DAC 发生器 寄存器 比较器 图3.1 逐次逼近式A/D转换原理图 3.3 LED显示电路选择 LED显示器是由N个LED显示块拼接成N位LED显示器。N个LED显示块有N跟位选线,根据显示方式的不同,位选线和段选线的连接方法也各不相同,段选线控制显示字符的字型,而位选线为各个LED显示块的公共端,它控制该LED显示位的亮、暗。LED显示器有静态显示和动态显示两种显示方式。 (1)LED静态显示方式: LED显示器工作于静态显示方式时,各位的共阴极(或共阳极)连接在一起并接地(或+5V);每位的段选线(a,dp)分别与一个8位的锁存器输出相连。所以称为静态显示。各个LED的显示字符一经确定,相应锁存器的输出将维持不变,直到显示另一个字符为止。也正因此如此,静态显示器的亮度都较高。这种显示方式接口编程容易。付出的代价是占用口线较多,若用I/O接口,则要占用4个8位I/O口,若用锁存器接口,则要用4片74LS373芯片。如果显示器位数增多,则静态显示方式更是无法适应,因此在显示位数较多的情况下,一般都采用动态显示方式。 (2)LED动态显示方式: 在多位LED显示时,为了简化硬件电路,通常将所有位的段选线相应的并联在一起,有一个8位I/O口控制,形成段选线的多路复用。而各位的共阳极或共阴极分别由相应的I/O线控制,实现各位的分时选通。其中段选线占用一个8位I/O口,而位选线占用一个4位I/O口。由于各位的段选线并联,段码的输出对各位来说都是相同的,因此,同一时刻,如果各位位选线都处于选通状态的话,4位LED将显示相同的字符。若要各位LED能够显示出与本位相应的显示字 - 7 - 数字电压表的设计 符,就必须采用扫描显示方式,即在某一时刻,只让某一位的位选线状态,而其他各位的位选线处于关闭状态,同时,段选线上输出相应位要显示字节的段码。在确定LED不同位显示的时间间隔,不能太短,因为发光二极管从导通到发光有一定的延时,导通时间太短,发光太弱人眼无法看清。但也不能太长,因为毕竟要受限于临界闪烁频率,而且此时间越长,占用CPU时间也越多,另外,显示位增多,也将占用大量的CPU时间,因此动态显示实质是一牺牲CPU时间来换取元件的减少。 所以,由于本系统涉及到4位显示输出,采用LED动态扫描显示方式。 3.4 驱动芯片的选择 74HC244和74HC245的主要区别除了信号端的传输时间有细微差别之外,245可以双向传输,244是单向的。如果输入的数据可以保持比较长的时间(比如键盘),简单输入接口扩展通常使用的典型芯片为 [7]74HC244,由该芯片可构成三态数据缓冲器。所以该系统选用74HC244。 - 8 - 数字电压表的设计 4 硬件电路设计 4.1 硬件电路设计概述 硬件电路设计主要包括:89S51单片机系统,A/D转换电路,显示电路。测量最大电压为5V,显示最大值为5.00V。本实验采用AT89S51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字电压表,其硬件电路原理图见附件1。 该电路通过ADC0809芯片采样输入口IN0输入的0,5 V的模拟量电压,经过模/数转换后,产生相应的数字量经过其输出通道D0,D7传送给AT89S51芯片的P0口。AT89S51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码,并通过其P1口经驱动芯片74HC244驱动,再传送给数码管。同时它还通过其三位I/O口P3.0、P3.1、P3.2产生位选信号,控制数码管的亮灭。另外,AT89S51还控制着ADC0809的工作。其ALE管脚为ADC0809提供了1MHz工作的时钟脉冲;P2.3控制ADC0809的地址锁存端(ALE);P2.4控制ADC0809的启动端(START);P2.5控制ADC0809的输出允许端(OE);P3.7控制ADC0809的转换结束信号(EOC)。 图4.1 电路设计方案 - 9 - 数字电压表的设计 4.2 主要元器件的介绍 4.2.1 单片机AT89S51 AT89S51是美国ATMEL公司生产的低功耗、高性能CMOS 8位单片机。图1-6和1-7分别为其实物图和内部总体结构图。AT89S51片内含有4k字节Flash闪速存储器,128字节内部 RAM,32个I/O 口线,看门狗(WDT),两个数据指针,两个16 位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,S51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 图4.2 AT89S51实物图 4.2.1.1 主要性能参数 与MCS-51产品指令系列完全兼容; 4K字节在系统编程(ISP)Flash闪速存储器; 1000次擦写周期; 4.0,5.5 V工作电压范围; - 10 - 数字电压表的设计 全静态工作模式:0Hz,33MHz; 三级程序加密锁; 128字节内部RAM; 32个可编程I/O口线; 2个16位的定时/计数器; 6个中断源; 全双工串行UART通道; 低工耗空闲和掉电模式; 中断可从空闲模式唤醒系统; 看门狗(WDT)及双数据指针; 掉电标识和快速编程特性; 灵活的在系统编程 如图4.3为AT89S51的芯片内部总体结构图 图4.3 AT89S51芯片内部总体结构图 - 11 - 数字电压表的设计 4(2.1.2 AT89S51的引脚 AT89S51芯片为40引脚双列直插式封装,其引脚排列如图4.4所示。 图4.4 AT89S51的引脚图 (1)VCC:电源电压; (2)GND:接地; (3)P0口:P0口是一组8位漏极开路双向I/O口,每位引脚可驱动8个TTL逻辑门路。对P0口的管脚写“1”时,被定义为高阻抗输入。在访问外部数据存储器或程序存储器时,它可以被定义为数据总线和地址总线的低八位。在FLASH编程时,P0 口作为原码输入口;当FLASH进行校验时,P0输出原码,此时P0外部必须接上拉电阻。 - 12 - 数字电压表的设计 (4)P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口的输出缓冲器可驱动4个TTL逻辑门电路。对P1口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。P1口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。在FLASH编程和校验时,P1口作为低八位地址接收。P1口还具有第二功能,如表4.1所示。 表4.1 P1口的第二功能 端口引脚 第二功能 P1.5 MOSI(用于ISP编程) P1.6 MISO(用于ISP编程) P1.7 SCK(用于ISP编程) (5)P2口:P2口是一个内部提供上拉电阻的8位双向I/O口,P2口的输出缓冲器可驱动4个TTL逻辑门电路。对P2口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。P2口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在访问8位地址外部数据存储器时,P2口线上的内容,在整个访问期间不改变。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 (6)P3口:P3口是一个内部提供上拉电阻的8位双向I/O口,P3口的输出缓冲器可驱动4个TTL逻辑门电路。对P3口管脚写入“1”后,被内部上拉电阻拉高,可用作输入。P3口被外部下拉为低电平时,将输出电流,这是由于内部接有上拉电阻的缘故。P3口除了一般I/O线的功能外,还具有更为重要的第二功能,如表4.2所示。P3口同时为FLASH编程和编程校验接收一些控制信号 表4.2 P3口的第二功能 端口引脚 第二功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) - 13 - 数字电压表的设计 P3.2 /INTO(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(定时器0外部输入) P3.5 T1(定时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) (7) RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 (8) ALE//RPOG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 (9)/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的信号将不出现。 (10)/EA/VPP:当保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 AT89S51 有256 个字节的内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重叠的,也就是高128字节的RAM 和特殊功能寄存器的地址是相同的,但物理上它们是分开的。 ?定时器0和定时器1: AT89S51的定时器0和定时器1 的工作方式与AT89C51 相同。定时和计数功能由特殊功能寄存器TMOD的控制位C/T进行选择,这两个定时/计数器有4种操作模式,通过TMOD的M1和M0选择。其中模式 - 14 - 数字电压表的设计 0、1和2都相同,模式3不同。 ?定时器2: 定时器2 是一个16 位定时/计数器。它既可当定时器使用,也可作为外部事件计数器使用,其工作方式由特殊功能寄存器T2CON的C/T2 位选择。定时器2 有三种工作方式:捕获方式,自动重装载(向上或向下计数)方式和波特率发生器方式,工作方式由T2CON 的控制位来选择。 定时器2 由两个8 位寄存器TH2 和TL2 组成,在定时器工作方式中,每个机器周期TL2 寄存器的值加1,由于一个机器周期由12 个振荡时钟构成,因此,计数速率为振荡频率的1/12。 在计数工作方式时,当T2 引脚上外部输入信号产生由1 至0 的下降沿时,寄存器的值加1,在这种工作方式下,每个机器周期的5SP2 期间,对外部输入进行采样。若在第一个机器周期中采到的值为1,而在下一个机器周期中采到的值为0,则在紧跟着的下一个周期的S3P1 期间寄存器加1。由于识别1 至0 的跳变需要2 个机器周期(24 个振荡周期),因此,最高计数速率为振荡频率的1/24。为确保采样的正确性,要求输入的电平在变化前至少保持一个完整周期的时间,以保证输入信号至少被采样一次。 ?可编程时钟输出: 定时器2 可通过编程从P1.0 输出一个占空比为50%的时钟信号。P1.0 引脚除了是一个标准的I/O 口外,还可以通过编程使其作为定时/计数器2 的外部时钟输入和输出占空比50%的时钟脉冲。当时钟振荡频率为16MHz 时,输出时钟频率范围为61Hz—4MHz。 ?UART: AT89S51的工作方式与AT89C51工作方式相同。串口为全双工结构,表示可以同时发送和接收,它还具有接收缓冲,在第一个字节从寄存器读出之前,可以开始接收第二个字节。(但是如果第二个字节接收完毕时第一个字节仍未读出,其中一个字节将会丢失)。串口的发送和接收寄存器都是通过SFR SBUF进行访问的。写入SBUF的数据装入发送寄存器,对SBUF的读操作是对物理上分开的接收寄存器进行访问。 该串口有4种操作模式(模式0、模式1、模式2和模式3),在 - 15 - 数字电压表的设计 这4种模式中,发送过程是以任意一条写SBUF作为目标寄存器的指令开始的,模式0时接收通过设置R0=0及REN=1初始化,其他模式下如若REN=1则通过起始位初始化。 ?中断: AT89S51共有6 个中断向量:两个外中断(INT0 和INT1),3 个定时器中断(定时器0、1、2)和串行口中断。 这些中断源可通过分别设置专用寄存器IE 的置位或清0 来控制每一个中断的允许或禁止。IE 也有一个总禁止位EA,它能控制所有中断的允许或禁止。 定时器2 的中断是由T2CON 中的TF2 和EXF2 逻辑或产生的,当转向中断服务程序时,这些标志位不能被硬件清除,事实上,服务程序需确定是TF2 或EXF2 产生中断,而由软件清除中断标志位。 定时器0 和定时器1 的标志位TF0 和TF1 在定时器溢出那个机器周期的S5P2 状态置位,而会在下一个机器周期才查询到该中断标志。然而,定时器2 的标志位TF2 在定时器溢出的那个机器周期的S2P2 状态置位,并在同一个机器周期内查询到该标志。 ?时钟振荡器: AT89S51中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1 和XTAL2 分别是该放大器的输入端和输出端。 这个放大器与作为反馈元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路。 外接石英晶体(或陶瓷谐振器)及电容C1、C2 接在放大器的反馈回路中构成并联振荡电路。对外接电容C1、C2 虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF?10pF,而如使用陶瓷谐振器建议选择40pF?10F。 用户也可以采用外部时钟。采用外部时钟的电路。这种情况下,外部时钟脉冲接到XTAL1 端,即内部时钟发生器的输入端,XTAL2 则悬空。 由于外部时钟信号是通过一个2 分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续 - 16 - 数字电压表的设计 时间和最大的低电平持续时间应符合产品技术条件的要求。 ?Flash存储器的编程: AT89S51单片机内部有8k字节的Flash PEROM,这个Flash 存储阵列出厂时已处于擦除状态(即所有存储单元的内容均为FFH),用户随时可对其进行编程。编程接口可接收高电压(+12V)或低电压(Vcc)的允许编程信号。低电压编程模式适合于用户在线编程系统,而高电压编程模式可与通用EPROM 编程器兼容。 ?数据查询: AT89S51 单片机用Data Palling 表示一个写周期结束为特征,在一个写周期中,如需读取最后写入的一个字节,则读出的数据的最高位(P0.7)是原来写入字节最高位的反码。写周期完成后,所输出的数据是有效的数据,即可进入下一个字节的写周期,写周期开始后,Data Palling 可能随时有效。 ?Ready/Busy:字节编程的进度可通过“RDY/BSY 输出信号监 测,编程期间,ALE 变为高电平“H”后,P3.4(RDY/BSY)端电平被拉低,表示正在编程状态(忙状态)。编程完成后,P3.4 变为高电平表示准备就绪状态。 ?程序校验:如果加密位LB1、LB2 没有进行编程,则代码数据可通过地址和数据线读回原编写的数据,采用如图12的电路。加密位不可直接校验,加密位的校验可通过对存储器的校验和写入状态来验证。 ?芯片擦除:利用控制信号的正确组合并保持ALE/PROG 引脚10mS 的低电平脉冲宽度即可将PEROM 阵列(4k字节)和三个加密位整片擦除,代码阵列在片擦除操作中将任何非空单元写入“1”,这步骤需再编程之前进行。 4.2.1.3 AT89S51与AT89C51的区别 AT89S51在AT89C51的基础上,又增加了许多功能,性能有了较大提升。 (1)ISP在线编程功能,这个功能的优势在于改写单片机存储器内的程序不需要把芯片从工作环境中剥离。是一个强大易用的功能。 - 17 - 数字电压表的设计 (2)工作频率为33MHz,大家都知道89C51的极限工作频率只有24M,就是说S51具有更高工作频率,从而具有了更快的计算速度。 (3)具有双工UART串行通道。 (4)内部集成看门狗计时器,不再需要像89C51那样外接看门狗计时器单元电路。 (5)双数据指示器。 (6)电源关闭标识。 (7)全新的加密算法,这使得对于89S51的解密变为不可能,程序的保密性大大加强,这样就可以有效的保护知识产权不被侵犯。 (8)兼容性方面:向下完全兼容51全部字系列产品。比如8051、89C51等等早期MCS-51兼容产品。在89C51上一样可以照常运行,这就是所谓的向下兼容。 4.2.1.4 AT89S51的复位电路 AT89S51的复位电路如图1-8所示。当单片机一上电,立即复位;另外,如果在运行中,外界干扰等因素使单片机的程序陷入死循环状态或“跑飞”,就可以通过按键使其复位。复位也是使单片机退出低功耗工作方式而进入正常状态的一种操作。 图4.5 复位电路 电容C和电阻R1实现上电自动复位。增加按键开关S和电阻R2又可实现按键复位功能。R2的作用是在S按下的时候,防止电容C放电电流过大烧坏开关S的触点。因保证R1/R2 >10。一般取C=10uF,R2=100Ω,R1=8.2KΩ。 - 18 - 数字电压表的设计 4.2.2 A/D转换芯片ADC0809 ADC0809是典型的8位8通道逐次逼近式A/D转换器,其实物如图1-3所示。它可以和微型计算机直接接口。ADC0809转换器的系列芯片是ADC0808,可以相互替换。 如图4.6为ADC0809实物图: 图4.6 ADC0809实物图 4.2.2.1 ADC0809内部逻辑结构 图4.7 ADC0809的内部逻辑结构图 ADC0809的内部逻辑结构如图4.7所示。图中多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表4.3所示。 - 19 - 数字电压表的设计 表4.3 ADC0809通道选择表 C(ADDC) B(ADDB) A(ADDA) 选择的通道 0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7 4.2.2.2 ADC0809的引脚 ADC0809芯片为28引脚双列直插式封装,其引脚排列如图4.8所 示。 图4.8 ADC0809引脚图 - 20 - 数字电压表的设计 (1)IN0,IN7:8路模拟量输入通道。 (2)A、B、C:模拟通道地址线。这3根地址线用于对8路模拟通道的选择,其译码关系如表4.3所示。其中,A为低地址,C为高地址,引脚图中为ADDA,ADDB和ADDC。 (3)ALE:地址锁存允许信号。对应ALE上跳沿,A、B、C地址状态送入地址锁存器中。 (4)START:转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。本信号有时简写为ST。 (5)D7,D0:数据输出线。为三态缓冲输出形式,可以和单片机的数据线直接相连。D0为最低位,D7为最高。 (6)OE:输出允许信号。用于控制三态输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换得到的数据。 (7)CLK:时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。通常使用频率为500KHz的时钟信号。 (8)EOC:转换结束信号。EOC=0,正在进行转换;EOC=1,转换结束。使用中该状态信号即可作为查询的状态标志,又可作为中断请求信号使用。 (9)Vcc: +5V电源,GND:地。 (10)Vref:参考电压。参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。其典型值为+5V(Vref(+)=+5V, Vref(-)=0V)。 4.2.2.3 ADC0809的工作原理 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 (注意:ALE信号常与START信号连在一起,这样连接可以在信号 - 21 - 数字电压表的设计 的前沿写入地址信号,在其后沿启动A/D转换,图4.9为ADC0809信号的时序配合图)。 图4.9 ADC0809信号的时序配合 4.2.3 驱动芯片74HC244 74H244在本系统中作为驱动芯片使用,用于驱动数码管的点亮。由该芯片可构成三态数据缓冲器。74HC244芯片的引脚排列如图4.10所示。 图4.10 74HC244芯片的引脚图 - 22 - 数字电压表的设计 74HC244芯片内部共有两个四位三态缓冲器,使用时可分别以1G和2G作为它们的选通工作信号。当1G和2G都为低电平时,输出端Y和输入端A状态相同;当1G和2G都为高电平时,输出呈高阻态。 4.2.4 4位一体7段LED数码管 本实验的显示模块主要由一个4位一体的7段LED数码管(SM410564)构成,用于显示测量到的电压值。它是一个共阳极的数码管,每一位数码管的原理图如图4.11所示。每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收AT89C52的P1口产生的显示段码。C1,C2,C3,C4引脚端为其位选端,用于接收AT89C52的P3口产生的位选码。图4-10为其实物图,图4.12为其引脚图。 图4.11 一位数码管的原理图 - 23 - 数字电压表的设计 图4.12 数码管引脚图 4.3 AT89S51 单片机主控电路 本课题实验主要采用AT89S51芯片和ADC0809芯片来完成一个简易的数字电压表,能够对输入的0,5 V的模拟直流电压进行测量,并通过一个4位一体的7段LED数码管进行显示,测量误差约为0.02 V。该电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片AT89S51来完成,其负责把ADC0809传送来的数字量经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着ADC0809芯片的工作。显示模块主要由7段数码管及相应的驱动芯片74LS373组成,显示测量到的电压值。 4.4 A/D转换电路 A/D转换由ADC0809完成。ADC0809具有8路模拟输入端口,地址线(23,25脚)可决定对哪一路模拟输入作A/D转换。22脚为地址控制,当输入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2μs宽高电平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时,7脚输出高电平。9脚为A/D转换数据输出允许控制,当OE脚为高电平时,A/D转换数据从该端口输出。10脚为ADC0809的时钟输入端,利用单片机AT89S51的30脚的六分频晶振频率再通过14024二分频得到1MHz时钟。AT89S51与ADC0809的连接电路原理图如图4.13所示。 - 24 - 数字电压表的设计 图4.13 AT89S51与ADC0809的连接电路原理图 AT89S51与ADC0809的连接必须注意处理好3个问题: (1)在START端送一个100μs宽的启动正脉冲; (2)获取EOC端上的状态信息,因为它是A/D转换的结束标志; (3)给“三态输出锁存器”分配一个端口地址,也就是给OE端送一个地址译码器的输出信号。 4.5 显示电路 系统采用动态显示方式驱动4个数码管工作,显示电路与单片机的P1口相连来显示采集到的电压值。如图4.14所示: - 25 - 数字电压表的设计 图4.14 显示电路原理图 - 26 - 数字电压表的设计 5 软件流程设计 5.1 初始化程序 系统上电时,外部复位电路自动复位,P2口置0。 5.2 主程序流程 在刚上电时,系统默认为循环显示8个通道的电压值状态。当进行一次测量后,将显示每一通道的A/D转换值,每个通道的数据显示时间为1 s左右。主程序调用显示子程序和测试子程序之间循环,主程序流程图见图5.1。 开始 初始化 调用A/D转换子程序 调用显示子程 序 图5.1 主程序流程图 - 27 - 数字电压表的设计 5.3 各个模块子程序流程 5.3.1 显示程序流程 显示子程序采用动态扫描法实现四位数码管的数值显示。测量所得的A/D转换数据放在70H,77H内存单元中,测量数据在显示时需转换成为十进制BCD码放在78H,7BH单元中,其中7BH存放通道标志数。寄存器R3用作8路循环控制,R0用作显示数据地址指针。 动态显示子程序 选择通道 显示缓冲区首地址送 R0 指向右边第一 位 取出要显示的数据 计算下一 位位选码 查等显示数据的显示码 送7段码到P1口 修改显示缓 冲区地址 IS延时处理 N 4位显示完成, 返回 - 28 - 数字电压表的设计 图5.2 显示子程序流程图 5.3.2 A/D转换程序流程 模/数转换测量子程序用来控制对0809八路模拟输入电压的A/D 转换,并将对应的数值移入70H,77H单元内存单元。其程序流程见图 5.3。 . 开始 启动测试(TESTART) N A/D转换结束, P3.7=1, 取数据(P2.5=1) 0809地址加1 Y 地址数小于8, N 结束 图5.3 A/D转换测量程序流程图 - 29 - 数字电压表的设计 总结 数字电压表可以测量0,5V的8路电压值。AT89S51为8位处理器,当ADC0809输入电压为5.00V时,输出数据位为255(FFH)。因此最大分辨率为0.0196V(5/255)。如要获得更高的精度要求,应采用12位、13位的A/D转换器。数字电压显示可能有偏差,可以通过校正0809的基准电压来解决,或者用软件编程来校正测量值。 本系统同单片机89S51构成数字电压表控制系统,具有精度高、速度快、性能稳定和电路简单且工作可靠等特点,具有很好的使用价值。 - 30 - 数字电压表的设计 致谢 时光荏苒,岁月如梭。记忆的雪花翩翩起舞,思绪定格在凤凰花开的季节。挥洒过汗水,也滴落过泪花,这里有我熟悉的一切,有我热爱的一切。恍惚中,在美丽的理工校园中,度过了人生中最为宝贵的年华。 凤凰涅磐需要经历烈火的煎熬和痛苦的考验。迈进象牙塔殿堂时的激动,仍时刻在内心回荡,不知不觉中完成了人生中最大的一次蜕变。蜕变需要经历过磨练,磨练可以让我们更为坚强,去勇敢面对生活中所遇到的困难与磨难。 感谢熊斌老师,是你悉心的指导、关心和鼓励,才使得我养成科学严谨的治学态度,也让我学会了如何去解决所遇到的问题。感谢你让我懂得了科学探索的奥秘在于永远保持一个乐观积极向上的心态以及脚踏实地勤勉的务实作风,这是获得胜利的无敌通关密码。 感谢我的家人。是他们在挫折时,给与我信心与前进的动力;是他们在快乐时,分享我的喜悦。 感谢所有关心和帮助过我的人。 - 31 - 数字电压表的设计 参考文献 [1] 李光飞,楼然苗,胡佳文等.单片机课程设计实例指导[M],北京航空航 天大学出版社,2004. [2] 张毅坤,陈善久,裘雪红.单片微型计算机原理及应用[M],西安电子科 技大学出版社,1998. [3] 何立民. 单片机高级 教程 人力资源管理pdf成真迷上我教程下载西门子数控教程protel99se入门教程fi6130z安装使用教程 [M]. 北京航空航天大学出版社,2000. [4] 徐江海. 单片机实用教程[M].机械工业出版社,2003. [5] 丁元杰. 单片机原理及应用[M].机械工业出版社,1996. [6] 王幸之,钟爱琴,王雷. AT89系列单片机原理与接口技术[M]. 北京航 空航天大学出版社,2004. [7] 孙余凯. 常用集成电路实用手册[M].电子工业出版社,2005. [8] 常喜茂. C51基础与应用实例 [M].电子工业出版社,2009. [9] 欧阳斌林等. 单片机原理及应用[M]. 中国水利水电出版社 2001. [10] 孙涵芳等. MCS—51、96系列单片机原理及应用[M]. 北京航空航 天大学出版社,2004. [11] 詹树仁. 单片机的工作原理及应用[M]. 华南理工大学出版社,2002. [12] 周航慈. 单片机应用程序设计技术[M]. 北京航空航天大学出版社, 1992 [13] 杨素行. 模拟电子技术基础简明教程[M]. 高等教育出版社,1985 [14] 沈美明. 温冬婵著.IBM-PC 汇编语言程序设计[M]. 清华大学出版 社,1991 [15] 朱传琴. 数字电路技术[M]. 中国水利水电出版社,2007. [16] 张毅刚等. MCS-51单片机应用设计[M]. 哈尔滨工业大学出版 社,1997. [17] 李玉峰. MCS-51系列单片机原理与接口技术[M]. 人民邮电出版 社,2004. [18] 梅丽凤. 单片机原理及接口技术[M]. 北方交大出版社,2004. [19] 许雷等. 单片机原理与应用[M]. 冶金工业出版社,2003. [20] 夏路易等. Protel99电路设计指南[M]. 北京希望电子出版社,2002 . - 32 - 数字电压表的设计 附件1:数字电压表电路原理图 - 33 - 数字电压表的设计 附件2:程序清单 ********************************** * 主程序和中断程序入口 * ********************************** ORG 0000H LJMP START ORG 0003H RETI ORG 000BH RETI ORG 0013H RETI ORG 001BH RETI ORG 0023H RETI ORG 002BH RETI ******************************* * 初始化程序中的各变量 * ******************************* CLEARMEMIO: CRL A MOV P2,A MOV R0,#70H MOV R2,#0DH LOOPMEM: MOV @R0,A INC R0 DINZ R2,LOOPMEM - 34 - 数字电压表的设计 MOV 20H,#00H MOV A,#0FFH MOV P0,A MOV P1,A MOV P3,A RET ************************* * 主程序 * ************************* START: LCALL CLEARMEMIO ;初始化 LCALL TEST ;测量一次 LCALL DISPLAY ;显示数据一次 AJMP MAIN NOP ;PC值出错处理 NOP NOP LJMP START **************************** * 显示控制程序 * **************************** DISPLAY: JB 00H,DISP11 ;标志位为1,则转单 路显示子程序 MOV R3,#08H ;8路信号循环显示控 制子程序 MOV R0,#70H ;显示数据初址70H, 77H MOV 7BH,#00H ;显示通道路数初值 DISLOOP1: LCALL TUNBCD ;显示数据转为三位BCD码存入 7AH、79H、78H MOV R2,#0FFH ;每路显示时间控制在 - 35 - 数字电压表的设计 4ms×255,约1s DISLOOP2: LCALL DISP ;调四位显示程序 LCALL KEYWORK1 ;按键检测 DJNZ R2,DISLOOP2 INC R0 ;显示下一路 INC 7BH ;通道显示数加1 DJNZ R3,DISLOOP1 RET DISP11: MOV A,7BH ;单路显示控制子程序 SUBB A,#01H MOV 7BH,A ADD A,#70H MOV R0,A DISLOOP11: LCALL TUNBCD ;显示数据转为三位BCD码存 入7AH、79H、78H MOV R2,#0FFH ;每路显示时间控制在 4ms×255 DISLOOP22: LCALL DISP ;调整四位显示程序 LCALL KEYWORK2 ;按键检测 DJNZ R2,DISLOOP22 INC 7BH RET **************************************** * 显示数据转为三位BCD码子程序 * **************************************** 显示数据转为三位BCD码存入7AH、79H、78H(最大值5.00V) TUNBCD: MOV A,@R0 ;255/51=5.00V运算 MOV B,#51 DIV AB MOV 7AH,A ;个位数放入7AH - 36 - 数字电压表的设计 MOV A,B ;余数大于19H,F0为 1乘法溢出,结果加 5 CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP2 ADD A,#5 LOOP2: MOV 79H,A ;小数后第一位放入79H MOV A,B CLR F0 SUBB A,#1AH MOV F0,C MOV A,#10 MUL AB MOV B,#51 DIV AB JB F0,LOOP3 ADD A,#5 LOOP3: MOV 78H,A ;小数后第2位放入78H RET **************************** * 显示子程序 * **************************** 共阳显示子程序,显示内容在78H,7BH DISP: MOV R1,#78H ;共阳显示子程序,显示 - 37 - 数字电压表的设计 内容在78H,7BH PLAY: MOV P1,#0FFH MOV A,R5 ANL P3,A MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR MOV P1,A JB P3.2,PLAY1 ;小数点处理 CLR P1.7 ;小数点显示(显示格 式为XX.XX) PLAY1: LCALL DL1MS INC R1 MOV A,P3 JNB ACC.3,ENDOUT RL A MOV R5,A MOV P3,#0FFH AJMP PLAY ENDOUT MOV P3,#0FFH MOV P1,#0FFH RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H ;段码表 DB 92H,82H,0F8H,80H,90H,0FH ********************** * 延时程序 * ********************** DL10MS: MOV R6,#0D0H ;10ms延时子程序 DL1: MOV R7,#19H DL2: DJNZ R7,DL2 DJNZ R6,DL1 - 38 - 数字电压表的设计 RET DL1MS: MOV R4,#0FFH ;513+513?1ms LOOP11: DJNZ R4,LOOP11 MOV R4,#0FFH LOOP22: DJNZ R4,LOOP22 RET ********************************* * 电压测量(A/D)子程序 * ********************************* 一次测量数据8个,依次放入70H,77H单元中 TEST: CLR A ;模/数转换子程序 MOV P2,A MOV R0,#70H ;转换值存放首址 LCALL TESTART ;转换8次控制 WAIT: JB P3.7,MOVD ;等A/D转换结束信号 AJMP WAIT TESTART: SETB P2.3 ;测试启动 NOP NOP CLR P2.3 SETB P2.4 NOP NOP CLR P2.4 NOP NOP NOP NOP RET - 39 - 数字电压表的设计 MOVD: SETB P2.5 ;取A/D转换数据 MOV A,P0 MOV @R0,A CLR P2.5 INC R0 MOV A,P2 ;通道地址加1 INC A MOV P2,A CJNE A,#08H,TESTEND ;等8路A/D转换结束 TESTEND: JZ TESTCON CRL A ;结束恢复端口 MOV P2,A MOV A,#0FFH MOV P0,A MOV P1,A MOV P3,A RET TESTCON: LCALL TESTART LJMP WAIT - 40 -
本文档为【数字式电压表设计】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_348501
暂无简介~
格式:doc
大小:315KB
软件:Word
页数:0
分类:生产制造
上传时间:2017-11-10
浏览量:15