基于单片机的数字多用表的设计_第1页
基于单片机的数字多用表的设计_第2页
基于单片机的数字多用表的设计_第3页
基于单片机的数字多用表的设计_第4页
基于单片机的数字多用表的设计_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

1、基于单片机的数字多用表的设计基于单片机的数字多用表的设计学院:学院:班级:班级:指导老师:指导老师:姓名:姓名:时间:时间:2014.6.91摘 要本设计用单片机芯片 AT89C51 设计一个数字万用表,能够测量交、直流电压值,交、直流电流,电阻,四位数码显示。此系统由分流电阻、分压电阻、基准电阻、51单片机最小系统、显示部分、报警部分、A/D 转换和控制部分组成。本设计主要针对万用表硬件以及软件部分的实现来展开。研究内容包括两部分:硬件和软件。为使系统更加稳定,使系统整体精度得以保障,本电路使用了ADC0808数据转换芯片,单片机系统设计采用AT89C51单片机作为主控芯片,配以RC上电复位

2、电路和11.0592MHZ振荡电路,显示芯片用7SEG-XP-4M-CC,驱动8位数码管显示。程序每执行周期耗时缩到最短,这样保证了系统的实时性。关键词: 数字万用表;A/D 转换和控制;AT89C51 单片机;ADC0808; 7SEG2目 录1、引言、引言.31.1 数字万用表研究背景、目的和意义.31.2 国内外研究现状.31.3 研究内容.31.4 章节安排.42、数字万用表基本原理、数字万用表基本原理.52.1 直流电压测量原理.52.2 交流电压测量原理.62.3 直流电流测量原理.62.4 交流电流测量原理.72.5 电阻测量原理.83、数字万用表硬件介绍与设计、数字万用表硬件介

3、绍与设计.103.1 硬件系统部分芯片介绍.103.2 数字万用表硬件设计.154、系统软件与流程图、系统软件与流程图.204.1 电路功能模块.204.2 系统总流程图.214.3 电压测量流程图.224.4 电流、电阻测量流程图.225、仿真结果:、仿真结果:.375.1 整体仿真 PROTUES图:.375.2 待测电压仿真结果图:.385.3 待测电流仿真结果图:.385.4 待测电阻仿真结果图.396、结、结 论论.407、参考文献、参考文献.418、致、致 谢谢.4231、引言1.1 数字万用表研究背景、目的和意义传统的指针式万用表功能单一精度低,不能满足数字化时代的需求,数字万用

4、表是利用模数转换原理,将被测量数据转化为数字量,并将测量结果以数字的形式显示出来的一种测量仪表。与指针式万用表相比,新一代数字万用表具有精度高、输入快、输入阻抗大、数字显示、读数准确、可扩展性强、集成方便、抗干扰能力强、测量自动化程度高等优点,因而被广泛应用,得到工程师的青睐。数字万用表是当前电子、电工、仪器、仪表和测量领域大量使用的一种基本测量,已被广泛应用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,显示出强大的生命力。随着时代科技的进步,数字万用表的功能越来越强大,把电量及非电量的测量技术提高到崭新水平。1.2 国内外研究现状目前电子行业具有很高的发展速度,测试测量仪器

5、更是走在行业的尖端,便携式高精度仪器更是发挥了巨大的作用,并且显示了无比的潜力。它可以取代测量技术在传统领域内的各类仪器,它在组成和改变仪器的功能和技术性能上具有很大灵活性和经济性,因而特别适应于当代科学技术迅速发展和科学技术不断深化所提出的更高更新的测量课题和测量需求1。由于科学的进步,社会的发展,电子产业也会发展到一个新的阶段,电子技术的提高代表了一个国家的整体实力,高精尖的电子产品更新换代的周期越来越短,每一款电子产品的设计生产都需要更精密的电子测量仪器与之相配合,这样更先进的测量仪器将成为电子产品开发的必备条件,那么精密的测量仪器将是电子行业发展中的重中之重2。1.3 研究内容此数字万

6、用表由硬件和软件两部分组成,硬件主要完成信号的采集,软件主要完成对硬件的控制以及数据的处理, 所以本文主要针对万用表硬件以及软件部分的实现来展开。研究内容包括两部分:硬件和软件。(1) 整体方案的设计 按照需求制定数字万用表的功能,指标,以及软硬件的整体框架。 按照硬件需求指标,研究硬件实现的框架结构,以及模块划分。 软件为嵌入式软件,按照功能需求设计自己的多线程结构。(2) 功能4该万用表的功能主要包括:测量交直流电压、交直流电流、电阻。 电流的量程有50mA,500mA,5A。 电压的量程有5V,50V,500V。 电阻的量程有500,5K,50K,500K,5M。(3) 硬件模块的研究内

