基于AT89C51的磁感强度检测计的设计毕业设计论文Word文件下载.docx
《基于AT89C51的磁感强度检测计的设计毕业设计论文Word文件下载.docx》由会员分享,可在线阅读,更多相关《基于AT89C51的磁感强度检测计的设计毕业设计论文Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。
![基于AT89C51的磁感强度检测计的设计毕业设计论文Word文件下载.docx](https://file1.bdocx.com/fileroot1/2023-1/29/0afbf4db-1313-41a1-99e8-334360c09889/0afbf4db-1313-41a1-99e8-334360c098891.gif)
ofmeasuringmagneticinductionintensity,
widelyusedinelectrical,
communication,
antielectromagneticinterference,
instrument
basedonthetheoryofelectromagneticfield,
the
magneticfluxleakage
permanentmagnetmagnetic
detectionetc..
Duetothecurrent
industry,
engineering,informationtechnology,
powerelectronic
technologyisdevelopingrapidly,
andthe
magneticinduction
intensity
detection
becomesmoreandmoreimportant.
Inaddition,duetomoderninformationtechnology,
electronictechnology,
communicationtechnology,
andthemagneticinduction
educationsubjectinCollegesanduniversities
and
university
development,
sothedemandfor
alowcost
andportable
measuringinstruments,
utilityinthelaboratory,
andsome
relativelynormal
outdoor
conditions.
Thissubjectadopts
MCUand
Holzer
integratedsensor
ofmeasuringmagneticinductionintensity,
andgivesthehardwarecircuitandsoftwareflow.The
instrumenthastheadvantagesofsimplestructure,reliableperformance.
Canbeusedtodetect
varioustypesof
magneticinduction.
keywords:
AT89C51;
magneticinductionintensity;
Holzerelement;
1.引言
基于AT89C51的磁感强度检测计的设计,本设计采用线性霍尔传感器检测磁场强度,线性霍尔原件传感器,其内部由稳压,霍尔电势发生器及信号放大器组成,用来接收磁感信号。
电路采用AT89C51的P0口读取外部AD转换芯片ADC0809第8路(来自霍尔传感器的数据)的数据,然后在12864上显示出来。
ADC0809主要是把霍尔传感器输出的模拟信号转换成数字信号后送到AT89C51的P0端口上,当系统检测到按键按下时,立刻启动外部模数转换,等待转换结束后读取转换结果,然后把数据发给12864显示出磁场强度。
当按键松开时停止。
1.1.开发背景
最早的磁场探测器已有2000
多年的历史,通过感应地球磁场辨识方向或为舰船导航。
随着现代科技的进步,磁场传感器的应用越来越广泛,磁场传感技术向着高灵敏度、高分辨率、小型化以及和电子设备兼容的方向发展。
进入21世纪,伴随着信息技术及信息产业的飞速发展、磁场强度检测在工业生产、科研、教学等行业中的起着非常重要的作用。
对于磁场强度的检测、现在市场上所出现的磁感强度检测计大多价格高,携带困难,并且不能在上位机上面显示连续的磁场强度变化。
本设计制作的磁场强度测量仪具有成本低、携带方便、体积小,测量误差小等优点,并且通过转串口芯片可以将采集到的磁场信号传送到LCD上显示。
本设计制作的磁感强度测量仪的微控器(MCU)采用各大高校教学所采用的51系列单片AT89C51,因为大家都很熟悉其原理与使用,使得使用者更容易掌握、在使用出现故障时其检修也很方便。
传感器的选择是本设计的最重要部分、现在市场上的霍尔器件有很多类型、其基本原理都相同,但是在测量磁场强度时、对霍尔器件的线性要求极高、并且要在适宜的电压范围内、输出电流要适宜、要能够具备低功耗的条件。
因此在经过大量的比较与筛选后选择了一款线性良好、工作电压低(5V)左右的霍尔传感器,并且在5V工作电压时具有非常良好的线性。
其输出电压范围也小(0----5V)这使得在A/D转换时变得容易处理,用简单的电路对传感器输出的信号处理后便可以直接送入A/D转换。
在A/D转换部分采用8位的数模转换器ADC0809,其使用外围电路简单、程序控制也相对简单,由于本设计的磁场强度测量仪器其测量数据单一,8位的A/D转换芯片就可以了。
最重要的是在成本的考虑上8位的A/D转换芯片相对便宜,并且购买方便、代码书写简单,在保证功能的前提下这是最高性价比的选择。
液晶显示部分采用12864显示,由于需要显示的内容并不多,用这块显示器件就足以完成基本的显示任务,其驱动程序简单可以减小系统软件设计的工作量和难度。
本设计由于合理的电路设计与选材,使得本系统具有低成本、低功耗、高精度、易于功能扩展等优点。
因此,本磁场强度检测仪具有较高的性能价值比和非常良好的应用前景。
1.2.开发现状
传统的磁感强度检测计是通过仪表放大器中的电路放大电路对感应电压放大,然后所得的数据在显示器上显示。
在硬件电路中做相应的不错,整体架构比较麻烦,而且是通过对霍尔电压的改变来改变数据的大小。
在这些年的发展中,因为传感器技术不断的在更新,而且单片机技术在社会中得到了很大利用。
用单片机和12864液晶显示屏组合起来的传感器架构普遍存在,因为现在的单片机有非常多的优点,他们有非常多的串口,不会受到其他的干扰,,使用范围比较大。
在这样情况下,磁感强度检测机可以很好的利用单片机和12864液晶显示器的组合完成设计。
本次设计中是用霍尔传感器做磁感强度的数据收集工作,然后通过ADC0809转换数据最后早12864液晶显示屏上显示数据。
1.3.设计意义与目的
如今,伴随着信息技术及信息产业的飞速发展、磁场强度检测在工业生产、科研、教学等行业中的起着重要的作用,广泛应用于以电磁场理论为基础的电气、通讯、抗电磁干扰、仪器漏磁、永磁体磁力检测等行业。
由于现在工业、工程、信息技术、电力电子等技术的飞速发展、对磁场的检测越来越显得重要。
另外、由于现代信息技术、电子技术、通讯技术等教育水平的发展成熟,需求一款低成本、便携的磁场强度测量仪器、并且实用于实验室、户外等一些相对正常的环境条件。
因此,在当前的实际条件下,设计出一款高性价比的磁场强度测量仪来方便各类工程技术人员以及实验室的实践研究显得尤为重要,具有十分重大的实际意义和科研价值。
1.4.设计要求
在本次设计的主要内容:
1.了解磁感强度检测计测量磁性参数原理,掌握磁感强度检测计设计的基本要求。
2.熟悉磁感强度检测计功能,选择传感器并设计信号处理电路,用绘制系统总体结构图和传感器、信号检测和控制单元电气原理图。
3.根据工作原理,绘制软件工作流程图,编写算法软件。
4.制作实验室原型。
2.系统架构
本设计是基于基于AT89C51的磁感强度检测计的设计,系统由线性霍尔传感器、信号处理电路、模数转换电路、中央处理器(微控器)及其最小系统电路、液晶显示电路、系统电源电路及键盘电路组成。
在设计中,开关按下,线性霍尔传感器开始检测到磁感强度,然后通过模数转换电路转换后,发送到单片机,最后在12864液晶显示屏上显示。
简易的系统方框图如图5所示。
2.1.系统运行概述
本实验采用线性霍尔传感器检测磁场强度,电路采用AT89C51的P0口读取外部AD转换芯片ADC0809第8路(来自霍尔传感器的数据)的数据,然后在12864上显示出来。
ADC0809主要是把霍尔传感器输出的模拟信号转换成数字信号后送到AT80C51的P0端口上,当系统检测到按键按下时,立刻启动外部模数转换,等待转换结束后读取转换结果,然后把数据发给12864显示出磁场强度。
3.系统工作原理
3.1.霍尔效应的基本原理
让导体或半导体竖起来,当电流在它上下出现时,水平方向就会出现电压,这个就是霍尔电压,这个就是所谓的霍尔效应。
由于给导线或者是半导体通电,载流子在这个范围产生的洛仑兹力的作用下就会产生霍尔效应。
,在材料的周围慢慢扩散,,这样就出现霍尔电场:
霍尔电场产生的电场力和洛仑兹力相反,它不让载流子慢慢的留存下来,只到2个力达到平衡,这样就会在擦亮的2边形成电压。
3.2.霍尔传感器原理
更据霍尔效应,我们了解到,霍尔电势的大小是由霍尔常数决定的而霍尔常数的大小又和我们实验所选用的材料有关;
I为霍尔元件的偏置电流;
B为磁场强度;
d为半导体材料的厚度。
一个固定的霍尔元器件中,在偏置电流I一定的情况下,UH是有测得的磁场强度B决定的。
一啊把你的霍尔元件有4个端口,其中两根是霍尔电压的输出端,还有一端是霍尔元件的偏置电流I的输入端。
如果2个输出段可以连接起来构成循环,霍尔电流就会出现。
在这样的情况下,设定偏置电流的大小一般是根据外部的基准电压源定的;
如果准确度要的比较准确,那么基准电压源都可以用恒流源代替
。
有些为了测量非常的精准,部分情况会在霍尔元件的传感面上装有非常容易被磁场检测到的坡莫合金;
这一些传感器的霍尔电势较大,但在0.05T的去看下出现饱满,单单就只使用在低量限、小量程的情况下。
在半导体薄片两端通以控制电流I,并在薄片的垂直方向施加磁感应强度为B的匀强磁场,则在垂直于电流和磁场的方向上,将产生电势差为UH的霍尔电压。
4.单片机部分
4.1.单片机简介
单片机,全称单片微型计算机(英语:
Single-ChipMicrocomputer),又称微控制器。
单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器(CPU)、存储器、振荡器、I/O接口、定时器/计时器等集成到一块芯片上构成的一个小而完善的微型计算机系统。
其优点是:
(1)体积小、质量轻;
(2)单片机可靠性高;
(3)处理功能强,速度快;
(4)低电压,低功耗,便于生产便携式产品;
(5)控制功能强、环境适应能力强等;
本设计是基于单片机的设计,所选用的是AT98C51单片机,下面对AT98SC51单片机进行介绍。
主要特性
·
与MCS-51兼容
4K字节可编程FLASH存储器
寿命:
1000写/擦循环
数据保留时间:
10年
全静态工作:
0Hz-24MHz
三级程序存储器锁定
128×
8位内部RAM
32可编程I/O线
两个16位定时器/计数器
5个中断源
可编程串行通道
低功耗的闲置和掉电模式
片内振荡器和时钟电路
引脚图如下图3.2.1:
3.2.1图:
AT89C51引脚图
4.2.12864LCD显示屏
12864LCD是128*64的点阵液晶模块的简称,因为在本设计中,显示的文字比较多,而汉字的格式是8*8的,普通的LCD无法显示这么多电费内容,故在本设计中选用13864LCD液晶显示器,这个液晶显示屏成本比较低,方便和各个电路连接,在本设计中,采用三线串口通信方式。
实物图与电路图如下:
实物图电路图
4.3.霍尔传感器
本设计中传感器采用的是霍尔传感器,用来检测磁场强度。
根据霍尔效应,更具半导体的特性,做出来霍尔元件,它的优点有有很多,可以轻松的检测到磁场,架构非常清晰,体积小、反应速度快,使用时间长,所以,在以后的磁场测量中得到了广泛的应用。
5.系统电路图设计
AT89C51单片机最小系统
单片机最小系统结构图,如图下图5.1.1所示。
定义:
单片机最小系统,,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统.
最小系统一般应该包括:
单片机、电源、晶振电路、复位电路。
笨设计由40管脚接+5V电压为单片机提供电源,把晶振电路,复位电路,单片机统一接起来,够成最小系统。
5.1.1图:
AT89C51单片机最小系统
6.单元电路设计
6.1.稳压电路
因为本设计所有系统都需要5V供电,故需要把外部输入的9V电源经7805稳压后得到5V稳定的电压,为整个系统提供电源。
如下图6.1.1:
6.1.1图:
稳压电路
6.2.12864显示部分
12864LCD是128*64的点阵液晶模块的简称,因为在本设计中,显示的文字比较多,而且老年公寓管理中显示信息的多样化,而汉字的格式又是8*8的,普通的LCD无法显示这么多的内容,故在本设计中选12864LCD液晶显示器,这个液晶显示屏成本比较低,方便和各个电路连接,在本设计中,采用三线串口通信方式与单片机连接。
如下图,左接12864显示电源,右接12864显示屏背光电源,12864显示屏接收P0口读取外部AD转换芯片ADC0809第8路(来自霍尔传感器的数据)的数据,在12864上显示出来。
本次设计中12864和单片机采用3线串口通信方式,如图6.2.1。
6.2.1图:
12864显示电路部分
6.3.时钟电路
时钟电路是计算机的心脏,它控制着计算机的工作节奏,可以通过提高时钟频率来提高CPU的速度,本次设计采用的晶振为16MHz。
如下图6.3.1:
6.3.1图:
时钟电路
6.4.复位电路
复位电路是一种用来使电路恢复到起始状态的电路设备,单片机系统的复位方式有:
手动按钮复位和上电复位。
本设计如下图6.4.1使用上电复位。
AT89C51的上电复位电路如下图所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。
6.4.1图:
上电复位电路
6.5.A/D转换电路部分
A/D转化电路他的全称叫做模数转换电路。
那是讲接收到的信号发散转换成可以呗单片机识别的数字信号。
A/D变换又3个部分组成:
检测信号、量化和把信号转换成数字信号。
抽样是将模拟信号在时间上离散化的过程;
量化是将模拟信号在幅度上离散化的过程;
编码是指将每个量化后的样值用一定的二进制代码来表示。
本设计中的ADC0809主要是把霍尔传感器输出的模拟信号转换成数字信号后送到AT89C51的P0端口上。
如下图6.5.1:
6.5.1图:
模数转换电路
ADC0809这个芯片的时钟是由AT89C51的定时器0提供。
6.6.滤波与抗干扰部分
滤波电路是用来减少整流输出电压中的纹波,是由电抗元器件做的,想在单片机的电压输入角加电容,就可以组合成滤波电路。
可以减少交流情况,让直流留下来,让波形保持平稳。
也可以起到抗干扰作用。
本设计滤波电路如下图6.6.1:
6.6.1:
滤波电路
7.系统软件设计
7.1.系统程序流程框图
否
8.系统的硬件调试及软件调试
8.1.硬件调试部分:
单片机应用系统的硬件调试和软件调试是分不可的,许多硬件故障是在调试软件时才发现的。
但通常是先排除系统中明显的硬件故障后才和软件结合起来调试的。
通常我们采取软件与硬件联调,然后根据实物显示出的数据在走具体的更改,当然实物调试和软件调试是可以分开的,下面为硬件调试和软件调试做简单介绍:
硬件调试分脱机调试和联机调试,脱机调试就说在系统不上电的情况下,通过其他检测设备,像万用表这些检测下电路连接的正确性,靠观察看这个电路连接是否连接正确,电路焊接有没有稀罕漏焊等情况。
联机调试可以检测出靠肉眼无法看出的故障,系统通电后,检测运行是否正常。
若不正常,及时发现问题并解决。
可以更据示波器,观察示波器上的波形等,有故障寻找原因。
8.2.软件调试部分:
软件调试主要是对程序的检测和各个分电路的检测,软件程序主要通过KeiluVision4软件来检测,保证错误率为零,对于子电路,分开来一个一个的检测,符合程序的环境。
9.附录:
9.1.系统主程序:
#include<
REG51.h>
intrins.h>
#include"
12864.h"
sbitK1=P1^7;
//按键
sbitST=P2^3;
//ST
sbitALE=P2^2;
//ALE
sbitOE=P2^1;
//OE
sbitCLK=P2^4;
//CLK
sbitEOC=P2^0;
//EOC
charADdata;
voidmain()
{
ALE=1;
ST=OE=0;
TMOD=0X02;
TH0=TL0=2;
ET0=1;
EA=1;
TR0=1;
//启动定时器为ADC0809提供时钟信号
lcdinit();
hzdisp("
张宇毕业设计"
0x81);
while
(1)
{
if(K1==0)
delay_ms(10);
while(K1!
=1)
ST=0;
ST=1;
//开始启动AD转换
while(EOC==0);
//等待转换完成
OE=1;
//输出转换数据
ADdata=P0;
//读取转换得到的数据
磁场强度="
0x88);
dispshuju(ADdata,0x8d);
}
else
"
}
voidt0(void)interrupt1using0
{
CLK=!
CLK;
9.2.12864程序:
voidlcdinit()
songzhiling(0x30);
songzhiling(0x02);
songzhiling(0x06);
songzhiling(0x0c);
songzhiling(0x01);
songzhiling(0x80);
/******************************************************************
*名称:
sendbyte()
*功能:
按照液晶的串口通信协议,发送数据
*输入:
zdata
*输出:
无
***********************************************************************/
voidsendbyte(ucharzdata)
uinti;
for(i=0;
i<
8;
i++)
if((zdata<
<
i)&
0x80)
{
SID=1;
}
else
SID=0;
SCLK=0;
SCLK=1;
/********************************************************************
write_com()
写串口指令
cmdcode
voidsongzhiling(ucharcmdcode)
CS=1;
sendbyte(0xf8);
sendbyte(cmdcode&
0xf0);
sendbyte((cmdcode<
4)&
delay_ms
(2);
write_data()
写串口数据
voidsongshuju(ucharDispdata)
sendbyte(0xfa);
sendbyte(Dispdata&
sendbyte((Dispdata<
hzkdis()
显示字符串
voidhzdisp(ucharcode*s,uchardz)
songzhiling(0x03);
songzhiling(dz);
//送显示位置
while(*s>
0)
{
songshuju(*s);
s++;
voiddelay_ms(uintzz)
uintyy=400;
if(zz>
0)
while(zz)
while(yy--);
yy=400;
zz--;
}
v