八路电压采集.docx

上传人:罗晋 文档编号:10731804 上传时间:2021-06-01 格式:DOCX 页数:25 大小:264.77KB
返回 下载 相关 举报
八路电压采集.docx_第1页
第1页 / 共25页
八路电压采集.docx_第2页
第2页 / 共25页
八路电压采集.docx_第3页
第3页 / 共25页
八路电压采集.docx_第4页
第4页 / 共25页
八路电压采集.docx_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《八路电压采集.docx》由会员分享,可在线阅读,更多相关《八路电压采集.docx(25页珍藏版)》请在三一文库上搜索。

1、1引言 12设计原理及要求 22.1 数字电压表的实现原理 22.2 数字电压表的设计要求 23软件仿真电路设计 33.1 设计思路 33.2 仿真电路图 33.3 设计过程 33.4 AT89C51的功能介绍 43.4.1 简单概述 43.4.2 主要功能特性 43.4.3 AT89C51的引脚介绍 53.5 ADC0808的引脚及功能介绍 63.5.1 芯片概述 63.5.2 引脚简介 73.5.3 ADC0808的转换原理 73.7 LED数码管的才5制显示 73.7.1 LED数码管白模型 73.7.2 LED数码管的接口简介 84系统软件程序的设计 84.1 主程序 84.2 A/D

2、转换子程序 104.3 中断显示程序 错误!未定义书签。5电压表的调试及性能分析 115.1 调试与测试 115.2 性能分析 116电路仿真图 127总结 13参考文献 14附录1源程序 错误!未定义书签。附录2仿真原理电路 2311引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已 可以在一块芯片上同时集成 CPU、存储器、定时器/计数电路,这就很容易将 计算机技术与测量控制技术结合,组成智能化测量控制系统。数字电压表(DigitalVoltmeter)简称DVM ,它是采用数字化测量技术,把 连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪 表。

3、与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及 非电量测量技术提高到崭新水平。本章重点介绍单片A/D转换器以及由它们构成的基于单片机的数字电压表的工作原目前,由各种单片A/D转换器构成的数字电压表,已被广泛用于电子及电工测量、 工业自动化仪表、自动测试系统等智 能化测量领域,示出强大的生命力理。本设计AT89C51单片机的一种电压测量电路,该电路采用ADC0808本文介 绍一种基于A/D转换电路,测量范围直流05V的4路输入电压值,并在四位 LED数码管上显示或单路选择显示。测量最小分辨率为 0.019V,测量误差约为 正负0.02V。2设计原理及要求本设计是利用单片机 A

4、T89C51与ADC0808设计一个数字电压表,测量0 5V之间的直流电压值,四位数码显示,但要求使用的元器件数目最少。2.1 数字电压表的实现原理ADC0808是8位的A/D转换器。当输入电压为5.00V时,输出的数据值为 255 (0FFH),因此最大分辨率为 0.0196 (5/255)。ADC0808具有8路模拟量输 入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依 次轮流改变3位地址输入端的地址,就能依次对 8路输入电压进行测量。LED 数码管显示采用软件译码动态显示。通过按键选择可对8路循环显示,也可单路 显示,单路显示可通过按键选择显示的通道数。2.2 数字

5、电压表的设计要求可以测量05V范围内的3路直流电压值。在4位LED数码管上轮流显示 各路电压值或单路选择显示,其中 3位LED数码管显示电压值,显示范围为 0.00V5.00V, 1位LED数码管显示路数,3路分别为02 要求测量的最小分辨 率为0.02V。243软件仿真电路设计3.1设计思路多路数字电压表应用系统硬件电路由单片机、A/D转换器、数码管显示电路和按键处理电路组成,由于 ADC0808在进行A/D转换时需要有CLK信号,本 试验中ADC0808的CLK直接由外部电源提供为 500kHz的方波。由于ADC0808 的参考电压VREF=VCC,所以转换之后的数据要经过数据处理,在数码

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

7、5P1.4P1.3P1.2P3.7/RDP3.6/WRP3.5/T1P3.4/T0P3.3/INT1P3.2/INT0C230pFC1TF30pFP1.1/T2EXP1.0/T2P3.1/TXDP3.0/RXD3130 ,TU-EA ALE PSENRST18XTAL2-X1 CRYSTAL19 1XTAL1AT89C52P2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8P0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1P0.0/AD01412vddc vdd

