当前位置:文档之家› 基于单片机的多路电压采集系统

基于单片机的多路电压采集系统

基于单片机的多路电压采集系统
基于单片机的多路电压采集系统

基于Proteus的数字电压表设计与仿真

专业:0811电子信息工程学号: 08128041 姓名:唐浩

摘要:在现代检测技术中,常用高精度数字电压表进行检测,将检测到的数据送入微型计算机系统,完成计算、存储、控制等功能。本文中数字电压表的控制系统采用AT89C51单片机,A/D转换器采用ADC0809为主要硬件,实现数字电压表的硬件电路与软件设计。该系统的数字电压表电路简单,所用的元件较少,成本低,调节工作可实现自动化,还可以方便地进行8路A/D转换的测量,远程测量结果传送等功能。数字电压表可以测量0~5V的电压值,并在四位LED数码管上轮流显示,并且应用Proteus的ISIS软件进行单片机系统设计与仿真.关键词:单片机;数字电压表;A/D转换ADC0809;Proteus

Design and Simulation of digital Voltmeter Based on Proteus Abstract:In modern measuring technology, it is often required to conduct site measuring with a digital voltmeter. The data measured will then be input into the micro-computer system to execute such functions like calculating, storing, controlling, and displaying. The digital voltmeter control system described in this paper makes use of AT89C51 SC computer and ADC0809 A/D converter to fulfill the designing of the software as well as the electrical circuit. The voltmeter features in simple electrical circuit, lower use of elements, low cost and automatic regulation, while it can also easily carry out the duties of measuring A/D converted values from 8 routes and remote transfer of measuring data. The meter is capable of measuring voltage from 0 to 5 volt, and displaying the measurements in turn or only that from a selected route,and use software ISIS of Proteus to realize the circuit design and simulation.。

Keywords:Single chip microcomputer;digital V oltmeter;A/D switch ADC0809;Proteus

1 绪论

随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段,对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。同时随着微电子技术的迅速发展和超大规模集成电路的出现,特别是单片机的出现,正在引起测量控制仪表领域的新的技术革命[1]。

由于使用的是高效单片机作为核心的测量系统,以及灵敏度和精度较高的A/D转换器,使本直流电压表具有精度高、灵敏度强、性能可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水平[2]。

数字电压表相对于指针表而言读数直观准确,电压表的数字化是将连续的模拟量转换成不连续的离散的数字形式并加以显示。这有别于传统的以指针与刻度盘进行读数的方法,避免了读数的视差和视觉疲劳[3]。

2 系统方案设计

利用MCS-51系列单片机设计简易数字电压表测量0~5v 的8路输入电压值,并在四位LED

数码管上轮流显示或单路选择显示。测量误差约为±0.02V 。系统设计方框图如图1所示。

单片机

AT89C51

时钟电路复位电路数据采集

显示电路

模拟信号

图1系统设计方框图

3 硬件电路设计 3.1时钟电路

XTAL1是片内振荡器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,外部振荡信号应直接加到XTAL1,而XTAL2悬空。内部方式时,时钟发生器对振荡脉冲二分频,如晶振为12MHz ,时钟频率就为6MHz 。晶振的频率可以在1MHz-24MHz 内选择。电容取30PF 左右。系统的时钟电路设计是采用的内部方式,即利用芯片内部的振荡电路如图2所示[2]。

图2时钟电路图

3.2复位电路

复位电路如下图3所示,按键没有按下时,RST端接电容下极板是低电平,按键按下时,RST端接在电阻上端变为高电平,达到复位的目的[2]。

图3复位电路图

3.3数据采集模块

通过ADC0809采集数据,输入到单片机内,如图4所示:

图4数据采集模块电路图

3.4显示电路

通过4位数码管来显示,如图5所示:

图5显示电路图

4 软件设计

4.1主程序流程图

主程序流程图如图6所示:

开始

初始化

调用A/D转化程序

调用数据处理程序

调用显示程序

图6主程序流程图4.2显示子程序流程图

显示子程序流程图如图7所示:

开始

初始化,P0置

高,P2置低

P0到A输出显示

P2=P2+1

P0到A输出显示

P2=P2+1

P0到A输出显示

置位P0.7点亮小数点

P2=P2+1

P0到A输出显示

结束

图7显示子程序流程图

4.3 A/D 转换子程序流程图

A/D 转换子程序流程图,如图8所示:

开始

初始化

启动A/D 转化

P3.1=1?

P3.0置位,允许输出。将转化的数据保存

结束

Y

N

图8 A/D 转换子程序流程图

4.4数据处理子程序流程图

数据处理子程序流程图,如图98所示:

开始

从34H 中取数据,乘以19.5mv ,得到的数据BCD 麻

化,将数据存入A

转化双字节十六进制整数

BCD 码带进位自身相加,十进制调整

R2=0?

数据输入显示器

结束

N

Y

图9数据处理子程序流程图

5 源代码

LED1 EQU 30H ;初始化定义

LED2 EQU 31H

LED3 EQU 32H ;存放三个数码管的段码

ADC EQU 35H ;存放转换后的数据

ST BIT P3.2

OE BIT P3.0

EOC BIT P3.1 ;定义ADC0809的功能控制引脚

ORG 0000H

LJMP MAIN ;跳转到主程序执行

ORG 0030H

MAIN: MOV LED1,#00H

MOV LED2,#00H

MOV LED3,#00H ;寄存器初始化

CLR P3.4

SETB P3.5

CLR P3.6 ;选择ADC0809的通道2

WAIT: CLR ST

SETB ST

CLR ST ;在脉冲下降沿启动转换

JNB EOC,$ ;等待转换结束

SETB OE ;允许输出信号

MOV ADC,P1 ;暂存A/D转换结果

CLR OE ;关闭输出

MOV A,ADC ;将转换结果放入A中,准备个位数据转换

MOV B,#50 ;变换个位调整值50送B

DIV AB

MOV LED1,A ;将变换后的个位值送显示缓冲区LED1

