基于单片机制作的数字电压表

上传人:乐*** 文档编号:115034548 上传时间:2019-11-12 格式:DOC 页数:9 大小:365KB
返回 下载 相关 举报
基于单片机制作的数字电压表_第1页
第1页 / 共9页
基于单片机制作的数字电压表_第2页
第2页 / 共9页
基于单片机制作的数字电压表_第3页
第3页 / 共9页
基于单片机制作的数字电压表_第4页
第4页 / 共9页
基于单片机制作的数字电压表_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《基于单片机制作的数字电压表》由会员分享,可在线阅读,更多相关《基于单片机制作的数字电压表(9页珍藏版)》请在金锄头文库上搜索。

1、基于单片机制作的数字电压表 作者: 日期:9 基于51单片机数字电压表的设计 基于51单片机数字电压表的设计摘要:本文介绍了基于STC89C52单片机为核心的,以AD0809数模转换芯片作为采样,以四位八段数码管作为显示的具有测量功能的具有一定精度的数字电压表。在实现基础功能的情况下,另外还可以扩展串行口通信,时钟,等其他一系列功能,使系统达到了良好的设计效果和要求。本课题主要解决A/D转换,数据处理及显示控制等三个模块。关键词:STC89C52;数字电压表;模数转换;数字信号Abstract:This paper introduces STC89C52 SCM as the core bas

2、ed on AD0809 analog-to-digital conversion chip, as sampled to four seven segment digital tube as display with certain with measuring function of digital voltmeter accuracy. The basic function in realizing circumstance, also can expand serial port communication, clock, and other series of function, m

3、ake the system to achieve a good design effect and requirements. This subject mainly to solve AD, data processing and display control three modules.Key words: Digital voltmeter; Frequency-field; Digital signal本设计在分析研究和总结了单片机技术的发展历史及趋势的基础上,以使用可靠,经济,精度高等设计原则为目标,设计出基于单片机的数字测量电压表。单片机有着微处理所具备的功能,它可单独地完成现

4、代工业控制所要求的智能化控制功能,这是单片机最大的特征。单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可用软件控制来实现,并能够实现智能化。由于单片机具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此,现在单片机控制范畴无所不在,例如通信产品,家用电器,智能化仪器仪表,过程控制和专用控制装置等等,单片机的应用领域越来越广泛。1 系统构成该电压表的测量电路主要由三个模块组成:A/D转换模块、数据处理模块及显示控制模块。A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。数据处理则由芯片STC89C51来完

5、成,其负责把ADC0809传送来的数字量,经一定的数据处理,产生相应的显示码送到显示模块进行显示;另外它还控制着ADC0809芯片的工作。显示模块主要由7段数码管显示测量到的电压值 系统构成框图2 系统硬件设计2.1 电源电路原理由于本系统的主控芯片是单片机,所以应提供五伏的恒流源作为单片机的基准电压。主要原理是用变压器将220V交流电压进行变压,然后经过电桥整流,将交流电变为直流电源,经过稳压管稳压,得到稳定的5V电源供单片机使用。电桥由整流二极管1N4007所搭建的电桥将交流变为直流,为了保证电源更加的平稳,减少波动分别在稳压管两端加470F滤波电容,和两个0.1F的104瓷片电容。由三极

6、稳压管7805稳压,保证有稳定的五伏电源,为了显示通电状况,有一红色发光二级管作为显示电路显示,外接限流电阻1k。原理图如图所示: 组成电桥 电源模块总原理图2.2 单片机最小系统电路 1、复位电路:复位电路为高电平复位通常在复位引脚RST上接一个电容到VCC,在连接一个电阻到GND,由此形有足够的高电平时间进行复位,随后返回到低电平进入正常的工作状态,这个电阻和电容的典型值是8.2k和10uF。 复位电路原理图2、振荡电路:STC89C52使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。

