初级组杨一聪LED旋转灯论文.docx

上传人:b****6 文档编号:7180320 上传时间:2023-01-21 格式:DOCX 页数:14 大小:203.65KB
下载 相关 举报
初级组杨一聪LED旋转灯论文.docx_第1页
第1页 / 共14页
初级组杨一聪LED旋转灯论文.docx_第2页
第2页 / 共14页
初级组杨一聪LED旋转灯论文.docx_第3页
第3页 / 共14页
初级组杨一聪LED旋转灯论文.docx_第4页
第4页 / 共14页
初级组杨一聪LED旋转灯论文.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

初级组杨一聪LED旋转灯论文.docx

《初级组杨一聪LED旋转灯论文.docx》由会员分享,可在线阅读,更多相关《初级组杨一聪LED旋转灯论文.docx(14页珍藏版)》请在冰豆网上搜索。

初级组杨一聪LED旋转灯论文.docx

初级组杨一聪LED旋转灯论文

旋转LED广告屏

 

目录

目录···································································1

1.LED旋转灯在实际中的意义·············································2

2.显示原理······························································3

3.系统硬件电路的设计····················································3

3.1硬件系统框图····················································3

3.2硬件基本架构····················································4

3.3显示模块说明····················································4

3.4红外说明························································5

4.相关电路图····························································5

4.1单片机引脚图····················································5

4.2电路转换························································6

4.3复位电路························································6

4.4振······························································6

5.程序的设计····························································7

5.1程序设计的分析··················································7

5.2完整的C程序····················································7

5.2.1程序流程图·················································7

5.2.2源程序·····················································8

6.不足与改进····························································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

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”

if(s>=28&&s<39)show1

(1);//若位置在56度——//78度,显示“T”

if(s>=46&&s<57)show1

(2);//若位置在92度——//114度,显示“U”

if(s>=62&&s<73)show1(3);//若位置在124度——//146度,显示“A”

if(j>=21)j=0;

if(s>=107&&s<128)show2(0);//若位置在214度——//256度,显示“华”

if(s>=140&&s<161)show2

(1);//若位置在280度——//322度,显示“工”

}

for(p=0;p<5000;p++)//改变显示颜色

{

if(i>=11)i=0;

if(s>=12&&s<23)show11(0);

if(s>=28&&s<39)show11

(1);

if(s>=46&&s<57)show11

(2);

if(s>=62&&s<73)show11(3);

if(j>=21)j=0;

if(s>=107&&s<128)show22(0);

if(s>=140&&s<161)show22

(1);

}

for(p=0;p<5000;p++)//变回原来的颜色,并逆时针方向滚动20度

{

if(i>=11)i=0;

if(s>=22&&s<33)show1(0);

if(s>=38&&s<49)show1

(1);

if(s>=56&&s<67)show1

(2);

if(s>=72&&s<83)show1(3);

if(j>=21)j=0;

if(s>=117&&s<138)show2(0);

if(s>=150&&s<171)show2

(1);

}

for(p=0;p<5000;p++)//再改变颜色

{

if(i>=11)i=0;

if(s>=22&&s<33)show11(0);

if(s>=38&&s<49)show11

(1);

if(s>=56&&s<67)show11

(2);

if(s>=72&&s<83)show11(3);

if(j>=21)j=0;

if(s>=117&&s<138)show22(0);

if(s>=150&&s<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=0xff;P1=letter_T[i];i++;break;//显示“T”

case2:

P2=0xff;P2=letter_U[i];i++;break;//显示“U”

case3:

P2=0xff;P2=letter_A[i];i++;break;//显示“A”

}

}

voidshow2(unsignedcharm)

{

switch(m)

{

case0:

P1=0xff;P1=hua[j];j++;break;//显示“华”

case1:

P2=0xff;P2=gong[j];j++;break;//显示“工”

}

}

voidshow11(unsignedcharm)//和show1比较,改变颜色

{

switch(m)

{

case0:

P2=0xff;P2=letter_O[i];i++;break;

case1:

P2=0xff;P2=letter_T[i];i++;break;

case2:

P1=0xff;P1=letter_U[i];i++;break;

case3:

P1=0xff;P1=letter_A[i];i++;break;

}

}

voidshow22(unsignedcharm)//和show2比较,改变颜色

{

switch(m)

{

case0:

P2=0xff;P2=hua[j];j++;break;

case1:

P1=0xff;P1=gong[j];j++;break;

}

}

 

6不足与改进

1.在硬件安装过程中,旋转板上元件的供电问题困扰了我们。

经过长时间认真的思考与讨论,我们决定让电源的正极通过电机的转轴接到旋转板的VCC,而电源的负极通过安装在底板的两个电刷接到旋转板的GND。

但是效果不那么好,有接触不良的迹象。

2.本来打算用两块纽扣电池串联起来(6V)给电机供电,但是由于电流供应不足以使电机工作,于是用4块五号干电池串联起来代替。

3.由于我们队单片机的了解还不够深入和时间有限,我们放弃了实现“通过人机交互来转换广告词”这个功能。

4.程序方面。

此课题对单片机定时器、中断的要求较高。

搞懂这些知识花费了不少的心思。

搜集资料的时候看到别人写的程序真的可以说是看天书。

经过一点一点的摸索,终于可以搞懂这其中的奥秘,自己也可以编码自己想显示的字符。

5.最后,没能把LED广告屏成功制造出来,单片机并没有按照我们预期的目标去工作,我们也没能找到具体的问题到底出在哪里。

虽然失败了,但是,通过这个以前从没涉足过的竞赛,我们学到了很多知识,也学会了如何进行团队合作,这也对我们以后学习新知识打下基础。

 

7本次试验所用元件

元件

规格或型号

数量

AT89S52单片机

1

单片机座

1

双色LED

8

直流电机

1

晶振

12M

1

瓷片电容

33uF

2

电容

330uF

2

10uF

1

电阻

1K欧

8

10K欧

2

220欧

1

红外对管

一对

电源指示灯

IN4007

1

稳压器

7805

1

5号干电池

1.5V

8

开关

3

万能板

2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 研究生入学考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1