1、毕 业 论 文基于单片机的数字电压表的设计摘 要本设计主要研究的是以 AT89C51 单片机为核心的电压测量系统,该系统能够在单片机的控制下完成对电压信号采集,能够根据采样值进行量程自动转换,并且测量结果可通过四个数码管显示出来。整个系统的设计完成了硬件电路的设计及软件程序的编写,通过最终硬件电路的调试及软件程序的仿真,使该系统能够在要求的条件下达到正常的测量及显示功能。在整个系统的设计过程中,主要采用了模块化的设计方法。关键词: AT89C51 单片机;数字电压表;模块化Design of the digital voltmeter based on the MCUAbstractThis
2、paper introduces an achievement of a voltage measure system based on the AT89C51 MCU. This system can accomplish the signal sampling of voltage, and change range automatically according to the signal sampled. The result can be displayed through numeral rube of four places.In this design, the hardwar
3、e circuit and software programming are both realized at the judge of hardware circuit and imitation of software program. This system can fulfill the function of measure and displaying under the demanded conditions.Over the designing of the whole system, the method of modularity is used.Key words: AT
4、89C51 MCU; Digital Voltmeter; Modularity目 录绪论 .1第一篇 硬件部分的设计 .11. 数据采集部分的设计 .21.1 交流信号和直流信号的采样 .22. 量程自动转换电路的设计 .43. 模数转换单元的设计 .54. 控制电路的设计 .74.1 总体概况 .7一 .主要功能 .7二 .内部结构框图 .8三 .外部引脚说明 .94.2 单片机在系统中的应用 .115. 显示部分的设计 .125.1 键盘显示 8279 芯片 .125.2 8279 的组成和基本工作原理 .135.3 8279 引脚及功能 .155.4 8279 的工作方式及命令字格式
5、.17第二篇 软件系统的设计 .231. MCS-51 单片机汇编语言 .232. 主程序的设计 .233. 子程序的设计 .253.1 采样程序的设计 .253.2 量程处理程序的设计 .263.21 采样及其处理程序 .263.22 计算部分的设计 .283.23 显示部分的软件设计 .293.3 超量程处理 .294. 系统程序清单 .29设计总结 .41参考文献 .41绪论在电气测量中,电压是一个很重要的参数。如何准确地测量模拟信号的电压值,一直是电测仪器研究的内容之一。数字电压表是通用仪器中使用较广泛的一种测试仪器,很多电量或非电量经变化后都用可数字电压表完成测试。因此,数字电压表被
6、广泛地应用于科研和生产测试中。本文将介绍一种以单片机为核心的电压测量仪表,它能够测量电压量,能够自动进行量程选择,并且测量结果能够通过数码管显示,从而具有一定的智能性。本文将就这一系统的硬件电路部分和软件程序部分分别作以介绍。在硬件部分,本文就系统的各个组成模块的原理作了详细的介绍。另外,在每一模块电路中都对元器件的选择作了简单的介绍,其中包括有关数值的计算和分析。在软件部分,详细阐述了各个模块电路的软件设计方法和设计中的细节。第一篇 硬件部分的设计分析本设计,可以看出其主要任务就是对电压信号能够自动选择合适的量程进行测量并显示。本设计要求采用单片机进行控制,由于单片机的有效输入输出信号均为数
7、字信号,而对于整个系统的前向通道有效信号均应为模拟信号,所以在设计过程中必然包括模拟量转换为数字量单元的设计。根据要求本设计中采用的是 V/F 转换电路。对于 V/F 转换电路,要使其转换具有良好的线性度和精度必须使其输入电压变化范围较小。而本系统中要求测量的电压范围是 0500V,无法满足 V/F 转换的要求。所以,前向模拟通道的设计要包括量程转换部分,即对大信号进行分压变小,对小信号进行放大,显然,这样不仅能满足 V/F转换电路的要求,而且也能有效的防止超量程测量。另外,前向通道的设计还应包括对模拟信号的采集部分。本设计框图如图 1-1 所示:图1-1 设计总框图在以后的各节中,将分别介绍
8、各个部分的设计。1. 数据采集部分的设计根据本系统的要求所采集的信号应为电压信号,同时电压信号还应有交流和直流之分。所以在设计中应该具有相应的处理电路,使最终的信号得以统一。对于交流信号可以采用交/直流变换的方法变为直流,这样最终进入模/数转换单元(即 V/F 转换单元)的模拟信号就应该为直流电压信号。对于信号变换部分应该注意的是所采样的信号种类应能够通知控制部分(单片机) ,以使控制部分做出相应的计算处理,只有这样才能保证最终的显示结果的正确性。1.1 交流信号和直流信号的采样本设计中所采用的交直流转换电路如图 1-2 所示:分析此电路,可以看出此电路集精密全波整流、量程切换、信号过零比较于
9、一体。CD4053 是三组单刀双掷集成模拟开关,开关 X 承担了全波整流的任务,其控制端 A 受控于比较器的输出电平。图中 U10 工作于同相放大状态,运放 U11 工作于反相放大状态,比较器的输入引自 U10 的放大输出信号,这有利于提高比较器对信号的灵敏度。电路输入交流信号的正半波时,同相连接的比较器 U9 输出高电平,模拟开关 X 接通运放 U10 输出信号送后续的模拟信号与数字信号的转换单元;电路输入交流信号的负半波时,比较器 U9 输出低电平,模拟开关 X 接通反相器 U11 的输出信号送后续的模拟信号与数字信号的转换单 V/FMCU元。由此完成了由 U9 过零跃变的准数字量控制的全
10、波整流过程。这个准数字信号就可以用来通知控制部分所进行测量的是交流信号还是直流信号,以使控制部分进行相应的计算和显示。CD4053 的另两组模拟开关 Y 和 Z 承担了三个量程的切换任务,它们的控制端 B 和 C通过来自单片机的量程切换命令。23 76 5184U9LM31132 184U11ANE5532 32 184U10ANE5532P1.2P1.3P1.4R30 0.5KR17 6KR20 5KVCCR1610K-VCCGNDVCCR310.5KX012 X113Y02 Y11Z05 Z13INH6 A11B10 C9VEE7X 14Y 15Z 4CD4053R185KR10 1KR9
11、 1KR195K500R71uFC71KRVCC500R8GND99KR6 9KR5Q0E5VE5图 1-2 交直流转换电路另外,图 1-2 电路能同样有效地用于直流信号的前置处理。电路的输入端无论接入的是直流正信号还是直流负信号,输出的幅值都是 0 伏以上的直流正信号,这对于后续电路的设计尤其适用,而此时可以从比较器输出的电平高低获知是正输入还是负输入。特别重要的示,直流信号和交流信号具有同样的传输增益,给交直流参数的测量软件同一处理提供了极大的方便。显然,此电路满足本设计的要求,而且它集量程转换于一体,为量程转换部分的设计提供了方便,节省了硬件资源。2. 量程自动转换电路的设计在仪表的设计
12、过程中,量程转换的设计是相当重要的。所设计的系统应该具有自动转换量程的功能,并且能够自动判断是否超量程测量。这样才能够为后续的模数转换单元提供适当的输入电压,使其转换具有良好的精度和线性度。在本设计中模数转换单元选择的是电压/频率转换电路,对于 V/F 转换电路,其输入电压选择 05V。这样,经过量程转换后的电压范围就应该为 05V。因为本系统的输入电压范围是 0500V,故我们可以选择1/100 作为其最大电压的量程档,500V 经过 1/100 分压后降为 5V,恰好可以满足 V/F 转换的要求。在本设计中,对于电压信号设置了五个量程,即 1/100 档,1/10 档,1 档,10 档,1
13、00 档。1/100 档和 1/10 档由分压电路来完成,它们是用来测量较大电压的。而1 档,10 档,100 档则是应用放大电路来完成的,它们则是用来测量较小的电压的。在本设计中,1 档,10 档,100 档可由交直流转换部分的电路来实现,见图 1-4。此电路中的多路选择开关 CD4053 可以用来选择放大倍数,在该电路中分别设置了1,10 和100 的放大倍数。具体选择多大的放大倍数可以通过单片机的引脚 P1.3 和 P1.4 电平来控制。本设计中 CD4053 各个开关的导通与单片机引脚的关系见表 1-1 所示。表 1-1:CD4053 与单片机引脚的关系C(P1.4 ) B(P1.3)
14、 Y 选通情况 Z 选通情况0 0 Y Y0 0 1 Y Y1 Z Z01 0 Y Y0 1 1 Y Y1 Z Z1本设计中 1/100 和 1/10 分压比的选择也由单片机引脚控制多路选择开关来实现。由于本系统要求的电压测量范围是 0500V,所以多路开关的选择应特别注意其耐压值。在本设计中采用的是 MAX4602,因为它的耐压值可达到两千伏左右,故可以应用在本系统中。分压比的选择由单片机的 P1.0 和 P1.1 来控制。电路图见图 1-3。900K R390K R210K R1X013 X114X215 X312X41 X55X62 X74INH6 A11B10 C9VEE7X 3MAX
15、4602GNDIN(V)GNDP1.0P1.1图 1-3 量程转换部分的分压电路由上述分析可知量程的转换由两部分(即分压和放大)共同完成,所以在量程的选择时需注意两部分的关系,即选用分压时放大电路的放大倍数要选为 1,选用放大时信号要直接进来而不经过分压。3. 模数转换单元的设计单片机对模拟信号的读取通常是采用 A/D 转换方式,这一方法对输出阻抗低,惰性强,变化缓慢,传输距离长的信号,采用 A/D 转换的抗干扰性能就比较差。对于不需要较快检测速度的信号,如果采用 V/F 变换器代替原有的 A/D 转换器,把电压信号转换成与之对应的频率信号(f=kv),由单片机 CPU 计数器在采样周期内对频
16、率脉冲进行计数,采样时,CPU 发出计数指令,定时时间一到,计数停止,从读到的计数值乘以一定的系数,就可以得到相应电压值。本设计中,采用的是 LM331 转换芯片(V/F)将模拟信号转变为相应的频率信号,具体电路如图 1-4 所示:图 1-4 V/F 转换电路LM331 是单片集成芯片,在 V/F 转换器中,它是 LM31 系列中的一种,它作为一种简单廉价的电路很适用于模/数转换。它使用了新的温度补偿能隙基准电路,在整个工作温度范围内和低到 4.0V 电源电压下都有较高的精度,最大线性度达 0.01%,6 个数量级的动态范围,即满量程的频率范围为 1HZ 100KHZ。其数字脉冲重复率正比于模
17、拟输入电压的幅值。这类器件的高精度,高线性度,低温移及单调性的组合所提供的性能是其它技术难以实现的。逐次近似 A/D 转换器定期进行“抽样” ,因此易受噪声尖峰的影响,而电压频率转换器的输出端一直在进行积分,因此能对噪声或变化的输入信号进行平滑,特别适合于噪声工作环境。对 V/F 变换,整个电路都是线性放大。对 LM331,根据 V/F 变换的原理,其输出频率与输入电压的关系满足下面的公式:f=(V /2.09)(R /R )(1/R )(1/C ) (1-3)insltt由公式 1-3 可以看出输出频率 f 与输入电压 V 成正比。in对 V/F 转换,满度频率 f 大,闸门周期短,转换快,
18、分辨率高,但同时线性度下降。因此在选择参数 R 、R 、R 、C 时格外要注意。本设计中的输入电压 Vi 在 05V(即量sltt程转换后的电压均为 05V)内变化,输出 f 选择在 010KHZ 内变化,既可满足转换率又可满足分辨率的要求。在本设计中,为了消除干扰,在输入信号端加一个低通滤波器,C=1uF,R=100K,低通滤波的截止频率为:IN7RC5REF2GND4VCC 8OUT 1THR 6FREQ 3LM311LM311OUT 6+V 8GND 5C3NC1NC4A2EN 76N1376N137R2710KR2810KR45KR35 62KR2662KR2222KR232KR215.1K T0C61uF R311K-VCCVCCVCCGNDC50.05ufC80.01ufGNDR43100KQ3 Q0VDDR305KR2412KVCC