单片机课程设计数字电压表

合集下载

单片机课程设计报告报告——数字电压表

单片机课程设计报告报告——数字电压表

数字电压表单片机课程设计报告班级:姓名:学号:指导教师:2011 年3 月29 日数字电压表电路设计报告一、题目及设计要求采用51系列单片机和ADC 设计一个数字电压表,输入为0~5V 线性模拟信号,输出通过LED 显示,要求显示两位小数。

二、主要技术指标1、数字芯片A/D 转换技术2、单片机控制的数码管显示技术3、单片机的数据处理技术三、方案论证及选择主要设计方框图如下:1、主控芯片方案1:选用专用转化芯片INC7107实现电压的测量和实现,用四位数码管显示出最后的转换电压结果。

缺点是京都比拟低,内部电压转换和控制局部不可控制。

优点是价格低廉。

方案2:选用单片机AT89C51和A/D 转换芯片ADC0809实现电压的转换和控制,用四位数码管显示出最后的转换电压结果。

缺点是价格稍贵;优点是转换京都高,且转换的过程和控制、显示局部可以控制。

基于课程设计的要求和实验室能提供的芯片,我选用了:方案2。

2、显示局部方案1:选用4个单体的共阴极数码管。

优点是价格比拟廉价;缺点是焊接时比拟麻烦,容易出错。

方案2:选用一个四联的共阴极数码管,外加四个三极管驱动。

这个电路几乎没有缺点;优点是便于控制,价格低廉,焊接简单。

基于课程设计的要求和实验室所能提供的仪器,我选用了:方案2。

四、电路设计原理模拟电压经过档位切换到不同的分压电路筛减后,经隔离干扰送到A/D转换器进展A/D转换。

然后送到单片机中进展数据处理。

处理后的数据送到LED 中显示。

同时通过串行通讯与上位通信。

硬件电路及软件程序。

而硬件电路又大体可分为A/D转换电路、LED显示电路,各局部电路的设计及原理将会在硬件电路设计局部详细介绍;程序的设计使用汇编语言编程,利用Keil和PROTEUS 软件对其编译和仿真。

一般I/O接口芯片的驱动能力是很有限的,在LED显示器接口电路中,输出口所能提供的驱动电流一般是不够的尤其是设计中需要用到多位LED,此时就需要增加LED驱动电路。

单片机课程设计数字电压表

单片机课程设计数字电压表

2014 ~ 2015 学年第2 学期《单片机应用技术》课程设计报告题目:数字电压表设计专业: 12自动化班级: 1班姓名:指导教师:陆媛宋洪儒电气工程学院20 15年 5 月15 日任务书课题名称指导教师(职称)陆媛宋洪儒执行时间2014~ 2015学年第2 学期第11 周学生姓名学号承担任务吴伟1209111051 软件仿真电路设计谈阳1209111039 原理设计罗伟1209111034 系统软件程序设计黄亚洲1209111020 测试与调试设计目的1、进一步熟悉和掌握单片机的结构及工作原理。

2、掌握单片机的接口技术及相关外围芯片的外特性,控制方法。

3、通过课程设计,掌握以单片机核心的电路设计的基本方法和技术,了解有关电路参数的计算方法。

4、通过程序设计和仿真,逐步掌握模块化程序设计方法和仿真软件的使用。

5、通过完成一个包括电路设计和程序开发的完整过程,使学生了解开发单片机应用系统的全过程,为今后从事相应打下基础。

设计要求可以测量0~5V范围内的3路直流电压值。

在4位LED 数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V~5.00V,1位LED数码管显示路数,3路分别为0-2。

要求测量的最小分辨率为0.02V。

摘要随着电子科学技术、传感技术、自动控制技术和计算机技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,单片机技术作为计算机技术的一个分支广泛应用于工业控制、智能化仪器仪表、家用电器,甚至电子玩具等各个领域。

本文介绍一种以AT89S51单片机为核心的数字电压测量电路,该电路采用ICL7135高精度、双积分A/D转换电路,测量范围直流0-±2000伏,使用LCD1601液晶模块显示,并可以与PC机进行串行通信。

该电路设计新颖、功能强大、可扩展性强。

目录摘要 (3)1 引言 (5)2设计原理及要求 (6)2.1数字电压表的实现原理 (6)2.2数字电压表的设计要求 (6)3软件仿真电路设计 (6)3.1设计思路 (6)3.2仿真电路图 (7)3.3设计过程 (8)3.4 AT89C51的功能介绍 (8)3.5 ADC0809的引脚及功能介绍 (11)3.6 74LS373芯片的引脚及功能 (13)3.7 LED数码管的控制显示 (13)4系统软件程序的设计 (14)4.1 主程序 (14)4.2 A/D转换子程序 (16)4.3 中断显示程序 (17)5使用说明与调试结果 (18)6总结 (18)参考文献 (19)附录1 源程序 (20)附录2仿真结果 (23)答辩记录及评分表 (27)1 引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。

单片机设计数字电压表

单片机设计数字电压表

课题:数字电压表的设计一、系统设计内容利用单片机AT89C52和ADC0809设计一个数字电压表,能够测量0~5V之间的电压值,用四位数码管显示。

数字电压表利用A/D转换原理,将被测模拟量转换成数字量,并用数字方式显示测量结果的电子测量仪表。

A/D转换器的精度影响数字万用表的准确度。

本书采用ADC0808对输入模拟信号进行转换,控制核心AT89C51单片机对转换的结果进行运算和处理,最后驱动输出装置显示数字电压信号,通过Proteus仿真软件实现接口电路设计,并进行实时仿真。

