您好,欢迎来到爱问旅游网。
搜索
您的当前位置:首页简易数字万用表设计

简易数字万用表设计

来源:爱问旅游网
简易数字万用表设计

辽 宁 工 业 大 学

单片机原理及接口技术课程设计(论文)

题目:简易数字万用表

院(系): 电气工程学院 专业班级: 测控技术与仪器 学 号: 090301020 学生姓名: 王英会 指导教师: 起止时间:2012。6。18-2012。6.29

简易数字万用表设计

课程设计(论文)任务及评语

院(系):电气工程学院 教研室: 测控技术与仪器 学 号 课程设计题目 090301020 学生姓名 简易数字万用表 设计一个能够根据测量对象不同手动进行切换的简易数字万用表。 设计任务: 1.以单片机为控制核心,实现对电阻、电流、电压的测量; 王英会 专业班级 测控091 课程设计(论文)任务 2.设计相应检测电路和切换电路; 3.采用4位数码管显示; 4.设计3个按键用于选择测量对象; 技术参数: 1.电阻测量范围:100~1MΩ; 2.电流测量范围0~1A; 3.电压测量范围0~5V; 4.电阻、电流、电压测量精度为1%。 1、布置任务,查阅资料,理解掌握系统的控制要求。(2天,分散完成) 2、选择心率检测传感器、单片机等元器件型号。(1天,实验室完成) 3、绘制硬件电路图.(1天,实验室完成) 4、按系统的控制要求,编写软件程序。(3天,分散2天,实验室1天) 5、上机调试、修改程序、答辩。(2天,实验室完成) 6、撰写、打印设计说明书(1天,分散完成) 进度计划 指导教师评语及成绩 平时: 论文质量: 答辩: 总成绩: 指导教师签字: 年 月 日 注:成绩:平时20% 论文质量60% 答辩20% 以百分制计算

I

简易数字万用表设计

摘 要

本课题介绍了一种基于单片机的简易数字电压表的设计.该设计主要由三个

模块组成:A/D转换模块,数据处理模块及显示模块.A/D转换主要由芯片ADC0804来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。数据处理则由芯片89S52来完成,其负责把ADC0804传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外,它还控制着ADC0804芯片工作.

该系统的数字电压表电路简单,所用的元件较少,成本低,且测量精度和可靠性较高。此数字电压表可以测量0—5V的1路模拟直流输入电压值,并通过一个四位一体的7段数码管显示出来。

关键字:单片机;数字电压表;A/D转换; 80S52;ADC0804

II

简易数字万用表设计

目 录

第1章 绪论 .................................... 错误!未定义书签。 第2章 课程设计的方案 ........................................ 1

2。1 概述 .................................... 错误!未定义书签。 2.2 总体方案比较 ............................. 错误!未定义书签。

第3章 硬件设计 .............................................. 11

3.1 电压采集 ................................................ 4 3.2 电流采集 ................................................ 5 3.2 电阻采集 ................................................ 6

第4章 软件设计 ............................................... 7

4。1 程序设计总方案 ......................................... 7 4。2 系统子程序设计 ......................................... 8

第5章 误差分析 ............................................... 9 第6章 课程设计总结 ......................................... 10 参考文献 ...................................................... 11

0

简易数字万用表设计

第1章 绪论

社会的发展、科技的进步,离不开电子产业的推动。电子技术的提高代表了一个国家整体的实力,各领域的高、精、尖技术的发展都需要更加精密,更加多样的电子测量仪器与之配合支持.因此,先进的测量仪器成为电子产品开发的必备条件,也是电子行业发展的重中之重。所以,对高精度便携式数字万用表的研究有着非常重要的意义。

本文主要研究了基于 AT89S52单片机的4000字简易数字万用表。设计了以AT89S52为核心处理器,以ADC0804为模数转换芯片的数字万用表的硬件及软件结构,整个硬件系统由AT89S52微处理器、模拟量输入模块、AD转换模块、显示模块四大部分组成.最后详细地介绍了系统的软件设计,以模块化设计思想提供了该数字万用表的软件设计过程,实现了包括系统程序模块、AD数据采集与处理模块、按键、液晶显示模块等.

