单片机课程设计-数字电压表_第1页
单片机课程设计-数字电压表_第2页
单片机课程设计-数字电压表_第3页
单片机课程设计-数字电压表_第4页
单片机课程设计-数字电压表_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

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.3at89c51 的引脚介绍 .53.5 adc0808 的引脚及功能介绍 . .63.5.1芯片概述 .63.5.2引脚简介 . .73.5.3adc0808 的转换原理 .73.674ls373 芯片的引脚及功能 . .73.6.1芯片概述 .73.6.2引脚介绍 .83.7le

2、d 数码管的控制显示 . .83.7.1led数码管的模型 .83.7.2led数码管的接口简介 .84系统软件程序的设计 .104.1主程序 .104.2a/d 转换子程序 . .104.3中断显示程序 .115电压表的调试及性能分析 .135.1调试与测试 .135.2性能分析 .136电路仿真图.147总结 .15参考文献 . .16.附录 1 源程序17附录 2 仿真原理电路23.1 引言随着微电子技术的不断发展, 微处理器芯片的集成程度越来越高, 单片机已可以在一块芯片上同时集成 cpu、存储器、定时器计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。数字电

3、压表( digitalvoltmeter)简称 dvm ,它是采用数字化测量技术, 把连续的模拟量(直流输入电压) 转换成不连续、 离散的数字形式并加以显示的仪表。与此同时,由 dvm 扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片机a/d 转换器以及由它们构成的基于单片机的数字电压表的工作原目前,由各种单片 a/d 转换器构成的数字电压表,已被广泛用于电子及电工测量、 工业自动化仪表、 自动测试系统等智能化测量领域,示出强大的生命力理。本设计 at89c51 单片机的一种电压测量电路 ,该电路采用 adc0808 一种基于 a/d 转换电路,测

4、量范围直流 0 5v 的 4 路输入电压值,并在四位 led 数码管上显示或单路选择显示。 测量最小分辨率为 0.019v,测量误差约为正负0.02v 。.2 设计原理及要求此次设计思路是利用单片机at89c51 与 adc0808 设计一个数字电压表,测量 05v 之间的直流电压值,然后通过四位数码显示,为了设计简单化我使用的元器件数目较少。2.1 数字电压表的实现原理adc0808 是 8 位的 a/d 转换器。当输入电压为 5.00v 时,输出的数据值为255( 0ffh),因此最大分辨率为 0.0196(5/255)。adc0808 具有 8 路模拟量输入端口,通过 3 位地址输入端能

5、从 8 路中选择一路进行转换。 如每隔一段时间依次轮流改变 3 位地址输入端的地址,就能依次对 8 路输入电压进行测量。 led 数码管显示采用软件译码动态显示。 通过按键选择可对 8 路循环显示,也可单路显示,单路显示可通过按键选择显示的通道数。2.2 数字电压表的设计要求可以测量 05v 范围内的 3 路直流电压值。在 4 位 led 数码管上轮流显示各路电压值或单路选择显示,其中 3 位 led 数码管显示电压值,显示范围为 0.00v 5.00v,1 位 led 数码管显示路数 ,3 路分别为 0-2。要求测量的最小分辨率为 0.02v。.3 软件仿真电路设计3.1 设计思路多路数字电

6、压表应用系统 硬件电路由单片机、 a/d 转换器、数码管显示电路和按键处理电路组成 ,由于 adc0808 在进行 a/d 转换时需要有 clk 信号,本试验中 adc0808 的 clk 直接由外部电源提供为 500khz 的方波。由于 adc0808 的参考电压 vref vcc ,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值 (d/256*vref) adc0808 采用逐次逼近法转换,把模拟电压转换成 16 进制的 d,由于是对直流电压 05v 进行采集,所以 d 对应的电压为 v0 ,我们的目的就是要把 v0 显示在 led 显示器上,因为单片机不好进行