设计的数字电压表可以测量0~5V的电压值,AT89C51为8位单片机,当ADC0808的输入电压为5V时,输出数字量为FFH,故最大分辨率为0.0196V。

如果要获得更高的精度,需采用12位、13位等高于8位的A/D转换器。

数字电压表的显示部分可以增加BCD码调整程序来通过四位数码显示管显示其数据。

本设计的显示偏差,可以通过校正0808的基准参考电压来解决,或用软件编程来校正其测量值。

本书用单片机AT89C51、ADC0808和数码管构成一个简易数字电压表控制系统,在设计过程中通过Proteus仿真软件进行调试,具有电路简单、成本低、精度高、速度快和性能稳定等优点。

二、系统设计目标(1)掌握Proteus中电压探针和电压表的使用方法。

(2)通过制作简易电压表,学会A/D转换芯片在单片机应用系统中的硬件接口技术和编程方法。

(3)了解ADC0809芯片的功能以及使用方法。

三、系统设计步骤1、Proteus电路设计利用单片机AT89C52和ADC0809设计一个数字电压表的原理图如图1-1所示。

图1-1 ADC0809与单片机的接口电路(1)选取元器件:①单片机:AT89C52②电阻:RES*③ 4位共阴极的数码管:7SEG-MPX4-CC④ A/D转换芯片:ADC0808(代替0809)⑤电位器:POT-HG⑥瓷片电容:CAP⑦晶振:CRYSTAL(2)放置元器件、电源极地、连线、元器件属性设置。

单片机课程设计报告:电压表(附程序)

单片机课程设计报告:电压表(附程序)

——电压表【课题】电压表【设计要求】设计一个量程可变的数字电压表,用3个LED数码管显示,电压表量程为0~200mV(显示0~200mV)、200mV~2V(显示0.2V~2V)。

【设计原理】一、实验电路图二、工作原理如上图所示,实验中主要用到的芯片有运算放大器、继电器、ADC0832、8951单片机及其外围设备。

电压表的量程为两档,0~200mV 和200mV~2V。

其相对应的运放的放大增益是25倍和2.4倍,这样即使是最大的输入其通过运放后的输出电压都会小于5V,其通过限幅电路后电压均为其真实值。

然后模拟输入电压由AD0832输入,经过模数转换后送给单片机。

由p0口输出字形,同时由p1.4的电平控制74LS573的锁存和直通状态。

P1.5、p1.6、p1.7控制字位。

P1.2控制继电器的工作状态,当P1.2低电平时,三极管工作在截止状态,继电器线圈无电流通过,继电器处于常闭状态,那么相对应的运放的放大增益为25倍。

而当P1.2为高电平时,三极管工作在饱和状态,继电器线圈有电流通过,产生电磁力将继电器的开关吸到常开状态,其对应的放大增益即变为2.4倍。

对于一个模拟输入,现将其放大2.4倍,然后由AD 输入并相应转化,如果它的输出要是小于0.5V ,也就是19H ,则选择此档位是不精确的,也说明此时的输入电压介于0~200mV 之间。

那么我们就需要让P1.2置低电平,将相应的放大倍数改成25以提高转换精度。

若其满足相应的条件则直接将其转换成BCD 码并直接送数显示即可。

实验中用到了模数转换器ADC0832,其引脚图如右图所示,ADC0832是8位逐次逼近型A /D 转换器, 单一正5V 电源供电,CS 为片选, CLK 提供串行输入/输出时钟信号,DO用于串行数字输出,CHO 和CHl 为双通道模拟输入端, 它可用软件设定为单端或差分输人。

在差分方式中,通道口地址的选择由DI 逐位输入,GND 是数字、模拟公共地,cc V (REP V )为芯片电源、参考电压公共端。

单片机课程设计-简易数字电压表

单片机课程设计-简易数字电压表

课程设计报告题目:简易数字电压表课程名称:单片机与接口技术课程设计院系:电子工程学院专业、班级:学生姓名:学生学号:指导老师:目录一、设计目的及设计要求二、总体设计思路三、系统硬件设计四、软件流程图及必要说明五、总结一、设计目的及设计要求1.设计目的:(1).熟悉单片机系统综合设计方法。

(2).掌握数码管的动态显示原理。

(3).掌握ADC0809的工作原理。

2.设计要求:数字电压表的基本原理,是对直流电压进行模数转换,其结果用数字直接显示出来,按其基本工作原理可分为积分式和比较式。

基本要求:简易数字电压表可以测量0-5V的单通道输入电压值,测量值能通过数码管以十进制显示电压值,测量误差约为±0.1V。

二、总体设计思路在598k3综合实验/仿真系统中,用双头线将可调电压区的VOUT接至ADC0809 模数转换区的IN0,此IN0端口作为待测输入电压端口,由ADDA、ADDB、ADDC都为低电平时决定,因此ADC0809 模数转换区的ADDA、ADDB、ADDC接至GND,可调电压区的VIN 接至电源+5V,ADC0809 模数转换区的CS4 接至系统接口区的8000H 端口,ADC0809模数转换区的WR接至系统接口区的/IOWR端口,ADC0809 模数转换去的 RD 接至系统接口区的/IORD, CLK接至单脉冲与时钟区的500K,用8 芯线将数据总线JX0 接至A DC0809模数转换区的JX6,即将ADC0809的输出端接入实验箱系统中8255的输入端。

然后在AT89S51主控芯片的控制下,将8255的PA输出端口作为数码管的位选控制端,PB 输出端口作为数码管的字形控制端。