7、 51单片机引脚图2.3 A/D转换器与单片机接口电路A/D转换器主要采用ADC0809,由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在STC89C52单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。因此产生CLK信号的方法就得用软件来产生了,单片机的P0.0P0.7与A/D转换器D0D7相连,产生相应的数字量经过其输出通道D0D7传送给单片机进行处理。P3.0与A/D转换器ST相连,控制A/D转换器的启动端,P3.1与A/D转换器OE相连,控制A/D转换器的输出允许端,P3.2 与A/D转换器EOC相连, 控制转换结

8、束信号。2.4 显示电路显示电路主要由四位一体七段LED数码管组成,用于显示测量到的电压值。它是一个共阳极的数码管,每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收单片机的P1口产生的显示段码。1,2,3,4引脚端为其位选端,用于接收单片机的P2口产生的位选码。数码管 内部原理图 数码管引脚图2.5 总电路原理图:3 单片机内部程序源 C语言源程序 #include unsigned char code dispbitcode=0xfe,0xfd,0xfb,0xf7, 0xef,0xdf,0xbf,0x7f; unsigned char code dispcode=0

9、x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f,0x00; unsigned char dispbuf8=10,10,10,10,10,0,0,0; unsigned char dispcount; unsigned char getdata; unsigned int temp; long int i; 代替原来的unsigned char i; sbit ST=P30; sbit OE=P31; sbit EOC=P32; sbit CLK=P33; void main(void) ST=0; OE=0; ET0=1; ET1=1; EA

10、=1; TMOD=0x12; TH0=216; TL0=216; TH1=(65536-5000)/256; TL1=(65536-5000)%256; TR1=1; TR0=1; ST=1; ST=0; while(1) if(EOC=1) OE=1; getdata=P0; OE=0; i=getdata*196;dispbuf5=i/10000; i=i%10000; dispbuf6=i/1000;i=i%1000; dispbuf7=i/100;/*原来的:temp = getdata * 235;temp=temp/128;i=5;dispbuf0=10;dispbuf1=10;d

11、ispbuf2=10;dispbuf3=10;dispbuf4=10;dispbuf5=0;dispbuf6=0;dispbuf7=0;while(temp/10) dispbufi=temp%10;temp=temp/10;i+;dispbufi=temp; */ ST=1; ST=0; void t0(void) interrupt 1 using 0 /定时器0中断服务 CLK=CLK; void t1(void) interrupt 3 using 0 /定时器1中断服务 TH1=(65536-6000)/256; TL1=(65536-6000)%256; P1=dispcodedi

12、spbufdispcount; P2=dispbitcodedispcount; if(dispcount=5) P1=P1 | 0x80; dispcount+; if(dispcount=8) dispcount=0; 4 测试结果与误差分析 4.1 电源模块 电源模块通电后测量,显示电压值为4.98V,基本属于稳定的五伏直流电源,产生误差的原因可能是焊接问题,也可能是廉价的硬件不够精准,但基本达到预期目的。4.2 最小系统模块 经过对单片机内部程序的编写,最小系统模块可以控制流水灯的闪烁,证明单片机没有问题,最小系统性能完好,复位电路正常工作。4.3 数码管测试 将万用表调到测试档,逐个

13、点亮数码管,数码管显示没有问题,数码管正常工作。4.4 整体测试在A/D转换器上加3V电压,数码管没有显示,经过多项测试,数码管均没有显示。整体测试失败。4.5 针对问题进行讨论与分析后经过分析,可能是由于系统电流过低,无法使数码管正常点亮。于是在数码管上加上8050三极管进行放大处理,从而驱动数码管显示。连接完毕后,仍无法解决问题。于是进行软件仿真来测试电路问题。5 proteus仿真测试 仿真后效果图:经过仿真测试,证明原理图没有问题,单片机内部程序无问题,所以可能是导线有断裂,或者接触不良所产生的。6 结语 本文通过单片机和A/D转换器经过数码管显示,制作了数字电压表,虽然实验作品失败了,没有通过测试,但是经过仿真证明,数字电压表是可以实现的,以后还要进行深一步的了解

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 工学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号