




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目 录1 引言12设计原理及要求22.1数字电压表的实现原理22.2数字电压表的设计要求23软件仿真电路设计33.1设计思路33.2仿真电路图33.3设计过程43.4 at89c51的功能介绍43.4.1简单概述43.4.2主要功能特性53.4.3 at89c51的引脚介绍53.5 adc0808的引脚及功能介绍73.5.1芯片概述73.5.2 引脚简介83.5.3 adc0808的转换原理83.6 74ls373芯片的引脚及功能93.6.1芯片概述93.6.2引脚介绍93.7 led数码管的控制显示93.7.1 led数码管的模型93.7.2 led数码管的接口简介104系统软件程序的设计1
2、04.1 主程序104.2 a/d转换子程序114.3 中断显示程序125电压表的调试及性能分析135.1 调试与测试135.2 性能分析146电路仿真图147总结15参考文献16附录1 源程序17附录2 仿真原理电路231 引言随着微电子技术的不断发展,微处理器芯片的集成程度越来越高,单片机已可以在一块芯片上同时集成cpu、存储器、定时器计数电路,这就很容易将计算机技术与测量控制技术结合,组成智能化测量控制系统。 数字电压表(digitalvoltmeter)简称dvm,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。与此同时,由dvm扩展
3、而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片机a/d 转换器以及由它们构成的基于单片机的数字电压表的工作原目前,由各种单片a/d 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力理。本设计at89c51单片机的一种电压测量电路,该电路采用adc0808一种基于a/d转换电路,测量范围直流 05v 的4路输入电压值,并在四位led数码管上显示或单路选择显示。测量最小分辨率为0.019v,测量误差约为正负0.02v。2设计原理及要求此次设计思路是利用单片机at89c51与adc0808设
4、计一个数字电压表,测量05v之间的直流电压值,然后通过四位数码显示,为了设计简单化我使用的元器件数目较少。2.1数字电压表的实现原理 adc0808是8位的a/d转换器。当输入电压为5.00v时,输出的数据值为255(0ffh),因此最大分辨率为0.0196(5/255)。adc0808具有8路模拟量输入端口,通过3位地址输入端能从8路中选择一路进行转换。如每隔一段时间依次轮流改变3位地址输入端的地址,就能依次对8 路输入电压进行测量。led数码管显示采用软件译码动态显示。通过按键选择可对8路循环显示,也可单路显示,单路显示可通过按键选择显示的通道数。2.2数字电压表的设计要求可以测量05v范
5、围内的3路直流电压值。在4位led数码管上轮流显示各路电压值或单路选择显示,其中3位led数码管显示电压值,显示范围为0.00v5.00v,1位led数码管显示路数,3路分别为0-2。要求测量的最小分辨率为0.02v。3软件仿真电路设计3.1设计思路 多路数字电压表应用系统硬件电路由单片机、a/d转换器、数码管显示电路和按键处理电路组成,由于adc0808在进行a/d转换时需要有clk信号,本试验中adc0808的clk直接由外部电源提供为500khz的方波。由于adc0808的参考电压vrefvcc,所以转换之后的数据要经过数据处理,在数码管上显示出电压值。实际显示的电压值(d/256*vr
6、ef) 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所示。图3-1 仿真电路3.3设计过程简易数字电压测量电路由a/d转换、数据处理及显示控制等组成。电路原理图见附录2。a/d转换由集成
7、电路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端口用作单路显示时选择通道。p0端口作a/d转换数据读入用,p2
8、端口用作0808的a/d转换控制。3.4 at89c51的功能介绍3.4.1简单概述at89c51是一种带4k字节闪存可编程可擦除只读存储器(fperomflash programmable and erasable read only memory)的低电压、高性能cmos 8位微处理器,俗称单片机。at89c51是一种带2k字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用atmel高密度非易失存储器制造技术制造,与工业标准的mcs-51指令集和输出管脚相兼容。由于将多功能8位cpu和闪烁存储器组合在单个芯片中,atmel的at89c51是一
9、种高效微控制器,at89c2051是它的一种精简版本。at89c51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3-2所示。图3-2 at89c51芯片模型3.4.2主要功能特性(1) 4k字节可编程闪烁存储器。 (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)方式
10、,下面分别简单介绍。(1)电源引脚电源引脚接入单片机的工作电源。vcc(40引脚):+5v电源。gnd(20引脚):接地。(2)时钟引脚xtal1(19引脚):片内振荡器反相放大器和时钟发生器电路的输入端。xtal2(20引脚):片内振荡器反相放大器的输出端。图3-3 电源接入方式(3)复位rst(9引脚)在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片机复位,只要这个脚保持高电平,51芯片便循环复位。(4)/vpp(31引脚)为外部程序存储器访问允许控制端。当它为高电平时,单片机读片内程序存储器,在pc值超过0fffh后将自动转向外部程序存储器。当它为低电
11、平时,只限定在外部程序存储器,地址为0000hffffh。vpp为该引脚的第二功能,为编程电压输入端。(5)ale/(30引脚)ale为低八位地址锁存允许信号。在系统扩展时,ale的负跳沿江p0口发出的第八位地址锁存在外接的地址锁存器,然后再作为数据端口。为该引脚的第二功能,在对片外存储器编程时,此引脚为编程脉冲输入端。(6)(29引脚)片外程序存储器的读选通信号。在单片机读片外程序存储器时,此引脚输出脉冲的负跳沿作为读片外程序存储器的选通信号。(7) pin39-pin32为p0.0-p0.7输入输出脚,称为p0口。p0是一个8位漏极开路型双向i/o口。内部不带上拉电阻,当外接上拉电阻时,p
12、0口能以吸收电流的方式驱动八个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负载。端口置1时,内部上拉电阻将端口拉到高电平,作输入用。对内部flash程序存储器编程时,接收高8位地址和控制信息。在
13、访问外部程序和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位a/d转换器,一个8路模拟量开关,8位模拟量地址锁存译码器和一个三态数据输出锁存器组
14、成; +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、b、c:转换通道地址,控制8路模拟通道的切换。a、b、c分别与地址线或数据线相连,三位编码对应8个通道地址端口,a、b、c=00
15、0111分别对应in0in7通道的地址端口。3.5.3 adc0808的转换原理adc 0808 采用逐次比较的方法完成a/d转换,由单一的+5v电源供电。片内带有锁存功能的8路选1的模拟开关,由a、b、c的编码来决定所选的通道。adc0809完成一次转换需100s左右,它具有输出ttl三态锁存缓冲器,可直接连接到at89c51的数据总线上。通过适当的外接电路,adc0808可对05v的模拟信号进行转换。3.674ls373芯片的引脚及功能3.6.1芯片概述74ls373是一种带有三态门的8d锁存器,其在本设计中是锁存p0口的低8位地址,芯片模型如图3-5所示。图3-5 74ls373芯片模型
16、3.6.2引脚介绍(1) d0d7:8位数据输入线;(2) q0q7:8位数据输出线(3) g:数据输入锁存选通信号。当加到该引脚的信号为高电平时,外部数据选通到内部锁存器,负跳变时,数据锁存到锁存器中。(4):数据输出允许信号,低电平有效。当该信号为低电平时,三态门打开,锁存器中的数据输出到数据输出线上,当该信号为高电平时,输出线为高阻态。3.7 led数码管的控制显示3.7.1 led数码管的模型led数码管模型如图3-6所示。图3-6 led数码管模型3.7.2 led数码管的接口简介led 的段码端口ag分别接至at89c51的p1.0p1.7口,位选端14分别接至p3.5、p3.4、
17、p3.1、p3.0,如图3-7所示。图3-7led与at89c51的硬件连线4系统软件程序的设计多路数字电压表系统软件程序主要有主程序、a/d转换子程序和中断显示程序组成。4.1 主程序主程序包含初始化部分、调用a/d转换子程序和相应外部0中断显示电压数值程序,初始化部分包含存放通道的缓冲区初始化和显示缓冲区初始化。另外,对于单路显示和循环显示,系统设置了一个标志位00h控制,初始化时00h位设置为0,默认为循环显示,当它为1时改变为单路显示控制,00h位通过单路、循环按键控制。流程图如图4-1所示。 开始 显示子程序 a/d转换子程序 初始化图4-1主程序流程图4.2 a/d转换子程序a/d
18、转换子程序用于对adc0808的4路输入模拟电压进行a/d转换,并将转换的数值存入4个相应的存储单元中,a/d转换子程序每隔一定时间调用一次,即隔一段时间对输入电压采样一次,如图4-2所示。进行十六进制调整 开始a/d转换调用延时存转换后的十六进制数数据指针加一入栈保护4路转换次数减一显示电压值ny图4-2转换子程序流程图 判断是否为04.3 中断显示程序设计中采用中断的方式来读取转换完成的数据能节省cpu的资源当系统设置好后,一旦数据转换完成,便会进入外部中断0,然后在中断中读取转换的数值,处理数据并送数码管显示输出。 led 数码管采用软件译码动态扫描的方式。在中断程序中包含多路循环显示程
19、序和单路显示程序,多路循环显示程序把4个存储单元的数值依次取出送到4个数码管上显示,每一路显示一秒。单路显示程序只对当前选中的一路数据进行显示。每路数据显示时需经过转换变成十进制bcd码,放于4个数码管显示缓冲区中。单路或多路循环显示通过标志位00h控制。在显示控制程序中加入了对单路或多路循环按键的判断。数字量送p1口取段码地址p3.1=1?调用循环显示程序调用单路显示程序显示的是第4路重新调用显示程序nyny图4-3中断显示程序流程图5电压表的调试及性能分析5.1 调试与测试本设计应用proteus6及keil51软件,首先根据自己设计的电路图用proteus6软件画出电路模型,关于这个软件
20、的使用通过查一些资料和自己的摸索学习;然后我们用keil51软件对所编写的程序进行编译、链接,如果没有错误和警告便可生成程序的hex文件,将此文件加到电路图上使软硬件结合运行,最后进行端口电压的对比测试,测试的第一路对比见图4-1中标准电压值采用proteus6软件中的模拟电压表测得。图4-1数字电压表与标准电压表的比较从图中可以看出,简易数字电压表与“标准”数字电压表测得的绝对误差均在0.02v以内,这与采用8位a/d转换器所能达到的理论误差精度相一致,在一般的应用场合可以完全满足要求。5.2 性能分析由于单片机为8位处理器,当输入电压为5.00v时,输出数据值为255(ffh)因此单片机最
21、大的数值分辨率为0.0196v(5/255)。这就决定了该电压表的最大分辨率(精度)只能达到0.0196v。测试时电压数值的变化一般以0.02v的电压幅度变化,如要获得更高的精度要求,应采用12位、13位的a/d转换器。简易数字电压表测得的值基本上均比标准值偏大0.01-0.02v。这可以通过校正0808的基准电压来解决,因为该电压表设计时直接用7805的供电电源作为基准电压,电压可能有偏差。另外可以用软件编程来校正测量值。adc0808的直流输入阻抗为1m欧姆,能满足一般的电压测试需要。另外,经测试adc0808可直接在2mhz的频率下工作,这样可省去分频率14024。6电路仿真图图6-1为
22、4路通道用模拟电压表测得的理论值。图6-1模拟电压表测量结果图6-2为进行模拟仿真时的电路图图6-2仿真时的电路图7总结经过一周的努力终于设计成功,led的显示结果和直接用数字电压表测试模拟量输入所得结果几乎一致,误差完全在合理的范围之内。由于仪器误差,led显示最大值只能是4.9v,离标准最大值5.0v已经不远,达到预期目的,设计成功。 本设计参考了教材上第十一章89c51与adc0809转换的接口连线,设计出电路图的连线,从并中理解了许多基本的知识和接线方法,在程序的设计与电压表调试的过程中中遇到了很多的问题,刚开始时四个数码管根本不显示,后来发现用的是共阳极的数码管,而设计是共阴极的,更
23、换后数码管终于显示,但问题又出现了,单路显示和循环显示的开关不能控制电路的单路显示和循环显示,经过仔细地检查电路和修改程序,采用中断的方法,产生一次外部中断0,程序转移到单路显示,按一次单路显示开关,地址加一,转换的模拟通道相应的加一,如果按下循环按键就返回循环显示的程序,功夫不负有心人,最后终于调试成功。在此再次向带领我们这次课程设计的老师说声:谢谢! 参考文献1 蒋廷彪,刘电霆,高富强,方华.单片机原理及应用.出版社:重庆大学出版社.出版时间:2005年1月第2次印刷2 8051实验指导书电子电气综合实训系统.出版社:北京精仪达盛科技有限公司3 徐爱钧.智能化测量控制仪表原理与设计(第二版
24、)m.北京:北京航空航天大学出版社,20044 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用m.北京:清华大学出版社,20025 张国勋.缩短icl7135a/d采样程序时间的一种方法j.电子技术应用.1993.第一期6 高峰.单片微型计算机与接口技术m.北京科学出版社,2003.7 刘伟,赵俊逸,黄勇.一种基予c8051f单片机的soc型数据采录器的设计与实现8新型at89s52系列单片机及其应用 孙育才 北京:清华大学出版社 2005-59mcs-51系列单片机系统及其应用 蔡美琴 高等教育出版10过程控制与仪表 陈乐 中国计量学院出版社,2007-3 附录1 源程序 org 0000
25、h sjmp main org 0003h ljmp pint0 main:mov 50h,#19h mov 54h,#78h mov dptr,#7ff8h mov 51h,dph mov 52h,dpl mov r0,#04h mov 53h,#00h mov r7,#00h setb ea setb it0 setb ex0 l4: mov r1,#00h ;r1存放十六进制转换成十进制后的低两位 mov r2,#00h ;r2存放十六进制转换成十进制后的高两位 mov r3,#0ffh ;循环显示十进制数 mov r4,#00h ;存放a/d转换后的十六进制数 mov r5,#00h
26、;存放0.5相加后的数 movx dptr,a ;开始a/d转换 lcall delay ;调用延时大于a/d转换的时间 movx a,dptr ;取a/d转换后的十六进制数 inc dptr ;a/d转换芯片的地址加一 push dpl ;压入堆栈 push dph dec r0 ;4路转换的次数减一 jz sb2 ;判断是否是0v mov r4,a l1:mov a,r1 ;进行十六进制到十进制的调整 add a,50h ;每次加19 da a mov r1,a jc l2 ;如果溢出则跳转到l2 mov a,r5 ;进行0.5v相加 add a,54h da a mov r5,a jc
27、l3 ;如果溢出则跳转到l3 sb1:djnz r4,l1 ;判断十六进制数是否转换完成,如果没有则循环 mov a,r5 swap a anl a,#0fh mov b,r1 add a,b da a mov r1,a sb2:lcall disp lcall djw djnz r3,sb2 pop dph pop dpl mov a,53h inc a mov 53h,a cjne r0,#00h,l4 ljmp main l2: clr c mov a,r2 add a,#01h da a mov r2,a ljmp sb1 l3: clr c ;0.5v相加溢出后进位 mov a,r1
28、 add a,#01h da a mov r1,a ljmp sb1 disp:mov a,r1 ;显示电压子程序 swap a anl a,#0fh mov dptr,#tab1 movc a,a+dptr clr p3.0 mov p1,a lcall delay setb p3.0 mov a,r2 anl a,#0fh mov dptr,#tab1 movc a,a+dptr clr p3.1 mov p1,a lcall delay setb p3.1 mov a,r2 swap a anl a,#0fh mov dptr,#tab2 movc a,a+dptr clr p3.4 mov p1,a lcall delay setb p3.4 ret djw:mov a,53h ;显示第几路转换电压子程序 mov dptr,#tab1 movc a,a+dptr clr p3.5 mov p1,a lcall delay setb p3.5 ret
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版保密协议范本(适用于咨询行业)
- 2025年度高空作业安全生产责任合同书范本
- 2025版国际贸易反担保保证合同规范文本
- 二零二五年度国防科技工业劳动合同变更及国家安全协议书
- 二零二五年度城市综合体运营启动仪式策划合同
- 二零二五年度城市综合体安全防护系统施工合同
- 二零二五年度IT行业网络安全解决方案产品全球代理授权合同
- 二零二五年度宾馆房间租赁及物业管理合同
- 2025年建筑工地安全员岗位聘用及管理服务协议
- 二零二五年度腻子产品线上线下销售合作协议
- 安全绿十字看板(A4打印)
- Mini-LED行业分析研究报告
- 人工智能驱动的智能海关监管体系建设
- CMK自动计算公式表格模板
- 2023年应聘校长副校长面试题
- 代际领导力-用90后思维管理90后-完整版
- GB/T 6983-2008电磁纯铁
- 十二讲SIP及BICC协议
- 学生学习及成长档案
- 《学校社会工作实务》课件合集
- 心理教育专题-感恩的心
评论
0/150
提交评论