7、小数点计算,所以有: v0=2*d 扩大了 100 倍,扩大 100 倍后的结果高八位放寄存器 b,低八位放寄存器 a ,分寄存器 b 为 0 或不为 0 的情况进行存取数据,得到的结果个位放入 r0,十位放入 r1,通过查表使之显示在 led 显示器。3.2 仿真电路图用 protues 软件仿真设计的电路如图3-1 所示。5+rv1rv2%1k%1k7362rv3rv4%1k%1k8728voltsvoltsvoltsvolts+88.8+88.8+88.8+88.80123nnnniiii0123u4:bppp prd5循环4u4:a6274ls02单步1wru13817rd74ls02

8、p1.7p3.7/rd716wrp1.6p3.6/wr615p0p1.5p3.5/t1514p1p1.4p3.4/t0u2413p1.3p3.3/int1ad131232p1.2p3.2/int0d0q0211p245ad2p1.1/t2exp3.1/txdd1q1110p376ad3p1.0/t2p3.0/rxdd2q289aled3q32813u3(clock)12p2.7/a15d4q4271415p2.6/a14d5q531261716eap2.5/a13d6q6u33025181929alep2.4/a1224d7q71026in0psenp2.3/a11clockin0c42316

9、27in1p2.2/a10oestartin122up2.1/a92211lein228in22171in3p2.0/a8eocin374ls3732in4932213rstp0.7/ad7out1in533204p0.6/ad6out2in634195c2p0.5/ad5out3in7r13518p0.4/ad4out4ad1183682510kxtal2p0.3/ad3out5add a371524ad2p0.2/ad2out6add b33p381423ad3p0.1/ad1out7add cx119391722alextal1p0.0/ad0out8alec3at89c529vref(

10、+)125net=p5oevref(-)16+10uadc0808图 3-1仿真电路3.3 设计过程简易数字电压测量电路由a/d 转换、数据处理及显示控制等组成。电路原.理图见附录 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 脚为高电平时,

11、 a/d转换数据从该端口输出。 10 脚为 0808 的时钟输入端,由外部信号源提供。单片机的 p1、p3.0-p3.3端口作为四位 led 数码管现实控制。 p3.5 端口用作单路显示/循环显示转换按钮, p3.6 端口用作单路显示时选择通道。 p0 端口作 a/d 转换数据读入用, p2 端口用作 0808 的 a/d 转换控制。3.4 at89c51 的功能介绍3.4.1简单概述at89c51 是一种带 4k字节闪存可编程可擦除只读存储器( fperom flashprogrammable and erasableread onlymemory )的低电压、高性能cmos8 位微处理器,

12、俗称单片机。at89c51是一种带 2k字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000 次。该器件采用 atmel高密度非易失存储器制造技术制造,与工业标准的 mcs-51 指令集和输出管脚相兼容。由于将多功能8 位 cpu 和闪烁存储器组合在单个芯片中, atmel的 at89c51 是一种高效微控制器,at89c2051 是它的一种精简版本。at89c51 单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3-2 所示。u119xtal1p0.0/ad03938p0.1/ad137p0.2/ad21836xtal2p0.3/a

13、d335p0.4/ad434p0.5/ad533p0.6/ad6932rstp0.7/ad7p2.0/a82122p2.1/a923p2.2/a102924psenp2.3/a113025alep2.4/a123126eap2.5/a1327p2.6/a1428p2.7/a151p1.0p3.0/rxd10211p1.1p3.1/txd312p1.2p3.2/int0413p1.3p3.3/int1514p1.4p3.4/t0615p1.5p3.5/t1716p1.6p3.6/wr817p1.7p3.7/rdat89c51图 3-2 at89c51芯片模型3.4.2 主要功能特性(1) 4k

14、字节可编程闪烁存储器。.(2)32 个双向 i/o 口; 1288 位内部 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 引脚 ):片内振荡器反相放大器

