您好,欢迎访问三七文档
线阵LED图文显示装置设计报告一、任务设计并制作一个线阵LED图文显示装置。图1线阵LED图文显示装置示意图二、要求(1)开机时装置完成显示自检,能对点阵中16只LED逐个点亮,每只LED显示时间约为1秒,此时平台不旋转。(2)通过按键启动,实现16个同心圆图形分别顺序(由大到小)和逆序(由小到大)显示,每个同心圆图形显示时间为0.2秒左右;运行15秒左右自动停止。(3)通过按键启动,显示字符“TI杯”,要求字符显示稳定,无明显漂移;运行20秒左右自动停止。(4)通过按键启动,显示双渐开线;运行15秒左右自动停止。(5)通过按键启动,显示一个指针式秒表,该秒表以标志杆为起始标志,秒针随时间动态旋转,旋转一周的时长为60±1秒;运行70秒左右自动停止。(6)改变转速,完成(2)的要求。(7)LED显示亮度能依据环境亮度变化自动调节。设计报告摘要显示装置利用人眼视觉暂留的生理特性,通过LED在旋转运动过程中经过不同位置时,系统点亮相应的LED,实现线阵LED在旋转平面上构成不同的静态或动态图案。一、系统方案方案描述:本系统是利用人眼视觉暂留效应设计出的,该系统主要由电机、标志杆、LED控制电路三部分组成。电机的作用就是带动电路部分进行旋转,这个部分的关键就在于电机的转速要均匀,这样才能保证图像在水平方向不会被局部伸展或者压缩。为了使LED转速保持稳定,我们采用使用匀速的直流电机。LED整列是旋转屏的显示主体,为LED显示控制电路的作用是将存储在芯片内图像或符号,在旋转位置感应信号的同步下,根据旋转的位置按列扫描显示在LED阵列上。这部分是整个系统的核心。装置整体结构图原件的比较和选择1.电源的选择方案一:使用质量较轻的纽扣电池,位置可以随便放置,但是成本较高,使用时间短方案二:使用废弃手机的手机电池,这种锂电池容量大,使用时间长,缺点是质量较重,在平衡系统时存在困难按键检测模块红外线接收模块MCU发光二极管显示模块光照强度感应模块电源模块红外线发射模块(标志杆)(独立的模块)电机驱动模块(可调转速)(独立的模块)方案三:使用三节5号电池,该电池容易购买,但是容量低于手机锂电池,同时质量较重,在平衡系统中存在着困难,在考虑成本和供电时间时,选择了方案二。在开始焊接电路到调试成功的工程中,该电池依然电力充足,证明我们的选择是正确的2.标志杆的选择方案一:选择干簧管作为接收装置,在标志杆处固定一块永久磁铁,缺点是干簧管感应距离有些短方案二:选择红外发射管和红外接收管作为感应开关,红外线发射管与接收管可以相距较远的距离在装置旋转时,两者的相对距离可能会发生小幅的变化,在硬件焊接时,由于电机驱动的电路板过小,没有把标志杆和电机电路板固定,因此两者的相对位移会发生改变,两者相离太近,会出现两者碰撞的情况,选择可以相距较远的红外发射接收管可以避免两者的碰撞3.驱动电机模块方案一:采用步进电机。步进电机能够准确的定向,但是图像或者文字的分辨率受到步进电机的步进角度的限制。并且步进电机以及控制电路成本较高,并且需要单片机控制,占用CPU的资源。方案二:采用普通的直流电机。此方案,使用方便,成本较低,通过简单的改装,可以给系统供电。综合各方面考虑,为了节省成本,简单系统电路,以及更方便的为系统供电,使系统能够长期工作,故采用方案二。4.Led的选择方案一:采用3mm的led,此方案运用方便、焊接简单、成本较低,但缺点是较重、体积较大不利于后期的系统平衡。方案二:采用贴片的led,此方案质量较轻、体积小。但对焊接技术要求较高。考虑本人的焊接技术,最终采用方案二。二、理论分析与计算线状点阵LED驱动参数分析与计算考虑到本系统才用手机电池供电最高电压4.2v,系统显示原理为逐列扫描,并且有调节led亮度的装置,最终采用470Ω的贴片电阻和led串联。I=V/R→I=8mA线阵LED运动参数分析与计算本系统运用人眼视觉暂留的原理进行逐列扫描,且考虑到后期有秒表这个题目,最终决定每次扫描时的延时时间用软件进行延迟,具体的延时时间用keil4内部的程序调试进行计算指针式秒表分析与计算本题目要求在可以改变转速的情况下显示一个指针是秒表,考虑到电机转速可能随时变化,所以在每次开始扫描前通过测定转过上一圈所需要的时间然后分成60份,每一份的时间就是本次扫描每一秒所需的延时时间,同时用单片机的定时器来定时本次扫描应该扫描那一秒。t1=t2;//把上次的t2值赋给t1t=n;//把定时器中断次数赋给tn=0;//定时器中断次数清零t2_1=TH0;//提取定时器中的值t2_2=TL0;t2=t2_1*256+t2_2;//计算定时器中的值得大小s1=(long)(((50000*t)+t2-t1)*0.0004166667);//计算本次扫描每秒需要的时间数据说明://n当转速过高时一次扫描可能小于25ms,因此要分定时器发生中断和不发生中断两种情况//(50000*t+t2-t1)*0.0004166667=(50000*t+t2-t1)*0.0000005/0.00002/60//0.0000005计数器加一个数所需要的时间(24MHZ晶振)//0.00002x=1时高精度延时函数的延时时间(通过keil4中的软件调试测量得到)//60(把一圈的时间平分为60份)显示亮度自动调节分析与计算本系统采用光敏电阻驱动一个s8050的三极管来给led供电,发光二极管的亮度可以随着光照强度的变化而变化,在一定范围内发光二极管的亮度随着光照强度的变化而变化,但是这个范围过于狭窄,于是先在光线检测电路中加了一个电位器来调节阻值,通过实验测量其需要的阻值,然后在换成定值电阻。提取上次扫描所需的时间三、电路与程序设计电路:单片机模块电机和红外发射模块程序:#includereg52.h#includeintrins.h#defineuintunsignedint#defineucharunsignedcharsbitKEY=P3^7;//按键位定义ucharxxx=0,num,pic=0,x123,z1=0,n=0,n1=0;uintt1_1=0,t1_2=0,t2_1=0,t2_2=0,t=0;unsignedlongs2=0,t1=0,t2=0,s1=0,a=0;voiddelay(uintx){uintx1,x2;for(x1=x;x10;x1--)for(x2=415;x20;x2--);}voidyanshi(uintx){uintx1;for(x1=x;x10;x1--);}voiduyanshi(uintx)//高精度延时函数当x=1时,时间为0.0000027(S)【40MHZ晶振】{while(x--);}voidjiance()//检测{uinta1=1000;uchara2=0xfe;//11111110do{P1=a2;delay(a1);a2=_crol_(a2,1);}while(a2!=0xfe);P1=0xff;do{P2=a2;delay(a1);a2=_crol_(a2,1);}while(a2!=0xfe);P2=0xff;}voidtxy()//同心圆{ucharb1=4,b2=0xfe,b3=200;//11111110while(b1){do{P1=b2;delay(b3);b2=_crol_(b2,1);}while(b2!=0xfe);P1=0xff;do{P2=b2;delay(b3);b2=_crol_(b2,1);}while(b2!=0xfe);b2=0xbf;if(b1==1){P2=0xff;break;}do{P2=b2;delay(b3);b2=_cror_(b2,1);}while(b2!=0x7f);P2=0xff;do{P1=b2;delay(b3);b2=_cror_(b2,1);}while(b2!=0xfe);P1=0xff;b1--;}}ucharcodesjjx1[]={0xff,0x7f,0xff,0x3f,0xff,0x1f,0xff,0x0f,0xff,0x07,0xff,0x03,0xff,0x01,0xff,0x00,0x7f,0x00,0x3f,0x00,0x1f,0x00,0x0f,0x00,0x07,0x00,0x03,0x00,0x01,0x00,0x00,0x00};voidsjjx()//双渐近线{if(num=100){num=0;x123=x123+2;}if(x123=32){TR0=0;TH0=(65536-33333)/256;TL0=(65536-33333)%256;num=0;n=0;x123=0;pic++;}yanshi(2400);P1=sjjx1[x123];P2=sjjx1[x123+1];yanshi(8);P1=0xff;P2=0xff;yanshi(4800);P1=sjjx1[x123];P2=sjjx1[x123+1];yanshi(8);P1=0xff;P2=0xff;}ucharcodeTIbei1[]={0xE7,0xFF,0xF7,0xFF,0xF7,0xDF,0x07,0xC0,0xF7,0xDF,0xF7,0xFF,0xE7,0xFF,0xFF,0xFF,0xFF,0xFF,0xF7,0xDF,0xF7,0xDF,0x07,0xC0,0xF7,0xDF,0xF7,0xDF,0xFF,0xFF,0xFF,0xFF,0xEF,0xFB,0xEF,0xFC,0x2F,0xFF,0x00,0x00,0xAF,0xFF,0x6F,0xFB,0xFB,0xFD,0xFB,0xFE,0x7B,0xFF,0x1B,0x00,0xE3,0xFF,0x7B,0xFF,0xFB,0xFE,0xFB,0xF9,0xFB,0xFF,0xFF,0xFF,};voidTIbei()//TI杯{uinta;if(num=100){num=0;x123++;}if(x123=20){TR0=0;x123=0;num=0;n=0;TH0=(65536-33333)/256;TL0=(65536-33333)%256;pic++;}for(a=0;a64;a=a+2)//显示{P1=TIbei1[a];P2=TIbei1[a+1];yanshi(10);P1=0xff;P2=0xff;yanshi(40);}}voidmiao()//秒表{if(num=100){num=0;x123=x123+2;}t1=t2;//把上次的t2值赋给t1t=n;//把定时器中断次数赋给tn=0;//定时器中断次数清零t2_1=TH0;//提取定时器中的值t2_2=TL0;//计算定时器中的值得大小t2=t2_1*256+t2_2;s1=(uint)(((33333*t+t2-t1)*0.00184)*(x123/2));//计算本次扫描的延迟时间//(33333*t+t2-t1)*0.001851852=(33333*t+t2-t1)*0.0000003/0.0000027/60//0.0000003(计数器加一个数所需要的时间)//0.0000027(x=1时高精度延时函数的延时时间)//60(把一圈的时间平分为60份)uyanshi(s1);//延时P1=0x00;P2=0x00;yanshi(10);P1=0xff;P2=0xff;if(x123==120){x123=0;n1++;}if(n1==1&&x123==20){TR0=0;x123=0;num=0;n=0;TH0=(65536-33333)/256;TL0=(65536-33333)%256;n1=0;pic++;}}voidmain()//主函数{//uyanshi(1000);//uyanshi(1000);//delay(1000);//delay(1000);jiance();//开机检测TMOD=0x01;//设置定时器的工作方式TH0=(65536-
本文标题:旋转LED设计报告
链接地址:https://www.777doc.com/doc-7341726 .html