三、 系统硬件设计1.系统原理框图系统原理框图2.AT89S52引脚说明AD0809 D0~D7 IN0~IN7VREF+ VREF- CLK OEST 、ALEAT89S528255 D0~D7PA0~PA 7PB0~PB7数码管控制线控制线位选段选XTAL2:系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTA L2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。

单片机课程设计——数字电压表

单片机课程设计——数字电压表

单片机预习报告--------------电压表一.题目分析根据题目要求,系统设计需要基于自动控制原理,实现电压量程的自动切换、数据采样、电压显示等功能。

主要来说,系统由信号调理电路、A/D转换电路、单片机控制系统、数码显示系统等几个模块组成。

二.系统总体设计与框图系统框图如图下图所示。

该过程是:首先通过系列比较器检测输入电压的极性与范围,单片机根据电压极性与范围对继电器阵列进行相应的动作,实现了输入量程的全自动转换。

经过调理后的电压信号由AD转换后送出数码显示。

系统总体设计与框图三.各模块方案1)A/D采样系统采用ADC08322)自动量程切换量程切换电路包括电压衰减变换电路和无零漂小信号放大电路。

智能数字电压表中关键技术之一为自动量程转换问题。

用单片机控制多组继电器进行量程切换。

特点是简单实用,缺点是机械噪声大。

3)电压检测为了实现对输入的微小信号或大信号进行精确测量,我们拟采用信号放大或衰减预处理电路,即需要对被测量电压的极性、范围进行判断和确定,从而将被测电压的基本信息传递给单片机系统。

用多组比较器进行电压范围的分段检测,实现对输入电压的粗略测量。

为了粗略地得到被测量的电压范围采用多组比较器的方式,通过阶梯式比较的方法确定输入电压的范围。

4)显示部分采用LED数码管动态扫描显示。

采用3个位LED动态扫描显示的优点是能改善外部信号对显示的干扰,但单片机在工作时要求CPU不停地对LED更新,这将会降低系统的运行速度,且占用资源比较多。

5)信号调理模块该部分主要实现的功能是自动量程切换和电压变换,模块主要由电压极性检测电路、电压范围粗测电路、电压变换电路、继电器模块四部分组成。

7)继电器模块单片机是一个弱电器件,一般情况下它们大都工作在5V甚至更低.驱动电流在mA级以下.而要把它用于一些大功率场合,比如控制电动机,显然是不行的.所以,就要有一个环节来衔接,这个环节就是所谓的"功率驱动".继电器驱动就是一个典型的、简单的功率驱动环节.在这里,继电器驱动含有两个意思:一是对继电器进行驱动,因为继电器本身对于单片机来说就是一个功率器件;还有就是继电器去驱动其他负载,比如继电器可以驱动中间继电器,可以直接驱动接触器,所以,继电器驱动就是单片机与其他大功率负载接口.四.元件清单五.程序设计程序流程图如下。

单片机课程设计报告数字电压表

单片机课程设计报告数字电压表

单片机课程设课题名称:数字电压表课程原理:1、模数转换原理:试验中,我们选用ADC0809作为模数转换的芯片,其为逐次逼近式AD转换式芯片,其工作时需要一个稳定的时钟输入,根据查找资料,得到ADC0809的时钟频率在10KHZ~1200KHZ,我们选择典型值640KHZ。

课题要求测量电压范围是0到5V,又ADC0809的要求:V ref+<=Vcc,V ref->=GND,故我们取V ref+=+5V,V ref-=0V。

由于ADC0809有8个输入通道可供选择,我们选择IN0通道,直接使ADC0809的A、B、C接地便可以了,在当ADC0809启动时ALE引脚电平正跳变时变可以锁存A、B、C 上的地址信息。

ADC0809可以将从IN0得到的模拟数据转换为相应的二进制数,由于ADC0809输出为8位的二进制数,转换时将0到5V分为255等分,所以我们可以得到转换公式为x/255*5化简为:x/51,x为得到的模拟数据量,也就是直接得到的电压量。

在AD转换完成后,ADC0809将在EOC引脚上产生一个8倍于自身时钟周期的正脉冲,以此来作为转换结束的标志。

然后当OE引脚上产生高电平时,ADC0809将允许转换完的二进制数据输出。

2、数据处理原理:由ADC0809的转换原理可以知道我们从其得到数据还只是二进制数据,我们还需要进一步处理来的到x的十进制数,并且对其进行精度处理,也就是课题要求的的精确到小数点后两位,在这里我们用51单片机对数据进行处理。

我们处理数据的思路是:首先将得到的二进制数直接除以十进制数51,然后取整为x的整数部分,然后就是将得到的余数乘以10,然后再除以51,再取整为x的十分位,最后将得到的余数除以5得到x的百分位。

3、数据显示原理:试验中我们用到四位一体的七段数码管,所以我们只能考扫描显示来完成数码管对x的显示,我们用的是四位数码显示管,但是x只是三位的,故我们将将第四位显示为单位U,通过程序的延时,实现四位数码管的稳定显示。

单片机课程设计(直流数字电压表)

单片机课程设计(直流数字电压表)