7、容参考数字真有值效万用表,对万用表的测量功能和结构进行研究,完成基本硬件模块的设计。该模块可分为模拟部分和数字部分。模拟部分完成对前端信号的采集并且转化为相应电压量。数字部分完成对采集的信号进行处理还有控制的功能。(4) 软件部分的研究内容软件部分主要为该表自身软件,实现其测量功能,采用C语言完成。(5)本设计重点要解决的问题是对不同量程的各种测量内容的转换,还有就是各部分电路组合成一个完整的数字万用表,而难点解决的问题就是程序的设计,要保正其可行性从而保证设计的正确性。1.4 章节安排本文在第二章介绍了数字万用表的基本原理,第三章介绍了系统硬件设计方案,第四章介绍了软件的实现方案。5R1R2

8、入入入入入入UI0U0R19MR2900 KR3100 KUA/D入 入 入5V50V500 V2、数字万用表基本原理数字万用表的最基本功能是能够测量交直流电压,交直流电流,还能够测量电阻 。下面我们来分析一下数字万用表测电压,测电流,测电阻的原理。总体来说,我们此次用的 A/D 转换芯片是 ADC0809,它允许的模拟输入电压值直流 05V,设想在测量电压时,如果能把电压都转换成 05V 的直流电压,然后送 A/D 转换器,在显示时适当扩大相应的倍数,那么就可以测出电压了,如果测电流时,若也能将电流转换成05V 的电压,最后乘以相应的比例系数,那么电流也测量出来,测量电阻的道理也是如此,可见

9、重点研究方向是直流电压表的设计和各个转换电路,下面为我们具体分析一下各个原理。2.1 直流电压测量原理在基准数字电压表头前面加一级分压电路(衰减器),可以扩展直流电压测量的量程。如图 2-1 所示,U0为电压表头的量程(如 5V),r 为其内阻(如 10M),R1、R2为分压电阻,UI0为扩展后的量程。 图 2-1 电压扩展量程原理 图 2-2 多量程分压器原理由于 RR2,所以分压比为:02012IURURR扩展后的量程为:12002IRRUUR多量程分压器原理电路见图 2-2,三档量程的分压比分别为 1、0.1、0.01,对应的量程分别为 5V,50V,500V。6换量程时,多刀量程转换开

10、关可以根据档位自动调整小数点的显示,使用者可方便地直读出测量结果3。2.2 交流电压测量原理测量交流电压的原理是先将交流电压进行衰减,使其在 05V 之间,然后把交流电压化为直流电压,送 A/D 转换器。其原理框图如下图 2-3:图 2-3 交流电压测量框图交流/直流电路如下图 2-4: 图 2-4 直流/交流电压电路图2.3 直流电流测量原理一般来说电流测量分为直接式测量和间接式测量。直接式测量是在被测回路中串联一个检测电阻,根据I=U/R,只要检测电压,知道R,就可计算出电流。间接式测量是根据霍尔效应,实现磁场,电场的转换,最终还是要根据I=U/R来计算。采用检测电阻直接测量,比较简洁,成

11、本较低,但检测电流比较小,一般不超过10A。采用霍尔元件进行间接测量,比较复杂,成本较高,但检测电流可以很大,如几十安都可以。为了实现电流的检测,就必须将被测电流变成05V的直流电压,即实现衰减和I/U变换,一般测量电路经常使用这样一些方法来实现。其一,将被测电流通过一个由电阻构成的分流器,使之形成三个分流系数,即1/10(V/mA),1/100(V/mA),1/1000(V/mA),当被测电流分别为50 mA, 500mA,5 A时,均被转换成了5V的输入电压5。其原理图如下图:交流电压分压器交流/直流电路A/D 转换器21入入3411入入75A500mA50mAIUA/D入 入 入R19M