8、b vdda 171615循环/单个个选择282726 25 r-24U2(CLOCK)CLOCK STARTU22221/3221332034193518368371538143917ale23OEEOCOUT1OUT2OUT3OUT4OUT5OUT6OUT7OUT8IN0IN1IN2IN3IN4IN5IN6IN7ADD AADD BADD CALEVREF(+)VREF(-)ADC080826 -T 281 2 -3-5252423221216va vbvcvdda vddbvddcale图3-1仿真电路3.3 设计过程简易数字电压测量电路由A/D转换、数据处理及显示控制等组成。电路原 理

9、图见附录2。A/D转换由集成电路0808完成。0808具有8路模拟输入端口, 地址(23-25)脚可决定对哪路模拟输入作 A/D转换,22脚为地址锁存控制,当输 入为高电平时,对地址信号进行锁存。6脚为测试控制,当输入一个2us宽高电 平脉冲时,就开始A/D转换。7脚为A/D转换结束标志,当A/D转换结束时7 脚输出高电平。9脚为A/D转换数据输出允许控制,当 OE脚为高电平时,A/D 转换数据从该端口输出。10脚为0808的时钟输入端,由外部信号源提供。单片 机的P1、P3.0-P3.3端口作为四位LED数码管现实控制。P3.5端口用作单路显示 /循环显示转换按钮,P3.6端口用作单路显示时

10、选择通道。P0端口作A/D转换数 据读入用,P2端口用作0808的A/D转换控制。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位CP

11、U和闪烁存 储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供 了一种灵活性高且价廉的方案。外形及引脚排列如图3-2所示。U119X XTAL1P0.0/AD0P0.1/AD1P0.2/AD239183837369P0.4/AD4P0.5/AD5P0.6/AD6RSTP0.7/AD7P2.0/A8P2.1/A9P2.2/A10PSENP2.3/A11ALEP2.4/A123522433-32-2122292324302531261P2.6/A14P2.7/A152728102P1.1P3.1/T

12、XDP1.2P3.2/INT0-113124135P1.4P3.4/T014615716817AT89C51图3-2 AT89C51 芯片模型3.4.2 主要功能特性(1) 4K字节可编程闪烁存储器(2) 32 个双向 I/O 口; 128X8 位内部 RAM 。(3) 2个16位可编程定时/计数器中断,时钟频率0-24MHZ。(4)可编程串行通道。(5) 5个中断源。(6) 2个读写中断口线。(7)低功耗的闲置和掉电模式。(8)片内振荡器和时钟电路。3.4.3 AT89C51的引脚介绍89C51单片机多采用 40只引脚的双列直插封装 (DIP)方式,下面分别简 单介绍。(1)电源引脚电源引脚

13、接入单片机的工作电源。Vcc(40引脚):+5V电源。GND(20弓|脚):接地。时钟引脚XTAL1(19引脚):片内振荡器反相放大器和时钟发生器电路的输入端。XTAL2(20引脚):片内振荡器反相放大器的输出端。XTAL2XTAI1GND图3-3电源接入方式复位RST(9引脚)在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。 EA/vpp(3i 引脚)EA为外部程序存储器访问允许控制端。当它为高电平时,单片机读片内程 序存储器,在PC值超过0FFFH后将自动转向外部程序存储器。当它为低电平时, 只限定在外部

14、程序存储器,地址为 0000HFFFFH。Vpp为该引脚的第二功能, 为编程电压输入端。(5)ALE/ PROG (30 引脚)ALE为低八位地址锁存允许信号。在系统扩展时,ALE的负跳沿江P0 口发 出的第八位地址锁存在外接的地址锁存器, 然后再作为数据端口。 PROG为该引 脚的第二功能,在对片外存储器编程时,此引脚为编程脉冲输入端。(6) PSEN (29 引脚)片外程序存储器的读选通信号。在单片机读片外程序存储器时,此引脚输出 脉冲的负跳沿作为读片外程序存储器的选通信号。pin39-pin32为P0.0-P0.7输入输出月却,称为 P0 口。P0是一个8位漏极开路型双向I/O 口。内部

15、不带上拉电阻,当外接上拉电 阻时,P0 口能以吸收电流的方式驱动八个 LSTTL负载电路。通常在使用时外接 上拉电阻,用来驱动多个数码管。在访问外部程序和外部数据存储器时,P0 口 是分时转换的地址(低8位)/数据总线,不需要外接上拉电阻。(8)Pin1-Pin8为P1.0-P1.7输入输出脚,称为P1 口,是一个带内部上拉电阻的 8 位双向I/0 口。P1 口能驱动4个LSTTL负载。Pin21-Pin28为P2.0-P2.7输入输出脚,称为 P2 口。P2 口是一个带内部上拉电阻的8位双向I/O 口,P2 口能驱动4个LSTTL负 载。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对