课程设计总结与展 望
课程设计目标:掌握单片机基础知识,学会设计直流数字电压表 课程设计内容:包括硬件设计、软件设计、调试和测试等 课程设计成果:成功设计并制作出直流数字电压表 课程设计收获:提高了单片机应用能力,增强了团队合作和沟通能力
课程设计展望:未来将继续深入学习单片机技术,提高实践能力,为未来就业做好准备
实际应用:可用于测量直流电压,广泛应用于电子、电力等领域 市场前景:随着电子技术的发展,市场需求不断增长 技术更新:需要不断更新技术,提高测量精度和稳定性 市场竞争:面临国内外竞争对手的压力,需要提高产品质量和降低成本
智能化:单片机技术在智能设备中的应用越来越广泛,未来发展方向将更加智能化。
物联网:单片机技术在物联网中的应用越来越广泛,未来发展方向将更加注重物联网技术的应用。
单片机课程设计(直 流数字电压表)
汇报人:
目录
添加目录标题
单片机课程设计概 述
硬件电路设计
软件程序设计
系统调试与测试
课程设计总结与展 望
添加章节标题
单片机课程设计概 述
掌握单片机的基本原理和编程方法 提高动手实践能力和创新能力 培养团队合作精神和解决问题的能力 为未来的学习和工作打下坚实的基础
电源测试:检查电源电压是 否稳定,是否符合要求
信号测试:检查信号输入、 输出是否正常,是否符合要 求
功能测试:检查系统功能是 否正常,是否符合设计要求
性能测试:检查系统性能是 否满足设计要求,如响应时 间、精度等
稳定性测试:检查系统在 长时间运行下的稳定性, 如温度、湿度等环境因素 对系统的影响
软件调试:通过运行程序,发现并修复程序中的错误 软件测试:通过测试程序,验证程序的功能和性能是否符合预期 测试方法:包括单元测试、集成测试、系统测试等 测试工具:可以使用自动化测试工具,如JUnit、Selenium等

单片机课程设计数字电压表设计

单片机课程设计数字电压表设计

目录摘要 (2)1.设计目的与功能要求 (3)1.1设计目的 (3)1.2功能要求 (3)2.总体设计 (3)2.1系统设计 (3)2.2设计方案 (3)2.3总体设计框图 (4)3.硬件电路设计 (5)3.1核心元器件介绍 (5)3.1.1芯片介绍 (5)3.1.2其它部分简介 (11)1.模拟电压输入部分 (11)2.四位八段共阴极数码管 (12)3.报警装置 (13)4.软件设计 (13)4.1 C语言流程图 (13)4.2 C语言程序清单 (15)5.调试仿真 (18)6.设计总结 (20)<参考文献> (21)摘要数字电压表的诞生打破了传统电子测量仪器的模式和格局。

它显示清晰直观、读数准确,采用了先进的数显技术,大大减少了因人为因素所造成的误差事件。

数字电压表是把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式,并加以显示的仪表。

数字电压表把电子技术、计算技术、自动化技术的成果与精密电测量技术密切的结合在一起,成为仪器、仪表领域中独立而完整的一个分支,数字电压表标志着电子仪器领域的一场革命,也开创了现代电子测量技术的先河。

本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0808,系统除能保确实现要求的功能以外,还能方便进行8路其他A/D转换量得测量、远程测量结果传送等扩展功能。

简易数字电压测量电路由A/D转换、数据处理、显示控制等组成。

关键词:单片机;AT98C52;A/D转换;ADC0808;数据处理AbstractThe birth of the digital voltmeter broken the traditional electronic surveyinginstrument patterns and structure.It shows clear intuitive, readings accurate, use of advanced digital display technology, greatly reducing the caused by human factors error of events. Digital voltmeter is the continuous analogue (dc input voltage) convert discontinuous, discrete digital form, and to display appearance.The digital voltmeter electronic technology, computing technology, automation technology results with the precision electric measurement technology closely together,become instrument and meter field independent and complete a branch, digital voltmeter electronic instruments field marks a revolution, also started the modern electronic measurement technology precedent. This design USES A USES singlechip development platform, and control department AT89C52 microcontroller, A/D conversion using ADC0808, except that the system realized required functions,but also can facilitate assessment of no.8 other A/D conversion amount must measurement, remote measurement results delivery etc function expansion. Simple digital voltage measurement circuit by the A/D conversion, data processing, display and control etc.Keywords: SCM;AT89C52;A/D conversion;ADC0808;data processing1.设计目的与功能要求1.1 设计目的利用单片机AT89C52及ADC0808制作3位数字电压表,更好地学习掌握单片机AT89C52的工作原理及A/D的转换编程方法。

单片机数字电压表设计LED显示含C源代码

单片机数字电压表设计LED显示含C源代码

1. 绪论............................... 错误!未定义书签。

1.1 课程设计规定...................... 错误!未定义书签。

1.2 数字电压表简介.................... 错误!未定义书签。

2. 硬件单元电路设计................... 错误!未定义书签。

2.1数字电压表构造框图................. 错误!未定义书签。

2.1.1 AT89C51单片机简介............ 错误!未定义书签。

2.1.2 ADC0832转换器简介............ 错误!未定义书签。

2.1.3 时钟电路..................... 错误!未定义书签。

2.1.4 复位电路..................... 错误!未定义书签。

2.1.5 LED显示电路.................. 错误!未定义书签。

3. 软件单元电路设计................... 错误!未定义书签。

3.1 主程序流程图...................... 错误!未定义书签。

3.2显示子程序流程图................... 错误!未定义书签。

3.3 A/D转换子程序流程图............... 错误!未定义书签。

3.4 数据解决子程序流程图.............. 错误!未定义书签。

4. 数字电压表仿真设计图与实物图....... 错误!未定义书签。

4.1 仿真图............................ 错误!未定义书签。

4.2 器件清单.......................... 错误!未定义书签。

4.3 硬件电路实物图.................... 错误!未定义书签。

5. 程序代码.............................. 错误!未定义书签。

单片机课程设计 数字电压表 程序和电路图

单片机课程设计  数字电压表  程序和电路图