12、R2900KR3100KRA/D入入入图2-5 直流电流测量原理图一图2-6 直流电流测量原理图二其二,使三档输入电流50 mA, 500mA,5 A都通过一个取样电阻,比如,R=10,取样电阻将电流变成相对应的500 mV,5V,50V,然后通过一个比例放大器,若比例系数对应为10,1,0.1,则经比例放大器的输出电压均为5V,以此作为A/D转换器的输入。图 2-7 多量程分流器电路2.4 交流电流测量原理首先把交流电流通过一取样电阻转换成交流电压,然后将交流电压进行衰减,变成 05V 的交流电压,再通过交流/直流电路将其化成 05V 的直流电压,然后送A/D 转换器。这一原理是测量直流电流

13、和测量交流电压的综合。RUIR1100R210R3150mA500 mA 5AIU82.5 电阻测量原理(1) 恒流法测量电阻恒流法测量电阻是让恒流源流 I 过被测电阻 RX,测试流过 RX的电压 UX,其测量原理图如下:图 2-8 恒流源法测电阻上图2-8中I是标准电流源,那么只需测得两端的电压UX,就可以求出被测电阻RX了:RX=UX/I,而Ux如第二章开始所讲原理相同。由于恒流源测电阻无法消除衰减放大电路中和A/D电路中的增益随温度变化所带来的误差,以及横流源精度较难控制,一般不用此法测电阻,而是选用比例法测电阻6。(2) 比例法测电阻比例测量法原理电路见图 2-9:图 2-9 比列法测

14、电阻原理由稳压管 ZD 提供测量基准电压,流过标准电阻 R0和被测电阻 RX的电流基本相等(A/D 转换器的输入阻抗很高,其取用的电流可忽略不计)。所以 A/D 转换器的参考电压 UREF和输入电压 UIN有如下关系: 即0REFINXRUUR0INXREFURRU根据所用 A/D 转换器的特性可知,数字表显示的是 UIN与 UREF的比值,当RXUXIRVC CR0RXA/D入入入UXUR EFIN+IN-VR EF+VR EF-9UIN=UREF时显示“1000” , UIN=0.5UREF时显示“500” ,以此类推。所以,当 R0=RX时,表头将显示“1000” ,当 R0=0.5RX

15、时显示“500” ,这称为比例读数特性。因此,我们只要选取不同的标准电阻并适当地对小数点进行定位,就能得到不同的电阻测量档7。如对 500 档,取 R01=100,小数点定在十位上。当 RX=100 时,表头就会显示出 500.0。当 RX变化时,显示值相应变化,可以从 0.1 测到 499.9。又如对 5k 档,取 R02=1k,小数点定在千位上。当 RX变化时,显示值相应变化,可以从 0.001k 测到 4.999k。数字万用表多量程电阻档电路见图 2-10:图 2-10 多量程测电阻原理由上分析可知:R1=R01=100R2=R02-R01=1000-100=900R3=R03R02=9

16、K图 2-10 中由正温度系数(PTC)热敏电阻 R0与晶体管 T 组成了过压保护电路,以防误用电阻档去测高电压时损坏集成电路。当误测高电压时,晶体管 T 发射极将击穿从而限制了输入电压的升高。同时 R1 随着电流的增加而发热,其阻值迅速增大,从而限制了电流的增加,使 T 的击穿电流不超过允许范围。即 T 只是处于软击穿状态,不会损坏,一旦解除误操作,R0和 T 都能恢复正常。10 3、数字万用表硬件介绍与设计如图 3-1 所示,本万用表由以下几部分功能组成,复位电路、震荡电路、ADC 输入、被测量显示、超限报警、ADC 使能控制。复位电路用来清零,进行下一次的测量;震荡电路用来消除一些外来干

17、扰,使电路工作更加稳定;ADC 输入则是将输入量进行AD 转换;测量显示就是显示测量的数值;超限报警部分则是用作当测量量超出量程范围时发出警报,以便提醒用户更改大量程;ADC 使能控制则用来对输入量进行控制,允许输入或者不允许输入。图 3-1 硬件系统设计总体框架图3.1 硬件系统部分芯片介绍3.1.1 AT89C51 芯片简介 图 3-2 AT89C51 芯片引脚图复位电路振荡电路ADC输入89C51被测量显示超限报警ADC使能控制XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD4

18、35P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1805111(1)AT89C51 主要特性8:1)与 MCS-51

19、 兼容2)4K 字节可编程 FLASH 存储器3)寿命:1000 写/擦循环4)数据保留时间:10 年5)全静态工作:0Hz-24MHz6)三级程序存储器锁定7)1288 位内部 RAM8)32 可编程 I/O 线9)两个 16 位定时器/计数器10)5 个中断源11)可编程串行通道12)低功耗的闲置和掉电模式13)片内振荡器和时钟电路(2)功能特性描述9:AT89C51 是一种带 4K 字节 FLASH 存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称单片机。AT89C205

