简易数字电压表设计

上传人:jun****875 文档编号:17813763 上传时间:2020-12-07 格式:DOC 页数:19 大小:218.41KB
收藏 版权申诉 举报 下载
简易数字电压表设计_第1页
第1页 / 共19页
简易数字电压表设计_第2页
第2页 / 共19页
简易数字电压表设计_第3页
第3页 / 共19页
资源描述:

《简易数字电压表设计》由会员分享,可在线阅读,更多相关《简易数字电压表设计(19页珍藏版)》请在装配图网上搜索。

1、 摘 要 根据 8051 单片机的内部结构特点本文提出以 MCS-51 单片机为核心的电压 测量系统。该系统以 8051 和 ADC0809 核心内件,能够在单片机的控制下监测 八路的输入电压值,用 8 位串行 A/D 转换器进行 0-5V 量程自动转换,并且测 量的电压值可通过三位数码管显示同时用一位数码管显示选择通道。整个系统 的设计过程中主要采用了模块化的设计方法,完成了硬件电路的设计及软件程 序的编写,还详细的给出了相关的硬件框图和软件流程图,通过最终硬件电路 的调试,使该系统能够在要求的条件下达到正常的测量及显示功能。单片机 8051 是整个系统的核心,实现输入端的分路选择,模数转换

2、后数据的处理及在 数码管上数据的显示等功能。正文着重给出了软硬件系统的各部分电路,介绍 了该系统的工作原理,MCS-51 单片机特点,8051 的功能和应用,ADC0809 的 功能和应用等。 关键词:MCS-51 单片机;8051 ;ADC0809;数码管 目 录 1 总体设计 .1 2 硬件设计及其工作原理 .1 2.1 数字电压表主要器件 .1 2.1.1 单片机 AT89C51 .1 2.1.2 芯片 ADC0808.3 2.2 数字电压表电路设计 .4 2.2.1 处理器电路 .4 2.2.2 A/D 转换电路 .5 2.3 控制电路 .6 2.4 显示电路 .6 2.5 整体电路图

3、设计 .7 3 数字电压表软件设计 .7 3.1 程序总体设计 .7 3.2 程序各个模块设计 .9 3.2.1 主程序 .9 3.2.2 外部中断 0 服务程序 .10 3.2.3 外部中断 1 服务程序 .10 3.2.4 显示子程序和延时子程序 .11 3.2.5 制表程序 .12 4 PROTEUS 仿真及数据测试 .12 5总结 .14 附录 1 程序清单 .15 简易数字电压表设计 1 总体设计 本设计主要以 ATMEL 公司生产的 AT89S51 为主控芯片来实现简易数字电 压表的基本功能: 1可以测量 05V 范围内的 8 路直流电压值。 2在 4 位 LED 数码管上轮流显示

4、各路电压值或单路选择显示,其中 3 位 LED 数码管显示电压值,显示范围为 0.00V5.00V ,1 位 LED 数码管显示路数,8 路分别为 0-8。 3测量最小分辨率为 0.02V。 设计中以 8 个滑动变阻器来模拟输入的电压信号,经 ADC0809 模数转换 芯片处理,通过三个路数选择开关来确定将哪路采集数据送入单片机中处理, 进而通过数码管显示出相应的电压测量值 2 硬件设计及其工作原理 2.1 数字电压表主要器件 本次课程设计是以 AT89C51 单片机为控制核心,以 A/D 转换器 ADC0808 为数据采样系统,实现被测电压的数据采样;用共阴数码管显示结果的简易数 字电压表,

5、能够实现 8 路 0.005.00V 的直流电压,最小分辨率为 0.02V。 2.1.1 单片机 AT89C51 AT89C51 是一种带 4K 字节 FLASH 存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微 处理器,俗称单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器 件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指 令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片 中,ATMEL 的 AT89C51 是