功能:电压报警5V直流测量0.02V 误差LCD显示名字程序COM EQU 50H ;指令寄存器DAT EQU 51H ;数据寄存器RS EQU P2.1 ;LCD寄存器选择信号RW EQU P2.2 ;LCD读/写选择信号E EQU P2.3 ;LCD使能信号ORG 0000HLJMP MAIN ;主程序入口地址ORG 000BHLJMP BT0 ;T0中断入口ORG 0030H ;主程序,初始化MAIN:MOV SP,#60HLCALL INTMOV 30H,#30H ;电压整数位MOV 31H,#0A5H ;小数点位MOV 32H,#30H ;小数个位MOV 33H,#30H ;小数十位MOV 34H,#30H ;小数百位MOV 35H,#56H ;字符"V"MOV R7,#30HLCALL STR0 ;显示字符串0LCALL DELAYLCALL STR1 ;显示字符串1LCALL DELAYLCALL N2 ;显示V oltage=0.000V;***********定时器初始化程序***********MOV TMOD,#00H ;定时器T0设为方式0MOV TH0,#00H ;装入定时常数定时100usMOV TL0,#00HSETB TR0 ;启动T0MOV 24H,#08H;装入T0中断次数MOV IE,#82H ;开中断LP:MOV R7,#30H ;显示缓冲区首地址LCALL DISPL YSJMP LP ;循环显示LED1:CLR P3.0RET;********************************************************************;定时器T0中断服务子程序,读取ADC0809第0通道的A/D转换结果并化为显示值* ;********************************************************************BT0:PUSH ACCPUSH PSWMOV PSW,#08HCLR TR0MOV TH0,#00H ;重新装入初值MOV TL0,#00HDEC 24HMOV A,24HJNZ RTN1MOV 24H,#08HLCALL ADCRTN1: SETB TR0POP PSWPOP ACCRETIADC:MOV DPTR,#0F6FFHMOV A,#0 ;选择通道0MOVX @DPTR,A ;启动AD转换MOV A,#40HDJNZ ACC,$MOVX A,@DPTRMOV 22H,AMOV 21H,#0CCHCJNE A,21H,BJ0BJ0:JNC LEDSJMP LL0LL0:SETB P3.0SJMP LLLED:LCALL LED1LL: MOV A,22HMOV B,#05H ;A/D转换结果化为显示值MUL AB ;(AD*5)/256MOV 30H,B ;AD*5的高字节为整数部分MOV B,#0AHMUL AB ;AD*5的低字节为/256的结果,为小数部分MOV 32H,B ;二进制小数换为10进制数MOV B,#0AHMUL ABMOV 33H,BMOV B,#0AHMUL ABMOV 34H,BMOV A,30HMOV DPTR,#TABMOVC A,@A+DPTRMOV 30H,AMOV A,32HMOVC A,@A+DPTRMOV 32H,AMOV A,33HMOVC A,@A+DPTRMOV 33H,AMOV A,34HMOVC A,@A+DPTRMOV 34H,ARETDISPL Y: ;LCD显示子程序MOV COM,#0CAHLCALL PR1MOV DAT,30HLCALL PR2MOV DAT,31HLCALL PR2MOV DAT,32HLCALL PR2MOV DAT,33HLCALL PR2MOV DAT,34HLCALL PR2MOV DAT,35HLCALL PR2RETSTR0:MOV COM,#01HLCALL PR1MOV COM,#06HLCALL PR1MOV COM,#090H ;设置DDRAM地址LCALL PR1 ;调写指令代码子程序MOV DPTR,#TAB4MOV R2,#16MOV R3,#00HWRIN0:MOV A,R3MOVC A,@A+DPTRMOV DAT,ALCALL PR2INC R3DJNZ R2,WRIN0MOV COM,#0D0HLCALL PR1MOV DPTR,#TAB5MOV R2,#16MOV R3,#00HWRIN1:MOV A,R3MOVC A,@A+DPTRMOV DAT,ALCALL PR2INC R3DJNZ R2,WRIN1MOV R3,#10HZUOYI:MOV COM,#18HLCALL PR0DJNZ R3,ZUOYILCALL DELAY00LCALL DELAY00LCALL DELAY00LCALL DELAY00RETRETSTR1:MOV COM,#01H ;LCD清0命令LCALL PR1 ;调写指令代码子程序MOV COM,#06H ;输入方式命令,光标右移LCALL PR1 ;调写指令代码子程序MOV COM,#40HLCALL PR1MOV R5,#20HMOV DPTR,#ZIMOV R4,#0LOOP1:MOV A,R4MOVC A,@A+DPTRMOV DAT,ALCALL PR2INC R4DJNZ R5,LOOP1MOV COM,#80HLCALL PR1MOV DPTR,#TAB2MOV A,#00HMOVC A,@A+DPTR MOV DAT,ALCALL PR2MOV A,#01HMOV DPTR,#TAB2 MOVC A,@A+DPTR MOV DAT,ALCALL PR2MOV A,#02HMOV DPTR,#TAB2 MOVC A,@A+DPTR MOV DAT,ALCALL PR2MOV A,#03HMOV DPTR,#TAB2 MOVC A,@A+DPTR MOV DAT,ALCALL PR2MOV R1,#00HMOV R0,#0dHMOV DPTR,#TAB3 LOOP2:MOV A,R1MOVC A,@A+DPTRMOV DAT,ALCALL PR2INC R1DJNZ R0,LOOP2RETN2: MOV COM,#0C0HLCALL PR1MOV DPTR,#TAB1MOV R2,#10MOV R3,#00HWRIN:MOV A,R3MOVC A,@A+DPTRMOV DAT,ALCALL PR2INC R3DJNZ R2,WRINRETTAB: DB "0123456789"TAB1: DB "VOLTAGE = "TAB2: DB 00HDB 01HDB 02HDB 03HDB 04HDB 05HZI: DB 01FH,008H,00EH,00AH,00AH,00AH,012H,000H DB 00EH,00EH,019H,00EH,01DH,00DH,00FH,000H DB 00FH,01EH,00EH,01DH,01DH,00EH,014H,000H;*****************************************;****LCD间接控制方式下的初始化子程序******;*****************************************INT:LCALL DELAYMOV COM,#38H ;设置工作方式LCALL PR1MOV COM,#01HLCALL PR1MOV COM,#06HLCALL PR1MOV COM,#0EHLCALL PR1RETDELAY: ;延时子程序MOV R6,#0FHMOV R7,#00HDELAY1:NOPDJNZ R7,DELAY1DJNZ R6,DELAY1RETDELAY00: ;延时子程序MOV R6,#0FFHMOV R7,#0FFHDELAY0:NOPDJNZ R7,DELAY1DJNZ R6,DELAY1RET;1 读BF和AC值PR0: PUSH ACCMOV P0,#0FFH ; P0置位, 准备读CLR RS ; RS=0SETB RW ; R/W=1SETB E ; E=1LCALL DELAYMOV COM,P0 ; 读BF和AC6-4值CLR E ; E=0POP ACCRET;********************************************* ;*******LCD间接控制方式下的驱动子程序********* ;********************************************* ;2 写指令代码子程序PR1:PUSH ACCCLR RSSETB RWPR11:MOV P0,#0FFHSETB ELCALL DELAYNOPMOV A,P0CLR EJB ACC.7,PR11CLR RWMOV P0,COMSETB ECLR EPOP ACCRET;3 写显示数据子程序PR2:PUSH ACCCLR RSSETB RWPR21:MOV P0,#0FFHSETB ELCALL DELAYMOV A,P0CLR EJB ACC.7,PR21SETB RSCLR RWMOV P0,DATSETB ECLR EPOP ACCRET;4 读显示数据子程序PR3: PUSH ACCCLR RS ; RS=0SETB RW ; R/W=1PR31: MOV P0,#0FFH ; P0置位, 准备读SETB E ; E=1LCALL DELAYMOV A,P0 ; 读BF和AC6-4值CLR E ; E=0JB ACC.7,PR31SETB RS ; E=1SETB RW ; R/W=1MOV P0,#0FFH ; 读数据SETB E ; E=1MOV DA T,P0CLR E ; E=0POP ACCRETEND。