0

简易数字万用表设计

第2章 课程设计的方案

2.1 概述

一个完备的单片机应用系统包括硬件和软件两大部分,其中硬件部分包括扩展的存储器、键盘、显示、前向通道、后向通道、控制接口电路以及相关芯片的外围电路等,软件的功能就是指挥单片机按预定的功能要求进行操作的程序。一个单片机系统只要系统的软、硬件紧密配合,协调一致,这样才是高性能的单片机系统.

矩阵式键盘一般采用扫描式识别按键,软件设计相对复杂,但占用少量的I/O口即可实现很多按键,所以得到了普遍应用。数码管在仪器仪表中有着广泛的用途,如万用表、转速表等。主要用于显示单片机的输出数据和状态等。A/D转换器主要将模拟量转换为数字量.

数字电压表主要用来准确测量电压,在实验室和生活中都得到了广泛应用.

该应用系统综合使用了矩阵键盘、LED数码动态显示、模数转换ADC0804和单片机89S52四部分,实现了数字电压表应用系统测量电压的功能.

系统采用12M晶振产生脉冲做AT89C51的内部时钟信号,通过软件设置单片机的内部定时器T0产生信号,通过按键选择八路通道中的一路,将该路电压送入ADC0804相应通道,单片机将转换后结果存到片内RAM。系统调出显示子程序,将保存结果转化为0.00-5.00V分别保存在片内RAM;系统调出显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。

2.2 总体方案比较

方案一 : 系统由硬件逻辑电路控制,并自动选择量程。此方案优点是系统反应灵敏。但缺点是硬件反馈电路设计复杂,且系统的灵活性不好,不便于调试和扩展。图 2.1为硬件实现逻辑框图.

测量 1 硬件控制电路 被测对象 简易数字万用表设计

反馈电路 图 2.1 硬件实现逻辑框图

方案二 :由单片机系统控制测量并根据测量结果由软件进行量程的自动转换。此方案优点是有良好的人机接口,可以自动调整测量参数并对测量结果进行软件校正.但此种方案的测量速度较前者要慢。图 2。1为单片机实现框图.

图 2.2 单片机实现框图

综合上面的比较,我们选取方案二.

第三章 硬件设计

先利用单片机和ADC0809设计好数字电压表(DVM),再以此为基础,并通过电流—电压(I—V)转换器、电阻—电压(R-V)转换器,把电流和电阻转换成直流电压。

2

简易数字万用表设计

3.1 电压采集

数字电压表的设计即将连续的模拟电压信号经过A/D转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。

图 3。1 ADC0804原理图

简易数字电压由测量电路由A/D转换、数据处理及显示控制等组成,电路原理图如图3.1所示。A/D转换由集成电路0804完成。

数字电压表的设计即将连续的模拟电压信号经过A/D转换器转换成二进制数值,再经由单片机软件编程转换成十进制数值并通过显示屏显示。

系统通过软件设置单片机的内部定时器INT0产生中断信号.通过0804模数转换,单片机将转换后结果存到片内RAM。系统调出转换显示程序,将转换为二进制的数据在转换成十进制数并输出到LCD显示电路,将相应电压显示出来。

3.2 电流采集

数字多用表以测量直流电压的直流数字电压表为基础,通过电流—电压(I—V)转换器,把直流电流转换成直流电压。框图如图3。3所示。

3

简易数字万用表设计

图3.3 测量电流框图

将电流转换成电压的一种简单有效方法是让被测电流Ix流过标准电阻Rx,则标准电阻12两端的电压为Ux=IxRx,测量出这个电压,便能得到被测电流的大小了. 由于运算放大器的输入阻抗非常高,因此,可以认为被测电流Ix全部留过反馈电阻Rs。同时,又由于运算放大器的增益非常大,因此运算放大器的输出电压为 Uo=IxRx (3—1) D3原理图如图3。4。 R210kR1 UBUB610R36107PortInput7Rs5R4 图 3.4 测量电流原理图 C 3。3 电阻采集 和测量电流类似,在测量电阻的时候也是以数字电压表为基础,经过电阻-电压(R—V)转换,把电阻转换成直流电压信号进行测量。框图如图五所示。 B图 3。5 测量电阻框图 4 简易数字万用表设计