6、一种高效微控制器。AT89C51 单片机为很多嵌入式 控制系统提供了一种灵活性高且价廉的方案。外形及引脚排列如图 1 所示: 图 1 AT89C51单片机引脚图 AT89C51 引脚介绍: 4 个 8 位的 I/O 引脚,P0,P1,P2,P3 P0 口(P0.0-P0.7):8 位双向三态 I/O 口线,既可作普通 I/O 口,也可作数据/ 低 8 位地址总线。 P1 口(P1.0-P1.7):8 位准双向三态 I/O 口线,作普通 I/O 口。 P2 口(P2.0-P2.7):8 位准双向三态 I/O 口线,既可作普通 I/O 口,也可作数 据/高 8 位地址。 P3 口(P3.0-P3.

7、7):8 位准双向三态 I/O 口线,既可作普通 I/O 口,另外每个 引脚还有第二个功能。如下表所示: P3 口还接收一些用于闪烁存储器编程和程序校验的控制信号。 端口引脚 第二功能 P3.0 RXD P3.1 TXD P3.2 INT0 P3.3 INT1 P3.4 T0 P3.5 T1 P3.6 WR P3.7 RD 表 1 P3口引脚第二个功 能 RST:复位输入。当震荡器工作时,RET 引脚出现两个机器周期以上的高 电平将使单片机复位。 ALE/PROG:当访问外部程序存储器或数据存储器时, ALE 输出脉冲用于 锁存地址的低 8 位字节。即使不访问外部存储器,ALE 以时钟震荡频率

8、的 1/16 输出固定的正脉冲信号,因此它可对输出时钟或用于定时目的。要注意的是: 每当访问外部数据存储器时将跳过一个 ALE 脉冲时,闪烁存储器编程时,这个 引脚还用于输入编程脉冲。如果必要,可对特殊寄存器区中的 8EH 单元的 D0 位置禁止 ALE 操作。这个位置后只有一条 MOVX 和 MOVC 指令 ALE 才会被 应用。此外,这个引脚会微弱拉高,单片机执行外部程序时,应设置 ALE 无效。 PSEN:程序储存允许输出是外部程序存储器的读选通信号,当 AT89C51 由外部程序存储器读取指令时,每个机器周期两次 PSEN 有效,即输出两个脉 冲。在此期间,当访问外部数据存储器时,这两

9、次有效的 PSEN 信号不出现。 EA/VPP:外部访问允许。欲使中央处理器仅访问外部程序存储器,EA 端 必须保持低电平。需要注意的是:如果加密位 LBI 被编程,复位时内部会锁存 EA 端状态。如 EA 端为高电平,CPU 则执行内部程序存储器中的指令。闪烁 存储器编程时,该引脚加上+12V 的编程允许电压 VPP,当然这必须是该器件 是使用 12V 编程电压 VPP。 XTAL1:震荡器反相放大器及内部时钟发生器的输入端。 XTAL2:震荡器反相放大器的输出端。 VCC:电源电压 GND:地 2.1.2 芯片 ADC0808 本电路采用芯片 ADC0808 来进行模数转换。其引脚图如图

10、2 所示。 图 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 转换结束,结果数据已存入锁存器,这个

11、信号可用作中断申请。 当 OE 输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 ADC0808 各个管脚功能: IN0IN7:8 路模拟量输入端。ADDA、ADDB、ADDC:3 位地址输入线, 用于选通 8 路模拟输入中的一路 D0D7:8 位数字量输出端。 ALE:地址锁存允许信号,输入,高电平有效。 START: A/D 转换启动信号,输入,高电平有效。 EOC: A/D 转换结束信号,输出,当 A/D 转换结束时,此端输出一个高 电平(转换期间一直为低电平) 。 OE:数据输出允许信号,输入,高电平有效。当 A/D 转换结束时,此端输 入一个高电平,才能打开输出三态