单片机课设 简易数字电压表

单片机课设  简易数字电压表

1.总体设计方案选择与说明要实现电压的测量有多种方案,其中两种比较简单的且精度比较高的方法,分别采用并行ADC0808芯片和和TLC1543/TLC2543芯片。

方案一:用ADC0808芯片做模数转换采样芯片,占用的单片机I/O口线多,占用的板子面积较大,但是可以循环采样8路模拟通道,编程相对简单。

方案二:用TLC1543/TLC2543芯片做模数转换采样芯片,占用的单片机I/O口线少,且占用电路面积小,但是编程比较复杂。

我采用方案一,因为方案一所用到的芯片我们都比较熟悉,采用常用的51单片机作为控制芯片,ADC0808芯片的CLOCK脚(时钟脉冲输入端)接单片机的P2.4脚,DATA OUT接单片机的P0.0-P0.7脚;ADD A-ADD C脚(3位地址输入线)接单片机的P1.0-P1.2;ALE脚(地址锁存允许信号)接单片机的P2.5;OE脚(数据输出允许信号)接单片机的P2.7;IN0-INT7接输入电压(及测试电压),ADC0808通过采样进来的数据信号送给单片机,通过计算再送入显示电路将其电压值显示出来。

电压的范围是0-5V。

2.系统结构框图与工作原理2图1.1 系统结构框图 2.2系统工作原理数字电压表工作原理:这里主要是利用ADC0808并行接口芯片,ADC0808芯片的基准电压脚外接电压为+5V ,则最大可以测得的电压为5V ,ADC0808芯片的模拟输入脚通过电位器接+5V 电压,进行模拟采样,通过调整电位器的值改变模拟量。

输入的模拟量经ADC0808芯片的内部8位开关电路逐次逼近A/D 转换器,转换成8位二进制数,其最小的分辨率为0.0196(V R E F =0.0196V),D 为转化的数字量,再通过 255/V V REF IN D ⨯=可以求得模拟电压,最后输入四位LED 显示器就可将所测得电压显示出来。

3.硬件电路设计及说明3.1键盘接口电路独立式键盘:独立式键盘中,每个按键占用一根I/O口线,每个按键电路相对独立。

单片机课程设计数字电压表参考程序

单片机课程设计数字电压表参考程序

