光电智能定时器的设计毕业设计.docx
《光电智能定时器的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《光电智能定时器的设计毕业设计.docx(16页珍藏版)》请在冰豆网上搜索。
![光电智能定时器的设计毕业设计.docx](https://file1.bdocx.com/fileroot1/2022-12/30/08f9f64a-fa48-4106-a1cd-f1da7b5086e6/08f9f64a-fa48-4106-a1cd-f1da7b5086e61.gif)
光电智能定时器的设计毕业设计
光电智能定时器的设计
前言
人类最早使用的定时工具是沙漏或水漏,但在钟表诞生发展成熟之后,人们开始尝试使用这种全新的计时工具来改进定时器,达到准确控制时间的目的1876年,英国外科医生索加取得一项定时装置的专利,用来控制煤气街灯的开关。
它利用机械钟带动开关来控制煤气阀门。
起初每周上一次发条,1918年使用电钟计时后,就不用上发条了。
随着时代的进步电子行业的发展定时器的应用也越来越广泛但传统的定时器都是使用发条驱动式电机传动式或电钟式等机械定时器电子定时器相对传统定时器来说体积小重量轻造价低精度高寿命长而且安全可靠调整方便适于频繁使用。
电子定时器在家用电器中经常用于定时。
定时可用于:
照相定时曝光、定时闪光、定时放大、定时调速、冰箱门开定时报警等。
例如:
空调中的定时器,在工作一段时间之后便能自动切断电源停止工作。
夏季夜间使用,入睡前先顶好时间,等睡熟后到了预定时间,空调自动关机。
方便节能。
定时器除了应用于家用电器外,还广泛地用于工业农业生产和服务设施,甚至军事等。
1智能光电定时器设计
1.1定时器时间置入方式
一种是拨码开关置入方式,另一种是光电置入方式。
拨码开关置入方式,其定时的时间精度为1秒钟;有两个拨码开关,一个设置为分钟位,一个设置为秒钟位。
拨码开关还有另外一种用途,即光电置入方式定时到了,来选择音乐曲目。
光电置入方式定时的时间精度为1秒钟。
光电置入方式中,选取几种光电传感器。
含光敏电阻的电路(P1.0引脚所外接的电路)做时间置入结束的输入位;含红外光电对管的电路(P1.1引脚所外接的电路)设置为分钟的输入位;含反射式光电开关的电路(P1.2引脚所外接的电路)设置为秒钟位的输入位。
光电置入时,每置入一次,都有灯提示。
图1.1-1稳压电路
图1.1-2复位电路
图1.1-3时间置入结束电路
图1.1-4秒钟的置入电路
图1.1-5分钟的置入电路
图1.1-6指示灯电路
2智能光电定时器硬件设计
2.1电路图
图2.1-1电路图
2.2光电传感器
光电传感器的作用主要是将光信号转换为电信号,它是一种利用光敏器件作为检测元件的传感器。
光电传感器对光的敏感主要是利用半导体材料的电学特性受光照射后发生变化的原因。
即利用的是光电效应。
光电效应通常分为两类:
●外光电效应
即在光线作用下,物体内的电子受激逸出物体表面向外发射的现象。
利用这类效应的传感器主要有光电管、光电倍增管等。
●内光电效应
受光照射的物体电导率发生变化或产生光电动势的效应。
它可分为光电导效应(即电子吸收光子能量从键合状态转换为自由状态,从而引起电阻率变化)和光生伏特效应(物体在光线作用下产生一定方向的电动势)。
下面介绍一些常用的光电器件:
2.3光敏电阻
2.3.1光敏电阻的工作原理
光敏电阻是用光电导体制成的光电器件(即PC器件),又称光导管,它是基于半导体光电效应工作的。
光敏电阻没有极性,纯粹是一个电阻器件,使用时可加直流偏压,也可以加交流电压。
当它无光照时,光敏电阻值(暗电阻)很大,电路中电流很小。
当光敏电阻受到一定波长范围的光照时,它的阻值(亮电阻)急剧减少,因此电路中电流迅速增加。
光敏电阻的灵敏度易受潮湿的影响,因此要将光电导体严密封装在带有玻璃的壳体中。
光敏电阻具有很高的灵敏度,很好的光谱特性,光谱响应从紫外区一直到红外区。
而且体积小、重量轻、性能稳定。
因此得到广泛的应用。
2.3.2光敏电阻的基本特性
●伏安特性
在一定照度下,光敏电阻两端所加的电压与光电流之间的关系,称为伏安特性,在给定的偏压情况下,光照度越大,光电流也就越大;在一定光照度下,所加的电压越大,光电流越大,而且没有饱和现象。
但是不能无限制地提高电压,任何光敏电阻都有最大额定功率、最高工作电压和最大额定电流。
●光照特性
光敏电阻的光电流与光强之间的关系,称为光敏电阻的光照特性。
不同类型的光敏电阻,光照特性不同。
由于光敏电阻的光照特性呈非线性,因此它不宜作为测量元件,一般在自动控制系统中常用作开关式光电信号传感元件。
●光谱特性
光敏电阻对不同波长的光,其灵敏度不同,图1.4为硫化镉、硫化铅、硫化铊光敏电阻的光谱特性曲线。
从图中可以看出,硫化镉光敏电阻的光谱响应峰值在可见光区域,而硫化铅的峰值在红外区域。
因此,在选用光敏电阻时,应该根据光源来考虑,这样才能得到较好的效果。
●响应时间和频率特性
实践证明,光敏电阻受到脉冲光照射时,光电流并不立刻上升到最大饱和值,而光照去掉后,光电流也并不立刻下降到零。
这说明光电流的变化对于光的变化,在时间上有一个滞后,这就是光电导的弛豫现象。
它通常用到响应时间t表示。
响应时间又分为上升时间t1和下降时间t2
2.3.3光敏电阻的应用
综上所述,光敏电阻有灵敏度高、工作电流大(达数毫安)、光谱响应范围与所测光强范围宽、无极性使用方便的优点。
但有响应时间长、频率特性差、强光线性差与受温度影响大的缺点。
主要用在红外的弱光探测与开关控制。
如照相机的电子快门电路,可用于自动控制曝光时间。
2.4发光二极管
2.4.1发光二极管的结构与工作原理
发光二极管是一种注入式电致发光器件,它由P型和N型半导体组合而成。
实际是将PN结管芯烧结在金属或陶瓷底座上,然后用透明环氧树脂封装而成。
当PN结加上正向电压时,结区势垒降低,P区的空穴载流子p向N区扩散,N区的电子n向P区扩散,p与n在PN结区相遇复合释放能量而发光。
这种发光器件和白炽灯泡相比,有体积小、耐冲击、寿命长功耗低、响应快、可靠性高、颜色鲜明、易和集成电路匹配等特点,因而获得广泛应用
2.4.2发光二极管的特性
发光二极管通以正向电流,发光二极管就会发光。
发光二极管内部的晶片所用材料不同,所发出的光线的光谱(光线的频率范围)不同,因而所发光的颜色也不同。
有的发可见光的红光、绿光、黄光。
有的发不可见的红外光。
发光二极管的外部电压与电流的关系,即伏——安特性,类似于普通二极管。
其差别是,普通硅二极管的正向开启电压约为0.65V,而发光二极管的开启电压更大些。
砷化镓(GaAs)红外发光二极管的开启电压约为1.6V~1.8V;发绿光的约为2V。
开启电压还随环境温度的升高而减小。
发光二极管的反向电流
很小,约10uA~100uA。
发光二极管的反向击穿电压一般约为5V左右,最高也不超过30V。
2.4.3发光二极管的特性参数
●发光光谱
发光光谱是指发光的相对强度(或能量)随波长(或频率)变化的分布曲线。
它直接决定着发光二极管的颜色,并影响它的流明效率。
发射光谱的形成是由材料的种类、性质以及发光中心的结构决定的,而与器件的几何形状和封装方式无关。
●发光亮度与电流的关系
发光二极管的发光亮度B是单位面积发光强度的量度,这些亮度随电流密度近似成正比增加而不易饱和的管子,适合于在脉冲下使用。
因为脉冲状态工作不易发热,在平均电流与直流相等的情况下可以得到更高的亮度。
●寿命
发光二极管的寿命定义为亮度降低到原有亮度的一半时所经历的时间。
二极管的寿命一般都很长,在直流密度小于1A/cm2时,一般可达106h可,最长可达109h。
随着工作的时间加长,亮度下降的现象叫老化。
老化的快慢与工作电流密度有关。
随着电流密度的加大,老化变快,寿命变短。
●响应时间
在快速显示时,标志器件对信息反应速度的物理量叫响应时间,即指器件启亮(上升)与熄灭(衰减)时间的延迟。
实验证明,二极管的上升时间随电流的增加而近似的呈指数衰减。
它的响应时间一般是很短的,如GaAs1-xPx仅为几个ns,GaP约为100ns。
在用脉冲电流驱动二极管时,脉冲的间隔和占空因数必须在器件响应时间所许可的范围内。
2.5发光二极管的应用
2.5.1指示、照明
单个发光二极管还可以作仪器指示灯、示波器标尺、收音机刻度及钟表中的文字照明等。
目前已有双色、多色甚至变色的单个发光二极管,如英国的绛红、橙、绿三种颜色的管芯组装在一个管壳里的显示多种颜色的单个发光管。
2.5.2光源
红外发光二极管多用于光纤通信与光纤传感器中,LED作为信号光源多用在光电尺寸测量等光电检测中。
LED可用来制作光电开关、光电报警、光电遥控及光电耦合器件等。
2.6光耦合器
半导体光敏器件的重要应用之一,是与发光二极管或其他发光器件组成一种新的器件——半导体光耦合器。
光耦合器的主要功能,是利用光来实现电信号的传递。
在线路应用上,则是用光来实现级间耦合。
工作时,把电信号加到输入端,使发光器件管芯发光,而受光器件管芯在此光辐射的作用下输出光电流,从而实现电——光——电两次转换,通过光进行了输入端和输出端之间的耦合。
2.6.1光电开关
光电开关是一种特殊形式的光电耦合器件,只不过其发光部和受光部不是一个封闭的整体,它们之间可以插入被测物体。
因此当被测物体改变光路的通断状态,将引起电路的通断,起到开关和继电器的作用。
由于其通断代表了“1”、“0”信号,因而又起到了1bit的编码作用,所以也是一种最简单的编码器。
光电开关应用极广,利用它可简单方便的实现自动控制与自动检测。
最常见的光电开关由红外发光二极管和硅光敏三极管组成,按结构不同,光电开关可分为透过型和反射型两种。
2.7光敏二极管与光敏三极管
光敏二极管与光敏三极管均为近红外接收管。
这种管子把接收到的光的变化变成电流的变化,再经放大和处理,用于各种控制目的。
目前用的最广的就是红外线遥控器(遥控电视机、录像机及音响等)。
它们除了用于家用电器遥控外,还用于光纤通讯、光纤传感器、火灾报警传感器、光电转换仪器、光电耦合器、光电开关、光电读出机(自动阅卷等)等。
2.7.1光敏二极管
图2.7.1-1光敏二极管的结构图
光敏二极管的结构如图2.7.1-1所示。
其基本原理是,当光照射到P-N结上时,P-N结便吸收光能并把它转变为电能。
2.7.2光敏三极管
光敏三极管也是依靠光照射来使输出电流发生变化的器件。
可以近似的认为,光敏三极管的发射极电流或集电极电流与光强成正比。
光敏三极管与加反向偏压的光敏二极管的工作原理类似的,但是器件中有两个PN结,以便利用一般晶体管的作用得到电流增益。
2.8拨码开关
单片机系统中,人们对单片机发送命令或输入数据可以以采用键盘,键盘输入随时间都可进行,灵活性很大,给人们的操纵以很大的方便。
也正是这种灵活性给人们误操作开了方便之门。
如果某些重要的功能或数据也由键盘输入,必将因易误操作而产生一些不良后果。
因此人们常常用设定静态开关的方法来执行这些功能或输入这些数据。
静态开关一经设定,将不再改变,一直维持设定的开关状态。
通常这些开关的状态是在单片机系统加电时由CPU读入RAM中的,以后CPU将不再关注这些开关的状态,因此,即使在加电后,这些开关的状态发生变化也不会影响计算机的正常操作,只有在下一次加电时,这些新的开关状态才能生效。
数字拨码盘输出有BCD编码的四线输出和单片十位的十线输出两种方式。
十线拨码盘实际上是一种单刀十掷的转化开关,如图3.8所示。
显然这种拨盘结构简单,与8031接口时,将A端接地,0~9线与8031的有关输入口线相接,就可完成拨盘与8031的接口,当8031读入口线电平状态时,就可判断开关处于哪一个档位。
其不足是占用口线资源较多。
BCD拨码盘,是十进制数输入,BCD码输出。
它有0~9十个位置,每个位置有相应的数字显示,代表一位十进制数的输入。
而每片拨盘代表一位十进制数,n位十进制数,可用n片拨盘并联安装组成,如下图所示。
图2.8-1十线拨盘结构与三位十进制拨盘组
图2.8-2十线拨码盘与8031的接口
BCD码拨盘后面有5个接点,其中A为输入控制线,另外四根是BCD码输出线。
拨盘拨到不同位置时,输入控制线A分别与4根BCD码输出线中的某根或某几根接通,其接通BCD码输出线状态正好与拨盘指示的十进制数相一致。
例如拨盘拨到6,A与4,2接通,拨到7时,A与4、2、1接通等等。
表2.8-1BCD码拨盘的输入输出状态表
拨盘
输入
控制
端A
输出状态
8
4
2
1
0
1
0
0
0
0
1
1
0
0
0
1
2
1
0
0
1
0
3
1
0
0
1
1
4
1
0
1
0
0
5
1
0
1
0
1
6
1
0
1
1
0
7
1
0
1
1
1
8
1
1
0
0
0
9
1
1
0
0
1
3结束语
经过本次毕业设计,我学到了许多有用的东西,也积累了不少经验这次毕业设计的过程中我多次请教老师和同学,还查阅大量的资料。
通过这次程控设计使我大学三年所学知识有了一定的提高,通过这次的学习和实践将我已学的知识成系统的得到复习和巩固。
使我在以前的学习中不够清晰的概念得以清晰化,同时锻炼和培养了我的动手能力,对自己以后的工作有极大的帮助。
这段时间的学习,使我在模拟电路、数字电路和单片机方面的知识得以巩固,并使我真正接触到在系统工程开发的过程中所遇到的实际问题。
但由于才疏学浅,能力不足,加之时间和精力有限,我感觉还是有一些不足之处:
在许多内容表述、论证上存在着不当之处,与老师的期望还相差甚远。
我的毕业设计指导老师是一位治学严谨,要求严格的良师益友,在我的设计形成过程中,他从内容、结构、文字表达甚至标点符号上都严格,只不过在某些方面我还做的不够。
许多问题还有待进行一步思考和探究,万分肯切的希望老师能够提出宝贵的意见,多指出我的错误和不足之处,我将虚心接受,从而不断进一步深入学习研究,使该毕业设计得到完善和提高。
值此毕业设计完成之际,谨向给予我帮助和支持的人表示由衷的感谢。
首先,感谢我的老师XX、XX老师在我毕业设计期间给予了我悉心的指导和无私的帮助,为我提供了优良的学习环境,使我在学习方面收益匪浅。
XX老师和XX老师严谨务实的工作作风更是无时无刻不在鞭策着我奋发进取。
在完成设计的过程中,孙老师和段老师耐心的指导和讲解使我把握了正确的前进方向,少走弯路,所有的这些都是我今后工作和学习的最宝贵经验。
同时,还得感谢XX老师和XX老师在百忙之中抽出宝贵时间为我答疑解惑,在设计的修改和设计过程中向我提出许多批评和纠正。
为我的设计进行评阅工作的以上两位老师,他们无私的关心和教导使我对自己的研究内容有了更为透彻的了解。
附录
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitSCAN_FEN=P1^1;
sbitSCAN_END=P1^0;
sbitSCAN_MIAO=P1^2;
sbitSCAN_KAI=P3^2;
sbitLS=P2^0;
/***************************************************
LED位
****************************************************/
sbitLED_4=P2^4;
sbitLED_3=P2^5;
sbitLED_2=P2^6;
sbitLED_1=P2^7;
/*********************************************************
全局变量
********************************************************/
codeucharLED[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
uchara,b=20,T_F=0,T_M=0,LED_WEI[4],i=10;
bitflag=0;
/*********************************************************
延时函数
********************************************************/
voiddelay(uintm)
{
unsignedinti,j;
for(i=0;i{
for(j=0;j<20;j++)
{
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
}
}
}
/*********************************************************
显示函数
********************************************************/
voidprint(uinttime_1,uinttime_2)
{
P2|=0xf0;
LED_WEI[0]=time_1/10;
P0=LED[LED_WEI[0]];
LED_1=0;
LED_WEI[1]=time_1%10;
delay(10);
LED_1=1;
P0=LED[LED_WEI[1]];
LED_2=0;
LED_WEI[3]=time_2/10;
delay(10);
LED_2=1;
P0=LED[LED_WEI[3]];
LED_3=0;
LED_WEI[4]=time_2%10;
delay(10);
LED_3=1;
P0=LED[LED_WEI[4]];
LED_4=0;
delay(20);
}
/*********************************************************
输入函数
********************************************************/
voidSCAN(void)
{
while
(1)//等待设定好时间
{
print(T_M,T_F);
P2=0XF0;
delay(100);
if(SCAN_FEN==0)
{
while(!
SCAN_FEN)
print(T_M,T_F);//等待键释放
T_F++;
if(T_F>=60)
T_F=0;
print(T_M,T_F);
delay(100);
}
if(SCAN_MIAO==1)
{
while(SCAN_MIAO)
print(T_M,T_F);//等待键释放
T_M++;
if(T_M>=60)
T_M=0;
print(T_M,T_F);
delay(100);
}
if(SCAN_END==0)///设定时间设定结束
{
print(T_M,T_F);
TR0=1;
flag=1;
break;
}
for(i=50;i>0;i--)
print(T_M,T_F);
delay(100);
}
}
/*********************************************************
TIME
********************************************************/
voidtime_1(void)interrupt1
{
EA=0;
TH0=60;
TL0=175;
b--;
if(b==0)
{b=20;
if(T_F==0)
{
if(T_M!
=0)
{
T_M=T_M-1;
T_F=59;
print(T_M,T_F);
}
else
{
T_M=T_F=0;
ET0=0;
print(T_M,T_F);
}
}
else
T_F=T_F-1;
}
EA=1;
}
/*********************************************************
音乐
********************************************************/
voidYIN_YUE()
{
}
/*********************************************************
主函数
********************************************************/
voidmain()
{
inti;
EA=1;
TMOD=0x01;
TH0=60;
TL0=175;//11.0592650MS
ET0=1;
IT0=1;
P1=0XFF;
P1=0X00;
while
(1)
{
print(T_M,T_F);
if(SCAN_KAI==1)///开始设定时间设定
SCAN();
while
(1)
{
print(T_M,T_F);
if(SCAN_KAI==1)///重新设定时间设定
{delay(10);
if(SCAN_KAI==1)
{TR0=0;
T_M=T_F=0;
break;}
}
if(flag==1)
if(T_M==0)
if(T_F==0)
{
P2|=0x0f;
for(i=255;i>0;i--)
print(T_M,T_F);
for(i=255;i>0;i--)
print(T_M,T_F);
P2&=0xf0;
for(i=255;i>0;i--)
print(T_M,T_F);
flag=0;
}
}
}
}
参考文献:
[1]韩文波:
智能仪器毕业设计,长春理工大学光电信息学院,2011.6,P34-P46
[2]雷玉堂:
光电检测技术,中国计量出版社,2009.7,P35-P67
[3]韩丽英:
光电变换与检测技术,国防工业出版社,2010.8,P56-P74
[4]谭浩强:
C程序设计,清华大学出版社,2007.6,P45-P68
[5]赵茂泰:
智能仪器原理及应用,电子工业出版社,2009.3,P35-P56
[6]李全利:
单片机原理及接口技术.北京:
高等教育出版社,2009.9,P24-P37
[7]杨素行:
模拟电子电路,北京中央广播电视大学出版社,1994.9,P91-P95
[8]邱世安:
机电一体化技术,西安电子科技大学出版社,2004.4,P78-P81
[9]冯朵生:
变频器使用指南,北京人民邮电出版社,2006.3,P4-P12
[10]何希才:
常用集成电路应用实例,北京电子工业出版社,2007.9,P69-P72
[11]汤光华、宋涛:
电子技术,北京化学工业出版社,2005.6,P94-P99
[12]王兆安:
电力电子技术,北京机械工业出版社,2009.1,P12-P18
[13]田良:
综合电子设计与实践,南京东南大学出版社,2006.5,P1