在这里采用的是恒流源法,在被测的未知电阻Rx中流入已知的恒定电流Is时,在Rx上产生的电压降为U=RxIs,故通过恒定电流可实现R—V转换。

图3.6所示为利用运算放大器实现R-V转换的基本电路。被测电阻Rx和标准电阻Rx分别置于反馈电路的两支路中,当输入一个恒定电流时,Rx两端的电压为

Ux=IsRx (3—2) 由此可见,运算放大器的输出电压Ux与Rx成正比,改变Is则可改变Rx的量程。 这里选用三个量程,分别是1000Ω,5000Ω和1MΩ,电流源分别对应采用5mA,1mA和0。5mA.45原理图如图3。6。 U-3D11S05mA1mA0.5mA123SW DIP-3654Rs098U-3C14R-5R-5RxRo1013Uo 图 3。6 测量电阻原理图 第四章 软件设计 4.1 程序设计总方案 根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图4—1所示. 开始 初始化 5 A/D转换子程序 简易数字万用表设计

图4—1 数字电压表主程序框图

4.2 系统子程序设计

4.2。1 初始化程序

所谓初始化,是对将要用到的MCS_51系列单片机内部部件或扩展芯片进行初始工作状态设定,初始化子程序的主要工作是给寄存器设置初始值,等待启动信号

4。2.2 A/D转换子程序

A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数

值存入相应的内存单元,其转换流程图如图4-2所示

开始 启动转换 转换结果束? 输出转换结果 数值转换 显示 6 简易数字万用表设计

图4-2 A/D转换流程图

4。2。3 显示子程序

显示子程序采用动态扫描实现四位数码管的数值显示,在采用动态扫描显示方式时,要

使得LED显示的比较均匀,又有足够的亮度,需要设置适当的扫描频率,当扫描频率在70HZ左右时,能够产生比较好的显示效果,一般可以采用间隔10ms对LED进行动态扫描一次,每一位LED的显示时间为1ms。

第五章 误差分析

通过实验测量所得大批数据是实验的主要成果,但在实验中,由于测量仪表和人的观察等方面的原因,实验数据总存在一些误差,所以在整理这些数据时,首先应对实验数据的可靠性进行客观的评定。

误差分析的目的就是评定实验数据的精确性,通过误差分析,认清误差的来源及其影响,并设法消除或减小误差,提高实验的精确性。对实验误差进行分析和估算,在评判实验结果和设计方案方面具有重要的意义.

根据误差的性质及其产生的原因,可将误差分为:1)系统误差; 2)偶然误差;3)过失误差三种。

1.系统误差又称恒定误差,由某些固定不变的因素引起的。在相同条件下进行多次测

量,其误差数值的大小和正负保持恒定,或随条件改变按一定的规律变化。产生系统误差的原因有:1)仪器刻度不准,砝码未经校正等;2)试剂不纯,质量不符合要求;3)周围环境的改变如外界温度、压力、湿度的变化等;4)个人的习惯与偏向如读取数据常偏高或偏低,

7

简易数字万用表设计

记录某一信号的时间总是滞后,判定滴定终点的颜色程度各人不同等等因素所引起的误差.可以用准确度一词来表征系统误差的大小,系统误差越小,准确度越高,反之亦然.

2.偶然误差又称随机误差,由某些不易控制的因素造成的。在相同条件下作多次测量,

其误差的大小,正负方向不一定,其产生原因一般不详,因而也就无法控制,主要表现在测量结果的分散性,但完全服从统计规律,研究随机误差可以采用概率统计的方法。在误差理论中,常用精密度一词来表征偶然误差的大小。偶然误差越大,精密度越低,反之亦然。

3.过失误差又称粗大误差,与实际明显不符的误差,主要是由于实验人员粗心大意所

致,如读错,测错,记错等都会带来过失误差.含有粗大误差的测量值称为坏值,应在整理数据时依据常用的准则加以剔除。