/************************************************************************ADC0809数据电压表,采用数码管显示,显示000~255* 硬件连接:START,ALE接P2.0,EOC-P2.1 OE-P2.2 CLK -P2.3,CH0接模拟电压输入TEST0*ADDA、ADDB、ADDC接P2.4, P2.5,P2.6,*数据D0--D7依此对应连接P1.0-P1.7*数码管段码接P0口*数码管位码接P3口******************************************************************************* */#include <reg52.H>#define uint unsigned int#define uchar unsigned char#define DIGI P0 //宏定义,将P0口定义为数码管#define SELECT P3 //宏定义,将P3定义为数码管选择口sbit START = P2^0;sbit EOC = P2^1;sbit OE = P2^2;sbit CLK = P2^3;sbit ADDA = P2^4; // ADDA接P2.4sbit ADDB = P2^5; // ADDB接P2.5sbit ADDC = P2^6; // ADDC接P2.6uchar getdata; //定义变量接受AD转换的8位二进制void delay() //延迟函数{ uint ii=200; //若发现数码管闪烁,调节这里即可while(ii--);}uchar disbuffer[8]={0,1,2,3,4,5,6,7}; //定义显示缓冲区void display( ){ uchar i=0,temp,i1;uchar codevalue[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0~F的字段码表uchar select[]={0x01,0x02,0x04,0x00,0x00,0x00,0x00,0x00};//位选码for(i=0;i<3;i++) //8个数码管轮流显示{ temp= disbuffer[i];i1 = codevalue[temp];DIGI = i1; //选择第i个数码管SELECT = select[i]; //显示idelay();} }/************************************************///定时器初始化void init(){TMOD= 0x12;// 定时器0工作方式2,定时器1工作方式1TH0=246;TL0=246;TH1=(65536-20000)/256;TL1=(65536-20000)%256;EA=1;ET0=1;ET1=1;TR1=1;TR0=1;}/***********************************************///软件延时产生ADC0809的时钟void clk() interrupt 1{CLK=(~CLK);}void displayint(void) interrupt 3 //定时/计数器1中断,数码管显示{TH1=(65536-20000)/256;TL1=(65536-20000)%256;display( );}/************************************************///AD转换函数unsigned char ADC(){char value;ADDA =0;ADDB =0;ADDC =0;START=0;START=1; //地址锁存START=0; //开始转换while(EOC==0);//等待转换结束OE=1;value=P1;OE=0;return value;}/************************************************/void main(){uint temp1;init();while(1){getdata = ADC();//输出转换得到的数据temp1=getdata; //暂存转换结果disbuffer[2]=getdata/100; /*将转换结果转换为10进制数放显示缓冲区*/temp1=temp1- disbuffer[2]*100;disbuffer[1]=temp1/10;temp1=temp1- disbuffer[1]*10;disbuffer[0]=temp1;}}1.在它的基础上,显示用LCD1602或12864;2.在它的基础上,加按键选择实现多路数字电压表。

单片机课程设计数字电压表

单片机课程设计数字电压表

目录1 引言 (1)2设计原理及要求 (2)2.1数字电压表的实现原理 (2)2.2数字电压表的设计要求 (2)3软件仿真电路设计 (3)3.1设计思路 (3)3.2仿真电路图 (3)3.3设计过程 (3)3.4 AT89C51的功能介绍 (4)3.4.1简单概述 (4)3.4.2主要功能特性 (4)3.4.3 AT89C51的引脚介绍 (5)3.5 ADC0808的引脚及功能介绍 (6)3.5.1芯片概述 (6)3.5.2 引脚简介 (7)3.5.3 ADC0808的转换原理 (7)3.6 74LS373芯片的引脚及功能 (7)3.6.1芯片概述 (7)3.6.2引脚介绍 (8)3.7 LED数码管的控制显示 (8)3.7.1 LED数码管的模型 (8)3.7.2 LED数码管的接口简介 (8)4系统软件程序的设计 (10)4.1 主程序 (10)4.2 A/D转换子程序 (10)4.3 中断显示程序 (11)5电压表的调试及性能分析 (13)5.1 调试与测试 (13)5.2 性能分析 (13)6电路仿真图 (14)7总结 (15)参考文献 (16)附录1 源程序 (17)附录2 仿真原理电路 (23)1 引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成CPU、存储器、定时器/计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。

数字电压表(DigitalVoltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。

与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。

本章重点介绍单片机A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力理。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计——电压表的设计学院:信子信息工程学院专业:电子信息工程技术班级:电子信息工程技术二班学号:11137241** 11137241**姓名: *** ****目录1 引言 (1)2设计原理及要求 (2)2.1数字电压表的实现原理 (2)2.2数字电压表的设计要求 (2)3软件仿真电路设计 (2)3.1设计思路 (2)3.2仿真电路图 (3)3.3设计过程 (3)3.4 AT89C51的功能介绍 (4)3.4.1简单概述 (4)3.4.2主要功能特性 (5)3.4.3 AT89C51的引脚介绍 (5)3.5 ADC0809的引脚及功能介绍 (7)3.5.1芯片概述 (7)3.5.2 引脚简介 (7)3.5.3 ADC0809的转换原理 (8)3.6 74LS373芯片的引脚及功能 (8)3.6.1芯片概述 (8)3.6.2引脚介绍 (9)3.7 LED数码管的控制显示 (9)3.7.1 LED数码管的模型 (9)LED数码管模型如图3-6所示。

(9)3.7.2 LED数码管的接口简介 (9)4系统软件程序的设计 (9)4.1 主程序 (10)4.2 A/D转换子程序 (11)4.3 中断显示程序 (12)5使用说明与调试结果 (13)6总结 (13)参考文献................................ 错误!未定义书签。

附录1 源程序 ........................... 错误!未定义书签。

附录2原理电路.......................... 错误!未定义书签。

1 引言在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。

而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。

数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。

由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。

传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。

采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。

数字电压表是诸多数字化仪表的核心与基础[2]。

以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。

目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。

最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型[4]。

数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC 化),另一方面,精度也从0.01%-0.005%。

目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面[3]。

本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。

其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号2设计原理及要求本设计是利用单片机AT89C51与ADC0809设计一个数字电压表,测量0-5V之间的直流电压值,四位数码显示。

2.1数字电压表的实现原理ADC0809是8位的A/D转换器。