20、1 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。(3)AT89C51 提供以下标准功能:4K 字节 Flash 闪速存储器,128 字节内部RAM,32 个 I/O 口线,两个 16 位定时/计数器,一个 5

21、 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。12(4)VCC:供电电压。GND:接地。(5)AT89C51 单片机的 P 口特点10:P0 口:P0 口为一个 8 位漏级开路双向 I/O 口,每脚可吸收 8TTL 门电流。当 P0口的管脚第一次写 1 时,被定义为高阻输入。P0 能够用于外部程序数据存储器,它可

22、以被定义为数据/地址的低八位。在 FIASH 编程时,P0 口作为原码输入口,当 FIASH进行校验时,P0 输出原码,此时 P0 外部必须接上拉电阻。 P1 口: P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口,P1 口缓冲器能接收输出4TTL 门电流。P1 口管脚写入 1 后,被内部上拉为高,可用作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1口作为低八位地址接收。P2 口:P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 口缓冲器可接收,输出4个 TTL 门电流,当 P2 口被写“1”时,其管脚被内部上拉电阻

23、拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号11。 P3 口:P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流(IL

24、L)这是由于上拉的缘故。 3.1.2 ADC0808 芯片介绍ADC0808 是 CMOS 型的 8 位逐次逼近式单片 A/D 转换器。ADC0808 是带有 8 位 A/D 转换器、8 路多路开关以及微处理机兼容的控制逻辑的CMOS 组件。它是逐次逼近式 A/D 转换器,可以和单片机直接接口。(1) 主要特性13 分辨率为 8 位。 转换时间 100us。 单一+5V 供电电,模拟压输入在 0+5 V 之间。 功耗为 15mW。(2) ADC0808 的内部逻辑结构图 3-3 ADC0808 的内部逻辑结构上图 3-3 可知,ADC0808 由一个 8 路模拟开关、一个地址锁存与译码器、一个

25、A/D 转换器和一个三态输出锁存器组成。多路开关可选通 8 个模拟通道,允许 8 路模拟量分时输入,共用 A/D 转换器进行转换。三态输出锁器用于锁存 A/D 转换完的数字量,当 OE 端为高电平时,才可以从三态输出锁存器取走转换完的数据。(3) ADC0808 引脚结构8位模拟开关地址锁存与译码控制与时序SAR树状开关三态输出锁存缓冲器电阻网络ADDAADDBADDCALEIN7IN0STARTCLKEOCD7-D0VccGND REF(+)REF(-)OEOUT121ADD B24ADD A25ADD C23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75STA

26、RT6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U2ADC080814图 3-4 ADC0808 引脚结构图地址输入和控制线:4 条ALE 为地址锁存允许输入线,高电平有效。当 ALE 线为高电平时,地址锁存与译码器将 A,B,C 三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A,B 和 C 为地址输入线,用于选通 IN0IN7上的一路模拟量输入。通道选择表如下表所示12。CBA选择的通道000IN0001IN1010IN2011IN3100IN4101IN

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

28、EF() ,VREF()为参考电压输入。 15(4) ADC0809 应用说明: ADC0809 内部带有输出锁存器,可以与 AT89c51 单片机直接相连。 初始化时,使 ST 和 OE 信号全为低电平。 送要转换的哪一通道的地址到 A,B,C 端口上。 在 ST 端给出一个至少有 100ns 宽的正脉冲信号。 是否转换完毕,我们根据 EOC 信号来判断。 当 EOC 变为高电平时,这时给 OE 为高电平,转换的数据就输出给单片机了。3.1.3 7SEG-XP-4M-CC 简述(1) 概述7SEG-XP-4M-CC 共阴极 8X8 段 LED 数码管(8X8 点阵)显示驱动电路是全定制专用集

29、成电路。该电路由开机自清电路、振荡电路、位扫描驱动电路、8X8 bit 移位寄存器电路、8X8 bit 数据锁存器电路、段多路选择器驱动电路组成。它可与各种型号的微处理器串行口或并行口,专供驱动 8 位 X8 段共阴极 LED 数码管(8X8LED 点阵)11。(2) 特点 工作电压:+4V+6V。 位扫描驱动电流80mA(VDD=+5V) 。 段扫描驱动电流10mA(VDD=+5V) 。 可驱动高彩色 LED 管。 可通过 N 个 TEC6122 级联实行 NX8 位 LED 显示。 管脚间距 2.54mm ,标准 24pin 窄塑封双列直插封装。(3) 位扫描共阴极 LED 显示原理位扫描

