1、单片机数字电压表设计唐 山 学 院 单片机原理及应用 课 程 设 计 题 目 单片机数字电压表设计 系 (部) 信息工程系 班 级 10通信本2 姓 名 jinke 学 号 4100214236 指导教师 _ 2013 年 1 月 2 日至 1 月 6 日 共 1 周 单片机原理及应用 课程设计任务书一、设计题目、内容及要求设计题目:单片机数字电压表设计设计内容及要求:(1)可以测量05V的8路直流电压。 (2)在LED数码管上显示测量电压值,显示范围为0.00V5.00V,一位LED数码管显示路数,8路轮流显示。(3)拓展部分:通过控制键可以改变显示模式,8通道轮流显示或单路选择显示。(4)
2、其他功能,创新部分(自定)。二、设计原始资料Proteus,KEIL三、要求的设计成果(课程设计说明书、设计实物、图纸等) 设计结果在计算机上能正确仿真;设计说明书一份(包括硬件原理电路、源程序清单等)四、进程安排周一:利用proteus完成硬件电路绘制周二:编写各部分应用程序周三:程序组合并调试周四:编写设计说明书周五:答辩五、主要参考资料 1、何立民主编,单片机中级教程,北京航空航天大学出版社。2、张毅刚主编,单片机原理与应用设计,电子工业出版社。指导教师(签名):教研室主任(签名):课程设计成绩评定表出勤情况出勤天数 缺勤天数成绩评定出勤情况及设计过程表现(20分)课设答辩(20分)设计
3、成果(60分)总成绩(100分)提问(答辩)问题情况第二组:1. A/D转换器与单片机之间数据传输是采用何种方法,写出相应的程序段。2. A/D转换器中的start信号,eoc信号和oe信号的功能分别是什么?程序中如何控制信号的。3. 7段数码管选用的是共阴极还是共阳极数码管?多个数码管显示时采用何种方法,简述程序设计思路,写出程序段。4. 在设计中选用了几个数码管?数码管的位码和段码分别和单片机的那些引脚相连?综合评定 指导教师签名: 年 月 日目 录1引言 12 单片机简介 22.1 概述 22.2 发展历史 22.3 基本结构 32.3.1 运算器 32.3.2 控制器 32.3.3 主
4、要寄存器 43 硬件设计及其工作原理 53.1 数字电压表主要器件 53.1.1 单片机AT89C51 53.1.2 芯片ADC0808 73.1.3 七段数码管简介 83.2 数字电压表电路设计 93.2.1处理器电路 93.2.2 A/D转换电路 103.3 控制电路 103.4 显示电路 113.5 整体电路图设计 114 数字电压表软件设计 135 软件仿真 145.1 Proteus ISIS软件简介 145.1.1 Proteus ISIS启动 145.1.2 Proteus ISIS工作界面 155.2 Keil软件简介 155.3 利用Proteus ISIS仿真与调试 166
5、 总结 18参考文献 19附 录 201 引言数字电压表的基本工作原理是利用A/D转换电路将待测的模拟信号转换成数字信号,通过相应换算后将测试结果以数字形式显示出来的一种电压表。较之于一般的模拟电压表,数字电压表具有精度高、测量准确、读数直观、使用方便等优点。在测量仪器中,电压表是必须的,而且电压表的好坏直接影响到测量精度。具有一个精度高、转换速度快、性能稳定的电压表才能符合测量的要求。为此,我们设计了数字电压表,此作品主要由A/D0808转换器和单片机AT89C51构成,A/D转换器在单片机的控制下完成对模拟信号的采集和转换功能,最后由数码管显示采集的电压值。电压表的数字化测量,关键在于如何
6、把随时连续变化的模拟量转化成数字量,完成这种转换的电路叫模数转换器(A/D)。数字电压表的核心部件就是A/D转换器,由于各种不同的A/D转换原理构成了各种不同类型的DVM。一般说来,A/D转换的方式可分为两类:积分式和逐次逼近式。积分式A/D转换器是先用积分器将输入的模拟电压转换成时间或频率,再将其数字化。根据转化的中间量不同,它又分为U-T(电压-时间)式和U-F(电压-频率)式两种。逐次逼近式A/D转换器分为比较式和斜坡电压式,根据不同的工作原理,比较式又分为逐次比较式及零平衡式等。斜坡电压式又分为线性斜坡式和阶梯斜坡式两种。在高精度数字电压表中,常采用由积分式和比较式相结合起来的复合式A
7、/D转换器。本设计以AT89C51单片机为核心,以逐次比较型A/D转换器ADC0808、七段数码管为主体,构造了一款简易的数字电压表,能够实现自动和手动测量8路0.005.00V的直流电压,最小分辨率为0.02V。2 单片机简介2.1 概述2.1单片机芯片单片微型计算机简称单片机,是典型的嵌入式微控制器(Microcontroller Unit),常用英文字母的缩写MCU表示单片机,单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。单片机由运算器,控制器,存储器,输入输出设备构成,相当于一个微型的计算机,和计算机相比,单片机只缺少了I/O设备。概括的
8、讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。它最早是被用在工业控制领域。由于单片机在工业控制领域的广泛应用,单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,当时的单片机都是8位或4位的。其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列单片机系统。因为简单可靠而性能不错获得了很大的好评。尽管2
9、000年以后ARM已经发展出了32位的主频超过300M的高端单片机,直到目前基于8031的单片机还在广泛的使用。在很多方面单片机比专用处理器更适合应用于嵌入式系统,因此它得到了广泛的应用。事实上单片机是世界上数量最多处理器,随着单片机家族的发展壮大,单片机和专用处理器的发展便分道扬镳。现代人类生活中所用的几乎每件电子和机械产品中都会集成有单片机。手机、电话、计算器、家用电器、电子玩具、掌上电脑以及鼠标等电脑配件中都配有1-2部单片机。 汽车上一般配备40多部单片机,复杂的工业控制系统上甚至可能有数百台单片机在同时工作!单片机的数量因此远超过PC机和其他计算的总和。单片机作为计算机发展的一个重要
10、分支领域,根据目前发展情况,从不同角度单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。2.2 发展历史单片机诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。其中最成功的是INTEL的8031,此后在8031上发展出了MCS51系列MCU系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的
11、高端地位,并且进入主流市场。而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。目前,高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。2.3 基本结构2.3.1 运算器运算器由运算部件算术逻辑单元(Arithmetic & Logical Unit,简称ALU)、累加器和寄存
12、器等几部分组成。ALU的作用是把传来的数据进行算术或逻辑运算,输入来源为两个8位数据,分别来自累加器和数据寄存器。ALU能完成对这两个数据进行加、减、与、或、比较大小等操作,最后将结果存入累加器。例如,两个数6和7相加,在相加之前,操作数6放在累加器中,7放在数据寄存器中,当执行加法指令时,ALU即把两个数相加并把结果13存入累加器,取代累加器原来的内容6。运算器有两个功能:1. 执行各种算术运算。2. 执行各种逻辑运算,并进行逻辑测试,如零值测试或两个值的比较。运算器所执行全部操作都是由控制器发出的控制信号来指挥的,并且,一个算术操作产生一个运算结果,一个逻辑操作产生一个判决。2.3.2 控
13、制器控制器由程序计数器、指令寄存器、指令译码器、时序发生器和操作控制器等组成,是发布命令的“决策机构”,即协调和指挥整个微机系统的操作。其主要功能有:1. 从内存中取出一条指令,并指出下一条指令在内存中的位置。2. 对指令进行译码和测试,并产生相应的操作控制信号,以便于执行规定的动作。3. 指挥并控制CPU、内存和输入输出设备之间数据流动的方向。微处理器内通过内部总线把ALU、计数器、寄存器和控制部分互联,并通过外部总线与外部的存储器、输入输出接口电路联接。外部总线又称为系统总线,分为数据总线DB、地址总线AB和控制总线CB。通过输入输出接口电路,实现与各种外围设备连接。2.3.3 主要寄存器
14、1. 累加器A累加器A是微处理器中使用最频繁的寄存器。在算术和逻辑运算时它有双功能:运算前,用于保存一个操作数;运算后,用于保存所得的和、差或逻辑运算结果。2. 数据寄存器DR数据寄存器通过数据总线向存储器和输入/输出设备送(写)或取(读)数据的暂存单元。它可以保存一条正在译码的指令,也可以保存正在送往存储器中存储的一个数据字节等等。3. 指令寄存器IR和指令译码器ID指令包括操作码和操作数。指令寄存器是用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存中取到数据寄存器中,然后再传送到指令寄存器。当系统执行给定的指令时,必须对操作码进行译码,以确定所要求的操作,指令译码器就是负责这
15、项工作的。其中,指令寄存器中操作码字段的输出就是指令译码器的输入。4. 程序计数器PCPC用于确定下一条指令的地址,以保证程序能够连续地执行下去,因此通常又被称为指令地址计数器。在程序开始执行前必须将程序的第一条指令的内存单元地址(即程序的首地址)送入PC,使它总是指向下一条要执行指令的地址。5. 地址寄存器AR地址寄存器用于保存当前CPU所要访问的内存单元或I/O设备的地址。由于内存与CPU之间存在着速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存读/写操作完成为止。显然,当CPU向存储器存数据、CPU从内存取数据和CPU从内存读出指令时,都要用到地址寄存器和数据寄存器。同样,如
16、果把外围设备的地址作为内存地址单元来看的话,那么当CPU和外围设备交换信息时,也需要用到地址寄存器和数据寄存器。3 硬件设计及其工作原理3.1 数字电压表主要器件 本次课程设计是以AT89C51单片机为控制核心,以A/D转换器ADC0808为数据采样系统,实现被测电压的数据采样;用共阴数码管显示结果的简易数字电压表,能够实现8路0.005.00V的直流电压,最小分辨率为0.02V。3.1.1 单片机AT89C51AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS
17、8位微处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图3-1所示:图3-1 AT89C51单片机引脚图AT89C51引脚介绍: 4个8位的I/O引脚,P0,P1,P2,P3 P0口(P0.0-P0.7):8位双向三态I/O口线,既可作普通I/O口,也可作数据/低 8位地址总线。 P1口(P1
18、.0-P1.7):8位准双向三态I/O口线,作普通I/O口。P2口(P2.0-P2.7):8位准双向三态I/O口线,既可作普通I/O口,也可作数据/高8位地址。 表3-1 P3口引脚第二个功能P3口(P3.0-P3.7):8位准双向三态I/O口线,既可作普通I/O口,另外每个引脚还有第二个功能。如下表所示:端口引脚第二功能P3.0RXDP3.1TXDP3.2INT0P3.3INT1P3.4T0P3.5T1P3.6WRP3.7RDP3口还接收一些用于闪烁存储器编程和程序校验的控制信号。RST:复位输入。当震荡器工作时,RET引脚出现两个机器周期以上的高电平将使单片机复位。ALE/PROG:当访问
19、外部程序存储器或数据存储器时,ALE输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE以时钟震荡频率的1/16输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲时,闪烁存储器编程时,这个引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的8EH单元的D0位置禁止ALE操作。这个位置后只有一条MOVX和MOVC指令ALE才会被应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置ALE无效。PSEN:程序储存允许输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器读取指令时,每个机器周期两次PSEN
20、有效,即输出两个脉冲。在此期间,当访问外部数据存储器时,这两次有效的PSEN 信号不出现。EA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器,EA端必须保持低电平。需要注意的是:如果加密位LBI被编程,复位时内部会锁存EA端状态。如EA端为高电平,CPU则执行内部程序存储器中的指令。闪烁存储器编程时,该引脚加上+12V的编程允许电压VPP,当然这必须是该器件是使用12V编程电压VPP。XTAL1:震荡器反相放大器及内部时钟发生器的输入端。XTAL2:震荡器反相放大器的输出端。VCC:电源电压 GND:地3.1.2 芯片ADC0808本电路采用芯片ADC0808来进行模数转换。其引脚
21、图如图3-2所示:图3-2 ADC0808引脚图利用ADC0808作为AD数据采样器件, ADC0808是CMOS单片型逐次逼近式A/D转换器它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型D/A转换器、逐次逼近。ADC0808的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换
22、结果的数字量输出到数据总线上。ADC0808各个管脚功能:IN0IN7:8路模拟量输入端。ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路D0D7:8位数字量输出端。ALE:地址锁存允许信号,输入,高电平有效。START: A/D转换启动信号,输入,高电平有效。EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。REF(+)、REF(-):基准电压。AD
23、C0808内部结构图:逐次逼近型A/D转换器ADC0808由八路模拟开关、地址锁存与译码器、比较器、D/A转换器、寄存器、控制电路和三态输出锁存器等组成。其内部结构如图3-3所示。图3-3 ADC0808内部结构3.1.3 七段数码管简介7段LED数码管,是在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-9的数字。如图1-6。 LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。右图是共阴和共阳极数码管的内部电路,它们的
24、发光原理是一样的,只是它们的电源极性不同而已。 将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如将b和c段接上正电源,其它端接地或悬空,那么b和c段发光,此时,数码管显示将显示数字“1”。而将a、b、d、e和g段都接上正电源,其它引脚悬空,此时数码管将显示“2”。依此类推。图3-4 7段LED数码管3.2 数字电压表电路设计3.2.1 处理器电路主处理器采用AT89C51单片机,外接A/D转换电路,控制电路和显示电路。其工作原理是从AD
25、C0808中采集电压的数字量并把它转换为十进制量,将其在LED上显示出来。单片机还接受控制电路的控制,以改变显示模式和切换测试通道。图3-5 单片机系统电路3.2.2 A/D转换电路本次设计共采集八路模拟电压值,占用IN0、IN1、IN2、IN3、IN4、IN5、IN6、IN7单个通道。时钟由单片机提供矩形波。正负基准电压分别为+5V和0V。EOC与P2.5相连,以查询的方式通知单片机转换完成。以P2.4控制START和ALE,控制其开始转换和地址锁存。以P2.6控制模数转换器的输出。电路图如图3-6所示。图3-6 A/D转换电路3.3 控制电路控制电路主要的作用是控制显示模式和切换测试通道。
26、按键BUTTON接P3.4口,功能是切换通道;开关SWITCH接P3.5口,通过查询的方式来间接控制LED是按通道循环显示电压还是只显示某一通道的值。其电路图如图3-7所示。 图3-7 控制电路3.4 显示电路图4 控制电路本显示电路采用共阴极4位8段数码管。段码由单片机的P1口控制,位码由P2.0、P2.1、 P2.2 、P2.3四个端口控制。很明显采用的是动态显示方式。其中第一位显示通道数,后三位显示电压值,有两位小数。电路图如图3-8所示。图3-8 显示电路3.5 整体电路图设计整体电路如下图所示,左上角的八组变化电压分时输入ADC0808经AT89C51控制进行模数转换将转换的数值用数
27、码管显示出来。控制电路控制是否自动循环显示及手动循环显示。电路图如图3-9所示。图3-9 系统总电路图4 数字电压表软件设计根据硬件电路编写相应的程序,实现电压的采集、转换、处理、显示几个功能,从而实现测量电压的效果。另外利用外部中断一实现通道的手动和自动之间的转换,这是本软件设计的思想。具体程序参见附录一。主设计流程如图4-1。图4-1 数字电压表程序设计流程要实现的功能有:1. 可以测量05V范围内的8路直流电压值。2. 在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V5.00V,1位LED数码管显示路数,8路分别为0-7。3. 测
28、量最小分辨率为0.02V。5 软件仿真5.1 Proteus ISIS软件简介Proteus ISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC
29、12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。5.1.1 Proteus ISIS启动双击桌面上的ISIS 6 Professional图标或者单击屏幕左下方的“开始”“程序”“Proteus 6 Professional”
30、“ISIS 6 Professional”,出现如图3-1所示屏幕,表明进入Proteus ISIS集成环境。图5-1 启动时的屏幕5.1.2 Proteus ISIS工作界面Proteus ISIS的工作界面是一种标准的Windows界面,如图3-2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。图5-2 Proteus ISIS的工作界面5.2 Keil软件简介1. 系统概述 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C
31、语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。下面详细介绍Keil C51开发系统各部分功能和使用。 2. Keil C51单片机软件开发系统的整体结构 C51工具包的整体结构,如图(1)所示,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1