综上所述,我们可以认为系统误差和过失误差总是可以设法避免的,而偶然误差是不可避免的,因此最好的实验结果应该只含有偶然误差。

第六章 课程设计总结

经过这次课设,我收获了很多,理论知识对于课程设计十分重要,如果理论知识不扎实,或者说知之甚少,那么在做课程设计的时候就毫无头绪,无从下手,因为自己不知道该从何处下手.通过这次课程设计,让我认识到理论知识的重要性,实践的成功的前提就是扎实的理论知识,没有了理论知识这个基础,实践就无从谈起,也就不懂得该如何进行实践.在今后的学习生活中,一定要注重对课本知识、理论知识的学习,一定要学好理论,为以后的实践打下坚实的基础,为以后的学习做好铺垫。实践是检验真理的标准,这句话就表明先找到真理,掌握住真理才能用实践来检验,而我首先要做的就是将理论知识学好,才能做好实践.

经过此次单片机课设,我了解到了理论知识的重要,在今后的学习中一定要加强对理论知识的学习,再也不能再出现这次课程设计的情况。

记得在课程设计的过程中,蓝老师说过,希望大家通过这次课程设计能有所获,在以后的学习和生活中能有所帮助.现在想想老师的话是那么的语重心长,谢谢老师让我能幡然醒悟,能在我迷茫的时候给我指引方向,在今后的学习中我一定将老师的话记在心中,体现在学习生活中。

8

简易数字万用表设计

9

简易数字万用表设计

参考文献

[1] 陈尚松,郭庆,雷加。电子测与仪器。第二版.北京:电子工业出版社,2009: 154—

208

[2] 美丽风,王艳秋,任国臣,汪毓铎。单片机原理及接口技术.第三版。北京:清华大学出

版社;北京交通大学出版社,2009.

[3] 张国雄。测控电路/第四版。北京:机械工业出版社,2011.

[4] 阎石.数字电子技术基础。第五版.北京:高等教育出版社,2006:524-548 [5] 康华光.电子基础技术(模拟部分)第五版。北京:高等教育出版社。2006:20-39

10

简易数字万用表设计

123456DINPUT1236Uo5Io4Ro5mA1mA0.5mA123S DU-3D11S09654SW DIP-3Rs08U-3C14R-510附录A 原理图 13UoSW DIP-3R-5RxRoS0SW-PBVCCR8C4R-2RES2R-1RES2RESET附录B 程序清单 U-2CU-1C914R-314Uo88Rs5Q1PNPP2.1P2.0Q2PNPP2.2Q3PNPP2.3R-3R10100R11100R12100VCC9Y0.1uFU2lsbDB0DB1DB2DB3DB4DB5DB6msbDB7181716151413121112345678P10P11P12P13P14P15P16P17P00P01P02P03P04P05P06P07393837363534333212345678DS1abcdeDPYafegdbcR9IoVDDCR13100CQ4PNPR1VCCU1Vin(-)Vin(+)20DS212345678abcdeDPYafegdbcDS312345678abcdeDPYafegdbcDS412345678abcdeUo6VccREF7DPYafegdb8cA-GND0.02V9fgdpdpfgdpdpfgdpdpfgdpdpVref/2INTR1945CLK-RCSRDWR12313121514INT1INT0T1T0R2CLK-INADC0804C2311918C3C1Y1CRYSTALRESET91716EA/VPX1X2RESETRDWR89S52BP20P21P22P23P24P25P26P272122232425262728P2.0P2.1P2.2P2.3BS1SW-PBS2RXDTXDALE/PPSEN10113029SW-PBS3SW-PBR7R6R5 VCCA ATitleSizeNumberRevision11 简易数字万用表设计

ORG 0000H

SJMP START ;复位后跳转

CLEARMEMIO: MOV R0,#10 ;分别给R0、R1、R2、R3赋初始值 MOV R1,#10 ;#10代表字符码“-” MOV R2,#10 MOV R3,#10 RET