30、信号接S1,S2,S8 顺序依次出现,循环反复。S1 显示第一位(个位) ,S2 显示第二位(十位) ,依次地S8 显示第八位(千万位) 。要显示的段码 A,B,DP 是由 S1S8 依次分别选通送出,S1 送 A1,B1,DP1,显个位,其它位不显示。同样地 S8 送出 A8,B8,DP8,显千万位,其它位不显示,这就是位扫描共阴极 LED 显示原理。3.2 数字万用表硬件设计3.2.1 分模块详述系统各部分的实现方法一、电源部分16F12.5AD1D2ODEDIODEJX 1CO N1由于高压交流电会对弱电系统产生干扰,影响系统的稳定性,而电池之类的电源又存在维护不方便和电压电流衰减等的缺

31、点,所以本次设计采用外部稳压电源供电13。图 3-8 电源电路图二、输入端图 3-9 万用表正表笔输入端电路被测量的输入端经过表笔流经保险丝,这样做是为了起到保护作用,防止过压过流而烧坏元器件。三、分流电阻图 3-10 分流电阻电路如上图 3-10,使用有一定规律的电阻组合构成精密的电阻分流器,能够实现分流大电流的目的。R19MR2900 KR3100 K5V50V500 VUR3R2R110010150mA500mA5A17四、分压电阻图 3-11 分压电阻电路如上图 3-11,使用有一定规律的电阻组合构成精密的电阻分压器,能够实现分流大电压的目的。五、基准电阻图 3-12 基准电阻电路测量

32、电阻与测量电流或者电压一样重要,俗称“三用表” ,利用数字电压表做成的多量程电阻表,采用的是“比例法”测量,因此,它比起指针万用表的电阻测量来精确度更高,而且耗电很小,上图 2-12 中所配置的一组电阻就叫“基准电阻” ,就是通过切换各个接点得到不同的基准电阻值,再由 ADC0808 的参考电压 Vref与被测电阻上得到的电压 V 测进行“比例读数” 。六、ADC 部分R5900KR490KR39KR2900R11005M500K50K5K500ABCDEFGH231U4:A74LS02564U4:B74LS02P1XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/A

33、D039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.

34、6/A1427U18051+5VOUT121ADD B24ADD A25ADD C23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U2ADC08088910U4:C74LS02D03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1CLK11U374LS374VVAV111213U4:D74LS02RDP2.7WR12U5:A74LS04P2

35、.7WRRD18图 3-13 ADC0808 转换电路15由图中可以看到,ADC0808 的启动信号 START 由片选线 P2.7 与写信号 WR 的“或非”产生。这要求一条向 ADC0808 写操作指令来启动转换。ALE 与 START 相连,即按打入的通道地址接通模拟量并启动转换。输出允许信号 OE 由读信号 RD 与片选线 P2.7“或非”产生,即一条 ADC0808 的读操作使数据输出。由于 ADC0808 的参考电压 VREFVCC,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。七、报警部分图 3-14 报警电路当检测到被测量超出预定的值,蜂鸣器发出“嘀”声。具体的实现

36、过程是单片机P3.3 脚输出高电平,使得 Q2 导通。使得 LS1 对地导通,蜂鸣器发出响声16。八、单片机最小系统XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P

37、3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U18051C110uR110kC322pX1CRYSTALC222p19图 3-15 单片机最小系统电路单片机工作时,先以主震荡频率为基准发出CPU时序,对指令进行译码,然后发出各种控制信号,完成一系列定时控制的操作,用来协调单片机内部各功能部件之间的数据传输,数据运算等操作。单片机最小系统由震荡电路,复位电路及一片单片机构成,是单片机正常工作的最基本组成。其最小系统如图3-15所示17

38、。九、显示电路图 3-16 显示电路采用 SPI 总线 LED 驱动器 7SEG-XP-4M-CC 驱动 8 位数码管,使得整个系统响应时间最快,显示精度更高。采用 4 合 1 数码管,减少 PCB 表面走线从而提高系统稳定18。1234ABCDEFGHXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.

