光电方法在线测长.docx
- 文档编号:30511675
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:11
- 大小:225.81KB
光电方法在线测长.docx
《光电方法在线测长.docx》由会员分享,可在线阅读,更多相关《光电方法在线测长.docx(11页珍藏版)》请在冰豆网上搜索。
光电方法在线测长
目录
1设计方案1
2基本原理1
1原理概述1
2光电发光——接收模块实现电路图2
3软件设计3
3实现本方案所需的基本器件4
4心得体会5
5参考文献5
6附录5
6.1电板焊接6
6.2源代码7
光电方法在线测长的设计
1设计方案
本实现方案分为三个基本模块:
稳定的发光二极管发光模块和光电二极管接收模块、单片机编程计算模块、液晶数码管显示模块。
本方案实现在线测长的基本思路:
首先假设基本前提条件是待测长物体能够通过发光管与接收管之间的部分,并在通过两个管之前运动时能够有效地挡住光电二极管接收光;另一个基本假设是物体是匀速运动,这样才能用单片机算出准确的速度。
实现的思路是,设计两个已知距离的发光——接收光系统(发光管和光电管),并且正常接收到光时输出高电平。
测量之前发光二极管正常发光,光电二极管接收光,此时发光接收模块一直输出高电平,单片机没有计时。
开始测量待测物时,物体发光——接收系统开始挡光,此时单片机开始计时挡光的时间,单片机通过定时计算待测物经过两接收系统的时间差和一只两个系统的距离算出物体的速度,再通过定时计算待测物经过其中一个接收系统的挡光时间,算出待测物的长度。
其核心部分是通过对单片机编程,定时计算物体经过接收系统的时间和速度,再通过驱动液晶显示模块显示出计算所得的待测物的长度。
2基本原理
1原理概述
通过发光管与接收管,物体运动时能够有效地挡住光电二极管接收光,物体须是匀速运动才能用单片机算出准确的速度,已知距离的发光——接收光系统正常接收到光时输出高电平,测量之前发光二极管正常发光,光电二极管接收光,此时发光接收模块一直输出高电平,单片机还未计时。
测量时,物体发光——接收系统开始挡光,单片机开始计时挡光的时间,单片机通过定时计算待测物经过两接收系统的时间差和一只两个系统的距离算出物体的速度,再通过定时计算待测物经过其中一个接收系统的挡光时间,算出待测物的长度。
单片机定时计算物体经过接收系统的时间和速度,驱动液晶显示模块显示出计算所得的待测物的长度。
图1所示为原理框图。
图1整个测长系统的原理框图
2光电发光——接收模块实现电路图
此模块包括稳压模块和两部分的发光——接收模块。
稳压模块电路如图2所示。
图2稳压模块电路
电路由最基本的发光二极管和红外二极管构成,其中通过对三极管反向偏置的方式实现对电流的放大以提高接收系统的灵敏度。
由于可见光干扰非常严重,所以二极管采用红外发光管和红外接收二极管。
电路图如下,其中通过三极管的发射机输出的信号输入到单片机的接收定时接口。
发光电路图如图3所示。
图3发光电路图
接收光电路图如图4所示。
图4接受光电路图
3软件设计
如图4中在BJT的发射极将电平信号送入单片机,单片机硬件电路和液晶显示模块的驱动电路如下图5所示。
图5单片机硬件电路和液晶显示模块的驱动电路
3实现本方案所需的基本器件
1)80C51单片机及晶体振动器等相关器件1个
2)1602液晶显示管1个
3)5v稳压电源及接地模块1个
4)1k电阻1个,4.7k电阻一个,10k电阻9个,最大值为10k左右的滑动变阻器一个
5)NPN型三极管1个
6)红外发光二极管和红外光电二极管
4心得体会
本次设计是在大三学年下学期放暑假之前完成的,花了近两周的时间才完成,中间的过程比较复杂,但是我们组四个成员齐心协力,最终还是完成了这次设计的任务。
我们的分工比较明确,我和樊恒志负责硬件电路的设计,王武和王有勇负责软件部分的设计。
我们首先我们看过电路、模拟电子技术方面的书,回顾一下模拟电路的基本知识,其次构想了本次设计的基本思路和实现方案,然后确定所需器件以及整体电路,剩下的软件部分设计就是他们两个的事情了,因为我们的单片机知识相对较薄弱,他们两个的单片机软件设计能力较强。
尽管如此,我们四个成员在硬件设计和软件设计方面都相互协作,针对出现的错误都相互讨论,直到解决了这个问题。
在焊接电路过程中,我们也出现了好几次错误,还有布线的不恰当导致了焊接的困难,这也给我们以后电路实践一点教训。
王武在单片机软件设计仿真的过程中可以准确算出待测物体的长度,但是在焊好的电路中少如软件时却出了问题,包括测出的速度不稳定等,后来经过仔细的调节硬件电路使其稳定,并且改进软件设计解决了问题,一个在线测长的设计就这样成功的完成。
在这次设计过程中,我们不仅学到了不少理论知识和实践知识,同时也明白了团队协作的重要性,在以后的学习过程中,我们将会想互帮助,共同面对难题并解决难题。
5参考文献
[1]《电子技术基础数字部分(第五版)》.康华光主编.高等教育出版社.北京.2006
[2]《单片机C语言的应用程序设计》.马忠梅等编著.北京航空航天大学出版社.北京.2006
6附录
6.1电板焊接
图6焊接面
图7电路面
6.2源代码
#include
#define uchar unsigned char
#define uint unsigned int
uchar code table[]={"the length is"};
sbit lcden=P3^0;
sbit lcdrs=P3^6;
sbit lcdrw=P3^7;
sbit d1=P3^2;
sbit d2=P2^7;
sbit d3=P2^6;
uchar num,th0,tl0;
uint t0,t1,t2,t3,t4;
void display(uint t4);
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--)
;
}
void write_com(uchar com)
{
lcdrs=0;
P2=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_data(uchar date)
{
lcdrs=1;
P2=date;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init()
{
lcden=0;
lcdrw=0;
t1=0;
t2=0;
t3=0;
t0=0;
t4=0;
write_com(0x38);
write_com(0x0e);
write_com(0x06);
write_com(0x01);
write_com(0x80);
EA=1;
EX0=1;
EX1=1;
ET0=1;
IT0=1;
TMOD=0x01;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
TR0=1;
IP=0x01;
}
void main()
{
init();
for(num=0;num<13;num++)
{
write_data(table[num]);
delay
(1);
}
while
(1);
}
void exter0() interrupt 0
{
t1=t0/10;
while(!
d1)
{
for(th0=1000;th0>0;th0--);
t3++;
t2=t3*20;
}
t4=8*t2/t1;
display(t4);
}
void timer0() interrupt 1
{
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
t0++;
}
void display(uint t4)
{uint qian,bai,shi,ge;
qian=t4/1000;
bai=t4%1000/100;
shi=t4%100/10;
ge=t4%10;
write_com(0x80+0x40);
write_data(0x30+qian);
write_com(0x80+0x41);
write_data(0x30+bai);
write_com(0x80+0x42);
write_data(0x2e);
write_com(0x80+0x43);
write_data(0x30+shi);
write_com(0x80+0x44);
write_data(0x30+ge);
write_com(0x80+0x45);
write_data('c');
write_com(0x80+0x46);
write_data('m');
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 光电 方法 在线
![提示](https://static.bdocx.com/images/bang_tan.gif)