MOV A,B ;将变换结果的余数放入A中,准备十分位变换MOV B,#5 ;变换十分位调整值5送B

DIV AB

MOV LED2,A ;将变换后的十分位值送LED2

MOV LED3,B ;最后的余数作百分位值送LED3

LCALL DISP ;调用显示程序

AJMP W AIT

DISP:MOV R1,#LED1 ; 显示子程序

CJNE @R1,#5,GO ;@R1=5V?是往下执行,否,则到GO

MOV LED2,#0H ;是5V,即最高值,将小数的十分位清零

MOV LED3,#0H ;将小数的百分位清零

GO:MOV R2,#3 ;显示位数赋初值,用到3位数码管MOV R3,#0FDH ;扫描初值送R3

DISP1:MOV P2,#0FFH ;关闭显示,目的防止乱码

MOV A,@R1 ;显示值送A

MOV DPTR,#TAB ;送表首地址给DPTR

MOVC A,@A+DPTR ;查表取段码

CJNE R2,#3,GO1 ;判断是否个位数码管?否则跳到GO1

ORL A,#80H ;将整数的数码管显示小数点

GO1:MOV P0,A ;送段码给P0口

MOV A,R3

MOV P2,A ;送位码给P2口

LCALL DELAY ;调用延时

MOV R3,A

RL A ;改变位码

MOV R3,A

INC R1 ;改变段码

DJNZ R2,DISP1 ;三位是否显示完?否则调到DISP1

RET

DELAY:MOV R6,#10 ;延时5S程序:

D1:MOV R7,#250

DJNZ R7,$

DJNZ R6,D1

RET

TAB: DB 3FH, 06H,5BH,4FH,66H;共阴极数码管显示0-4 ;显示数据表:

DB 6DH,7DH,07H,7FH,6FH;显示5-9

END

6.C源代码

7.#include"reg51.h"

8.#include"absacc.h"

9.#include "intrins.h"

10.#define uchar unsigned char

11.#define uint unsigned int

12.#define SEG_OUT P2 //段码输入端口

13.#define BIT_OUT P1//扫描口

14.sbit RED_LED=P3^6;

15.sbit YED_LED=P3^5;

16.sbit SPER=P3^7;

17.sbit dot=P2^7;

18.sbit ST=P3^0;

19.sbit OE=P3^1;

20.sbit EOC=P3^2;

21.sbit CLE=P3^4;

22.uint data getdata;

23.uint temp;

24.uint num;

25.uchar ts50ms=0;

26.uchar data dis_buff[4]={0,0,0,0};

27.unsigned char code diaput[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xff,0xb

f};

28./////////////////////////////////////////////

29.void delayd(uchar n)

