基于51单片机制作的数字电压表Word下载.docx
- 文档编号:14955304
- 上传时间:2022-10-26
- 格式:DOCX
- 页数:10
- 大小:231.82KB
基于51单片机制作的数字电压表Word下载.docx
《基于51单片机制作的数字电压表Word下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机制作的数字电压表Word下载.docx(10页珍藏版)》请在冰豆网上搜索。
Keywords:
Digitalvoltmeter;
Frequency-field;
Digitalsignal
本设计在分析研究和总结了单片机技术的发展历史及趋势的基础上,以使用可靠,经济,精度高等设计原则为目标,设计出基于单片机的数字测量电压表。
单片机有着微处理所具备的功能,它可单独地完成现代工业控制所要求的智能化控制功能,这是单片机最大的特征。
单片机控制系统能够取代以前利用复杂电子线路或数字电路构成的控制系统,可用软件控制来实现,并能够实现智能化。
由于单片机具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此,现在单片机控制范畴无所不在,例如通信产品,家用电器,智能化仪器仪表,过程控制和专用控制装置等等,单片机的应用领域越来越广泛。
1系统构成
该电压表的测量电路主要由三个模块组成:
A/D转换模块、数据处理模块及显示控制模块。
A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量再传送到数据处理模块。
数据处理则由芯片STC89C51来完成,其负责把ADC0809传送来的数字量,经一定的数据处理,产生相应的显示码送到显示模块进行显示;
另外它还控制着ADC0809芯片的工作。
显示模块主要由7段数码管显示测量到的电压值
系统构成框图
2系统硬件设计
2.1电源电路原理
由于本系统的主控芯片是单片机,所以应提供五伏的恒流源作为单片机的基准电压。
主要原理是用变压器将220V交流电压进行变压,然后经过电桥整流,将交流电变为直流电源,经过稳压管稳压,得到稳定的5V电源供单片机使用。
电桥由整流二极管1N4007所搭建的电桥将交流变为直流,为了保证电源更加的平稳,减少波动分别在稳压管两端加470μF滤波电容,和两个0.1μF的104瓷片电容。
由三极稳压管7805稳压,保证有稳定的五伏电源,为了显示通电状况,有一红色发光二级管作为显示电路显示,外接限流电阻1kΩ。
原理图如图所示:
组成电桥
电源模块总原理图
2.2单片机最小系统电路
1、复位电路:
复位电路为高电平复位通常在复位引脚RST上接一个电容到VCC,在连接一个电阻到GND,由此形有足够的高电平时间进行复位,随后返回到低电平进入正常的工作状态,这个电阻和电容的典型值是8.2k和10uF。
复位电路原理图
2、振荡电路:
STC89C52使用11.0592MHz的晶体振荡器作为振荡源,由于单片机内部带有振荡电路,所以外部只要连接一个晶振和两个电容即可,电容容量一般在15pF至50pF之间。
51单片机引脚图
2.3A/D转换器与单片机接口电路
A/D转换器主要采用ADC0809,由于ADC0809在进行A/D转换时需要有CLK信号,而此时的ADC0809的CLK是接在STC89C52单片机的P3.3端口上,也就是要求从P3.3输出CLK信号供ADC0809使用。
因此产生CLK信号的方法就得用软件来产生了,单片机的P0.0~P0.7与A/D转换器D0~D7相连,产生相应的数字量经过其输出通道D0~D7传送给单片机进行处理。
P3.0与A/D转换器ST相连,控制A/D转换器的启动端,P3.1与A/D转换器OE相连,控制A/D转换器的输出允许端,P3.2与A/D转换器EOC相连,控制转换结束信号。
2.4显示电路
显示电路主要由四位一体七段LED数码管组成,用于显示测量到的电压值。
它是一个共阳极的数码管,每一位数码管的a,b,c,d,e,f,g和dp端都各自连接在一起,用于接收单片机的P1口产生的显示段码。
1,2,3,4引脚端为其位选端,用于接收单片机的P2口产生的位选码。
数码管内部原理图
数码管引脚图
2.5总电路原理图:
3单片机内部程序源
C语言源程序
#include<
AT89C52.H>
unsignedcharcodedispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};
unsignedchardispbuf[8]={10,10,10,10,10,0,0,0};
unsignedchardispcount;
unsignedchargetdata;
unsignedinttemp;
longinti;
\\代替原来的unsignedchari;
sbitST=P3^0;
sbitOE=P3^1;
sbitEOC=P3^2;
sbitCLK=P3^3;
voidmain(void)
{
ST=0;
OE=0;
ET0=1;
ET1=1;
EA=1;
TMOD=0x12;
TH0=216;
TL0=216;
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;
TR1=1;
TR0=1;
ST=1;
while
(1)
{
if(EOC==1)
OE=1;
getdata=P0;
i=getdata*196;
dispbuf[5]=i/10000;
i=i%10000;
dispbuf[6]=i/1000;
i=i%1000;
dispbuf[7]=i/100;
/*原来的:
temp=getdata*235;
temp=temp/128;
i=5;
dispbuf[0]=10;
dispbuf[1]=10;
dispbuf[2]=10;
dispbuf[3]=10;
dispbuf[4]=10;
dispbuf[5]=0;
dispbuf[6]=0;
dispbuf[7]=0;
while(temp/10)
{
dispbuf[i]=temp%10;
temp=temp/10;
i++;
}
dispbuf[i]=temp;
*/
}
}
voidt0(void)interrupt1using0//定时器0
中断服务
CLK=~CLK;
voidt1(void)interrupt3using0//定时器1
TH1=(65536-6000)/256;
TL1=(65536-6000)%256;
P1=dispcode[dispbuf[dispcount]];
P2=dispbitcode[dispcount];
if(dispcount==5)
P1=P1|0x80;
dispcount++;
if(dispcount==8)
dispcount=0;
4测试结果与误差分析
4.1电源模块
电源模块通电后测量,显示电压值为4.98V,基本属于稳定的五伏直流电源,产生误差的原因可能是焊接问题,也可能是廉价的硬件不够精准,但基本达到预期目的。
4.2最小系统模块
经过对单片机内部程序的编写,最小系统模块可以控制流水灯的闪烁,证明单片机没有问题,最小系统性能完好,复位电路正常工作。
4.3数码管测试
将万用表调到测试档,逐个点亮数码管,数码管显示没有问题,数码管正常工作。
4.4整体测试
在A/D转换器上加3V电压,数码管没有显示,经过多项测试,数码管均没有显示。
整体测试失败。
4.5针对问题进行讨论与分析
后经过分析,可能是由于系统电流过低,无法使数码管正常点亮。
于是在数码管上加上8050三极管进行放大处理,从而驱动数码管显示。
连接完毕后,仍无法解决问题。
于是进行软件仿真来测试电路问题。
5proteus仿真测试
仿真后效果图:
经过仿真测试,证明原理图没有问题,单片机内部程序无问题,所以可能是导线有断裂,或者接触不良所产生的。
6结语
本文通过单片机和A/D转换器经过数码管显示,制作了数字电压表,虽然实验作品失败了,没有通过测试,但是经过仿真证明,数字电压表是可以实现的,以后还要进行深一步的了解和研究,同时要提高焊接技术。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 制作 数字 电压表