39、6/CEX37P1.7/CEX48P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U18051C110uR110kC322pX1CRYSTALC222p1234测测电电阻阻测测电电压压测测电电流流测测量量转转换换20、十、开关电路图 3-17 开关电路 如上 3-17 图,类似于常用的万用表开关,可以根据需要手动转换测量量的量程,根据

40、所需要测量的量选择合适的量程19。3.2.2 电路工作过程描述此工作当然是要求在正确的程序都写入了各个芯片中才能完成工作,当开关要测量电压、电流或者电阻时,则根据不同的量程需要分别选择不同的量程开关,于是便得到最准确的测量数据。AT89C51 的 P0 口做为 ADC0809 的数据总线,P2.4、P2.5、P2.6 作为显示芯片的 SPI 总线输出。P1.0、P1.1、P1.2、P3.2 作为ADC0808 的控制线。ADC0808 将测量的量转换成单片机能识别的量之后由所给程序控制输出,再送到显示芯片显示。显示芯片根据显示程序显示内容。本设计的原来要求是 4 位数码显示,但考虑到芯片 7S

41、EG-XP-4M-CC 是驱动 8 位数码显示的,所以数码管TYP2 不接上也是满足设计要求的,接上去只是满足芯片的 8 位驱动20。 4 系统软件与流程图4.1 电路功能模块由总体设计框图 4-1,本万用表由以下几部分功能模块组成,复位电路、震荡电路、ADC 输入、ADC 使能控制、被测量显示、超限报警、等电路组成。程序中的子程50mA500mA5A5V50V500V1234测测电电阻阻测测电电压压测测电电流流测测量量转转换换21序 功能模块主要分成 3 个,延时、ADC 转换和显示,延时子程序在整个程序中多次被调用,ADC 转换则是每次测量都会需要用到的,当进行测量时,ADC0808 将被

42、测量转换为 2 进制数发给单片机然后单片机根据软件协议送显示,显示子程序则包括一个8 位字节的发送程序和一个 TEC6122 的驱动程序。图 4-1 功能模块设计框图复位电路振荡电路ADC输入89C51被测量显示超限报警ADC使能控制224.2 系统总流程图 图 4-2 系统总流程图 图 4-3 电压测量流程图4.3 电压测量流程图电压测量流程图如上图 4-34.4 电流、电阻测量流程图电流的测量流程图如下图 4-4;开始电压量程选择选择500V档位显示是否小于50V选择50V档位显示是否小于5V选择5V档位结束返回YYNNN系统初始开始P3.1=1?LED初始使能A/D转换P3.2=1?转换

43、结果单片机接收超限否?送LED显示报警结束N YN Y23开始电阻量程选择选择5M档位显示是否小于500K选择500K档位显示是否小于50K选择50K档位显示是否小于5K选择5K档位显示是否小于500选择500档位结束返回YYYYNNNN电阻的测量流程图如下图 4-5。图 4-4 电流测量流程图 图 4-5 电阻测量流程图4.5 软件程序:org 0000h;单片机复位地址ajmp main;转移到主程序处org 0100h;main 被定位在 0 x0100 处开始电流量程选择选择5A档位显示是否小于500A选择500A档位显示是否小于50A选择50A档位结束返回YYNNN24main: m

44、ov sp,#80h ;初始化堆栈指针jnb P1.0,crjnb P1.1,cvjnb P1.2,cacr: mov R7,#00hlcall adcLCALL RDATlcallDISPLAY sjmp mainCV: MOV R7,#01HLCALLADCLCALL VDATLCALLDISPLAYSJMPMAINCA: MOV R7,#02HLCALLADCLCALLADATLCALLDISPLAY SJMPMAINADC: MOV A,R7 ;0808 A/D 转换子程序MOV DPTR,#7FFFHMOVX DPTR,AJB P3.3,$MOVX A,DPTR ;输入转换结果RET

45、 vdat:mov R2,#00hmov R3,A25mov R6,#01hmov R7,#0F4hcallMULD2;乘以 500clr Cmov A,r5add A,#60h;加 96 修正mov r5,Amov A,r4addcA,#00hmov r4,Amov A,r3addcA,#00hmov r3,Amov A,r2addcA,#00hmov r2,Amov r0,#30hmov r1,#34hmov A,R2mov r1,Ainc r1mov A,R3mov r1,Ainc r1mov A,R4mov r1,Ainc r1mov A,R5mov r1,Ainc r1mov r1,

