课程设计(论文)-基于AT89C51单片机的简易数字电压表的设计.doc

上传人:韩长文 文档编号:3971929 上传时间:2019-10-11 格式:DOC 页数:24 大小:259KB
返回 下载 相关 举报
课程设计(论文)-基于AT89C51单片机的简易数字电压表的设计.doc_第1页
第1页 / 共24页
课程设计(论文)-基于AT89C51单片机的简易数字电压表的设计.doc_第2页
第2页 / 共24页
课程设计(论文)-基于AT89C51单片机的简易数字电压表的设计.doc_第3页
第3页 / 共24页
课程设计(论文)-基于AT89C51单片机的简易数字电压表的设计.doc_第4页
第4页 / 共24页
课程设计(论文)-基于AT89C51单片机的简易数字电压表的设计.doc_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《课程设计(论文)-基于AT89C51单片机的简易数字电压表的设计.doc》由会员分享,可在线阅读,更多相关《课程设计(论文)-基于AT89C51单片机的简易数字电压表的设计.doc(24页珍藏版)》请在三一文库上搜索。

1、简易数字电压表的设计摘 要随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。传统的模拟电压表,已有百年的发展历史,虽然经过改进,但是仍然远远不能满足测量的需要。近几十年来随着电子技术的发展,经常需要测量高精度的电压,因此数字电压表应运而生,发展的数度很快。数字电压表作为数字仪表的基础和核心,毫无疑问是电子测量最重要的环节。电压表是测量仪器中不可缺少的设备,目前广泛应用的是采用专用集成电路实现的数字电压表。在测量仪器中,电压表是必须的,而且电压表的好坏直接影响到测量精度。具有一个精度高、转换速度快、

2、性能稳定的电压表才能符合测量的要求。为此,我们设计了数字电压表,本系统以AT89C51单片机为核心,以逐次逼近式A/D转换器ADC0808、七段数码管为主体,设计了一款简易的数字电压表,能够测量0.005.00V的直流电压,最小分辨率为0.02V。关键词: AT89C51单片机; 电压测量; A/D转换; 七段数码管目 录摘 要0引 言11硬件设计21.1单片机控制模块设计21.1.1时钟电路21.1.2AT89C51芯片功能简介21.2逐次逼近式A/D转换模块设计51.3七段数码管简介61.4路数电压显示转换控制电路71.5 A/D转换电路总体设计72软件设计93 PROTEUS软件仿真10

3、3.1 PROTEUS软件简介103.1.1Proteus ISIS的启动103.1.2Proteus ISIS的工作界面113.2KEIL简介113.3利用Proteus ISIS仿真与调试12总结14参考文献15附录系统源程序16唐山学院课程设计引 言数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。在测量仪器中,电压表是必须的,而且电压表的好坏直接影响到测量精度。具有一个精度高、转换速度快、性能稳定的电压表才能符合测量的要求。

4、为此,我们设计了数字电压表,此作品主要由A/D0808转换器和单片机AT89C51构成,A/D转换器在单片机的控制下完成对模拟信号的采集和转换功能,最后由数码管显示采集的电压值。电压表的数字化测量,关键在于如何把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。一般说来,A/D转换的方式可分为两类:积分式和逐次逼近式。积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。

5、逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A/D转换器。本设计以AT89C51单片机为核心,以逐次比较型A/D转换器ADC0808、七段数码管为主体,构造了一款简易的数字电压表,能够实现自动和手动测量8路0.005.00V的直流电压,最小分辨率为0.02V。1硬件设计1.1单片机控制模块设计单片机控制模块的作用是为控制各单元电路的运行并完成数据的换算或处理,主要由单片机、时钟电路、复位电路组成。1.1.1时钟电路单片机工作的时间基

