数字电压表设计(共35页).doc
精选优质文档-倾情为你奉上目录一、系统方案选择和论证11.1设计要求3二、系统硬件设计与实现5显示模块7A/D转换模块9声光报警模块11量程选择模块12三、系统的软件设计12系统软件概述12数字电压表总程序流程图12子程序的设计14四、系统测试17 测试仪器与设备17指标测试与误差分析17测试结果分析与结论17五、总结 18 作品总结18七、参考文献18附录一:系统电路图19 附录二:系统程序清单20专心-专注-专业简易数字电压表的设计摘要:在电子信息科技高速的时代,数码产品成为时代的主旋律。因为其使用便捷,显示清晰直观,功能强大所以越来越备受人们的青睐和应用。简易数字电压表是一种实时测试电压 变化量的数码智能产品。该系统由AT89S52 单片机系统、转换模块、LED动态显示模块、电源模块、量程选择模块和报警系统组成。该系统能完成电压量的采集、转换、手动量程切换、实时显示采集到电压量和声光提示等功能。依据实际的情况还可以添加自动量程切换功能。本系统成本低廉,功能实用它以可靠的性能、便捷的使用和极低的功耗特性而获得广阔的市场前景。数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。设计任务:电压测量范围 520V;同时采集 8 路信号分时显示;电压表具备 20V 超量程报警功能;测量精度:05V内可调可达 0.02V,520V 可达0.1V;电压表具备抑制脉冲干扰的能力;尽可能减少芯片的使用节约成本;其他发挥。系统基本方案简易数字电压表系统框图如图 11.2.2主控部分的选择方案一:用以AT89S52为核心的单片机控制系统方案,AT89S52具有较大程序存储空间和数据存储空间能满足用户的需要易于实现功能拓展,AT89S52内部置有 ISP 在线编程技术可以应用下载线直接连到计算机的并口相连就可烧写程序,可代替市场上专用的程序烧写器, 既经济又实用,从而提高了系统性价比。方案二:用AT89C51作为主控制系统易于实现对程序的编写但是用户在编写较长程序时,它的程序存储空间和数据存储空间不能满足需求,且其不支持ISP在线编程技术,需要专用 的烧写器来烧写程序,故成本高,进而降低了系统性价比。方案三:应用ICL7107集成芯片制作的方案。ICL7107是一块应用非常广泛的集成电路。它包含 3 1/2 位数字A/D转换器,可直接驱动LED数码管,内部设有参考电压、独立模拟开关、逻辑控制、显示驱动、自动调零功能等。ICL7107是一种制作数字电压表典型的应用电路。由于该集成芯片在使用上有一定的局限性,不可编程故不能实现功能拓展,无法满 足作品的设计要求故不可取。综合以上三种方案分析,采用 AT89S52作为主控制系统,可以大大提高系统功能的性能指标,还可以简化系统电路,成本低,故采用方案一。 显示器的选择方案一:运用液晶显示器主要能显示大量的文字、数字和图形,而且清晰化程度高,成本高。而此作品主要是简单的显示数字,故不采纳方案二:运用点阵显示器主要能显示文字、数字,但其内部结构较为复杂,不易连接, 故不使用它。方案三:运用数码管显示器显示数字比较直观,且其在使用方面连线比较简单、成本低。综合各方面考虑系统的性价比故采用方案三。A/D 转换器的选择方案一:采用双积分A/D转换器MC14433,它有多路调制的BCD码输出端和超量程输出端,采用动态扫描显示,便于实现自动控制。但芯片只能完成A/D转换功能,要实现显示功能还需配合其它驱动芯片等,使得整部分硬件电路板布线复杂,加重了电路设计和实际焊接的工作。方案二:采用A/D转换芯片ADC0809。ADC0809是一块8路8位模数转换芯片,将模拟电路和数字电路集成在一个有28个功能端的电路内,包 A/D 转 换 、逻 辑 控 制 译码驱动等电路,其转换时间为100S左右,符合作品8路采集要求且电路设计简单,电路板布线不复杂,便于焊接、调试。综上所述,故采用方案二。二、系统的硬件设计与实现系统硬件概述该作品由六大部分组成,分别是主控模块、A/D转换模块、显示模块、声光报警模块、量程选择模块,直流稳压电源模块。主要单元电路的设计、 主控模块数字电压表的控制模块采用AT89S52单片机,AT89S52是DIP-40集成电路芯片,该芯片有4个八位并行的双向I/O口,分别为 P0、P1、P2、P3 口。如图(2)示。20引脚为接地端;40引脚为电源端;31引脚需要接羔电位使单片机选用内部程序存储器;18、19 脚接上一个 12MHZ 的晶振为单片机提供时钟信号,第9脚为复位引脚,单片机只有满足这些条件才能正常工作。这次作品我们在 P0口接上一个蜂鸣器和一个发光二极管,作为声 光报警。在 P1 口接上七段译码器 74LS47 来提供给 LED的显示,在 P3口的 P3.2,P3.4,P3.5分别接上两个按键开关和一个发光二极管起到手动切换通道的作用。图(2)系统核心部分闪电存储型器件 AT89S52 AT89S52具有下列主要性能:·8KB 可改编程序 Flash 存储器(可经受 1000 次的写入/擦除周期)·全静态工作:0Hz24MHz·三级程序存储器保密·128×8 字节内部 RAM·32 条可编程 I/O 线·2 个 16 位定时器/计数器·6 个中断源·可编程串行通道·片内时钟振荡器 AT89S52 的引脚及功能AT89S52 单片机的管脚说明如上图所示。(1)主要电源引脚VCC电源端GND接地端(2)外接晶体引脚 XTAL1 和 XTAL2XTAL1接外部晶体的一个引脚。在单片机内部,它是构成片内振荡器的反相 放大器的输入端。当采用外部振荡器时,该引脚接收振荡器的信号,既把此信号直接 接到内部时钟发生器的输入端。XTAL2接外部晶体的另一个引脚。在单片机内部,它是上述振荡器的反相放大器的输出端。采用外部振荡器时,此引脚应悬浮不连接。(3)控制或与其它电源复用引脚 RST、ALE/PROG、/PSEN 和/EA/VPPRST复位输入端。当振荡器运行时,在该引脚上出现两个机器周期的高电平 将使单片机复位。ALE/PROG当访问外部存储器时,ALE(地址锁存允许)的输出用于锁存地址的低位字节。即使不访问外部存储器,ALE 端仍以不变的频率(此频率为振荡器频率的1/6)周期性地出现正脉冲信号。因此,它可用作对外输出的时钟,或用于定时目的。然而要注意的是:每当访问外部数据存储器时,将跳过一个 ALE 脉冲。在对Flash存储器编程期间,该引脚还用于输入编程脉冲(/PROG)。/PSEN 程序存储允许(/PSEN)输出是外部程序存储器的读选通信号。当 AT89S52/LV52 由外部程序存储器取指令(或常数)时,每个机器周期两次/PSEN 有效(既输出 2 个脉冲)。但在此期间内,每当访问外部数据存储器时,这两次有效的/PSEN 信号将不出现。/EA/VPP外部访问允许端。要使CPU只访问外部程序存储器(地址为 0000HFFFFH),则 /EA 端必须保持低电平(接到 GND端)。当EA端保持高电平(接 VS端)时,CPU 则执行内部程序存储器中的程序。(4)输入/输出引脚 P0.0 P0.7、P1.0P1.7、P2.0 P2.7 和 P3.0P3.7P0 端口(P0.0 P0.7) P0 是一个 8 位漏极开路型双向 I/O 端口。作为输出口用时,每位能以吸收电流的方式驱动 8 个 TTL 输入,对端口写 1 时,又可作高阻抗输入端用。P1 端口(P1.0 P1.7) P1 是一个带有内部上拉电阻的 8 位双向 I/O端口。P1的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。作输入口时,因为有内部的上 拉电阻,那些被外部信号拉低的引脚会输出一个电流。P2 端口 (P2.0P2.7) P2 是一个带有内部上拉电阻的 8 位双向 I/O端口。P2的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P2 作输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。P3 端口(P3.0P3.7)P3 口管脚是 8 个带内部上拉电阻的双向 I/O 口,可接收输出 4 个 TTL 门电流。当 P3 口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3 口将输出电流,这是由于上拉的缘故。P3 口也可作为 AT89S52 的一些特殊功能,这些特殊功能见表 4-1 端口引脚兼用功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2/INT0(外部中断 0)P3.3/INT1(外部中断 1)P3.4T0( 定时器 0 的外部输入)P3.5T1(定时器 1 的外部输入)P3.6/WR(外部数据存储器写选通)P3.7/RD(外部数据存储器读选通)表 4-1 P3 端口的特殊功能 显示模块 显示模块芯片介绍74LS47是一种 BCD输入,开路输出的4线七段译码器。DCBA作为4线输入,ag 作为七段输出,输出低电平有效。例如,输入DCBA=0011时a,b,c,d,g 等段输出为低电平,输出显示十进制数 3。345引脚为功能扩展端。3脚LT是测试灯输入端。作用是检查数码七段显示是否都能够正常发光。当 LT=1,BI=1时,七段显示部件全部点亮,显示“日”字。译码器正常工作时LT=1。4脚RBI是动态灭灯输入端,作用是将数码管显示的、不用的零熄灭。5脚BI/RBO,BI是灭灯输入端,当 BI=0时,不管输入如何,ag均为1,数码管不显示。RBO 是动态灭灯输出端。作用是控制低位灭零信号。若 RBO=1,说明本位处于显示状态;若RBO=0且低位为零,则低位被熄灭,它于 BI组成线与关系345引脚使用时应接上高电位。管脚信息与 LED 连接如图(3)所示图(3) LED 管脚信息如图(4)图4 显示模块的连接从图(5)可以观察到单片机 P1口低4位连接一块七段译码器74LS47,由于74LS47是共阳极的七段译码器所以要选用共阳极的数码管。单片机 P1.0P1.3的输出信号经过74LS47译码后就可以驱动数码管显示相应的数字,另外在74LS47的输出与数码管之间还要接上7个470欧姆的限流电阻,以防止有过大的电流流过时烧坏数码管。P1.4P1.7口接于四个PNP三极管的基极,四个三极管分别接于六个数码管的公共端,通过由P1.4P1.6口的输出量来控制数码管的点亮。采用 PNP 型的三极管来驱动数码管,在此三极管相当于一个开关的作用。依靠74LS47 七段译码器和四个PNP三极管就可以实现数码管的动态显示。 A/D转换模块A/D转换器用于实现模拟量向数字量的转换,由于模数转换电路的种类很多,选 择A/D的转换器件主要从速度、精度和价格方面考虑。目前最常用的是双积分式和逐 次逼近式A/D转换器。双积分式A/D转换器的优点是转换精度高,抗干扰性能好,价格便宜;但转换速度较慢。因此这种转换器主要用于速度要求不高的场合。逐次逼近式A/D转换器是一种速度较快、精度较高的转换器,其转换时间大约在几微秒到微秒之间。该系统采用的模数转换器芯片为 ADC0809,该芯片为 8 路模拟信号的分时采集,片内有8路模拟选通开关,以及相应的通道抵制锁存用译码电路,其转换时间为100S左右。 ADC0809的内部逻辑结构ADC0809的内部逻辑结构图如图(6)所示图中多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用一个A/D 转换器进行转换,这是种经济的多路采集方法。地址锁存与译码电路完成对A、B、C 3个地址进行锁存译码,其译码输出用于通道选择,其转换结果通过三态输出锁存器存放、输出,因此可以直接与系统数据总线。表(6.1)为通道选择表 ADC0809 引脚功能(1)ADC0809 引脚图(6.2)ADC0809芯片为 DIP-28,其主要信号引脚的功能说明如下:IN7IN0 模拟量输入通道。A、B、C地址线。通道端口选择线,A为低地址,C为高地址,引脚图中 ADDC、ADDB 和ADDC。其地址状态与通道对应关系见表(6.1)ALE地址锁存允许信号。对应 ALE 上跳沿,A、B、C地址状态送入地址锁存器中。START转换启动信号。START上升沿时,复位ADC0809;START下降沿时启动芯片,开始进行A/D转换;在A/D转换期间,START应保持低电平。写为 ST。 D4D0数据输出线。为三态缓冲输出形式。可以和单片机的数据线直接相连。D0为最低位,D7为最高。OE输出允许信号。用于控制三态门输出锁存器向单片机输出转换得到的数据。OE=0,输出数据线呈高阻;OE=1,输出转换所得到的数据。CLK时钟信号。ADC0809的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟 信号引脚。通常使用频率为 500KHZ 的时钟信号。EOC转换结束信号。EOC=0,正在进行转换,EOC=1,转换结束。使用中该状态信号即可 作为查询的状态标志,又可以作为中断请求信号使用。VCC+5V 电源。Vref参考电源参考电压用来与输入的模拟信号进行比较,作为逐次逼近的基准。起典型值为+5VVref(+)=5V,Vref(-)=-5V。AT89S52与ADC0809接口电路 AT89S52与ADC0809接口电路如图(6.3)接口电路的连接要涉及两个问题。一是8路模拟信号通道的选择,二是A/D 转换完成后转换数据的传送还处理。图(6.3)所示模拟通道选择信号 A、B、C 分别接到74LS373三态锁存器的A0、A1、A2即接到P0口最低三位地址(P0.0、P0.1、P0.2)而地址锁存端由P2.0控制,8 路模拟选通地址为0FEF8H0FEFFH。通道地址选择以WR作写选通信号,把ALE信号与STAET信号接在一起这样使得在信号的前沿写入(锁存)通道地址,紧接着其后沿就 启动转换。这就是A/D转换模块电路连接,之后的数据采集、通道选择、量程选择、数据处理都由后续的程序编写来完成。 声光报警模块为了判断采集的电压量是否超出量程,增加了声光报警模块。该模块工作原理如下当系 统采集到的电压值大于20V时,发光二极管点亮蜂鸣器响且数码管不显示数据,此时实现声光报警功能。声光报警电路模块如图(7)图(7)声光报警电路 量程选择模块量程模块根据电阻分压原理而设计,该系统的量程模块由一个 15K的电阻和 10K 的滑 动电阻串上 8个1K的电阻构成分压模式,根据作品设计要求采集电压值的量程可在 0V5V,5V20V之内的电压量进行选择,图(8)中SW 开关就起到选择量程的作用,AT89S52 的 P3.3 P3.5 所对应接的按键开关和发光二极管起到这里则起来到选择量程通道的作用。量程模块电路图如图(8)三、系统的软件设计系统软件概述图(8)量程模块电路简易数字电压表是一种实时测试电压变化量的数码智能产品。该系统由 AT89S52单片机系统、转换模块、LED动态显示模块、电源模块、量程选择模块和报警系统组成。 该系统能完成电压量的采集、转换、手动量程切换、实时显示采集到电压量和声光提示等功能。依据实际的情况还可以添加自动量程切换功能。本系统成本低廉,功能实用它以可靠的性能、便捷的使用和极低的功耗特性而获得广阔的市场前景。 数字电压表总程序流程图数字电压表主程序流程图开始自检量程选择8 次 A/D 转换滤除干扰报警子程序 数据处理 显示程序延时切换通道子程序的设计该系统程序由上电自检、数据采集、通道选择、量程选择、超量程报警子程序还有数据处理等子程序组成下面对各子程序简单介绍如下: 上电自检子程序 自检子程序是检测显示模块的好坏看是否能正常工作同时可以检测出硬件是否焊接正确,当运行自检时数码管上显示四个“8”红灯绿灯亮且蜂鸣器发出报警,说明显示模块可以正常工作。自检子程序如下:START:MOV R2,#250;自检子程序L1:MOV R3,#250;自检循环设定ZOO:MOV P1,#B;设置数码管自检显示全部为 8MOV P1,#BMOV P1,#B MOV P1,#B SETB P3.0CLR P3.1CLR P3.3DJNZ R3,ZOO;延时等待一段时间DJNZ R2,L1SETB P3.1;灭数码管,灯和蜂鸣器CLR P3.0SETB P3.2SETB P3.3SETB P3.4SETB P3.5MOV P1,#BMOV 60H,#00H;给寄存器清零MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 64H,#00H MOV 65H,#00H MOV 66H,#00H MOV 67H,#00H MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00H3.3.2 数据采集子程序数据采集程序就是把模拟电压值送到ADC0809中,由0809进行模数转换最后得出 8 位数字量的位码,在由单片机进行位码与 BCD 码的转换并由数码管显示出来,即为当前的测量电压值,具体程序如下:LIANGCHENG1:;0到5伏量程子程序MOV R1,#60HMOV R6,#5DD11:;检测第一路JNB P3.5,LIANGCHENG11;判断是否要进行8路采集CLR EAMOV DPTR,#0FEF8H;选择通道1MOVX ,AJB P3.2,$;判断AD转换是否完成MOVX A;单片机进行读超做MOV INC R1;采集5次DJNZ R6,DD11JNB P3.5,LIANGCHENG11LCALL PAIXU1;排序JNB P3.5,LIANGCHENG11LCALL DEL3;显量程JNB P3.5,LIANGCHENG11LCALL PIS;对采集的数据进行处理JNB P3.5,LIANGCHENG11LCALL PANDUAN1;判断是否超量程NOPLJMP LIANGCHENG1;返回通道选择及量程选择子程序 通道选择程序是由按键开关控制来完成的,通软件对按键的反复扫描来判断是否有按键按下,当有按键会跳到相应的量程子程序,并进行八路采集,程序流程图如下: 数据处理子程序数据处理子程序包含有对采集到的数据进行排序,求和,求平均值,从而减小测量误差,程序流程图如下:超量程报警子程序每个系统都有它的最高耐压值,当超出它的额定电压时会对系统带来损坏,所以设置了超量程报警,判断寄存器中的数据是否超出设定值,如果超出则发出声光报警,否则继续采集。四、系统测试测试仪器与设备表 4-1 测试仪器及设备仪器名称型号用途数量可跟踪直流稳压电源SS2323提供电压源电压1(台)烧写软件双龙烧写程序1(个)数字万用表VC9800测量输出电压2(个)ISP 下载板无调试程序1(个) 测试指标和误差分析(1)基本要求05V 预置电压与实测电压的偏差测试如表4-2所示表 4-2 预置电压与实测电压的偏差输入档位/V预置电压/V实测电压/V误差/V000.0000.0200.021.501.5001.4800.022.502.5002.4700.033.503.5003.4700.03505.0005.1000.10(2)发挥部分5V20V 预置电压与实测电压的偏差测试如表4-3所示表 4-2 预置电压与实测电压的偏差输入档位/V预置电压/V实测电压/V误差/V606.0005.9200.081010.0009.9000.101414.0013.9300.171818.0017.9000.102020.0020.4000.40测试结果分析 根据检测结果,分析该数字电压表的技术性能指标: 误差比较小,达到了电路的设计要求, 从测试数据可以看出技术指标达到设计要求,在电压值小时相对误差较大,主要是采样电压值较小,导致采样电压时,测量分辨率不够高,使相对误差大,解决这一问题的一种办法是在小电压时使用软件编程解决,提高采样电压的次数求平均值,从而提高分辨率,减小相对误差。影响电压表精度的另一个器件是所采样电压,一般需要选择压值稳定性好,精度高的电源。由于条件所限测试采样的电压源提供的电压很不稳定,导致采集到的电压值存在一定的误差。总结:本系统以AT89S52单片机为核心部件,结合模数电路的设计原理,利用电阻分压的原理选择测试点电压的技术,并配合一套独特的程序完成了题目所有的功能。在设计中力求发挥软件灵活方便的特点,来满足系统的设计要求。 经过几个个月的毕业论文设计,由刚开始的不知道从哪方面着手到后来老师的指导最后自己查阅相关资料写成这篇论文,付出了很多时间和精力但是也收获了很多,一分耕耘一分收获.我觉得毕业论文不同与其他科目,原因在于这门课程实践性很强,必须自己亲自动手,比如要翻阅大量资料通过现代网络技术搜索大量的与之相关的内容做到胸有成竹.还有,如果遇到不太懂的还要投入一定的时间去复习以前没有掌握的内容使之融会贯通.当然了,有些很深奥的还要向老师请教.这些工作很琐碎但是我觉得这本身就是一个自己钻研自己探索的过程,通过这次的毕业论文设计自己的动手能力也有了很大的提高,一言以蔽之,通过这次论文设计使我今后走向社会有了很好的基础,不过由于自己的专业水平有限文章中也有很多不足之处还请各位老师批评指教.谢谢!参考文献:1 王法能.单片机原理及应用.科学出版社.20042 刘勇.数字电路.电子工业出版社.20043 赵伟军.PROTEL99SE教程.人民邮电出版社.20044 黄强.模拟电子技术.科学出版社.20035 21IC资料搜索附录一:总原理图 附录二:系统总程序清单ORG 0000H LJMP STARTORG 0030H START:MOV R2,#250;自检子程序L1:MOV R3,#250;自检循环设定ZOO:;设置数码管自检显示全部为 8MOV P1,#B MOV P1,#B MOV P1,#B MOV P1,#B SETB P3.0CLR P3.1CLR P3.3DJNZ R3,ZOO DJNZ R2,L1SETB P3.1;灭数码管,灯和蜂鸣器CLR P3.0SETB P3.2SETB P3.3SETB P3.4SETB P3.5MOV P1,#BMOV 60H,#00H;给寄存器清零MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 64H,#00H MOV 65H,#00H MOV 66H,#00H MOV 67H,#00H MOV 21H,#00H MOV 22H,#00H MOV 23H,#00H MOV 24H,#00HSTART2:JNB P3.4,LIANGCHENG1;量程选择JNB P3.5,LIANGCHENG2LJMP START2LIANGCHENG2:LJMP LIANGCHENG3LIANGCHENG1:;0到5伏量程子程序MOV R1,#60H MOV R6,#8DD11:;检测第一路JNB P3.5,LIANGCHENG11;判断是否要进行8路采集CLR EAMOV DPTR,#0FEF8H;选择通道1MOVX ,AJB P3.2,$;判断AD转换是否完成 MOVX A;单片机进行读超做 MOV INC R1;采集5 次DJNZ R6,DD11JNB P3.5,LIANGCHENG11LCALL PAIXU1;排序JNB P3.5,LIANGCHENG11LCALL DEL3;显量程JNB P3.5,LIANGCHENG11LCALL PIS;对采集的数据进行处理JNB P3.5,LIANGCHENG11LCALL PANDUAN1;判断是否超量程NOPLJMP LIANGCHENG1LIANGCHENG11:;0 到5 伏量程8通道采集子程序MOV 11H,#70H MOV R1,#60H MOV R6,#8DD1:CLR EAMOV DPTR,#0FEF8H MOVX ,AJB P3.2,$MOVX A MOV INC R1DJNZ R6,DD1LCALL DEL2LCALL PAIXU1LCALL PISLCALL PANDUAN1MOV R1,#60H MOV R6,#8DD2:CLR EAMOV DPTR,#0FEF9HMOVX ,A JB P3.2,$MOVX A MOV INC R1DJNZ R6,DD2LCALL DEL2LCALL PAIXU1LCALL PISLCALL PANDUAN1MOV R1,#60H MOV R6,#8DD3:CLR EAMOV DPTR,#0FEFAH MOVX ,AJB P3.2,$MOVX A MOV INC R1DJNZ R6,DD3LCALL DEL2LCALL PAIXU1LCALL PISLCALL PANDUAN1MOV R1,#60H MOV R6,#8DD4:CLR EAMOV DPTR,#0FEFBH MOVX ,AJB P3.2,$MOVX A MOV INC R1DJNZ R6,DD4LCALL DEL2LCALL PAIXU1LCALL PISLCALL PANDUAN1MOV R1,#60HMOV R6,#8DD5:CLR EAMOV DPTR,#0FEFCH MOVX ,AJB P3.2,$MOVX A MOV INC R1DJNZ R6,DD5LCALL DEL2LCALL PAIXU1LCALL PISLCALL PANDUAN1MOV R1,#60H MOV R6,#8DD6:CLR EAMOV DPTR,#0FEFDH MOVX ,AJB P3.2,$MOVX A MOV INC R1DJNZ R6,DD6LCALL DEL2LCALL PAIXU1LCALL PISLCALL PANDUAN1MOV R1,#60H MOV R6,#8DD7:CLR EAMOV DPTR,#0FEFEH MOVX ,AJB P3.2,$MOVX A MOV INC R1DJNZ R6,DD7LCALL DEL2LCALL PAIXU1LCALL PISLCALL PANDUAN1MOV R1,#60H MOV R6,#8DD8:CLR EAMOV DPTR,#0FEFFH MOVX ,AJB P3.2,$MOVX A MOV INC R1DJNZ R6,DD8LCALL DEL2LCALL PAIXU1MOV 62H,#00H LCALL PISLCALL PANDUAN1NOPLJMP LIANGCHENG11DEL2:INC 11H;显量程子程序MOV 17H,#250WW11:MOV 16H,#2WW22:MOV P1,11H LCALL DELMOV P1,#B LCALL DELDJNZ 16H,WW22DJNZ 17H,WW11RETTIAO:MOV A,64H CLR C SUBB A,#4LJMP TIAO1PIS:;对采集数据进行处理MOV A,64H CLR CSUBB A,#128JNC TIAO MOV A,64HTIAO1:MOV B,#2;每次显示就只需要把 64H 里面的数转换成 BCD 码就可以了MUL AB LCALL CHULIMOV A,R3MOV B,#100DIV ABMOV A,BMOV B,#10DIV ABSWAP AMOV 22H,AMOV A,BMOV B,#10;个位转换MUL AB MOV B,#10DIV AB MOV B,22H ORL A,B MOV 22H,A MOV A,R4MOV B,#100DIV AB MOV A,BMOV B,#10;小数百位转换DIV AB SWAP A MOV 21H,A MOV A,B MOV B,#10MUL AB MOV B,#10DIV AB MOV B,21H ORL A,B MOV 21H,AMOV 51H,#250DIS:;显示电压值子程序MOV 52H,#8DI:MOV A,22H ANL A,#B SWAP A ADD A,#BMOV P1,A;十位的显示LCALL DEL MOV A,22H ANL A,#B ADD A,#BMOV P1,A;个位的显示LCALL DEL MOV A,21H ANL A,#B SWAP A ADD A,#BMOV P1,A;十位的显示LCALL DEL MOV A,21H ANL A,#B ADD A,#BMOV P1,A;个位的显示LCALL DEL DJNZ 52H,DI DJNZ 51H,DIS RETLIANGCHENG3:;0到20伏量程CLR P3.3MOV R1,#60H MOV R5,#8DDD11:;检测第一路JNB P3.4,LIANGCHENG22CLR EAMOV DPTR,#0FEF8H MOVX ,AJB P3.2,$MOVX A MOV INC R1JNB P3.4,LIANGCHENG22DJNZ R5,DDD11LCALL PAIXU1JNB P3.4,LIANGCHENG22LCALL DEL4JNB P3.4,LIANGCHENG22LCALL PIS1JNB P3.5,LIANGCHENG22LCALL PANDUAN NOPLJMP LIANGCHENG3LIANGCHENG22: MOV 10H,#70H CLR P3.3MOV R1,#60H MOV R5,#8DDD1: CLR EAMOV DPTR,#0FEF8H MOVX ,AJB P3.2,$MOVX A MOV INC R1DJNZ R5,DDD1LCALL PAIXU1LCALL DEL1LCALL PIS1LCALL PANDUANMOV R1,#60H MOV R5,#8DDD2:CLR EA;检测第2 路MOV DPTR,#0FEF9H MOVX ,AJB P3.2,$MOVX A MOV INC R1DJNZ R5,DDD2LCALL PAIXU1LCALL DEL1LCALL PIS1LCALL PANDUANMOV R1,#60H MOV R5,#8DDD3:CLR EA;检测第3 路MOV DPTR,#0FEFAH MOVX ,AJB P3.2,$MOVX A MOV INC R1DJNZ R5,DDD3LCALL PAIXU1LCALL DEL1LCALL PIS1