START: MOV DPTR,#TAB ;把字符码初始地址赋给DPTR ACALL CLEARMEMIO ; ACALL QIDONG0 WAIT: MOV ADU-Q: MOV P3 MOV A ANL A, SETB P3 JNB P3 MOV R0,A SWAP A MOV P3,A CLR P2 SETB P2 CLR P2.5 JNB P2.6 SETB P2.7 MOV A,#0FFH MOV P1 MOV A CLR P2.7BCDZH: MOV B DIV AB MOV R1 MOV A,B MOV B MUL AB MOV B,#10,#0FFH ,A ,P3 #07H

。3 。3,LOOP1 ;

。5

。5 ;

,$ ,A ,P1

,#51

,A ; ,#2

转移到初始化模块 ;转移到启动模块

;P3是准双向口,读数前先写入1

判断单路还是循环显示 ;A内高四位第四位调换 启动START ;等待A/D转换完成 ;OE置1,允许输出 ;转换成BCD码 百位数送R1 12

简易数字万用表设计

DIV AB

MOV R2,A ;十位数送R2 MOV R3,B ;个位数送R3 LCALL DISP ;调用数据显示模块 SJMP WAIT ;跳转

LOOP1: MOV R0,#0 ;循环显示模块,先给R0置1 LOOP3: INC R0 ;通道加1 MOV A,R0

CJNE A MOV A,#00HNEXT: MOV R0 SWAP A MOV P3 CLR P2.5 SETB P2 CLR P2.5 JNB P2 SETB P2 MOV A, MOV P1 MOV A,P1 CLR P2 MOV B,#51 DIV AB MOV R1,A MOV A MOV B,#2 MUL AB MOV B DIV AB MOV R2 MOV R3 LCALL DISP SETB P2ZANTING: JNB P2,#08H,NEXT ;通道是7时,重新置0 ,A ,A 。5 。6,$ 。7 #0FFH ,A 。7 ,B ,#10 ,A ,B 。4

。4,DENGDAI ;P2。4为0,由循环进入暂停模块

13

简易数字万用表设计

SETB P3.3 JNB P3.3,LOOP3 SJMP WAIT DENGDAI: LCALL DISP LCALL DELAY SETB P3.4

JB P3.4,DENGDAI ACALL ZANTING

DISP: MOV R4LOOP: MOV A MOVC A,@A+DPTR CLR P2.3 MOV P0 LCALL DELAY SETB P2.3 MOV A MOVC A CLR P2 MOV P0 LCALL DELAY SETB P2 MOV A, R1 MOVC A, ADD A CLR P2 MOV P0,A LCALL DELAY SETB P2 MOV A MOVC A CLR P2 MOV P0 LCALL DELAY SETB P2,#0FH ,R3 ,A ,R2 ,@A+DPTR 。2 ,A 。2 @A+DPTR ,#80H 。1 。1 ,R0 ,@A+DPTR 。0 ,A 。0

14

;数字显示模块(含小数点)简易数字万用表设计

DJNZ R4,LOOP RET

DISP1: MOV R4,#0FH ;复位显示模块(无小数点) LOOP2: MOV A,R3 MOVC A,@A+DPTR CLR P2。3 MOV P0,A LCALL DELAY SETB P2 MOV A,R2 MOVC A CLR P2.2 MOV P0 LCALL DELAY SETB P2 MOV A, R1 MOVC A,@A+DPTR CLR P2.1 MOV P0 LCALL DELAY SETB P2.1 MOV A,R0 MOVC A CLR P2 MOV P0 LCALL DELAY SETB P2 DJNZ R4,LOOP2 RET

QIDONG0: SETB p2.4 JB P2.4,WAIT1 RET 。3 ,@A+DPTR ,A 。2 ,A ,@A+DPTR 。0 ,A 。0

;调用复位显示模块

;判断启动键是否按下?

15

LCALL DISP1 简易数字万用表设计

WAIT1: LCALL DISP1

ACALL DELAY ;延时

ACALL QIDONG0 ;跳转启动模块 DELAY: MOV R6,#20 ;延时模块 D1: MOV R7,#250 DJNZ R7,$ DJNZ R6,D1 RET

TAB: DB 3FH END

,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H

16

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- awee.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务