6、准是由时钟电路提供的,在单片机的XTAL1和XYAL2两个管脚接一只晶振及两只电容就构成了单片机的时钟电路,电路中电容器和对振荡频率有微调作用,通常取(3010)pF石英晶体选择6MHz或12MHz都可以。时钟电路如图1-1所示。图1-1系统时钟电路 1.1.2AT89C51芯片功能简介主要功能:1.8位CPU;2.片内振荡器频率范围1.2-12MHZ;3.128字节片内数据存储器;4.4KB片内程序存储器5.程序存储器寻址范围64KB;6.片外数据存储器寻址范围64KB;7.21字节专用寄存器;8.4个8位并行I/O口:P0 P1 P2 P3;9.1个全双工串行I/O口;10.2个16位定时

7、器/计数器;11.中断系统有5个中断源,可编程为2个优先级;12.111条指令;13.有很强的位寻址、位处理能力;14.片内单总线结构;15.单一5V电源。MCS-51系列单片机是双列直插式封装的40引脚芯片。如图1-3。图1-3 AT89C51引脚图VCC : 电源GND: 地P0口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下,P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需

8、要外部上拉电阻。P1口:P1口是一个具有内部上拉电阻的8位双向I/O口,P1输出缓冲器能驱动4个TTL逻辑电平。对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2的触发输入(P1.1/T2EX)。 P2口:P2口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原

