初级组杨一聪LED旋转灯论文Word格式文档下载.docx
- 文档编号:20280357
- 上传时间:2023-01-21
- 格式:DOCX
- 页数:14
- 大小:203.65KB
初级组杨一聪LED旋转灯论文Word格式文档下载.docx
《初级组杨一聪LED旋转灯论文Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《初级组杨一聪LED旋转灯论文Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。
12
7.本次试验所用元件·
13
1.LED旋转灯在实际中的意义
LED特点和优点
LED的内在特征决定了它是最理想的光源去代替传统的光源,它有着广泛的用途。
体积小
LED基本上是一块很小的晶片被封装在环氧树脂里面,所以它非常的小,非常的轻。
耗电量低
LED耗电非常低,一般来说LED的工作电压是2-3.6V。
工作电流是0.02-0.03A。
这就是说:
它消耗的电不超过0.1W。
使用寿命长
在恰当的电流和电压下,LED的使用寿命可达10万小时
高亮度、低热量
环保
LED是由无毒的材料作成,不像荧光灯含水银会造成污染,同时LED也可以回收再利用。
坚固耐用
LED是被完全的封装在环氧树脂里面,它比灯泡和荧光灯管都坚固。
灯体内也没有松动的部分,这些特点使得LED可以说是不易损坏的。
LED与其他灯的对比
LED灯的光谱几乎全部集中与可见光频段,其发光效率可达80~90%。
将LED灯与普通白炽灯、螺旋灯及T5三基色荧光经行对比,结果显示:
普通白炽灯的光效为121m/W,寿命小于8000小时,T5荧光灯则为961m/W,寿命大于100000小时有人还预测,未来的LED灯寿命上限将无穷大。
由于LED灯的种种优势,使得其在现在的各个领域里运用越来越广泛。
2.显示原理
旋转灯是利用视觉暂留效应设计出来的,物体在快速运动时,当人眼看到的影像消失后,人言仍能继续保留其影像0.1—0.4秒左右的图像,这种现象被称为视觉暂留现象。
是人眼具有的一种性质。
人眼观看物体时,成像于视网膜并由视神经输入人脑,感觉到物体的像。
但当物体移去时,视神经对物体的印象不会立即消,而要延续0.4秒的时间,人眼的这种性质被称为“眼睛的视觉暂留”。
假设我们设定我们的眼睛的暂留时间为0.4秒,如果我们的16个LED旋转一周的时间快过0.4秒,那么我们看到的图像就是这一列LED在各个位置显示的图像的叠加。
如果我们用定时器把LED旋转一周各个位置分割出180份,让它在相应的位置显示相应的图像,那么我们就可以得到一个累加的图像效果了。
3.系统硬件电路的设计
3.1硬件系统框图
3.2硬件基本架构
由两大部分组成:
底板和旋转板。
底板安装电机、电源、红外发射管及开关,旋转板安装单片机、LED、红外接收管等。
底板采用两组电源,一组单独为电机供电,另一组为其他元件供电。
3.3显示模块说明
为了展现字体的不同颜色,达到五彩
缤纷的效果,这里我们采用双色的LED,
双色LED有三个管脚,最长的管脚接VCC,
另两个管脚接单片机的I/O口。
接单片机
的两个管脚长短也不同,较长的接P1,
较短的接P2。
本设计采用8个并排双色
LED,利用人眼的“视觉暂留效应”
显示文字及图案。
如图所示。
3.4红外说明
对射式U型槽光耦
具有相应速度快,驱动简
单,安装容易,易于单片
机通信等特点。
如图所示,
当上电之后,光耦的光敏三极管的集电极时输出低电平,当有物体挡住了光敏三极管感应的红外光线时,光敏三极管的集电极和发射极处于高阻态,所以集电极输出高电平,当光敏三极管再次感应到红外光源的时候,集电极再次输出低电平,从而给单片机一个中断信号。
接收管装在旋转灯的末端,发射管则安装在底板上。
4相关的电路图
4.1单片机引脚图
4.2电源转换图
4.3复位电路图
4.4晶振
5程序的设计
5.1程序设计的分析
由于电机的转速不均匀,只根据时间来确定led灯的位置就显得不切实际,肯定会由于误差而打乱显示的字符。
这里我们采用自适应的算法,让led的闪亮频率与旋转的频率同步。
此自适应的算法在外部中断里面处理,先给定时器T0一个合适的初值,通过定时器T0处理程序给T0的中断的次数计数,当旋转一周完成后,根据实际中断次数与预设的180比较,根据比较结果,在外部中断处理程序中对T0的初值进行修正,直到定时器T0的中断次数达到180为止。
如此一来就如同有一个反馈信号一样,在不停的反馈的调节定时器的初值,旋转一周所产生的中断次数始终保持在设定的180,这样就可以稳定地在某个地方显示内容了。
而且整个调节过程是动态的,程序中并不需要知道旋转一周的具体时间值。
算法用了一个很简单的数学公式:
k=k+(s-180)
当s>
180时,修正值k增大,使定时器T0的时间值增大,随之s值减小。
当s<
180时,修正值k减小,使定时器T0的时间值减小,随之s值增大。
当s=180时,修正值不产生变化。
5.2完整的C程序
5.2.1程序流程图
5.2.2源程序
##########程序##########
显示内容:
华工AUTO显示功能:
滚动改变颜色
#include<
reg52.h>
unsignedcharcodeletter_A[11]={0xf1,0xe7,0xf7,0xf7,0xd7,0xf7,0xf7,0xe7,0xf1,0xff,0xff};
//字母“A”的编码
unsignedcharcodeletter_U[11]={0xdf,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xfd,0xdf,0xff};
//字母“U”的编码
unsignedcharcodeletter_T[11]={0xdf,0xdf,0xdf,0xdf,0xdf,0xc1,0xdf,0xdf,0xdf,0xdf,0xff};
//字母“T”的编码
unsignedcharcodeletter_O[11]={0xc1,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xdf,0xc1,0xff};
//字母“O”的编码
unsignedcharcodehua[21]={0xed,0xed,0xed,0xed,0xed,0xe1,0xed,0xed,0xef,0x07,0xef,0xef,
0xe0,0xe5,0xe5,0xe5,0xe5,0xf7,0xf7,0xf7,0xff};
//“华”的编码
unsignedcharcodegong[21]={0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xc1,0xdd,0xdd,
0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xdd,0xff,0xff};
//“工”的编码
unsignedintn,p,s=0;
//n表示定时器T0中断次数,s表示定时器T0的初值
intk=0;
//k用于初值校正
unsignedchari=0,j=0;
voidshow1(unsignedcharm);
//显示函数1
voidshow2(unsignedcharm);
//显示函数2
voidshow11(unsignedcharm);
//显示函数11
voidshow22(unsignedcharm);
//显示函数22这四个显示函数具有滚动,变色的关系
voidInit();
//初始化函数
voidmain()
{
Init();
while
(1)
{
for(p=0;
p<
5000;
p++)
{
if(i>
=11)i=0;
if(s>
=12&
&
s<
23)show1(0);
//若位置在24度——//46度,显示“O”
=28&
39)show1
(1);
//若位置在56度——//78度,显示“T”
=46&
57)show1
(2);
//若位置在92度——//114度,显示“U”
=62&
73)show1(3);
//若位置在124度——//146度,显示“A”
if(j>
=21)j=0;
=107&
128)show2(0);
//若位置在214度——//256度,显示“华”
=140&
161)show2
(1);
//若位置在280度——//322度,显示“工”
}
p++)//改变显示颜色
23)show11(0);
39)show11
(1);
57)show11
(2);
73)show11(3);
128)show22(0);
161)show22
(1);
p++)//变回原来的颜色,并逆时针方向滚动20度
=22&
33)show1(0);
=38&
49)show1
(1);
=56&
67)show1
(2);
=72&
83)show1(3);
=117&
138)show2(0);
=150&
171)show2
(1);
p++)//再改变颜色
33)show11(0);
49)show11
(1);
67)show11
(2);
83)show11(3);
138)show22(0);
171)show22
(1);
}
}
voidInit()
TMOD=0x01;
//定时器T0的控制设为方式2
EA=1;
//开总中断控制
ET0=1;
//定时器T0的中断允许位
TH0=(65535-5000)/256;
//定时器T0的初值
TL0=(65535-5000)%256;
TR0=1;
//开定时器T0
EX0=1;
//INTO中断允许位
IT0=1;
//开外部中断0
voidexter0()interrupt0//外部中断函数
k=k+(s-180);
//k位校正值,当定时中断过快,k增大,则定时器T0初//值n增大,从而减慢中断
n=n+k;
i=0;
//i清零,重新显示
j=0;
//j清零,重新显示
s=0;
//中断次数清零,更新显示下一周
voidexter1()interrupt1//定时器T0中断函数
TH0=(65535-n)/256;
TL0=(65535-10)%256;
s++;
//每中断一次,中断次数加1
voidshow1(unsignedcharm)
switch(m)
case0:
P1=0xff;
P1=letter_O[i];
i++;
break;
//显示“O”
case1:
P1=letter_T[i];
//显示“T”
case2:
P2=0xff;
P2=letter_U[i];
//显示“U”
case3:
P2=letter_A[i];
//显示“A”
voidshow2(unsignedcharm)
P1=hua[j];
j++;
//显示“华”
P2=gong[j];
//显示“工”
voidshow11(unsignedcharm)//和show1比较,改变颜色
P2=letter_O[i];
P2=letter_T[i];
P1=letter_U[i];
P1=letter_A[i];
voidshow22(unsignedcharm)//和show2比较,改变颜色
{
P2=hua[j];
P1=gong[j];
6不足与改进
1.在硬件安装过程中,旋转板上元件的供电问题困扰了我们。
经过长时间认真的思考与讨论,我们决定让电源的正极通过电机的转轴接到旋转板的VCC,而电源的负极通过安装在底板的两个电刷接到旋转板的GND。
但是效果不那么好,有接触不良的迹象。
2.本来打算用两块纽扣电池串联起来(6V)给电机供电,但是由于电流供应不足以使电机工作,于是用4块五号干电池串联起来代替。
3.由于我们队单片机的了解还不够深入和时间有限,我们放弃了实现“通过人机交互来转换广告词”这个功能。
4.程序方面。
此课题对单片机定时器、中断的要求较高。
搞懂这些知识花费了不少的心思。
搜集资料的时候看到别人写的程序真的可以说是看天书。
经过一点一点的摸索,终于可以搞懂这其中的奥秘,自己也可以编码自己想显示的字符。
5.最后,没能把LED广告屏成功制造出来,单片机并没有按照我们预期的目标去工作,我们也没能找到具体的问题到底出在哪里。
虽然失败了,但是,通过这个以前从没涉足过的竞赛,我们学到了很多知识,也学会了如何进行团队合作,这也对我们以后学习新知识打下基础。
7本次试验所用元件
元件
规格或型号
数量
AT89S52单片机
单片机座
双色LED
直流电机
晶振
12M
瓷片电容
33uF
电容
330uF
10uF
电阻
1K欧
10K欧
220欧
红外对管
一对
电源指示灯
IN4007
稳压器
7805
5号干电池
1.5V
开关
万能板
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 初级 组杨一聪 LED 旋转 论文