30.{

31.uchar L,j;

32.for(L=0;L

33.

34.for(j=0;j<125;j++)

35.;

36.}

37./////////////////////////////////////////////

38.void delay(void)

39.{

40. uchar i;

41. while(i--);

42.}

43.

44.//////////////////////////

45.void initiation(void)

46.{

47.TH0=-100/256;

48.TL0=-100%256;

49.TMOD=0X01;

50.TR0=1;

51.ET0=1;

52.EA=1;

53.//while(1);

54.}

55.///////////////////////////////////////

56.void diaplay(void)//数码管显示

57.{

58.char k;

59.char m=0xfe;

60. for(k=0;k<4;k++)

61. {

62. BIT_OUT=0xff;

63. SEG_OUT=diaput[dis_buff[k]];

64. if(k==1)

65. dot=0;

66. BIT_OUT=m;

67. delayd(3);

68. m=(m<<1)|0x01;

69. }

70. temp=getdata*1.0/255*500; //测5V

71. temp=getdata*100.0/255.0*12.0;//测12v

72. temp=getdata*200.0/255.0*12.0;//测24v

73. dis_buff[0]=temp/1000;

74. dis_buff[1]=(temp%1000/100);

75. dis_buff[2]=(temp%100)/10;

76. dis_buff[3]=temp%10;

77.}

78.

79.

80.void time0(void) interrupt 1

81.{

82.

83. TH0=-100/256;//200us

84. TL0=-100%256;

85. num++;

86. /*if(num==2)

87. { num=0;

88. */

89. CLE=~CLE; //产生200ms的脉冲

90.

91. ts50ms=0;

92. if(getdata<20)

93. SPER=~SPER;

94.

95.}

96.////////////////////////////////

97.void panduan_LED(void)

98.{

99. if(getdata<20)

100. {

101. RED_LED=0;

102. YED_LED=1;

103.

104. }

105. else if(getdata>253)

106. {

107.

108. RED_LED=1;

109. YED_LED=0;

110.

111. }

112. else

113. {

114. RED_LED=1;

115. YED_LED=1;

116. }

117.}

118.//////////////////////////////////////////////// 119.void LED(void)

120.{

121.if(getdata>253)

122.SPER=~SPER;

123.delay();

124.}

125.main()

126.{

127. initiation();

128. while(1)

129. {

130. panduan_LED();

131. LED();

132. ST=1;

133. ST=0;

134. while(EOC==0);

135. {

136. OE=1;

137. getdata=P0;

138. OE=0;

139. diaplay();

140.

141. }

142.

143. }

144.}

7电路原理图

电路原理图如图10所示:

图10电路原理图

7 仿真图

调节滑动变阻器的位置,可以测出相应的电压值,如图11所示。

该电路可测得电压范围是0-5V,最大电压值如图12所示。

该电路测量的误差在约为±0.02V,如图13所示。

8 结束语

利用仿真功能强大、仿真元件模型丰富的Proteus软件对数字电压表各个单元电路和整体电路进行了设计和详尽的仿真分析,缩短了设计周期,提高了设计效率,降低了设计成本. 同时, Proteus软件对于电子技术的教学演示和实际设计都具有很大的辅助作用.

参考文献

[1] 陈朝元,鲁五一.Proteus软件在自动控制系统仿真中的应用[J].系统仿真学报, 2008(1):318-320.

[2] 毛谦敏.单片机原理及应用设计系统[M].北京:国防工业出版社,2008:22-26.

[3] 康华光.电子技术基础(数字部分) [M]. 5版. 北京:高等教育出版, 2005: 290-293.

单片机课程设计数字电压表

单片机课程设计 ——电压表的设计 学院:信息工程学院 专业:电子信息科学与技术 班级:2011150 学号:201115002 姓名:王冬冬 同组同学:凡俊兴 201115001

目录 1 引言 (1) 2设计原理及要求 (2) 2.1数字电压表的实现原理 (2) 2.2数字电压表的设计要求 (2) 3软件仿真电路设计 (2) 3.1设计思路 (2) 3.2仿真电路图 (3) 3.3设计过程 (3) 3.4 AT89C51的功能介绍 (4) 3.4.1简单概述 (4) 3.4.2主要功能特性 (5) 3.4.3 AT89C51的引脚介绍 (5) 3.5 ADC0809的引脚及功能介绍 (7) 3.5.1芯片概述 (7) 3.5.2 引脚简介 (8) 3.5.3 ADC0809的转换原理 (8) 3.6 74LS373芯片的引脚及功能 (8) 3.6.1芯片概述 (8) 3.6.2引脚介绍 (9) 3.7 LED数码管的控制显示 (9) 3.7.1 LED数码管的模型 (9)

LED数码管模型如图3-6所示。 (9) 3.7.2 LED数码管的接口简介 (9) 4系统软件程序的设计 (9) 4.1 主程序 (10) 4.2 A/D转换子程序 (11) 4.3 中断显示程序 (12) 5使用说明与调试结果 (13) 6总结 (13) 参考文献 (14) 附录1 源程序 (15) 附录2原理电路 (19)

1 引言 在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。数字电压表简称DVM,它是采用数字化测量技术,把连续的模拟量转换成不连续、离散的数字形式并加以显示的仪表。由于数字式仪器具有读数准确方便、精度高、误差小、测量速度快等特而得到广泛应用[1]。 传统的指针式刻度电压表功能单一,进度低,容易引起视差和视觉疲劳,因而不能满足数字化时代的需要。采用单片机的数字电压表,将连续的模拟量如直流电压转换成不连续的离散的数字形式并加以显示,从而精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC实时通信。数字电压表是诸多数字化仪表的核心与基础[2]。以数字电压表为核心,可以扩展成各种通用数字仪表、专用数字仪表及各种非电量的数字化仪表。目前,由各种单片机和A/D转换器构成的数字电压表作全面深入的了解是很有必要的。 最近的几十年来,随着半导体技术、集成电路(IC)和微处理器技术的发展,数字电路和数字化测量技术也有了巨大的进步,从而促使了数字电压表的快速发展,并不断出现新的类型[4]。数字电压表从1952年问世以来,经历了不断改进的过程,从最早采用继电器、电子管和形式发展到了现在的全固态化、集成化(IC 化),另一方面,精度也从0.01%-0.005%。 目前,数字电压表的内部核心部件是A/D转换器,转换的精度很大程度上影响着数字电压表的准确度,因而,以后数字电压表的发展就着眼在高精度和低成本这两个方面[3]。 本文是以简易数字直流电压表的设计为研究内容,本系统主要包括三大模块:转换模块、数据处理模块及显示模块。其中,A/D转换采用ADC0808对输入的模拟信号进行转换,控制核心AT89C51再对转换的结果进行运算处理,最后驱动输出装置LED显示数字电压信号

基于单片机的数字电压表设计报告

单片机原理及系统课程设计 专业:电气工程及其自动化 班级: 姓名: 学号: 指导教师: 兰州交通大学自动化与电气工程学院 2010 年 3 月 7 日

基于单片机的数字电压表设计 摘要

图3.2系统原理图4软件设计

5.系统调试及仿真结果 6.总结 两周的课程设计结束了,在这过程中,我学到了很多东西。首先,我学会了单片机设计的基本过程有哪些,每一过程有哪些基本的步骤,怎样通过查资料去完成这每一步。其次我巩固了上学期所学的一些单片机知识,从而加深了对ADC0809芯片的功能的了解。在编程过程中,遇到了许多困难,通过与同学之间的交流和咨询,最后解决了这些困难。所谓实践出真知,学到的东西只有运用到实践当中,才能真正体会到知识的力量。最后,通过这次课程设计,让我明白了想法和实践还是有差距的,当你真正去做一件事的时候,你会发现你的想法可能不适用,随时都需要调整,另外扎实的理论知识也是完成设计任何设计必不可少的要素,一切想法离开了理论知识都是空想。 参考文献 [1]彭为,黄科,雷道仲.单片机典型系统设计实例精讲[M].电子工业出版社.2009:22-54. [2] 谭浩强.C程序设计(第三版)[M].清华大学出版社.2009:32-46. [3] 王思明,张金敏,张鑫等.单片机原理及应用系统设计(第一版)[M].科学出版社.2012:70-292.

附录A源程序代码#include #include #define uchar unsigned char sbit p21=P2^1; sbit p22=P2^2; sbit p23=P2^3; sbit EOC=P3^1; sbit OE=P3^0; sbit ST=P3^2; sbit p34=P3^4; sbit p35=P3^5; sbit p36=P3^6;

单片机电压采集装置课程设计(AD转换及编程实现)

单片机课程设计 姓名:学号: 专业:电子科学与技术 题目:单片机电压采集装置 专题: AD转换及编程实现 指导教师: 设计地点:实验楼时间: 2012 年12月 单片机课程设计任务书

专业年级电科学号学生姓名 任务下达日期:2012年 12 月20 日 设计日期: 2012年12月1日至 2012 年 12月20日 设计题目:单片机电压采集装置 设计专题题目:AD转换及编程实现 设计主要内容和要求:制作单片机电压采集装置 基本要求 1、模拟通道0电压采集功能 在ADC0809的输入0~5V电压,数码管实时显示被测电压值(显示精度0.001V,即显示1位整数,3位小数)。 2、指定通道电压采集功能 通过模式选择按键切换到“指定通道电压采集功能”,利用+/-按键改变通道值,显示同上。 3、8通道自动循环电压采集功能制作单片机电压采集装置 通过模式选择按键切换到“8通道自动循环电压采集功能”, 默认通道切换时间为2秒。 扩展要求 1、超限报警功能 当Vi超出程序预设报警限值时,报警灯以1Hz速度闪烁显示,并显示提示符以区别上限或下限报警。 2、可修改上限和下限报警值的超限报警拨弄能 可随意设置上、下限报警值(步长0.1V,默认下限为0V,上限为5V)。设置时,当下限≥上限(或上限≤下限)时予以提示,并拒绝接受数据。 指导教师签字: 摘要:

此单片机电压采集装置使用AT89S52芯片和ADC0809芯片进行电压采集,实现AD转换的基本功能。,键盘电路和8个LED数码显示电路。扩展电路中包含了A/D转换电路,AD转换五种工作模式下对应要实现的功能:即模式0下完成通道0的模拟信号采集;模式1时完成指定模拟通道电压采集,按加、减(K2,K3)按键手动实现模拟通道的切换, 此外,通过内部定时器T1实现报警功能,即超过上限电压4.999V时报警,同时点亮P1.1即L2发光LED小灯,低于下限电压0.000V时也实现报警功能,只是报警的频率改变,同时点亮P1.0即L1发光LED小灯;而模式2完成8通道模拟信号自动循环采集功能,通过加入内部定时器T0中断,从而实现每隔1秒通道值自动加1的功能;进入模式3的时候,需要人为设置报警上限,此程序设定报警上限为4V,而报警上限默认值为3.999V,通过按加、减(K2/K3)按键实现上限加减0.1V;模式4的时候设置报警下限电压,默认报警下限电压为1.999V,本程序中设置的报警下限电压为2V,通过加减(K2/K3)按键实现电压加减0.1V的功能,最终实现电压采集和扩展功能。 关键词:AT89S52芯片、ADC0809芯片

基于51单片机的数字电压表设计说明

1.1数字电压表介绍 数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示。而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编码等几部分组成。因此AD转换是此次设计的核心元件。输入的模拟量经过AD转换器转换,再由驱动器驱动显示器输出,便得到测量的数字电压。 本次自己的设计作品从各个角度分析了AD转换器组成的数字电压表的设计过程及各部分电路的组成及原理,并且分析了数模转换进而使系统运行起来的原理及方法。通过自己的实践提高了动手能力,也只有亲历亲为才能收获掌握到液晶学过的知识。其实也为建立节约成本的意识有些帮助。本次设计同时也牵涉到了几个问题:精度、位数、速度、还有功耗等不足之处,这些都是要慎重考虑的,这些也是在本次设计中的收获。 1.3 本次设计要求 本次设计的作品要求制作数字电压表的量程为0到10v,由于用到的模数转换芯片是ADC0809,设计系统给的供电电压为+5v,所以能够测量的电压围为-0.25v到5.25v之间,但是一般测量的直流电压围都在这之上,所以采用电阻分压网络,设计的电压测量围是0到25v之间,满足设计要求的最大量程5v的要求。同时设计的精度为小数点后三位,满足要求的两位小数的精度,在不考虑AD芯片的量化误差的前提下,此次设计的精度能够满足一般测量的要求。

2单片机和AD相关知识 2.1 51单片机相关知识 51单片机是对目前所有兼容intel 8031指令系统的单片机的统称。该系列单片机的始祖是intel的8031单片机,后来随着技术的发展,成为目前广泛应用的8为单片机之一。单片机是在一块芯片集成了CPU、RAM、ROM、定时器/计数器和多功能I/O口等计算机所需要的基本功能部件的大规模集成电路,又称为MCU。51系列单片机包含以下几个部件: 一个8位CPU;一个片振荡器及时钟电路; 4KB的ROM程序存储器; 一个128B的RAM数据存储器; 寻址64KB外部数据存储器和64KB外部程序存储空间的控制电路; 32条可编程的I/O口线; 两个16位定时/计数器; 一个可编程全双工串行口; 5个中断源、两个优先级嵌套中断结构。51系列单片机如下图: 图1 51单片机引脚图

基于单片机的智能电压表设计

科技学院毕业设计(学士) 1 学科分类号:_ _08_______ 科技学院 本科生毕业设计 题目:基于单片机的智能电压表设计专业年级:电子信息工程

科技学院毕业设计(学士)基于单片机的智能电压表设计 摘要:设计一种基于STC89C52单片机的智能数字电压表。分析了电压测量原理,设计了硬件电路和软件。主要通过STC89C52,AD574模数转换,模拟开关,LM324放大电路来实现量程自动转换,来实现电压表的功能。该表测量电压范围0~500v,输入阻抗大于22M,分辨率为12位。能自动完成量程选择,零点/满量程校正的直流电压表,仅使用两次按键,使用非常方便。数据由数码管显示。 关键词:电压测量;自动换挡;AD574;STC89C52 I

科技学院毕业设计(学士) Microcontroller-based smart voltmeter Abstract:Design AT89C52intelligent digital voltmeter.V oltage measurement principles, the design of hardware and software.On AT89C52Application of AD574 analog to digital conversion,analog switches,the LM324amplifier circuit to achieve the automatic range conversion,to achieve the function of the voltmeter.The meter to measure the voltage range of 0~500v,input impedance is greater than22M,with a resolution of12.Can automatically complete the range selection,zero /full scale calibrated DC voltmeter,use only two buttons,very easy to use.Data by the digital display. Keywords:voltage measurement;automatic shift;Application of AD574; STC89C52 II

单片机温度采集与显示

1、课程设计目的 (1)利用单片机及相应温度传感器设计单检测节点或多检测节点数字温度计 (2)精度误差:0.5摄氏度以内;测温范围:10-50摄氏度 (3)LED数码管或LCD直接显示 (4)完成对设计系统测试 2、数字温度计正文 摘要:随着时代的进步和发展,单片机技术已经普及到我们生活、工作、科研、各个领域,已经成为一种比较成熟的技术,本文主要介绍了一个基于89C52单片机的测温系统,详细描述了利用数字温度传感器DS18B20开发测温系统的过程,重点对传感器在单片机下的硬件连接,软件编程以及各模块系统流程进行了详尽分析,对各部分的电路也一一进行介绍,该系统可以方便的实现温度采集和显示,并可根据需要任意设定上下限报警温度,使用起来相当方便,适合于我们日常生活和嵌入其它系统中,作为其AT89C52结合最简温度检测系统,该系统恶劣环境下进行现场温度测量,有广泛的应用前景。本文将介绍一种基于单片机往制的数字温度计,本温度计属于多功能温度计,可以设置上下报警温度,当温度不在设置范围内时,可以报警。 关键词:单片机,数字控制,温度计,DSIBB20, AT89C52 2.1引言 随着科技的不断发展,现代社会对各种信息参数的准确度和精确度的要求都有了几何级的增长,而如何准确而又迅速的获得这些参数就需要受制于现代信息基础的发展水平。在三大信息信息采集(即传感器技术)、信息传输(通信技术)和信息处理(计算机技构中,传感器属于信息技术的前沿尖端产品,尤其是温度传感器技术,在我国各领域己经引用的非常广泛,可以说是渗透到社会的每一个领域,人民的生活与环境的温度息息相关,在工业生产过程中需要实时测量温度,在农业生产中也离不开温度的测量,因此研究温度的测量方法和装置具有重要的意义。 测量温度的关键是温度传感器,温度传感器的发展经历了三个发展阶段 ①传统的分立式温度传感器 ②模拟集成温度传感器 ③智能温度传感器 目前的智能温度传感器(亦称数字温度传感器)是在20世纪90年代中期问世的,它是微电子技术、计算机技术和自动测试技术(ATE)的结晶,特点是能输出温度数据及相关的温度控制量,适配各种微控制器(MCU)。社会的发展使人们对传感器的要求也越来越高,现在的温度传感器正在基于单片机的基础上从模拟式向数字式,从集成化向智能化、网络化的方向飞速发展,并朝着高精度、多功能、总线标准化、高可靠性及安全性、开发虚拟传感器和网络传感器、研制单片测温系统等高科技的方向迅速发展,本文将介绍智能集成温度传感器DS18B20的结构特征及控制方法,并对以此传感器,AT89C52单片机为控制器构成的数字温度测量装置的工作

51单片机测量5V电压

数字电压表 1.实验任务 利用单片机STC89C52与ADC0809设计一个数字电压表,能够测量0-5V之间的直流电压值,四位数码显示。 2.现有元件 模数转换器ADC0804,STC89C52单片机,两个共阳极数码管。 3.硬件设计 3.1模数转换器ADC0809与单片机STC89C52的连接 (1) ADC0809规格及引脚分配图如下图3-1所示: 图3-1 ADC0809引脚图 (2) STC89C52各个引脚分布如下图3-2所示: 图3-2 STC89C52引脚图 (3) 硬件连线 (a) 把“单片机系统”区域中的P3.0与”模数转换模块ADC0809“区域中的ST端子用导线

相连接。 (b) 把“单片机系统”区域中的P3.1与”模数转换模块ADC0809“区域中的ALE端子用导线相连接。 (c) 把“单片机系统”区域中的P3.2与”模数转换模块ADC0809“区域中的OE端子用导线相连接。 (d) 把“单片机系统”区域中的P3.6与”模数转换模块ADC0809“区域中的EOC端子用导线相连接。 (e) 把“单片机系统”区域中的P3.7与”模数转换模块ADC0809“区域中的CLK端子用导线相连接。 (f) 把“模数转换模块ADC0809”区域中的ADDA、ADDB、ADDC端子用导线连接到单片机的VCC端子上。把“模数转换模块ADC0809”区域中IN7与外接输入电压相连。 (g) 把“单片机系统”区域中的P2.0-P2.7连接到“模数转换模块ADC0809”区域中D0D1D2D3D4D5D6D7端子上。 (h) 把“单片机系统”区域中的P1.0-P1.7连接到“数码管”区域中ABCDEFG端子上。把“单片机系统”区域中的P0.0-P0.1连接到“数码管”区域中12端口。 4. 电路原理图 图4 电路原理图 5. 程序设计内容 由于ADC0809在进行A/D转换时需要CLK信号,而此时ADC0809的CLK是接在单片机的P3.7口,也就是要求从P3.7输出CLK信号供ADC0809使用。因此产生CLK信号的方法就要用软件来产生。 6. C语言源程序 #include sbit ALE = P3^1; sbit ST = P3^0; sbit EOC = P3^2;

基于单片机的数字电压表

基于单片机的数字电压表 摘要:本文介绍一种基于89S52单片机的一种电压测量电路,该电路采用ICL7135高精度、双积分A/D转换电路,测量范围直流0-±2000伏,使用LCD液晶模块显示,可以与PC机进行串行通信。正文着重给出了软硬件系统的各部分电路,介绍了双积分电路的原理,89S52的特点,ICL7135的功能和应用,LCD1601的功能和应用。该电路设计新颖、功能强大、可扩展性强。 关键词:电压测量,ICL7135,双积分A/D转换器,1601液晶模块 Abstract: The introduction of a cost-based 89S52 MCU a voltage measurement circuits, the circuits used ICL7135 high-precision, dual-scoring A/D conversion circuits, measuring scope DC 0-2000 volts, the use of LCD that can be carried out with a PC serial communications. The paper focuses on providing a software and hardware system components circuit, introduced double integral circuit theory, 89S52 features ICL7135 functions and applications, LCD1601 functions and applications. the circuit design innovative, powerful, can be expansionary strong. Key Words: Digital Voltmeter ICL7135 LCD1601 89S52 1前言 数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便,还可与PC进行实时通信。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本章重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。

基于51单片机的电压表

电路原理图程序清单: //*******************************头文件及宏定义************************** * #include #define TIME0H 0x3C #define TIME0L 0xB0 #define uchar unsigned char #define uint unsigned int //******************端口设置********** #define OUTPORT P2 //ADC0809数据接口

#define LCDPORT P0 //LCD数据接口sbit SET=P1^3; //定义调整键sbit DEC=P1^4; //定义减少键sbit ADD=P1^5; //定义增加键uchar x=0; //计数器 sbit LCDRS=P3^5;// 寄存器选择信号sbit LCDRW=P3^6; //读写信号sbit LCDE=P3^7; //片选信号sbit LED1=P1^0; //下限提示灯sbit LED2=P1^1; //上限提示灯sbit START=P3^4;//ATART,ALE接口。0->1->0:启动AD转换。sbit EOC=P3^3; //转换完毕由0变1. sbit alarmflag=P1^2; sbit CLK=P3^2; //********************************全局变量***************************** unsigned int shangxian=300; //上限报警温度,默认值为38 unsigned int xiaxian=200; //下限报警温度,默认值为38 unsigned char uc_Clock=0;//定时器0中断计数bit b_DATransform=0; //启动adc0809转换时间到标志,为1是启动A/D转换bit lowflag; //下限标志bit highflag; //上限标志uchar set_st=0; //状态标志bit shanshuo_st; //闪烁间隔标志//******************************函数声明***************************** void vDelay(); // 延时函数 void vWriteCMD(unsigned char ucCommand);//把一个命令写入LCD函数void vWriteData(unsigned char ucData); //把一个数据写入LCD函数void vShowOneChar(unsigned char ucChar);//把一个字符写入LCD函数void vShowChar(unsigned char ucaChar[]); //把一组字符写入LCD函数void vShowVoltage(unsigned int uiNumber); //显示函数void vdInitialize(); //LCD初始化函数void Time0(); // 定时器0中断函数unsigned int uiADTransform(); // AD转换函数//*****外部中断0服务程序***** void int0(void) interrupt 0 { EX0=0; //关外部中断0 if(DEC==0&&set_st==1) { vDelay(); do{} while(DEC==0&&set_st==1); shangxian=shangxian-5;

基于51单片机的电压采集与显示系统设计

课程设计 题目:51单片机的电压采集与显示系统设计专业:电气工程及其自动化 班级: 学号: 学生姓名: 指导教师: 2010 年 9 月5 日

摘要 随着电子科技的不断发展与进步,电压测量成为广大电子领域中必须掌握的过程,并且对测量的精度和采集功能的要求也越来越高,而电压的测量与显示系统甚为重要。本文介绍的重点是电压数据的采集与显示系统,数据采集与通信控制采用了模块化的设计,数据采集与通信控制采用了单片机8051来实现,硬件部分是以单片机为核心,还包括模-数转换模块,显示模块,和串行接口部分,还有一些简单的外围电路。8路被测电压通过通用ADC0809模-数转换,实现对采集到的数据进行模拟量到数字量的转换,由单片机对数据进行处理,用数码管显示模块来显示所采集的结果,由相关控制器完成数据接收和显示,VB程序编写了更加明了化数据显示界面。本系统主要包括四大模块:数据采集模块、控制模块、显示模块、A/D转换模块。绘制电路原理图与工作流程图,并进行调试,最终设计完成了该系统的硬件电路。在软件编程上,采用了C语言进行编程,开发环境使用相关集成开发环境。开发了显示模块程序、通道切换程序、A/D转换程序。 关键词:单片机, ADC0809,A/D转换,模块显示电压测量 Abstract Along with the development of electronic technology progress, voltage measurement of electronic fields become broad must grasp of the process, and the accuracy of measurement and collection function requirements, and more and more is also high voltage measurement and display system is very important. This paper focuses on voltage data acquisition and display system, data collection and communication control using modular design, data collection and communication control adopted MCU 8051, hardware part is, still include singlechip mode - several conversion module, display module, and the serial interface, and some simple outer circuit. 8 and the voltage to be measured by general ADC0809 mode - and to count the collected data for analog to digital, by SCM processing of data, using a digital display module to show the tube, the related results of collecting data receiving and display controller, VB programming and the data showed that the interface. This system mainly including four modules: the data acquisition module, control module, display module, A/D conversion module. Draw circuit principle diagram and the work flow, and debugging, finally completed the system design of hardware circuit. In software programming, the C language program development environment, use the integrated development environment. Develop A display module procedures, channel switching procedures, A/D conversion program..

单片机测电压

仲恺农业工程学院 20010 —2011学年 第二学期 课程设计 课题名称:基于AT89c51单片机的数字电压表 设计时间: 2011.06.01—2011.06.9 系部:机电工程系 班级: 姓名: 指导教师: [摘要]本文介绍一种基于89c51单片机的一种电压测量电路,该电路采用ICL7135高精

度、双积分A/D转换电路,测量范围直流0-±2000伏,使用LCD液晶模块显示, 可以与PC机进行串行通信。正文着重给出了软硬件系统的各部分电路,介绍了双 积分电路的原理,89c51的特点,ICL7135的功能和应用,LCD1601的功能和应用。 该电路设计新颖、功能强大、可扩展性强。 [关键词]电压测量,ICL7135,双积分A/D转换器,1601液晶模块 第一章前言 1.1概述 目前,由各种单片机机A/D 转换器构成的测量数字电压的结构,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。本章重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。 1.2系统原理及基本框图 如图1.1所示,模拟电压经过档位切换到不同的分压电路衰减后,经隔离干扰送到A/D转换器进行A/D转换,然后送到单片机中进行数据处理。处理后的数据送到LCD中显示,同时通过串行通讯与上位机通信。 图1.1系统基本方框图 第二章硬件设计

2.1输入电路 图2.1.1量程切换开关 图2.1.2衰减输入电路 输入电路的作用是把不同量程的被测的电压规范到A/D转换器所要求的电压值。智能化数字电压表所采用的单片双积分型ADC芯片ICL7135,它要求输入电压0-±2V。本仪表设计是0-1000V电压,灵敏度高所以可以不加前置放大器,只需衰减器,如图3.1.2所示9M、900K、90K、和10K电阻构成1/10、1/100、1/1000的衰减器。衰减输入电路可由开关来选择不同的衰减率,从而切换档位。为了能让CPU自动识别档位,还要有图3.1.1的硬件连接。 2.2 A/D转换电路 A/D转换器的转换精度对测量电路极其重要,它的参数关系到测量电路性能。本设计采用双积A/D转换器,它的性能比较稳定,转换精度高,具有很高的抗干扰能力,电路结构简单,其缺点是工作速度较低。在对转换精度要求较高,而对转换速度要求不高的场合如电压测量有广泛的应用。 2.2.1双积A/D转换器的工作原理

基于单片机的数字电压表设计

引言 数字电压表(Digital Voltmeter)简称DVM,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。传统的指针式电压表功能单一、精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高、抗干扰能力强,可扩展性强、集成方便。目前,由各种单片A/D 转换器构成的数字电压表,已被广泛用于电子及电工测量、工业自动化仪表、自动测试系统等智能化测量领域,示出强大的生命力。与此同时,由DVM扩展而成的各种通用及专用数字仪器仪表,也把电量及非电量测量技术提高到崭新水平。本论文重点介绍单片A/D 转换器以及由它们构成的基于单片机的数字电压表的工作原理。

1 实训要求 (1)基本要求: ①实现8路直流电压检测 ②测量电压范围0-5V ③显示指定电压通道和电压值 ④用按键切换显示通道 (2)发挥要求 ①测量电压范围为0-25V ②循环显示8路电压 2 实训目的 (1)进一步熟悉和掌握单片机的结构和工作原理; (2)掌握单片机的借口技术及,ADC0809芯片的特性,控制方法; (3)通过这次实训设计,掌握以单片机为核心的电路设计的基本方法和技术;(4)通过实际程序设计和调试,逐步掌握模块化程序设计的方法和调试技术。 3 实训意义 通过完成一个包括电路设计和程序开发的完整过程,使自身了解开发单片机应用系统的全过程,强化巩固所学知识,为以后的学习和工作打下基础。 4 总体实训方案 测量一个0——5V的直流电压,通过输入电路把信号送给AD0809,转换为数字信号再送至89s52单片机,通过其P1口经数码管显示出测量值。 4.1 结构框图 如图1—1所示 图1—1

基于单片机电压表C语言程序

#include #include #define uchar unsigned char #define uint unsigned int sbit dula=P2^6; sbit wela=P2^7; sbit adwr=P3^6; sbit adrd=P3^7; uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d, 0x7d,0x07,0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71 }; void delayms(uint xms) { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void display (uchar shu1,uchar shu2,uchar shu3,uchar shu4,uchar shu5,uchar shu6) { dula=1; P0=0x80|table[shu1]; dula=0; P0=0xff; wela=1; P0=0x7e; wela=0; delayms(2); dula=1; P0=table[shu2]; dula=0; P0=0xff; wela=1; P0=0x7d; wela=0; delayms(2); dula=1; P0=table[shu3]; dula=0;

P0=0xff; wela=1; P0=0x7b; wela=0; delayms(2); dula=1; P0=table[shu4]; dula=0; P0=0xff; wela=1; P0=0x77; wela=0; delayms(2); dula=1; P0=table[shu5]; dula=0; P0=0xff; wela=1; P0=0x6f; wela=0; delayms(2); dula=1; P0=table[shu6]; dula=0; P0=0xff; wela=1; P0=0x5f; wela=0; delayms(2); } void main() { uchar a,A1,A2,A3,A4,A5,A6,adval; wela=1; P0=0x7f; wela=0; while(1) { adwr=1; _nop_();

基于单片机的直流电压检测系统设计_课程设计说明书

山东建筑大学 课程设计说明书 题目:基于单片机的直流电压检测系统设计课程:单片机原理及应用B课程设计 院(部):信息与电气工程学院 专业:通信工程 班级:通信111 姓名:张安珍 学号:2011081342 指导教师:张君捧 完成日期:2015年1月

目录 摘要......................................................... I I 正文.. (1) 1 设计目的和要求 (1) 3 设计内容和步骤 (2) 3.1单片机电压测量系统的原理 (2) 3.2 单片机电压测量系统的总体设计 (3) 3.2.1 硬件选择 (4) 3.2.2 软件选择 (4) 3.3 硬件电路的设计 (4) 3.3.1 输入电路模块设计 (4) 3.3.2 LM7805稳压电源电路介绍 (5) 3.3.3 显示模块电路设计 (5) 3.3.4 A/D转换设计 (7) 3.3.5 单片机模块的简介 (9) 3.4系统软件的设计 (12) 3.4.1主程序的设计 (12) 3.4.2 各子程序的设计 (14) 总结与致谢 (16) 参考文献 (17) 附录一系统整体电路图 (18) 附录二 A/D转换电路的程序 (19) 附录三 1602LCD显示模块的程序 (21)

摘要 随着电子科学技术的发展,电子测量成为广大电子工作者必须掌握的手段。对测量的精度和功能的要求也越来越高,而电压的测量甚为突出,因为电压的测量最为普遍。本设计在查阅了大量前人设计的数字电压表的基础上,利用单片机技术结合A/D转换芯片ADC0832构建了一个直流数字电压表。本文首先简要介绍了单片机系统的优势,然后详细介绍了直流数字电压表的设计流程,以及硬件系统和软件系统的设计。 本文介绍了基于89S51单片机的电压测量系统设计,介绍1602LCD液晶的功能和ADC0832的转换原理。该电路设计简单,方便。该设计可以测量0~5V的电压值,并在1602LCD液晶上显示出来。 本系统主要包括三大模块:主程序模块、显示模块、A/D转换模块,绘制点哭原理图与工作流程图,并进行调试,最终设计完成了该系统的硬件电路,在软件编程上,采用了c语言进行编程,开发了显示模块程序,A/D转换程序。 关键词:89S51单片机;1602LCD液晶;ADC0832

基于单片机的数字电压表制作——(C语言)

基于单片机的数字电压表制作——ADC0832模数转换应用程序(C语言) 主要部件:AT89S51 ADC0832 八段数码管 关键字:ADC0832程序C语言数字电压表 本文所描述的数字电压表是利用ADC0832模数转换芯片完成的。该芯片能将0~5V的模拟电压量转换为0~255级的数字量,所以本文描述的数字电压表的量程为0~5V。 以下是程序部分: 该程序是本人自编的,经测试可用,但不保证程序的可靠性及稳定性。若有转载请标明出处。 如果有同学将本程序烧写到单片机里却不能正常工作的,请注意以下三点: 1、是否将端口重新定义。每个单片机开发板的引脚连接都是不一样的,若不加修改直接把程序烧写到单片机里,那是绝对不能正常工作的。 2、是否正确选择通道值。ADC0832有两个模拟输入端口(也就是我说的通道),你要先弄清楚你用的是那个通道,并在main函数中设置相应的通道值(以CH命名的那个变量)。本程序默认使用0通道,如果0通道不行就改成1通道,反正不是0通道就是1通道。 3、如果你做的电压表在保证电路连接正确且没有以上两点问题的情况下,还是不能正常工作,请将程

序中的“if (adval == test)”这一行删掉。其实这一点我个人也不清楚到底有没有问题。我有两个单片机开发板,其中一个必须要把那一行删掉才能工作。这说明ADC0832读出的前8位与后8位数值不一样(确切的说应该是后8位反转的数值),这有悖于ADC0832的原理。我不知道到底是硬件还是软件出了问题,特此把这种现象标明。若有哪位同学知道其原因的还请多多指教。 /***********************************************************************************/ /*简易数字电压表制作——ADC0832模数转换应用程序(C语言版)*/ /*目标器件:AT89S51 */ /*晶 振:12.000MHZ */ /*编译环境:Keil uVision2 V2.12 */ /***********************************************************************************/ /*********************************包含头文件********************************/ #include #include /*********************************端口定义**********************************/ sbit CS = P3^5; sbit Clk = P3^4; sbit DATI = P3^3; sbit DATO = P3^3; /*******************************定义全局变量********************************/ unsigned char dat = 0x00; //AD值 unsigned char count = 0x00; //定时器计数 unsigned char CH; //通道变量 unsigned char dis[] = {0x00, 0x00, 0x00}; //显示数值 /*******************************共阳LED段码表*******************************/

智能仪器仪表基于单片机的电压表的设计

学号: 智能仪器原理与应用 题目基于单片机的电压表设计 班级 姓名 指导教师 年月日

目录 第1章设计背景 (1) 第2章系统总体方案设计 (2) 第3章系统硬件电路设计 (3) 3.1 系统控制器的设计 (3) 3.2 电压数据采集模块 (4) 3.3 LCD1602显示电路 (5) 3.4 按键设置模块 (6) 3.5 报警电路模块 (7) 3.6 上位机通信模块 (7) 3.7 温度采集模块 (8) 第4章软件电路设计 (9) 4.1 主程序流程图 (9) 4.2 量程自动切换子程序流程图 (9) 4.3 A/D转换子程序流程图 (10) 4.4 温度测量子程序流程图 (11) 心得体会 (12) 参考文献 (13) 附录 (14)

基于单片机的电压表设计 第1章设计背景 随着科学技术的发展,人们对宏观和微观世界逐步了解,越来越多的微弱信号需要被检测,例如:弱磁、弱光、微震动、小位移、心电、脑电等。测控技术发展到现在,微弱信号检测技术已经相对成熟,基本上采用以下两种方法来实现:一种是先将信号放大滤波,再用低或中分辨率的ADC进行采样,转化为数字信号后,再做信号处理,另一种是使用高分辨率ADC,对微弱信号直接采样,再进行数字信号处理。两种方法各有千秋,也都有自己的缺点。前一种方法,ADC要求不高,特别是现在大部分微处理器都集成有低或中分辨率的ADC,大大节省了开支,但是增加了繁琐的模拟电路。后一种方法省去了模拟电路,但是对ADC性能要求高,虽然∑-△ADC发展很快,已经可以做到24位分辨率,价格也相对低廉,但是它是用速度和芯片面积换取的高精度,导致采样率做不高,特别是用于多通道采样时,由于建立时间长,采样率还会显著降低,因此,它一般用于低频信号的单通道测量,满足大多数的应用场合。 在对采样精度要求不断提升的情况下,科技工作者也在其他方面对智能仪表的发展提出了新的要求,如:良好的人机界面、数据存储和通讯、阈值报警和较低的功耗等,同时还要求仪表具有较高的性价比。 本文主要设计的是基于单片机的量程自动选择的电压表的设计。用来精确地采集不同等级的电压表。数字电压表是采用数字化测量技术,把连续的量输入电压转换成不连续离散的数字化形式并加以显示的仪表作为现代电子测量中最基础与核心的一种测量仪器,对其测量精度和功能要求也越来越高,由于电压测量范围广特别是在微电压高电压及待测信号强弱相差极大情况下,既要保证弱信号测量精度又要兼顾强信号的测量范围,传统的手动转换量程的电压表在测量技术上有一定难度同时若量程选择不当不但会造成测量精度下降甚至损坏仪表。

相关主题
文本预览
相关文档 最新文档