9、因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX DPTR)时,P2口送出高八位地址。在这种应用中,P2口使用很强的内部上拉发送1。在使用8位地址(如MOVX RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。P3口:P3口是一个具有内部上拉电阻的8位双向I/O口,P2输出缓冲器能驱动4个TTL逻辑电平。对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。P3口亦作为AT89C51特

10、殊功能(第二功能)使用,在flash编程和校验时,P3口也接收一些控制信号。RST: 复位输入。晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。看门狗计时完成后,RST脚输出96个晶振周期的高电平。特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。DISRTO默认状态下,复位高电平有效。ALE/PROG:地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。在flash编程时,此引脚(PROG)也用作编程输入脉冲。在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。然而,特别强调,在每次访问外部数据存储器时,A

11、LE脉冲将会跳过。如果需要,通过将地址为8EH的SFR的第0位置 “1”,ALE操作将无效。这一位置 “1”,ALE仅在执行MOVX或MOVC指令时有效。否则,ALE将被微弱拉高。这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。PSEN:外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。当AT89C51从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。EA/VPP:访问外部程序存储器控制信号。为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。为了执行内部程

12、序指令,EA应该接VCC。在flash编程期间,EA也接收12伏VPP 电压。XTAL1:振荡器反相放大器和内部时钟发生电路的输入端。XTAL2:振荡器反相放大器的输出端。1.2逐次逼近式A/D转换模块设计逐次逼近型A/D转换器属于直接型A/D转换器,它能把输入的模拟电压直接转换为输出的数字代码,而不需要经过中间变量。主要由比较器、环形分配器、控制门、寄存器与D/A转换器组成。1.ADC0808引脚功能图1-4ADC0808引脚图IN0IN7:8路模拟量输入。A、B、C:3位地址输入,2个地址输入端的不同组合选择八路模拟量输入。ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地

13、址锁存到内部的地址锁存器。D0D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。2.ADC0808内部结构图逐次逼近型A/D转换器ADC0808由八路模拟开关、地址锁存与译码器、比较器、D/A转换器、寄存器、控制电路和三态输出锁存器等组成。其内部结构如图1-5所示。图1-5ADC0808内部结构1.3七段数码管简介7段LED数

14、码管,是在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。如图1-6。 LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。 将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻

15、。假如将b和c段接上正电源,其它端接地或悬空,那么b和c段发光,此时,数码管显示将显示数字“1”。而将a、b、d、e和g段都接上正电源,其它引脚悬空,此时数码管将显示“2”。依此类推。图1-6 7段LED数码管1.4路数电压显示转换控制电路在电路中电压示数是循环显示的,也可以固定显示,转换的自动和手动模式转换可以通过转换开关按钮来控制。按下转换开关后电压路数固定要想读取相应的电压值可以按下相应的控制按钮来切换。如下图1-7显示图1-7 单路数字电压表实现电路1.5 A/D转换电路总体设计利用AT89C51和ADC0809附加一些外围电路设计出可以采样模拟信号并将其转换成数字电压值在数码管上显示

16、出来,从而可实现测量电压的功能,实现电路如图1-8。图1-8 数字电压表实现电路2软件设计根据硬件电路编写相应的程序,实现电压的采集、转换、处理、显示几个功能,从而实现测量电压的效果。另外利用外部中断一实现通道的手动和自动之间的转换,这是本软件设计的思想。具体程序参见附录一。主设计流程如图2-1。要实现的功能有:1.可以测量05V范围内的8路直流电压值。设置初值开始启动A/D转换读取A/D转换结果转换是否结束?调转换为查表偏移量的子程序调显示子程序是否转完一次八个通道?NYNY2.在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V5.00

17、V,1位LED数码管显示路数,8路分别为1-8。3.测量最小分辨率为0.02V。图2-1 数字电压表程序设计流程3 PROTEUS软件仿真3.1 PROTEUS软件简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流

18、单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。3.1.1Proteus ISIS的启动双击桌面上的ISIS 6 Professional

19、图标或者单击屏幕左下方的“开始”“程序”“Proteus 6 Professional” “ISIS 6 Professional”,出现如图3-1所示屏幕,表明进入Proteus ISIS集成环境。图3-1 启动时的屏幕3.1.2Proteus ISIS的工作界面Proteus ISIS的工作界面是一种标准的Windows界面,如图3-2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图3-2 Proteus ISIS的工作界面3.2KEIL简介1.系统概述 Keil C51是美国Kei

20、l Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 2. Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,如

21、图(1)所示,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 使用独立的Keil

22、仿真器时,注意事项 (1)仿真器标配11.0592MHz的晶振,但用户可以在仿真器上的晶振插孔中换插其他频率的晶振。 (2)仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 (3)仿真芯片的31脚(/EA)已接至高电平,所以仿真时只能使用片内ROM,不能使用片外ROM;但仿真器外引插针中的31脚并不与仿真芯片的31脚相连,故该仿真器仍可插入到扩展有外部ROM(其CPU的/EA引脚接至低电平)的目标系统中使用。3.3利用Proteus ISIS仿真与调试1.将所设计的硬件电路用Proteus画出来,联好各个引脚,图如图1-7。2.在keil里面将编写的程序编译并调试好,没有错误后生成一个*.h

23、ex的文件。3.在Proteus中将keil中生成的*.hex的文件软件下载到AT89C51芯片中,保存并运行,看结果是否正确,有问题的话继续调试软硬件,直到结果与预期的基本一致。仿真结果举例如图3-3、3-4。转换的自动和手动模式转换可以通过按钮SB1和SB0来切换。图3-3 用Proteus ISIS的数字电压表仿真(通道七)图3-4 用Proteus ISIS的数字电压表仿真(通道二)总结做了一周的课程设计,我基本上圆满的完成了课设的相关任务,达到了课程设计的技术要求,相信这对以后也是有帮助的。通过课程设计这一实践环节,我对这个学期以来所学到知识有了更深层的理解,而且自己分析问题和解决实

24、际问题的能力也有一定的提高。同时在这个过程中我也发现了自己许多的不足,包括对所学的基础知识理解不是很透彻,以至于电路设计了很长时间,最后还得连夜赶着写论文。还有对理论知识的运用不很灵活,常常在一个问题想半天,结果还是换一个角度好一点。本设计以AT89C51单片机为控制核心,通过集成摸数转换芯片ADC0808将被测信号转换成数字信号,经单片机内部程序处理后,由七段数码管显示测量结果。仿真测试表明,系统性能良好,测量读数稳定易读、更新速度合理,直流电压测量范围为0.005.00V,最小分辨率为0.02V,满足任务书指标要求。但是,该系统也存在一定程度的不足,例如:输入电压易发生干扰不稳定,且驱动能

25、力可能存在不足,需在被测信号的输入端加上一部分驱动电路,比如将量程转换电路改成带放大能力的自动量程转换电路,将幅值较小的信号经适当放大后再测量,可显著提高精度。认真的做完这次课程设计实践后,我自己感觉在这些都有了很大的提高。但由于时间原因,这次课程设计没能达到自己预想那么好,但所幸的是功夫不负有心人,所有功能指标都已基本实现了。在接下来的时间里,我会继续把它做好。最后我还总结出了一个结论,当认真的投入到一项工作中时,不但会得到许多收获,还会感觉到很大的乐趣。参考文献1 徐爱钧.智能化测量控制仪表原理与设计(第二版).北京:北京航空航天大学出版社,20042 吴金戌,沈庆阳,郭庭吉.8051单片

26、机实践与应用.北京:清华大学出版社,20023 黄智伟.全国大学生电子设计竞赛训练教程.北京:电子工业出版社,20044 汪德彪.MCS-51单片机原理及接口技术(第一版).北京:电子工业出版社,20035 张刚毅,彭喜元.单片机原理与应用设计.北京:电子工业出版社,200822附录系统源程序WIN1 EQU 30H WIN2 EQU 31H WIN3 EQU 32H WIN4 EQU 33H BBC EQU 35H ST BIT P2.5 OE BIT P2.7 CLOCK BIT P2.4 ORG 0000H LJMP START ORG 000BH LJMP STT0 ORG 001BH

27、 LJMP STT1 ORG 0030H ;初始化子程序 INIT: MOV WIN1,#00H ;存储单元清零 MOV WIN2,#00H MOV WIN3,#00H MOV WIN4,#00H MOV TMOD,#12H ;定时器初始化 MOV TH0,#245 MOV TL0,#245 MOV TH1,#3CH MOV TL1,#0B0H MOV R1,#20 MOV R0,#0 MOV IE,#8AH SETB TR0 RET;主程序START: LCALL INITLOOP: MOV A,#0F0H MOV P3,A MOV A,P3 ORL A,#0FH CPL A JZ LOOP

28、 LCALL DELAY MOV A,#0F0H MOV P3,A MOV A,P3 MOV R4,A ORL A,#0FH CPL A JZ LOOP MOV A,#0FH MOV P3,A MOV A,P3 ORL A,R4 MOV 34H,A MOV R5,#00HLOOP1: MOV A,R5 MOV DPTR,#TAB1 MOVC A,A+DPTR CJNE A,34H,LOOP2 CJNE A,#1BH,LOOP3 LJMP WATLOOP3: MOV P1,R5 LJMP WAIT1LOOP2: INC R5 LJMP LOOP1 WAT: MOV P1,R5 SETB TR1W

29、AIT1: CLR ST ;启动AD转换 SETB ST CLR ST MOV R7,#60H ;延时等待转换结束 DJNZ R7,$ SETB OE MOV BBC,P0 CLR OE ZH: MOV A,BBC;将转化结果变为可显示的BCD码存入相应的单元 MOV B,#51 DIV AB MOV WIN3,A ;个位存放在32H MOV A,B MOV B,#02H MUL AB MOV R3,A ANL A,#0FH MOV WIN2,A MOV A,R3 SWAP A ANL A,#0FH MOV WIN1,A LCALL EXP0 ;小数点后第二位存放在30 LCALL EXP01

30、 LJMP LOOP STT1: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R1,SS MOV R1,#20 INC R0 MOV A,R0 CJNE A,#8,LP1 MOV R0,#0 LP1: MOV P1,R0 SS: RETI STT0: CPL CLOCK RETI;显示子程序 EXP0: MOV DPTR,#TAB ;显示子程序 MOV A,WIN3 MOVC A,A+DPTR CLR P2.3 ADD A,#80H MOV P1,A LCALL DELAY SETB P2.3 MOV A,WIN2 MOVC A,A+DPTR CLR P2.2 MOV P1

31、,A LCALL DELAY SETB P2.2 MOV A,WIN1 MOVC A,A+DPTR CLR P2.1 MOV P1,A LCALL DELAY SETB P2.1 RETEXP01: MOV WIN4,R0 MOV A,WIN4 MOVC A,A+DPTR CLR P2.0 MOV P1,A LCALL DELAY SETB P2.0 RETDELAY: MOV R7,#100 DJNZ R7,$ RETTAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHTAB1:DB 36H,35H,33H,2EH,2DH,2BH,1EH,1DH,1BH END

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

当前位置:首页 > 其他


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