16、内部Flash程序存储器编程时,接收高8位地址和控制信息。在访问外部程序和16位外部数据存储器时,P2 口送出高8位地址。而在访问8位地址的外部数据存储器时其 引脚上的内容在此期间不会改变。(10)Pin10-Pin17 为 P3.0-P3.7输入输出脚,称为 P3 口。P3 口是一个带内部上拉电阻的8位双向I/O 口,P2 口能驱动4个LSTTL负 载,这8个引脚还用于专门的第二功能。端口置 1时,内部上拉电阻将端口拉到 高电平,作输入用。对内部Flash程序存储器编程时,接控制信息。3.5 ADC0808的引脚及功能介绍3.5.1 芯片概述ADC0808是一种典型的A/D转换器。它是由8位

17、A/D转换器,一个8路模 拟量开关,8位模拟量地址锁存译码器和一个三态数据输出锁存器组成;+5V单电源供电,转化 时间在100us左右;内部没有时钟电路,故需外部提供时钟信号。芯片模型如图3-4所示 U1 ,INDIN1IN2IN 3IN4IN5IN6IN7ADDA ADD B ADDC ALECLOCK STARTEQC0LIT1OUT2OUT3QUT4OUT5OUTfiOUT7OUT91 口7_217s 工6N1712J 耳VREF(+)VREF(-OEADCO8O0图3-4ADC0808芯片模型3.5.2 引脚简介(1) IN0IN7 : 8路模拟量输入端。D0D7: 8位数字量输出端口

18、。START: A/D转换启动信号输入端。(4) ALE:地址锁存允许信号,高电平有效。(5) EOC:输出允许控制信号,高电平有效。(6) OE:输出允许控制信号,高电平有效。(7) CLK :时钟信号输入端。(8)A、B、C:转换通道地址,控制8路模拟通道的切换。A、B、C分别与地址线 或数据线相连,三位编码对应 8个通道地址端口,A、B、C=000111分别对应 IN0IN7通道的地址端口。3.5.3 ADC0808的转换原理ADC 0808采用逐次比较的方法完成 A/D转换,由单一的+5V电源供电。片 内带有锁存功能的8路选1的模拟开关,由A、B、C的编码来决定所选的通道。 ADC08

19、09完成一次转换需100仙s左右,它具有输出TTL三态锁存缓冲器,可直 接连接到AT89C51的数据总线上。通过适当的外接电路,ADC0808可对05V的模拟信号进行转换。3.7 LED数码管的控制显示3.7.1 LED数码管的模型LED数码管模型如图3-6所示。忆、 一人图3-6 LED数码管模型3.7.2 LED数码管的接口简介LED的段码端口 AG分别接至 AT89C51的P1.0P1.7 口,位选端14 分别接至P35 P34 P3.1、P3.0,如图3-7所示。R1ioalevddb vddaP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A

20、10P2.1/A927262524232221C310uF3130 EA30 ALE29 PSENRV11k+5V+88.8AC VoltsRV21k+88.8AC Volts循环/单个单个选择U2(CLOCK)1064系统软件程序的设比:A:P0.6/AD63233、C2一一 、,、多路数字电压表系统软件程序主要有志程序、34P0.5/AD534A/DAD较接子程序和中断显示程序组成。30pFC1X1CRYSTAL1919 XTAL1AT89C52P0.2/AD2P0.1/AD1P0.0/AD0373839212019188151417OOOOOOOO4.1主程序30pFAD主程序包含初始化

21、部分、调用A/D转换子程序和相应外部0中断显示电压数值程序,初始化部分包含存放通道的缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置了一个标志位00H控制,初始化时00H位设置为0,默认为循环显示,当它为1时改变为单路显示控 制,00H位通过单路、循环按键控制。流程图如图 4-1所示。初始化A/D转换子程序显示子程序图4-1主程序流程图4.2 A/D转换子程序A/D转换子程序用于对 ADC0808的4路输入模拟电压进行 A/D转换, 并将转换的数值存入 4个相应的存储单元中,A/D转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次,如图4-2所示。图4-2转换

22、子程序流程图5电压表的调试及性能分析5.1 调试与测试本设计应用Proteus6及KEIL51软件,首先根据自己设计的电路图用 Proteus6 软件画出电路模型,关于这个软件的使用通过查一些资料和自己的摸索学习;然后我们用KEIL51软件对所编写的程序进行编译、链接,如果没有错误和警告便 可生成程序的hex文件,将此文件加到电路图上使软硬件结合运行,最后进行端口电压的对比测试,测试的第一路对比见图4-1中标准电压值采用Proteus6软件 中的模拟电压表测得。图4-1数字电压表与标准电压表的比较从图中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均 在0.02V以内,这与采用8位

23、A/D转换器所能达到的理论误差精度相一致,在 一般的应用场合可以完全满足要求。5.2 性能分析由于单片机为8位处理器,当输入电压为5.00V时,输出数据值为255( FFH) 因此单片机最大的数值分辨率为 0.0196V (5/255)。这就决定了该电压表的最大 分辨率(精度)只能达到0.0196V。测试时电压数值的变化一般以 0.02V的电压 幅度变化,如要获得更高的精度要求,应采用12位、13位的A/D转换器。简易数字电压表测得的值基本上均比标准值偏大 0.01-0.02V。这可以通过校 正0808的基准电压来解决,因为该电压表设计时直接用7805的供电电源作为基 准电压,电压可能有偏差。

24、另外可以用软件编程来校正测量值。ADC0808的直流输入阻抗为1M欧姆,能满足一般的电压测试需要。另外, 经测试ADC0808可直接在2MHz的频率下工作,这样可省去分频率 14024。6电路仿真图图6-1为4路通道用模拟电压表测得的理论值。图6-1模拟电压表测量结果图6-2为进行模拟仿真时的电路图C310uFU1313029C21830pFX119C1CRYSTAL书30pF+ 5VP1.7P1.6P1.5P1.4P1.3P1.2P1.1/T2EXP1.0/T2EA-ALERSTXTAL2XTAL1AT89C52P3.7/RDP3.6/WRP3.5/T1P3.4/T0P3.3/INT1P3.

25、2/INT0P3.1/TXDP3.0/RXDP2.7/A15P2.6/A14P2.5/A13P2.4/A12P2.3/A11P2.2/A10P2.1/A9P2.0/A8P0.7/AD7P0.6/AD6P0.5/AD5P0.4/AD4P0.3/AD3P0.2/AD2P0.1/AD1P0.0/AD017161514,ovddc2 28.27Vddb-26vddaI 2524ale23U2(CLOCK)2217I21322120 -1349T1883715381439-T7TCLOCKIN0STARTIN1IN2EOCIN3IN4OUT1IN5OUT2IN6OUT3IN7OUT4OUT5ADDAOU

26、T6ADDBOUT7ADDCOUT8ALE26 va27 vb28 vc图6-2仿真时的电路图7总结经过一周的努力终于设计成功,LED的显示结果和直接用数字电压表测试 模拟量输入所得结果几乎一致,误差完全在合理的范围之内。由于仪器误差,LED 显示最大值只能是4.9V,离标准最大值5.0V已经不远,达到预期目的,设计成 功。本设计参考了教材上第H一章 89C51与ADC0809转换的接口连线,设计出 电路图的连线,从并中理解了许多基本的知识和接线方法, 在程序的设计与电压 表调试的过程中中遇到了很多的问题, 刚开始时四个数码管根本不显示, 后来发 现用的是共阳极的数码管,而设计是共阴极的, 更

27、换后数码管终于显示,但问题 又出现了,单路显示和循环显示的开关不能控制电路的单路显示和循环显示, 经 过仔细地检查电路和修改程序,采用中断的方法,产生一次外部中断 0,程序转 移到单路显示,按一次单路显示开关,地址加一,转换的模拟通道相应的加一, 如果按下循环按键就返回循环显示的程序,功夫不负有心人,最后终于调试成功在此再次向带领我们这次课程设计的老师说声:谢谢!参考文献1蒋廷彪,刘电霆,高富强,方华.单片机原理及应用.出版社:重庆大学出版社.出版时间:2005 年1月第2次印刷2 8051实验指导书电子电气综合实训系统.出版社:北京精仪达盛科技有限公司3徐爱钧.智能化测量控制仪表原理与设计(

28、第二版)M.北京:北京航空航天大学出版社,20044吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用M.北京:清华大学出版社,20025张国勋.缩短ICL7135A/D采样程序时间的一种方法J.电子技术应用.1993.第一期6高峰.单片微型计算机与接口技术M.北京科学出版社,2003.7刘伟,赵俊逸,黄勇.一种基予C8051F单片机的SOC型数据采录器的设计与实现8新型AT89S52系列单片机及其应用孙育才 北京:清华大学出版社2005-5蔡美琴 高等教育出版中国计量学院出版社,2007-39MCS-51系列单片机系统及其应用10过程控制与仪表陈乐#include #include #incl

29、ude / 调用 _nop_()延时函数#define ad_con P2 /0809控制 口#define addata P0 /0809数据入口#define disdata P1 /数码管显示#define uchar unsigned char#define uint unsigned intsbit led1=P3A7;sbit led2=P3A6;sbit led3=P3A5;/数码管第一位/数码管第2位/数码管第3位/数码管第4位uchar number=0x00; /数存放单通道显示时的当前通道sbit led4=P3A4;sbit ALE=P2A3;/0809地址锁存信号sb

30、it START=P2A2; /启动信号sbit OE=P2A0; / 输生允许通道sbit KEY1=P3A3;/循环或单路选择按键sbit KEY2=P3A2;/通道选择按键sbit EOC=P2A1;/转换结束信号/sbit DISX=disdataA7;/ 小数点位uchar FLAG;uchar code dis_711=0xc0,0xf9,0xa4,0xb0,/ 0,1,2, 30x99,0x92,0x82,0xf8,0x80,0x90, 0xff;/4, 5, 6, 7, 8, 9, off/数码管的字段码uintdataad_data8=0x00,0x00,0x00,0x00,

31、0x00,0x00,0x00,0x00;uchar data dis_temp4;/*1ms秒延时*/void delay1ms(uint t)uint i,j;for (i=0;it;i+)for (j=0;j300)j=0;i+;if(i2) i=0;/*显示扫描子程序*/void scan(void) static uchar i;led1=0;/数码管全部关闭led2=0;led3=0;led4=0;dis_trans();switch (i)case 0: disdata= dis_7dis_temp0;led1=1;break;case 1: disdata=dis_7dis_te

32、mp1&0x7f;led2=1;break;case 2: disdata=dis_7dis_temp2|0x80;led3=1;break;case 3: disdata=dis_7dis_temp3|0x80;led4=1;break; default :break;i+;if(i4)i=0;/*转换子函数*/void test(void) uint temp;static uchar m;m+;if(m=3) m=0;改变通道地址ad_con=(ad_con&0x0f)|(m5);ALE=1; /锁存通道地址_nop_();_nop_();ALE=0;/锁存通道地址START=1;_no

33、p_();_nop_();START=0;/启动转换EOC=1;_nop_();_nop_();_nop_();_nop_();while(EOC=0);/ 等待转换结束OE=1;temp= addata*196;ad_datam=temp/100;OE=0;/读取当前通道转换数据/*主函数*/void main(void)P0=0xff;/初始化端口P2=0xff;P1=0xff;P3=0xff;while(1)delay1ms(5);test(); /测量转换数据scan();显示数据keytest();/ 按键检测原理电路C3 C3T 10uFR110+5VRRR9U1P1.7P1.6P

34、1.5P1.4P1.3P1.2P1.1/T2EXP1.0/T2C230pFC130pF31布29EAALEPSENRST18XTAL2一I X119卜 XTAL1.ZZ. CRYSTALAT89C52晚W军P3.5心P3.4/T0.P3.3/INW1413P3.2/INT022-P3.1/TP3.0/RXXD1.1X.xd10P2.7/AP2.6/AP2.5/AP2.4/Avddc vddb vddaP2.3/A11 P2.2/A1023 P2.1/A9,22. P2.0Ai2124 ale732P0.7/A【D P0.6/AD633 P0.5/AD53435 P0.4/AD4- P0.3/AD33637P0.2/AD238P0.1/AD139P0.0/AD0RV2RVc vRV1JJ=L 循唧个=-0 (H-i*_0. 单个选择U2(CLOCKfeU2卜 CLOCKINSTARTININEOCININOUT1INOUT2INOUT3INOUT4OUT5ADDOUT6ADDOUT7ADDOUT8ALVREFOEVREF026 va.6:27 vb,2 28 vc:17口甘212 y 5-4 u2019188A 25 vdda1514A 24 vddb-B23vddc17_C 22 ae+9J 161ADC0808

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

当前位置:首页 > 科普知识


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