1、www.yoryu- 出品目 录绪论 1第 1 章 系统总体结构与工作原理 21.1 系统总体方案选择与说明 .21.1.1 通道转换方案设计 .21.1.2 显示部分方案设计 .21.2 系统总体方案总结 31.3 系统结构框图 .31.4 工作原理 .4第 2 章 硬件设计及计算方法 52.1 单片机的选择及时钟电路 .52.2 LED 显示器件选择 62.3 A/D 转换模块及转化电路设计 .72.3.1 ADC0804 简介 .72.3.2A/D 转换以及量程选择电路 .8第 3 章 软件设计与说明 93.1 数字电压表系统软件设计方案确定 .9第 4 章 总结 12参考文献 14附录
2、 1 系统原理图 .15附录 2 系统源程序 .16www.yoryu- 出品1绪论传统的模拟式(即指针式)电压表已有 100 多年的发展史,虽然不断改进与完善,仍无法满足现代电子测量的需要,数字电压表自 1952 年问世以来,显示强大的生命力,现已成为在电子测量领域中应用最广泛的一种仪表。数字电压表简称 DVM(Digital Voltmeter) ,它是采用数字化测量技术,把连续的模拟量(直流输入电压)转换成不连续、离散的数字形式并加以显示的仪表。智能化数字电压表则是最大规模集成电路(LSI) 、数显技术、计算机技术、自动测试技术(ATE)的结晶。一台典型的直流数字电压表主要由输入电路、A
3、/D 转换器、控制逻辑电路、计数器(或寄存器) 、显示器,以及电源电路等级部分组成。本设计采用了以单片机为开发平台,控制系采用 AT89C52 单片机,A/D 转换采用 ADC0804。系统除能确保实现要求的功能外,还可以方便进行 8 路其它 A/D 转换量的测量、远程测量结果传送等扩展功能。简易数字电压测量电路由 A/D 转换、数据处理、显示控制等组成。关键词: 单片机 AT89C52 A/D 转换 ADC0804 数据处理www.yoryu- 出品2第 1 章 系统总体结构与工作原理1.1 系统总体方案选择与说明实现数字电压表的方案很多,目前广泛采用的时基于 74 系列逻辑器件,本设计将介
4、绍基于单片机实现的方案。方案设计此设计包含两个模块,通道转换和显示部分方案。1.1.1 通道转换方案设计方案一:考虑到 ADC0804 的 8 路模拟量输入本质上也是模拟开关,因此可以利用其 8 个模拟通道中的 3 个作为通道转换器,即根据通道对应的电压测量范围确定对应的电压方法倍数设计对应的放大电路。方案二:利用手动开关实现通道转换。该方案可简化控制程序,消减系统开销。缩短反应时间,不足之处在于操作麻烦。综上所述:方案二所需元件少、成本低且易于实现,则选此方案。1.1.2 显示部分方案设计方案一:单片机的 P0 口接 74HC573 芯片来驱动四位数码管方案二:直接用单片机的 P1、P2 口
5、驱动数码管,此处把ADC0804 的输出端接 P1 口 ,因为 P1 口能够驱动数码管。综上所述,两个方案都可行,但方案一所需方便快捷,则选择www.yoryu- 出品3此方案。1.2 系统总体方案总结根据数字电压表的功能实现要求,选用 AT89C51 单片机作控制系统 ,低电压经放大器选用 OPA820 实现放大 10 倍、高电压经大电阻分压从而控制输入 ADC0804 的信号在 2V 左右实现 AD 转换经AT89C51 接 74HC573 送入 LED 显示。其精度和显示可以精确控制,且电路相对简单成本低,稳定性较高,故采用此设计。1.3 系统结构框图根据项目要求,确定该系统的设计方案,
6、图 1-3-1 为该系统设计方案的结构框图。硬件电路由 6 各部分组成,即单片机、时钟电路、复位电路、LED 显示电路、A/D 装唤器和测量电压输入电路。www.yoryu- 出品4电源L E D单片机输入A D 转换复位电路电压转换档位选择图 1-3-1 系统结构框图1.4 工作原理对待测模拟电压值按不同的范围,分为 200mv、2v、20v、200v四个档位,对于高于 2V 的档位,采用高电阻分压电路,等比例转换为 05V 的电压值,对于 200mv 档位,等比例放大 10 倍左右,再将电压送入 AD 进行转换,再将处理的信号送入单片机进行处理并显示。 在本系统设计中采用 AT89C51
7、单片机的端口 P1.0 P 1.7 作为 4 位 LED 数码管的显示控制, P2.0 P 2.2 锁存器端口控制。P 2.3 P 2.6 作为档位识别控制端口。P3 作为 AD 输入端口,P0 作为 AD 转换控制端口。AT89C51 单片机的晶体振荡器振荡频率为 11.0592MHz 。4 位www.yoryu- 出品5LED 数码管的采用动态显示方式显示。两个 74HC573 控制 4 位 LED数码管的段和位显示。www.yoryu- 出品6第 2 章 硬件设计及计算方法根据设计要求与思路,确定该系统的设计方案。硬件电路由 5个部分组成,即单片机时钟电路、复位电路、4 位显示器电路、A
8、/D转换电路和键盘及测量电路。2.1 单片机的选择及时钟电路根据初步设计方案的分析,设计这样一个简单的应用系统,可以选择带有 EPROM 的单片机,应用程序直接存储在片内,不用在外部扩展程序存储器,电路可以简化。此电路选择 Atmel 公司生产的AT89C51。AT89 系列与 MCS-51 系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。它以较小的体积、良好的性价比倍受青睐。单片机工作的时间基准是由时钟电路提供的。在单片机的 XTAL1 和 XTAL2 两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路,
9、如图 2-1-1 所示。图 2-1-1 单片机的时钟电路www.yoryu- 出品7电路中,电容 C1 和 C2 对震荡电路有微调的作用,通常的取值范围位(30+10)pF。石英晶体选择 6MHz 或 12MHz 都可以,其结果只是机器周期时间不同,影响计数器的计数初值,此设计取12MHz。本设计使用的是 CLOCK 时钟脉冲触发。2.2 LED 显示器件选择单片机应用系统中,通常都需要进行人机对话。这包括人对应用系统的状态干预与数据输入,以及应用系统向人们显示运行状态与运行结果。显示器、键盘电路就是用来完成人机对话活动的人机通道。图 2-2-1 LED 显示管脚LED 显示器的驱动是一个非常
10、重要的问题,由图 2-2-1 可知,显示电路由 LED 显示器、段驱动电路和位驱动电路组成。用AT89C51 单片机的端口 P1.0 P 1.7 作为 4 位 LED 数码管的显示控制。www.yoryu- 出品82.3 A/D 转换模块及转化电路设计A/D 转换器的功能是将模拟量转换为与其大小成正比的数字量信号。能实现这种转换的原理和方法很多,此设计采用 ADC0804 转换器。ADC0804 是属于连续渐进式的 A/D 转换器,这类型的 A/D 转换器除了转换速度快(几十至几百 us) 、分辨率高外,还有价钱便宜的优点,普遍被应用于微电脑的接口设计上。2.3.1 ADC0804 简介ADC
11、0804 的管脚图如图 2-3-1 所示图 2-3-1 ADC0804 管脚图它的主要电气特性如下:工作电压:5V,即 VCC5V。模拟输入电压范围:05V,即 0Vin5V。分辨率:8 位,即分辨率为 1/28=1/256,转换值介于 0255 之间。转换时间:100us(f CK640KHz 时) 。转换误差:1LSB。参考电压:2.5V,即 Vref2.5V。www.yoryu- 出品92.3.2A/D 转换以及量程选择电路集成摸数转换芯片 ADC0804 实现的 A/D 转换电路被测信号由ADC0804 模拟输入端输入,完成 A/D 转换后送入单片机,经相应处理后送出显示。系统硬件电路
12、设计,对待测模拟电压值按不同的范围,分为 200mv、2v、20v、200v 四个档位,对于高于 2V 的档位,采用高电阻分压电路,等比例转换为 05V 的电压值,对于 200mv档位,等比例放大 10 倍左右,再将电压送入 AD 进行转换,再将处理的信号送入单片机进行处理并显示,量程选择方式:手动。具体电路如图 2-3-2 所示。图 2-3-2 A/D 转换以及量程选择电路www.yoryu- 出品10第 3 章 软件设计与说明进行应用软件设计时可以采用模块化结构设计,其优点是:每个模块的程序结构简单,任务明确,易于编写、调试和修改;程序可读性好,对程序的修改可局部进行,其他部分可以保持不变
13、,易于功能扩充和版本升级;易于使用频繁的子程序可以建立子程序,便于多个模块调用;便于分工合作,多个程序员同时进行程序的编写和调试工作,加快软件研制进度。3.1 数字电压表系统软件设计方案确定(1)根据设计要求,根据系统所要完成的功能,设计如图 3-1-1所示的功能模块。 。 。 。 。AD图 3-1-1 数字电压表软件设计的模块www.yoryu- 出品11(2)程序的设计主程序的设计 主程序的内容一般包括:主程序的起始地址、中断服务额程序的起始地址、有关内存单元及相关部件的初始化和一些子程序调用等。根据设计要求,设计出如图 3-1-2 所示的主程序流程图。A/D。图 3-1-2 主程序流程图
14、 A/D 转换子程序的设计 A/D 转换程序的功能是采集数据,再整个系统设计中占有很高的地位。当系统置好后,单片机扫描转换结束管脚 P2.6 的输入电平状态,当输入为高电平则转换完成,将转换的数值转换并显示输出。若输入为低电平,则继续扫描。程www.yoryu- 出品12序流程图如图 3-1-3 所示。YN图 3-1-3 A/D 转换子程序流程图数码转换及显示子程序的设计 由于人们日常习惯使用十进制数,而计算机的键盘输入、输出以及显示常采用二进制编码的十进制数(即 BCD 码)或 ASCII 码。因此,在程序设计中经常要进行数码转换。 www.yoryu- 出品13第 4 章 总结这一次的课程
15、设计是大学生活最后一次课程设计,我觉得是十分有意义的,首先它可以检验我们在大学中学到的理论知识是否可以化为实践,其次这次课程设计为之后的毕业设计打下了基础。 此次智能仪器仪表课程设计,我做的是数字电压表这个基础的设计,虽然该设计十分简单,但是上课所学的很多知识都能应用在这个电压表设计中。确定课设内容后,我查找大量相关材料,然后知识汇总,把有关课题的内容经过对比与分析,最后来完成课程设计。电压测量在很多参考书上都有介绍,但运用到软件中时,出现各种不同的错误,在参考别人的程序时,在老师的指导下,根据书本上所讲的有关知识点加以改进,编了一个新的程序,来实现功能。编程我运用的是 C 语言来说,C 语言
16、在很多领域的功能都很强大使用 C 语言,感觉比较简洁清晰,函数关系较为清晰,并可以减少程序的冗长。通过这次课程设计我也发现了自身存在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣,我想这将对我以后的学习产生积极的影响。总体来说,这次实习使我受益匪浅。在摸索该如何设计电路使之实现所需功能的过程中,特别有趣,培养了我的设计思维,增加了实际操作能力。在让我体会到了设计电路的艰辛的同时,更让我www.yoryu- 出品14体会到成功的喜悦和快乐。通过这两个星期的学习让我把书本上的知识转换成实际可操作的东西,虽然也做过
17、实验,但课程设计这种系统和具有一定规模收获是更多的。三周的设计完满结束了,经过自己的努力和同学的帮忙终于有了成果,特别离不开指导老师李老师悉心教导,相信他的工作作风和知识筑成都是我们学习榜样,给我很大的启迪。感谢这些老师不畏辛劳,热心精心的指导。在这里向他们说声谢谢,你辛苦了。www.yoryu- 出品15参考文献1 彭为等.单片机典型系统设计实例精讲M.北京:电子工业出版社,20062 张毅刚等。单片机原理与应用设计M.北京:电子工业出版社,2008 3 王迎旭.单片机原理与应用.北京:机械工业出版社,2004.74 周向红.51 系列单片机应用与实践教程.北京:北京航空航天大学出版社,20
18、08.55 刘国荣.单片机微型计算机技术.北京:机械工业出版社,19966 周坚.单片机轻松入门(第 2 版).北京:北京航空航天大学出版社,2009.1www.yoryu- 出品16附录 1 系统原理图OE1D12D23D34D45D56D67D78D89GND10LE1Q812Q713Q614Q515Q416Q317Q218Q119VC20U19 54ACT573WOE1D12D23D34D45D56D67D78D89GND10LE1Q812Q713Q614Q515Q416Q317Q218Q119VC20U20 54ACT573WVCDULAVCWELAP0 P01 P02 P03 P04
19、 P05 P06 P07LED1 LED2 LED3 LED4A FB GC DPD EP0 P01 P02 P03 P04 P05 P06 P07P1.0/T21P1.1/T2EX2P1.23P1.34P1.45P1.56P1.67P1.78RST9P3.0/RxD10P3.1/TxD1P3.2/INT012P3.3/INT113P3.4/T014P3.5/T115P3.6/WR16P3.7/RD17XTAL218XTAL119VS20P2.0/A821P2.1/A92P2.2/A1023P2.3/A124P2.4/A1225P2.5/A1326P2.6/A1427P2.7/A1528PSE
20、N29ALE30EA/VP31P0.7/AD732P0.6/AD63P0.5/AD534P0.4/AD435P0.3/AD336P0.2/AD237P0.1/AD138P0.0/AD039VC40U24AT89S5212 Y71.0592MHZ1 2 3 4 5 6 7 8 9R48 10KC31 30PF C3 30PFC32 10UFRESTR47 1K R49 10KVCVCVC P0 P01 P02 P03 P04 P05 P06 P07 P10 P1 P12 P13 P14 P15 P16 P17RSTCS RD WRCS RD WRPSEN ALEVCABCDEFGDP。11a 2
21、g 82435b 647dp 10c 9d 11e 12f 3。R1 。CS1RD2WR3CLKIN4INTR5VIN+6VIN-7AGND8VREF/29DGND10DB71DB612DB513DB414DB315DB216DB117DB018CLKR19VC20R12 ADC0804VCR? 10KR? 10KR? 90KR? 10 R? 10KR? 10KC? 0.1UC? CAPC? 0.8UC? 150P C? CAPVCD? DIODED? DIODE D? DIODEAR? OPA36ND? 1N473AD? 1N473AVCR?90KR?8.2KR?1K R?10KR? SW-
22、4WAYR? SW-4WAYDULA WELAwww.yoryu- 出品17附录 2 系统源程序#include#includesbit adcs=P20;sbit adrd=P21;sbit adwr=P22;sbit duanla=P26;sbit weila=P27;sbit v1=P30;sbit v2=P31;sbit v3=P32;sbit v4=P33;unsigned long int adval;unsigned char qian,bai,shi,ge,a;/段低电平有效,位高电平有效unsigned char www.yoryu- 出品18table=0xc0,0xf9,
23、0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,/不带小数点0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10, ;/带小数点编码void delay(unsigned int z) /延时函数unsigned char x,y;for(x=z;x0;x-);for(y=110;y0;y-);main()for(;)adcs=0;adwr=1;_nop_();adwr=0;_nop_();adwr=1;www.yoryu- 出品19for(a=10;a0;a-)P1=0xff;adrd=1;_nop_();adrd
24、=0;_nop_();adval=P1;adrd=1;if(v1=0) /2v 档位adval=500*adval/256;qian=adval/1000;bai=adval/100%10;shi=adval%100/10;ge=adval%10;weila=1;P0=0x01;weila=0;P0=0xff;duanla=1;www.yoryu- 出品20P0=0xff;duanla=0;delay(65535);delay(65535);weila=1;P0=0x02;weila=0;P0=0xff;duanla=1;P0=tablebai+10;duanla=0;delay(65535)
25、;delay(65535);weila=1;P0=0x04;weila=0;P0=0xff;duanla=1;P0=tableshi;duanla=0;delay(65535);delay(65535);www.yoryu- 出品21weila=1;P0=0x08;weila=0;P0=0xff;duanla=1;P0=tablege;duanla=0;delay(65535);delay(65535);else if(v2=0) /20v 档位adval=500*adval/256;qian=adval/1000;bai=adval/100%10;shi=adval%100/10;ge=ad
26、val%10;weila=1;P0=0x02;weila=0;P0=0xff;duanla=1;www.yoryu- 出品22P0=tablebai;duanla=0;delay(65535);delay(65535);weila=1;P0=0x04;weila=0;P0=0xff;duanla=1;P0=tableshi+10;duanla=0;delay(65535);delay(65535);weila=1;P0=0x08;weila=0;P0=0xff;duanla=1;P0=tablege;duanla=0;delay(65535);delay(65535); www.yoryu-
27、出品23else if(v3=0) /200v 档位adval=500*adval/256;qian=adval/1000;bai=adval/100%10;shi=adval%100/10;ge=adval%10;weila=1;P0=0x02;weila=0;P0=0xff;duanla=1;P0=tablebai;duanla=0;delay(65535);delay(65535);weila=1;P0=0x04;weila=0;www.yoryu- 出品24P0=0xff;duanla=1;P0=tableshi;duanla=0;delay(65535);delay(65535);w
28、eila=1;P0=0x08;weila=0;P0=0xff;duanla=1;P0=tablege;duanla=0;delay(65535);delay(65535);else if(v4=0) /200mv 档位adval=500*adval/256;qian=adval/1000;bai=adval/100%10;shi=adval%100/10;ge=adval%10;www.yoryu- 出品25weila=1;P0=0x02;weila=0;P0=0xff;duanla=1;P0=tablebai;duanla=0;delay(65535);delay(65535);weila=
29、1;P0=0x04;weila=0;P0=0xff;duanla=1;P0=tableshi;duanla=0;delay(65535);delay(65535);weila=1;P0=0x08;weila=0;P0=0xff;duanla=1;P0=tablege;duanla=0;www.yoryu- 出品26delay(65535);delay(65535);else /空档显示weila=1;P0=0x02;weila=0;P0=0xff;duanla=1;P0=table0;duanla=0;delay(65535);delay(65535);weila=1;P0=0x04;weila=0;P0=0xff;duanla=1;P0=table0;duanla=0;delay(65535);delay(65535);weila=1;www.yoryu- 出品27P0=0x08;weila=0;P0=0xff;duanla=1;P0=table0;duanla=0;delay(65535);delay(65535);