12、门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于 640KHZ。 REF(+) 、REF(-):基准电压。 2.2 数字电压表电路设计 2.2.1 处理器电路 主处理器采用 AT89C51 单片机,外接 A/D 转换电路,控制电路和显示电 路。 其工作原理是从 ADC0808 中采集电压的数字量并把它转换为十进制量, 将其在 LED 上显示出来。单片机还接受控制电路的控制,以改变显示模式和切 换测试通道。 图 3 单片机系统电路 2.2.2 A/D 转换电路 本次设计共采集八路模拟电压值,占用 IN0、IN1、IN2、IN3、IN4 、IN5、IN6、IN7 单个通道。时钟为 50

13、0kHz 的矩形 波。正负基准电压分别为+5V 和 0V。EOC 通过一非门与 P3.2 相连,以中断的 方式通知单片机转换完成。以 P3.6 控制 START 和 ALE,控制其开始转换和地 址锁存。以 P3.7 控制模数转换器的输出。电路图如图 4 所示。 图 4 A/D转换电路 2.3 控制电路 控制电路主要的作用是控制显示模式和切换测试通道。按键式开关接单片 机 外部中断 1,主要功能是切换通道;开关 SW1 接 P2.0 口,通过查询的方式 来间接控制 LED 是按通道循环显示电压还是只显示某一通道的值。其电路图如 图 5 所示。 图 5 控制电路 2.4 显示电路 本显示电路采用共

14、阴极 4 位 8 段数码管。段码由单片机的 P0 口控制,位码 由 P3.0、P3.1、 P3.4 、 P3.5 四个端口控制。很明显采用的是动态显示方式。 其中第一位显示通道数,后三位显示电压值,有两位小数。电路图如图 6 所示。 图 4 控制电路 图 6 显示电路 2.5 整体电路图设计 整体电路如下图所示,左上角的八组变化电压分时输入 ADC0808 经 AT89C51 控制进行模数转换将转换的数值用数码管显示出来。控制电路控制是 否自动循环显示及手动循环显示。电路图如图 6 所示。 图 7系统总电路图 3 数字电压表软件设计 3.1 程序总体设计 依据电路原理图,数据的采集和通道的切换

15、是通过外部中断的方式处理的。 外部中断 0 处理对 ADC08080 转换后的数据采集以及存储,外部中断 1 处理显 示的通道的切换。而显示模式是通过对 P2.7 查询来确定。故程序流程图如图 8 所示。图 9 和图 10 是外部中断 0 和外部中断 1 的的流程图。 图 8 程序流程图 图 9外部中断 0流程图 外部中断 0 入 口 保护现场 将通道数放入 30H 将通道数放入 30H 将转换后的电压放入 31H、32H、33H 还原现场 中断返回 中断及其他数据初始化 P2.7 置 位 P2.7 =0 ? 下一通道 启动 A/D 转换 否 调用显示子程序 开始 是 外部中断 1 入 口 保

16、护现场 切换通道 启动 A/D 转换 还原现场 中断返回 还原现场 图 10 外部中断 1流程图 3.2 程序各个模块设计 3.2.1 主程序 程序执行的起点,包括对两个外部中断源的初始化,初始测试通道,设置 每个通道每次显示的时间的长短。然后让程序处于循环显示中,并在每个通道 显示结束之后检查 P2.7 以决定显示模式。 P2.7 为低电平时循环显示。主要程序 如下所示: ORG 0000H LJMP MAIN ORG 0003H LJMP ZD0 ;外部中断 0 地址 ORG 0013H LJMP ZD1 ;外部中断 1 地址 MAIN: SETB IT0 SETB EA SETB EX0

17、 SETB IT1 SETB EX1 ;中断设置 MOV R1,#00H ;初始测试端口地址 XH: MOV R4,#50H SETB P2.7 ;允许输入 JB P2.7,TAD ;检测显示模式(循环与否) INC R1 CJNE R1,#08H,TAD MOV R1,#00H TAD: MOV A,#00H MOVX R1,A ;启动 A/D 转换 LCALL SHOW ;调用显示程序 DJNZ R4,TAD LJMP XH 3.2.2 外部中断 0 服务程序 外部中断 0 主要完成从 ADC0808 中取转换后的二进制数,然后再将该数 字转为对应的电压数值,分别存入到 RAM 的 31H