46、#00h26inc r1mov r1,#00hinc r1mov r1,#00hinc r1mov r1,#0FFhcallDIVD4;除以 255mov r1,#38hmov r1,#00hinc r1mov r1,#00hinc r1mov r1,#00hinc r1mov r1,#0AhcallDIVD4mov 43h,33hcallDIVD4mov 42h,33hcallDIVD4mov 41h,33hmov r0,#40hmov r0,#00hinc r0mov A,41hmov DPTR,#SEGMENT7movcA,A+DPTRorl A,#80hmov r0,Ainc r0mo

47、v A,42h27mov DPTR,#SEGMENT7movcA,A+DPTRmov r0,Ainc r0mov A,43hmov DPTR,#SEGMENT7movcA,A+DPTRmov r0,AretADAT:mov B,Amov A,#0B6hclr C;以下根据范围设置数值以防溢出subbA,Bjc LARGERAmov A,BsubbA,#16hjc LESSAajmpMIDDLEALARGERA:mov A,#0B6hajmpCALCULATEALESSA:mov A,#16hajmpCALCULATEAMIDDLEA:mov A,BCALCULATEA:mov r2,#0C3h

48、mov r3,#50hmov r6,#00hmov r7,AcallMULD2;乘以 50000clr C28mov A,r5subbA,#70h;以下减去 102000mov r5,Amov 37h,Amov A,r4subbA,#8Ehmov r4,Amov 36h,Amov A,r3subbA,#01hmov r3,Amov 35h,Amov A,r2subbA,#00hmov r2,Amov 34h,Amov r0,#30hmov r1,#38hmov r1,#00hinc r1mov r1,#01hinc r1mov r1,#5Ehinc r1mov r1,#0A0hcallDIVD

49、4;除以 89760mov r1,#38hmov r1,#00hinc r1mov r1,#00hinc r129mov r1,#00hinc r1mov r1,#0Ahmov DPTR,#SEGMENT7callDIVD4mov A,33hmovcA,A+DPTRmov 43h,AcallDIVD4mov A,33hmovcA,A+DPTRmov 42h,AcallDIVD4mov A,33hmovcA,A+DPTRcjneA,#3Fh,NOTEQUmov A,#00hNOTEQU:mov 41h,Amov 40h,#00hRETrdat:mov R2,#00hmov R3,Amov R6,

50、#03hmov R7,#0E8hcallMULD2;乘以 1000mov r0,#30hmov r1,#34hmov A,R2mov r1,A30inc r1mov A,R3mov r1,Ainc r1mov A,R4mov r1,Ainc r1mov A,R5mov r1,Ainc r1mov r1,#00hinc r1mov r1,#00hinc r1mov r1,#00hinc r1mov r1,#0FFhcallDIVD4;除以 255mov r1,#38hmov r1,#00hinc r1mov r1,#00hinc r1mov r1,#00hinc r1mov r1,#0Ahmov

51、 DPTR,#SEGMENT7callDIVD4;连续进行 4 次除以 10 的操作mov A,33h;取得 10 进制值movcA,A+DPTRmov 43h,A31callDIVD4mov A,33hmovcA,A+DPTRmov 42h,AcallDIVD4mov A,33hmovcA,A+DPTRmov 41h,AcallDIVD4mov A,33hmovcA,A+DPTRcjneA,#3Fh,NONZEROmov A,#00hNONZERO:mov 40h,AretDELAY_5ms: mov R5,#01h;设置 R5 初始计数值DELAY_5ms1:mov R6,#16h;设置

52、R6 初始计数值DELAY_5ms2:mov R7,#70h;设置 R7 初始计数值DELAY_5ms3:djnzR7,DELAY_5ms3;延时时间为 Time=( ( (R7*2)+2+1 )*R6+2+1 )*R5+1djnzR6,DELAY_5ms2;djnzR5,DELAY_5ms1;retSEGMENT7: DB 3Fh ;7 段数码管字符 0 的 abcdefg 的值,a 在最低位,最高位始终保留为 0DB 06hDB 5BhDB 4Fh32DB 66hDB 6DhDB 7DhDB 07hDB 7FhDB 6FhDISPLAY:mov DPTR,#0fEffh;写第一位数码管mo