当输入电压为5.00V时,输出的数据值为255(0FFH),因此最大分辨率为0.0196(5/255)。

ADC0809具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。

如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8 路输入电压进行测量。

LED 数码管显示采用软件译码动态显示。

通过按键选择可对8路循环显示,也可单路显示,单路显示可通过按键选择显示的通道数。

2.2数字电压表的设计要求可以测量0~5V范围内的3路直流电压值。

在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V~5.00V,1位LED数码管显示路数,3路分别为0-2。

要求测量的最小分辨率为0.02V。

3软件仿真电路设计3.1设计思路多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路组成,由于ADC0808在进行A/D转换时需要有CLK信号,本试验中ADC0808的CLK直接由外部电源提供为500kHz的方波。

由于ADC0809的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。

实际显示的电压值(D/256*VREF) ADC0808采用逐次逼近法转换,把模拟电压转换成16进制的D,由于是对直流电压0~5V进行采集,所以D对应的电压为V0 ,我们的目的就是要把V0显示在LED显示器上,因为单片机不好进行小数点计算,所以有:V0=2*D扩大了100倍,扩大100倍后的结果高八位放寄存器B,低八位放寄存器A,分寄存器B为0或不为0的情况进行存取数据,得到的结果个位放入R0,十位放入R1,通过查表使之显示在LED显示器。

3.2仿真电路图用Protues软件仿真设计的电路如图3-1所示。

图3-1 仿真电路3.3设计过程时钟电路复位电路单片机LED显示电路A/D转换测量电压输入电路系统结构框图系统采用12M 晶振产生脉冲做AT89C51的内部时钟信号,通过软件设置单片机的内部定时器T0产生中断信号。

利用中断设置单片机的P2.4口取反产生脉冲做AT89C51的时钟信号。

通过按键选择八路通道中的一路,将该路电压送入ADC0809相应通道,单片机软件设置ADC0809开始A/D 转换,转换结束ADC0809的EOC 端口产生高电平,同时将ADC0809的EO 端口置为高电平,单片机将转换后结果存到片内RAM 。

系统调出显示子程序,将保存结果转化为0.00-5.00V 分别保存在片内RAM;系统调出显示子程序,将转化后数据查表,输出到LED 显示电路,将相应电压显示出来,程序进入下一个循环3.4 AT89C51的功能介绍 3.4.1简单概述AT89C51是一种带4K 字节闪存可编程可擦除只读存储器(FPEROM —Flash Programmable and Erasable Read Only Memory )的低电压、高性能CMOS 8位微处理器,俗称单片机。

AT89C51是一种带2K 字节闪存可编程可擦除只读存储器的单片机。

单片机的可擦除只读存储器可以反复擦除1000次。

该器件采用ATMEL 高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU 和闪烁存储器组合在单个芯片中,ATMEL 的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。

AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

外形及引脚排列如图3-2所示。

XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.567P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T 01416P3.5/T 115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1图3-2 AT89C51芯片模型3.4.2主要功能特性(1) 4K字节可编程闪烁存储器。

(2) 32个双向I/O口;128×8位内部RAM 。

(3) 2个16位可编程定时/计数器中断,时钟频率0-24MHz。

(4) 可编程串行通道。

(5) 5个中断源。

(6) 2个读写中断口线。

(7) 低功耗的闲置和掉电模式。

(8) 片内振荡器和时钟电路。

3.4.3 AT89C51的引脚介绍89C51单片机多采用40只引脚的双列直插封装(DIP)方式,下面分别简单介绍。

(1)电源引脚电源引脚接入单片机的工作电源。

Vcc(40引脚):+5V电源。

GND(20引脚):接地。

(2)时钟引脚XTAL1(19引脚):片内振荡器反相放大器和时钟发生器电路的输入端。

XTAL2(20引脚):片内振荡器反相放大器的输出端。

图3-3 电源接入方式(3)复位RST(9引脚)在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。

(4)EA/Vpp(31引脚)EA为外部程序存储器访问允许控制端。

当它为高电平时,单片机读片内程序存储器,在PC值超过0FFFH后将自动转向外部程序存储器。

当它为低电平时,只限定在外部程序存储器,地址为0000H~FFFFH。

Vpp为该引脚的第二功能,为编程电压输入端。

(5)ALE/PROG(30引脚)ALE为低八位地址锁存允许信号。

在系统扩展时,ALE的负跳沿江P0口发出的第八位地址锁存在外接的地址锁存器,然后再作为数据端口。

PROG为该引脚的第二功能,在对片外存储器编程时,此引脚为编程脉冲输入端。

(6)PSEN(29引脚)片外程序存储器的读选通信号。

在单片机读片外程序存储器时,此引脚输出脉冲的负跳沿作为读片外程序存储器的选通信号。

(7) pin39-pin32为P0.0-P0.7输入输出脚,称为P0口。

P0是一个8位漏极开路型双向I/O口。

内部不带上拉电阻,当外接上拉电阻时,P0口能以吸收电流的方式驱动八个LSTTL负载电路。

通常在使用时外接上拉电阻,用来驱动多个数码管。

在访问外部程序和外部数据存储器时,P0口是分时转换的地址(低8位)/数据总线,不需要外接上拉电阻。

(8)Pin1-Pin8为P1.0-P1.7输入输出脚,称为P1口,是一个带内部上拉电阻的8位双向I/0口。

P1口能驱动4个LSTTL负载。

(9)Pin21-Pin28为P2.0-P2.7输入输出脚,称为P2口。

P2口是一个带内部上拉电阻的8位双向I/O口,P2口能驱动4个LSTTL负载。

相关文档
最新文档