简易照明线路探测仪论文Word下载.docx
《简易照明线路探测仪论文Word下载.docx》由会员分享,可在线阅读,更多相关《简易照明线路探测仪论文Word下载.docx(18页珍藏版)》请在冰豆网上搜索。
附录
(二):
程序14
一、系统方案比较与选择
本系统是由电源模块,信息处理模块,坐标识别模块,电磁感应模块,显示模块,报警模块,电缆布设板等组成。
系统组成图如下:
图1系统组成框图
1.1单片机的选择
方案一:
STC89C51单片机,操作简单,开发资源丰富,成本低,但它的功能不够丰富,需要和许多模块配合使用,如此一来,就导致了外部电路的复杂,电路也容易出错。
方案二:
STC12C5A60S2单片机,不仅运行速度快,而且片内具有丰富实用的资源,如AD转换器,PWM等,这样,我们可以直接使用单片机的内部资源,减少了对模块的使用,外部电路显得简单轻巧,电路不易出错。
通过以上两种方案的比较,两种型号单片机皆可以完成要求,但STC89C51单片机成本较S2TC12C5A60S2成本低,且易于采购,所以我们选择方案一。
1.2电源系统的方案选择
直接使用AA干电池进行供电它的结构十分简单,但是供电能力差,不易长时间供电,更换电池较为频繁。
方案二:
使用4节3.6伏铅酸锂铁电池,经电容滤波和L7805稳压后输出约5v电压。
可保证长时间稳定的输出电压。
这样可以提供持久稳定的电流,稳压后给单片机系统和其他芯片供电。
考虑到系统稳定工作的要求,所以选择方案二。
图2电源原理图
1.3感应系统的方案选择
自制电感线圈,采用电感线圈作为传感器将电流产能生的电磁场转化为电压,经运放放大电压并采用AD转换收集电压信息,来判断是否有磁场,进而判断是否有电缆存在。
根据电磁感应原理,可知变化的磁场可产生电磁场,我们利用LC谐振电路对产生的电磁波进行接收、转化、放大并进行AD转换判断有无电磁波以及电缆。
方案三:
电磁感应模块,采用霍尔传感器模块来直接检测磁场。
比较以上三种方案,方案一自制线圈的干扰太大,所获得的杂波影响太大,以及电压太小,方案三市面上的磁场传感器未能达到我们所要求的精度。
所以我们选择方案二。
1.4坐标识别系统的方案选择
红外传感器让红外传感器和磁感应器同时从第一格按顺序依次移到第四十九格中,利用红外传感器来检测和记录磁感器的检测位置,同时磁感应器检测有没有电缆,是10W的还是60W的。
最后通过显示系统分别显示出10W,60W的电缆的位置和检测时间。
按键用三个按键,按键一是10W,按键二是60W,按键三是空白键。
磁感应器从第一格按顺序依次移到第四十九格中,当感应器检测到10W的电缆线时,按下按键一,记录下他的位置;
当感应器检测到60W的电缆线时,按下按键二,记录下他的位置,当感应器没有检测到任何电缆线时,按下按键三,记录下他的位置。
以上两种方案都可以实现对电缆位置的确定,但方案二每检测一个方格就要按一次按键,操作麻烦且费时。
所以,通过对设计要求和设计人性化的综合考虑,最后,我们选择方案二。
图3电缆布设示意图
1.5显示系统的方案选择
数码管显示,数码管显示比较简单但是不能同时显示几个数据和字符。
LED点阵显示,LED点阵显示虽然能显示字符和数字,但显示效果不好,且不易编程。
LCD液晶显示,LCD液晶不但能显示字符和数字,而且显示效果较好,容易编程实现。
通过以上三种方案的比较,以及设计要求,我们选择方案三。
二、硬件设计
2.1电路设计
2.1.1电磁感应模块
电磁感应模块我们选择LC谐振电路,如下图所示,电感L可接收空间中的电磁场经谐振电容选频可获得稳定的电压,右图为等效电路图:
当LC谐振电路接受且输出电路之后我们采用三极管1815对信号进行放大处理,电路如下图所示:
当然,也可以选用运算放大器进行电压放大。
但是需要选择单电源、低噪音、动态范围达、高速运放不太容易,所示我们选择三级管进行放大。
2.1.2显示模块
为了使10W,60W的电缆的位置和检测时间能够清楚的显示,我们采用LCD1602液晶显示器,这能很好的达到题目要求。
电路图如下:
图5显示模块电路图
2.1.3蜂鸣器驱动电路
当电磁感应模块检测到电磁场时单片机接收到信号,并驱动蜂鸣器发出警报,由于蜂鸣器采用有源蜂鸣器,故蜂鸣器驱动电路如下图所示:
图5蜂鸣器模块电路图
2.2理论分析与计算
2.2.1电磁感应原理及计算
根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁波。
见下图:
图6电流周围电磁场的分布示意图
导线周围的电场和磁场,按照一定规律分布。
通过检测相应的电磁场的强度和方向可以反过来获得导线的位置,这正是我们设计简易照明线路探测仪的目的。
由毕奥-萨伐尔定律知:
通有稳恒电流I长度为L的直导线周围会产生磁场,距离导线距离为r处P点的磁感应强度为:
B
(4107TmA−1)
由此得:
B=μ0I(cosθ1−cosθ2)/4π。
r
所以,对于无限长直电流来说,上式中θ=0,θ=π,则有B=μ0I。
因此,我们可以根据B=μ0I。
来检测和分辨到底是接11W节能灯的电缆,还是接60W白炽灯的电缆。
感应磁场的分布是以导线为轴的一系列的同心圆。
圆上的磁场强度大小相同,并随着距离导线的半径r增加成反比下降。
由此,我们可以根据这个原理来检测电缆的具体位置。
示意图如下:
图7无限长导线周围的磁场强度
2.2.2坐标识别原理
本系统采用红外传感器,利用红外线在不同颜色的物体表面具有不同的反射性质的特点,在红外传感器移动的过程中不断地向地面发射红外光,当红外光遇到白色纸质地板时发生漫反射,反射光被接收管接收;
如果遇到黑线则红外光被吸收,接收管接收不到红外光。
由此过程来改变接收管的输出电压,单片机以电压的变化为依据来识别坐标。
来记录探测仪的检测位置。
图8寻迹模块电路图
三、软件设计
3.1系统软件描述
软件部分主要采用STC89C51单片机控制整个电路,通过电磁感应测量、电磁感应电压大小识别、坐标识别测量在LCD1602上显示出电缆的种类,位置和测试时间。
软件设计思路电磁感应测量电路进行实时电磁场测量将电信号经滤波、放大等送至单片机,单片机实时进行红外测线记录方格号,单片机对其进行电压转换,判断有无电磁场,当有电磁场时单片机进行记录,液晶显示方格号,并驱动蜂鸣器进行报警。
3.2程序流程图
图9程序流程图
3.3程序(见附录)
四、测试
4.1测试条件
所需测试工具有:
7×
7方格的五合板(每个方格的大小为15cm×
15cm),11W节能灯,60W白炽灯,电缆,秒表。
4.2测试方案
使制作完成的探测仪从第一格按顺序依次移到第四十九格中,当探测仪碰到电缆时,显示器会分别显示出10W,60W的电缆的位置,同时也会显示出检测所用时间。
4.3测试结果
A、60W白炽灯和11W节能灯的电缆同时测试数据如表一:
表一
显示位置
实际位置
显示时间/s
实际时间/s
第三格
3
第十格
20
第十七格
34
第二十四格
50
第三十一格
63
第三十八格
80
第四十五格
93
B、60W白炽灯的电缆同时测试数据如表二:
表二
4
22
35
55
68
83
98
C、2根电缆其间隔不小于一个方格是否有60W白炽灯带电电缆的测试数据如表三:
表三
格数
第六格
第十六格
第二十六格
第三十六格
第四十六格
有/没有(实际)
没有
有
有/没有(显示)
显示时间
5
15
28
40
49
实际时间
D、2根电缆其间隔小于一个方格是否有60W白炽灯带电电缆的测试数据如表四:
表四
第九格
第十九格
第二十九格
第三十九格
第四十九格
30
86
经过我们多次的测试,探测仪可以检测到电缆,可以完成探测要求,采集数据,并将数据显示在LCD1602液晶显示器上,在此过程中未发生错误。
五、结论
通过对简易照明线路测试仪的制作,不仅巩固了我们所学的多门知识(比如模拟电路、单片机、C语言),增强了我们的实际动手操作能力,对单片机在实际生活的应用有了更深的了解,更让我们了解到成员之间相互交流、协作互助、彼此信赖的重要性,这对我们以后的学习、工作和生活都会有很大的帮助。
总而言之,经过这次设计在各方面我们都得到了提高,很感谢老师给我们这样一次锻炼自己的机会,在以后的学习中我们会更加努力。
六.致谢
经过紧张这几天努力,以及与小组其他成员的共同协作,团结互助,终于完成了此次实验项目。
在这次设计中,我们遇到了许多突发事件和各种困难。
由于自身硬件调试经验的匮乏,在电路检测上花了很多的时间,但是通过团队的仔细分析和自我调整状态后我们终于解决了所有问题,取得了圆满的结果。
经过此次电子大赛让我们对电路的设计、调试有了深刻的印象,同时也深刻地体会到了共同协作好人团队精神的重要性,提高了我们了解问题的能力,设计中还有欠缺的方面。
本次竞赛极大的锻炼了我们各方面的能力,虽然我们遇到了很多困难和障碍,但总体上成功与挫折交替,困难与希望并存,我们将继续努力争取更大的进步,在今后的学习工作中会加以注意。
最后感谢大赛组委会给我们这次机会!
参考资料
1.郭天祥.51单片机C语言教程[M].北京:
电子工业出版社.2009.12..
2.张洪润,张亚凡主编.传感技术与应用教程清华大学出版社2005
3.康华光.电子技术基础数字部分(第五版)[M].北京:
高等驾御出版社,2006.1.
4.www.21IC.com中国电子网
程序#include<
REGX51.H>
#include<
intrins.H>
#defineucharunsignedchar
#defineuintunsignedint
sbitlcd=P2^2;
sbitlcdrs=P2^0;
sbitlcdrw=P2^1;
sbitBEE=P1^0;
sbitIN=P1^1;
sbitkey1=P1^2;
sbitkey2=P1^3;
sbitkey3=P1^4;
sbitkey4=P1^5;
voidzhong();
uchart,t1,t2,i,k,num,flag;
uchartab[50]={1,1};
//11w
uchartab1[50]={6,0};
//60w
uchartab3[];
ucharcodetab2[49]={1,2,3,4,5,6,7,
14,13,12,11,10,9,8,15,16,17,18,19,20,21,
28,27,26,25,24,23,22,29,30,31,32,33,34,35,
42,41,40,39,38,37,36,43,44,45,46,47,48,49};
voiddelay(uintz)//1ms
{uintj,l;
for(j=0;
j<
z;
j++)
for(l=0;
l<
35;
l++);
}
voidwritecom(ucharcom)
{lcdrw=0;
delay(5);
lcdrs=0;
lcd=1;
P0=com;
lcd=0;
lcdrw=1;
voidwritedate(uchardate)
lcdrs=1;
delay(5);
P0=date;
voidinit()
{lcd=0;
writecom(0x38);
writecom(0x0c);
writecom(0x06);
writecom(0x01);
ucharjiance()
{if(BEE)
{delay(30);
if(BEE)
return1;
}}
else
return0;
ucharmov()//黑线高电平
{if(IN)
{delay(150);
while(!
IN)//;
{
delay(150);
num++;
flag=1;
//flag
return1;
}
voidadd(ucharaddr)
{while((jiance())&
(flag==1))
{tab[i]=-0x10;
tab[i+1]=addr/10;
tab[i+2]=addr%10;
i=i+3;
flag=0;
break;
voidmode1()
{writecom(0x80);
for(k=0;
k<
i+6;
k++)
{if(mov())
add(tab2[num]);
writedate(tab[k]+0x30);
writecom(0xc0);
for(k=16;
writedate(tab[k]+0x30);
voidmode0()
{while
(1){
zhong();
writecom(0x80);
writedate(tab1[k]+0x30);
}
writedate(tab1[k]+0x30);
voidzhong()
{ucharr;
if((num==50)|(key1==0))
{
TR0=0;
while
(1){
//if(key4==0)
{writecom(0x80);
for(k=0;
writedate(tab[k]+0x30);
writecom(0xc0);
for(k=16;
if(key4==0)
for(k=32;
}
}
voidmain()
{ucharx;
init();
if(key==0)
x++;
switch(x)
for(i=1;
i<
8;
i++){
writedate((i+(7*x))/10+0x30);
writedate((i+(7*x))%10+0x30);
writedate((i+(8*x))/10+0x30);
writedate((i+(8*x))%10+0x30);
voidtime()interrupt1
{TH0=(65535-43000)/256;
TL0=(65535-40000)/256;
t++;
if(t==23)
{t1++;
t=0;
if(t1==60)
{t2++;
t1=0;
tab[i]=-0x10;
tab[i+1]=t2/10;
tab[i+2]=t2%10;
tab[i+3]=0x0a;
tab[i+4]=t1/10;
tab[i+5]=t1%10;
tab1[i]=-0x10;
tab1[i+1]=t2/10;
tab1[i+2]=t2%10;
tab1[i+3]=0x0a;
tab1[i+4]=t1/10;
tab1[i+5]=t1%10;