53、v r1,#40hmov A,r1movxDPTR,AsetbCmov P1.4,Cclr Cmov P1.4,CcallDELAY_5mssetbCmov P1.4,Cinc r1mov A,r1;写第二位数码管movxDPTR,AsetbCmov P1.5,Cclr Cmov P1.5,CcallDELAY_5mssetbCmov P1.5,Cinc r1mov A,r1;写第三位数码管movxDPTR,A33setbCmov P1.6,Cclr Cmov P1.6,CcallDELAY_5mssetbCmov P1.6,Cinc r1mov A,r1;写第四位数码管movxDPTR,As

54、etbCmov P1.7,Cclr Cmov P1.7,CcallDELAY_5mssetbCmov P1.7,Cret;双字节二进制无符号数乘法;被乘数在 R2(高位)、R3(低位)中,乘数在 R6(高位)、R7(低位)中。;乘积在 R2(高位)、R3、R4、R5(低位)中。;用到累加器 A,B,PSW,R2R7。;永远不会产生进位。;在出口时总是清除 C。;若结果超出 2 个字节范围则 OV=1。MULD2: MOV A,R3MOV B,R7MUL AB34MOV R4,BMOV R5,AMOV A,R3MOV B,R6MUL ABADD A,R4MOV R4,ACLR AADDC A,B

55、MOV R3,AMOV A,R2MOV B,R7MUL ABADD A,R4MOV R4,AMOV A,R3ADDCA,BMOV R3,ACLR ARLC AXCH A,R2MOV B,R6MUL ABADD A,R3MOV R3,AMOV A,R2ADDCA,BMOV R2,AORL A,R3JZ MULD21SETBOV35RETMULD21:CLR OVRET;四字节无符号数除法;R0 存放被除数,除数,商数的地址。;从 R0 开始的连续四个字节为结果的余数,入口时可以为任意,但在出口时发生变化。;其后的连续 4 个字节在入口时是被除数,出口时是商数。;再其后的连续四个字节在入口时是除数

56、,出口时保持不变。;用到累加器 A,B,PSW,R0R7。;如果除数为零,则置 OV=1 标志,否则清零。;在出口时总是清除 C。DIVD4:MOV A,R0MOV B,AADD A,#08hMOV R1,AMOV A,#00hORL A,R1INC R1ORL A,R1INC R1ORL A,R1INC R1ORL A,R1JZ DIVD45MOV R1,B36MOV R2,#04hDIVD41:MOV R1,#00hINC R1DJNZR2,DIVD41MOV R3,#20hDIVD42:MOV R2,#08hMOV A,BMOV R0,AADD A,#07hMOV R1,ACLR CDI

57、VD43:MOV A,R1RLC AMOV R1,ADEC R1DJNZR2,DIVD43MOV A,R0ADD A,#03hMOV R1,AMOV A,R0ADD A,#0BhMOV R0,AMOV A,R1SUBBA,R0MOV R4,ADEC R1DEC R0MOV A,R137SUBBA,R0MOV R5,ADEC R1DEC R0MOV A,R1SUBBA,R0MOV R6,ADEC R1DEC R0MOV A,R1SUBBA,R0MOV R7,AJC DIVD44MOV A,BMOV R0,AADD A,#03hMOV R1,AMOV A,R4MOV R1,ADEC R1MOV A

58、,R5MOV R1,ADEC R1MOV A,R6MOV R1,ADEC R1MOV A,R7MOV R1,AMOV A,R0ADD A,#07hMOV R1,A38INC R1DIVD44:DJNZR3,DIVD42MOV R0,BCLR OVCLR CRETDIVD45:SETBOVCLR CRETend5.仿真结果:5.1 整体仿真 Protues 图:图 5-1 总体 Protues 仿真图5.2 待测电压仿真结果图:ABCDEFGH1234ABCDEFGH231U4:A74LS02564U4:B74LS02P1XTAL218XTAL119ALE30EA31PSEN29RST9P0.0

59、/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX2P1.2/ECI3P1.3/CEX04P1.4/CEX15P1.5/CEX26P1.6/CEX37P1.7/CEX48P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P

60、2.6/A1427U18051+5VOUT121ADD B24ADD A25ADD C23VREF(+)12VREF(-)16IN31IN42IN53IN64IN75START6OUT58EOC7OE9CLOCK10OUT220OUT714OUT615OUT817OUT418OUT319IN228IN127IN026ALE22U2ADC08088910U4:C74LS02C110uR110kC322pX1CRYSTALC222pD03Q02D14Q15D27Q26D38Q39D413Q412D514Q515D617Q616D718Q719OE1CLK11U374LS374待待测测电电压压+5V

温馨提示

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

评论

0/150

提交评论