15、和时钟发生器电路的输入端。xtal2(20 引脚 ):片内振荡器反相放大器的输出端。图 3-3电源接入方式(3) 复位 rst(9 引脚 )在振荡器运行时,有两个机器周期(24 个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51 芯片便循环复位。(4) ea /vpp(31 引脚 ).ea 为外部程序存储器访问允许控制端。当它为高电平时,单片机读片内程序存储器,在 pc 值超过 0fffh 后将自动转向外部程序存储器。 当它为低电平时,只限定在外部程序存储器,地址为 0000hffffh。 vpp 为该引脚的第二功能,为编程电压输入端。(5)ale/ prog

16、(30 引脚 )ale 为低八位地址锁存允许信号。 在系统扩展时, ale 的负跳沿江 p0 口发出的第八位地址锁存在外接的地址锁存器, 然后再作为数据端口。 prog 为该引脚的第二功能,在对片外存储器编程时,此引脚为编程脉冲输入端。(6) psen (29 引脚 )片外程序存储器的读选通信号。 在单片机读片外程序存储器时, 此引脚输出脉冲的负跳沿作为读片外程序存储器的选通信号。(7) pin39-pin32 为 p0.0-p0.7输入输出脚,称为p0 口。p0 是一个 8 位漏极开路型双向i/o 口。内部不带上拉电阻,当外接上拉电阻时, p0 口能以吸收电流的方式驱动八个lsttl 负载电

17、路。通常在使用时外接上拉电阻,用来驱动多个数码管。在访问外部程序和外部数据存储器时,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 负载。端口置 1 时,内部上拉电阻将端口拉到高电平,作输入用。对内部 flash 程序存储器编程时,接收

18、高 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 转换器。它是

19、由 8 位 a/d 转换器,一个 8 路模拟量开关, 8 位模拟量地址锁存译码器和一个三态数据输出锁存器组成; +5v 单电源供电,转化 时间在 100us 左右;内部没有时钟电路,故需外部提供时钟.信号。芯片模型如图3-4 所示。图 3-4adc0808 芯片模型3.5.2引脚简介(1) in0in7 :8 路模拟量输入端。(2) d0d7:8 位数字量输出端口。(3) start:a/d 转换启动信号输入端。(4) ale :地址锁存允许信号,高电平有效。(5) eoc:输出允许控制信号,高电平有效。(6) oe: 输出允许控制信号,高电平有效。(7) clk :时钟信号输入端。(8)a

20、、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 的编码来决定所选的通道。 adc0809 完成一次转换需 100 s 左右,它具有输出 ttl 三态锁存缓冲器, 可直接连接到 at89c51 的数据总线上。 通过适当的外接电路, adc0808 可对 05v的

21、模拟信号进行转换。3.674ls373 芯片的引脚及功能3.6.1 芯片概述74ls373 是一种带有三态门的8d 锁存器,其在本设计中是锁存p0 口的低 8.位地址,芯片模型如图3-5 所示。图 3-5 74ls373 芯片模型3.6.2 引脚介绍(1) d0 d7:8 位数据输入线;(2) q0q7:8 位数据输出线(3) g:数据输入锁存选通信号。当加到该引脚的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。(4) oe :数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中的数据输出到数据输出线上,当该信号为高电平时,输出线为高阻态。3.7 l

22、ed 数码管的控制显示3.7.1 led 数码管的模型led 数码管模型如图 3-6 所示。p0 1 2 3a b c d e f g dq q q q图 3-6 led 数码管模型3.7.2 led 数码管的接口简介led 的段码端口 a g 分别接至 at89c51 的 p1.0p1.7 口,位选端 1 4 分别接至 p3.5、 p3.4、p3.1、p3.0,如图 3-7 所示。.图 3-7led 与 at89c51 的硬件连线.4 系统软件程序的设计多路数字电压表系统软件程序主要有主程序、 a/d 转换子程序和中断显示程序组成。4.1主程序主程序包含初始化部分、调用a/d 转换子程序和相

23、应外部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 所示

24、。.开始 a/d 转换调用延时存转换后的十六进制数数据指针加一入栈保护4 路转换次数减一y判断是否为0n进行十六进制调整显示电压值图 4-2 转换子程序流程图4.3中断显示程序设计中采用中断的方式来读取转换完成的数据能节省cpu 的资源当系统设置好后, 一旦数据转换完成,便会进入外部中断0,然后在中断中读取转换的数值,处理数据并送数码管显示输出。.led数码管采用软件译码动态扫描的方式。在中断程序中包含多路循环显示程序和单路显示程序,多路循环显示程序把4 个存储单元的数值依次取出送到4 个数码管上显示,每一路显示一秒。单路显示程序只对当前选中的一路数据进行显示。每路数据显示时需经过转换变成十进

25、制bcd 码,放于 4 个数码管显示缓冲区中。单路或多路循环显示通过标志位00h 控制。在显示控制程序中加入了对单路或多路循环按键的判断。数字量送p1 口取段码地址yp3.1=1?n调用循环显示程序y显示的是第4 路调用单路显示程序n重新调用显示程序图 4-3 中断显示程序流程图.5 电压表的调试及性能分析5.1调试与测试本设计应用 proteus6及 keil51 软件 ,首先根据自己设计的电路图用 proteus6 软件画出电路模型 ,关于这个软件的使用通过查一些资料和自己的摸索学习; 然后我们用 keil51 软件对所编写的程序进行编译、链接,如果没有错误和警告便可生成程序的 hex 文

26、件,将此文件加到电路图上使软硬件结合运行, 最后进行端口电压的对比测试, 测试的第一路对比见图 4-1 中标准电压值采用 proteus6软件中的模拟电压表测得。图 4-1 数字电压表与标准电压表的比较从图中可以看出, 简易数字电压表与“标准” 数字电压表测得的绝对误差均在 0.02v 以内,这与采用8 位 a/d 转换器所能达到的理论误差精度相一致,在一般的应用场合可以完全满足要求。5.2性能分析由于单片机为 8 位处理器,当输入电压为 5.00v 时,输出数据值为 255( ffh)因此单片机最大的数值分辨率为 0.0196v( 5/255)。这就决定了该电压表的最大分辨率(精度)只能达到

27、 0.0196v。测试时电压数值的变化一般以 0.02v 的电压幅度变化,如要获得更高的精度要求,应采用12 位、 13 位的 a/d 转换器。简易数字电压表测得的值基本上均比标准值偏大0.01-0.02v。这可以通过校正 0808 的基准电压来解决, 因为该电压表设计时直接用 7805 的供电电源作为基准电压,电压可能有偏差。另外可以用软件编程来校正测量值。adc0808 的直流输入阻抗为 1m 欧姆,能满足一般的电压测试需要。另外,经测试 adc0808 可直接在 2mhz 的频率下工作,这样可省去分频率 14024。.6 电路仿真图图 6-1 为 4 路通道用模拟电压表测得的理论值。图

28、6-1 模拟电压表测量结果图 6-2 为进行模拟仿真时的电路图5+rv1rv2%1k%1k7362rv3rv4%1k%1k8728voltsvoltsvoltsvolts+3.35+1.15+1.40+4.350123nnnniiii0123u4:bp pp prd5循环4u4:a62174ls02单步u1wr3rd8p1.7p3.7/rd1774ls02wr716p1.6p3.6/wr615p0p1.5p3.5/t1514p1p1.4p3.4/t0u2413p1.3p3.3/int1ad131232p1.2p3.2/int0d0q0211p245ad2p1.1/t2exp3.1/txdd1q1110p376ad3p1.0/t2p3.0/

温馨提示

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

评论

0/150

提交评论