18、、32H、33H 单元中,通道数 放在 30H 单元。 PINT0: PUSH ACC ;外部中断 0 MOVX A,R1 ;主要功能是存入转换值,存在 RAM 30,31,32,33 单元 MOV 30H,R1 ;通道存在 30H MOV B,#51 DIV AB MOV 31H,A MOV A,B MOV B,#2 MUL AB MOV B,#10 DIV AB MOV 32H,A MOV A,B MOV 33H,A POP ACC RETI 3.2.3 外部中断 1 服务程序 外部中断 1 的功能是将通道的值加 1,并且保证其值小于 8 然后启动 A/D 转换,以此完成对显示通道的切换。

19、 PINT1: PUSH ACC ;外部中断 1 INC R1 ;完成通道数加 1 功能 CJNE R1,#08H,OUT MOV R1,#00H OUT: MOVX R1,A POP ACC RETI 3.2.4 显示子程序和延时子程序 数码管的显示为动态显示方式。即对 P1 口分时复用。每位显示后都调用延 时子程序,保证延时一定的时间以让人眼产生视觉暂留。显示时分别取出 RAM 中 30H 到 33H 中数据取表,再送出显示。 SHOW: MOV DPTR,#TAB1 ;显示子程序 MOV A,30H MOVC A,A+DPTR MOV P1,A CLR P3.0 LCALL DELAY

20、SETB P3.0 MOV DPTR,#TAB2 MOV A,31H MOVC A,A+DPTR MOV P1,A CLR P3.1 LCALL DELAY SETB P3.1 MOV DPTR,#TAB1 MOV A,32H MOVC A,A+DPTR MOV P1,A CLR P3.4 LCALL DELAY SETB P3.4 MOV DPTR,#TAB1 MOV A,33H MOVC A,A+DPTR MOV P1,A CLR P3.5 LCALL DELAY SETB P3.5 RET DELAY:MOV R6,#5 ;延时子程序 D1: MOV R7,#250 DJNZ R7,$

21、DJNZ R6,D1 RET 3.2.5 制表程序 本程序定义了 2 段数据 TAB1 和 TAB2。 TAB1 为不带小数点 0 到 9 的数码管显示的字节,TAB2 定义的是带小数点 的 0 到 5 的显示字节,以保证在数码管第二位显示出小数点,因此只有 31H 单 元的数据在 TAB2 取值。其程序段如下: TAB1: DB 3FH,06H,5BH,4FH,66H ;TAB1 不带小数点, TAB2 带小数 点 DB 6DH,7DH,07H,7FH,6FH TAB2: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH 4 PROTEUS 仿真及数据测试 将汇编程序经 Kei

22、l 编译后生成的.HEX 文件装入到 AT89C51 中对其仿真, 将 Switch 开关闭合,数码管将循环显示八个通道的电压值;将 Switch 开关打开, Button 按钮控制通道切换。分别将滑动变阻器位于不同位置得到不同阻值分别 在数码上显示出来。 现按动 button 两次,断开 switch 开关,即始终选择显示一号通道电压值, 并将该路电压调到最大值 5V,得到如下仿真图: 图 11 仿真图 由图 11 中可看出,最左端 1 号数码管显示第 1 号通路,当前通路电压值为 5V,符合预期要求; 现闭合 switch 开关,应该是有八路电压值循环显示,结果如下图: 图 12 八路电压

23、值循环显示仿真图 在不改变电阻值的情况下,上述数值循环显示,本数字电压表测量的误差 都在 0.02V 以内,精度高,反应快,可以完成对多路电压的测试。 5 总结 本次课程设计我对 AT89C51 单片机、ADC0808 芯片、数码管显示电路和 模数转换电路及相关程序的编写进行了认真的学习,也对单片机技术有了更进 一步的熟悉,实际操作和课本上的知识有很大联系,但又高于课本,一个看似 很简单的功能,要动手把它设计出来就比较困难了,但是我们学习的理论知识 很多但由于平时练习很少,所以将它们用于实际的应用比较困难。因此平时我 们要把课本上所学到的知识和实际联系起来。通过本次单片机的设计,不但巩 固了所

24、学知识,也是我们把理论与实践从真正意义上结合起来,增强了学习的 综合能力还还锻炼了我们的团队协作精神,提高了创新能力。 在此过程中,我查找了大量的资料,在不懈的努力下,培养了独立思考、 动手操作的能力。同时学到了很多在书本上所没有学到过的知识。我对单片机 编程也有了进一步的认识和了解。比如在程序设计思想上。以前没有一个整体 的概念。经过试验中的自我摸索,掌握了模块化编程的思想,将大的程序分化 为小的模块,最后把各小的模块串接起来,组成大的程序,实现整体的设计功 能。此次课设我对 Protues ISIS 的丰富的电子器件和网络标号的画图方式也有了 进一步的了解和学习。同时,我真正的意识到,在以

25、后的学习中,要理论联系 实际,把我们所学的理论知识用到实际当中,学习单片机更是如此,程序只有 在经常写与读的过程中才能提高,这就是这次课程设计的最大收获。 附录 1 程序清单 ORG 0000H LJMP MAIN ORG 0003H LJMP PINT0 ;外部中断 0 地址 ORG 0013H LJMP PINT1 ;外部中断 0 地址 MAIN: SETB IT0 SETB EA SETB EX0 SETB IT1 SETB EX1 ;中断设置 MOV R1,#00H ;初始测试端口地址 AA:MOV R4,#50H SETB P2.7 ;允许输入 JB P2.7,AAA ;检测显示模式

26、(循环与否) INC R1 CJNE R1,#08H,AAA MOV R1,#00H AAA: MOV A,#00H MOVX R1,A ;启动 a/d 转换 LCALL SHOW ;调用显示程序 DJNZ R4,AAA ;每一路显示 50 次 LJMP AA PINT0: PUSH ACC ;外部中断 0 MOVX A,R1 ;主要功能是存入转换值,存在 RAM 30,31,32,33 单 元 MOV 30H,R1 ;通道存在 30H MOV B,#51 DIV AB MOV 31H,A MOV A,B MOV B,#2 MUL AB MOV B,#10 DIV AB MOV 32H,A M

27、OV A,B MOV 33H,A POP ACC RETI PINT1: PUSH ACC ;外部中断 1 INC R1 ;完成通道数加 1 功能 CJNE R1,#08H,OUT MOV R1,#00H OUT: MOV A,#00H MOVX R1,A POP ACC RETI SHOW:MOV DPTR,#TAB1 ;显示子程序 MOV A,30H MOVC A,A+DPTR MOV P1,A CLR P3.0 LCALL DELAY SETB P3.0 MOV DPTR,#TAB2 MOV A,31H MOVC A,A+DPTR MOV P1,A CLR P3.1 LCALL DELA

28、Y SETB P3.1 MOV DPTR,#TAB1 MOV A,32H MOVC A,A+DPTR MOV P1,A CLR P3.4 LCALL DELAY SETB P3.4 MOV DPTR,#TAB1 MOV A,33H MOVC A,A+DPTR MOV P1,A CLR P3.5 LCALL DELAY SETB P3.5 RET DELAY: MOV R6,#5 ;延时子程序 D1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RET TAB1: DB 3FH,06H,5BH,4FH,66H ;数据定义区 DB 6DH,7DH,07H,7FH,6FH TAB2: DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH ; TAB1 不带小数点,TAB2 带小数点 END

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!