线阵LED图文显示_第1页
线阵LED图文显示_第2页
线阵LED图文显示_第3页
线阵LED图文显示_第4页
线阵LED图文显示_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、线阵LED图文显示Hessen was revised in January 20212013年全国大学生电子设计竞赛线阵LED图文显示装置2013年7月22日组员许卫赵俊饶建玲摘 要:本设计是利用人眼视觉暂留效应原理来实现的。通过直流电机带动线阵LED以合适的速度旋转,以MSP430G2553单片机为核心,来精确地控制LED的 亮灭时间,从而实现LED的各种变换。本设计由MSP430控制电路模块,电机及 其驱动模块,线阵LED驱动模块,痉度自动调节模块等主要模块组成。利用霍 尔传感器来确定线阵LED的起始位置,使用取模软件来实现显示文图,通过光 敏电阻来自动控制LED凫度,并运用按键切换来控

2、制显示不同的内容。关键词:MSP430G2553视觉暂留线阵LED霍尔传感器光敏电阻Abstract: This design is to use the principle of persistence of vision effect to the human eye. Driven by de motor linear array LED rotating at a speed of right, MSP430G2553 single-chip microcomputer as the core, to destroy the precise control of the LED lig

3、ht time, so as to realize the transforming of the LED. This design by MSP430 control circuit module, motor and driver module, linear array LED driver module, brightness automatically adjust the module of main modules. Using hall sensor to determine the starting position of linear array LED, using mo

4、dulus software to implement the display figure, through the photoconductive resistance to automatically control the LED brightness, and using the key switch to control the display different content.Keywords: MSP430G2553 Persistence of vision Linear array LED Hall sensor Photosensitive resistance目录目录

5、1 .系统方案选择和论证 课题任务及要求(1) 制作一个由16只LED构成的线状点阵及其控制电路,安装于可 旋转的平台上,在平台的中心设置一个按键,用于功能的切换,电机带动平台 以合适速度旋转。(2) 开机时装置完成显示自检,能对点阵中16只LED逐个点凫,每只LED显示时间约为1秒,此时平台不旋转。(3) 通过按键切换,实现16个同心圆图形分别顺序(由大到小)和逆序(由小到大)显示,每个同心圆图形显示时间为秒左右。(4) LED显示亮度能依据环境亮度变化自动调节。2 .发挥部分(1) 通过按键切换,显示字符“TI杯”,要求字符显示稳定,无明显漂移。(2) 通过按键切换,显示一个指针式秒表,该

6、秒表以标志杆为起始标志,秒针随时间动态旋转,旋转一周的时长为60±1秒。(3)其它。系统方案论证及选择电机的比较与选择方案一:使用步进电机,步进电机停转时具有最大的转矩,而且每步的精 度在3%5%,并且误差不会累计到下一步,因而有较好的位置精度和运动重复 性,但是其控制不当容易产生共振,且难以运转较高的速度。方案二:开关磁阻电机,结构简单,成本低,可用于高速运转,可控参数 多,调速性能好,但是因为转矩是由脉冲转矩叠加而成,合成的转矩不是恒定 转矩,噪声震动比一般电动机大。方案三:直流电机有优良的控制性能,其机械性能和调速特性均为平行的 直线,且启动转矩大,效率高,过载能力强,调速方便

7、动态性能好。通过对本次项目的综合考虑,故采用方案三。电机驱动电路的比较与选择方案一:中功率三极管直接搭建。在电机驱动要求不高的地方可以由三极 管直接搭建一个驱动电路。使用三极管搭建的电路,其电路简单,但功率和性 能一般,集电极电流过大,电阻消耗的功率加大,造成发热,影响系统的性 能,并且对输入信号要求较高,输出性能只能满足一般要求。方案二:使用L298N芯片驱动电机L298N既可以驱动直流电机也可以驱动 步进电机,本设计中考虑到电机的带负载能力以及效率和调速方便等问题所以 选择用直流电机。L298N电路简单,使用比较方便。通过比较,使用L298X芯片充分发挥了它的功能,能稳定地驱动直流电 机,

8、且价格不高,故选用L298X驱动电机LED亮度控制电路比较与选择方案一:通过光敏二极管和一个的电阻一起控制P型三极管基极的电 流,从而控制加在LED上面的电流,这样不需要在每个LED前面加限流电阻。 只需要用一个限流电阻,电路简单。光敏二极管暗电流较小,有光时光电流较 大。但是其效果并不明显,且电路不稳定。(图1)图1方案二:采用光敏电阻与TLC555搭建电路。用TLC555、电容、电位器组 成振荡电路产生稳定的PWM波输出。而光敏电阻的变化引起输出PWM波占空比 的变化,从而改变显示充度。电路简单,且易于控制。通过比较选定此方案二作为环境充度变化调节电路。供电方案的比较与选择方案一:采用电刷

9、供电。即在电机的转轴上手工增加一个电刷,通过电刷 为系统供电。此方法能够让系统长期供电,但是由于增加了电刷,电机的摩擦 增大,势必会使系统的功耗增加,且不易控制,比较麻烦。方案二:采用锂电池供电。即在电路板是直接附带一个锂电池,为系统供 电。锂电池体积小,供电时间长,容易固定。使用时将电池固定在电路板,既 解决旋转时因重力引起的重心不稳,同时也省去制作的时间。综合考虑本设计的电路模式,采用方案二。2 .理论分析与计算线阵LED参数计算限流电阻=LED与电阻串联,所以该限流电阻为:根据设计要求,Vcc=, Vled=, Von=, Iled=10mA;可求得的限流电阻为R=90 Q.为了方便最后

10、电阻取为R=100。.线阵LED运动参数分析与计算在电机的带动下,线阵LED依靠旋转平台进行旋转,在40亳秒之内运动的 物体认得眼睛无法辨别,线阵LED就能很好的地显示图文。设电机周期为/,我 们取周期t为40毫秒。显示亮度自动调节分析与计算采用TI的TLC555、电容G,g、电阻叫和光敏电阻&等组成振荡电路 产生稳定的PWM波输出。则产生PWM波的周期、充电时间及其占空比的计算公 式如下:周期为:T=(R1+R2)C1高电平时间为:T1=R1C1经测试,光敏电阻的阻值在200到16K变化,正常光线下,阻值为2K, 取R1为2K,占空比的变化范围较大。光敏电阻的变化引起输出PWM波占空

11、比 的变化,从而改变显示克度。占空比越大,LED接通的时间越长,断开的时间 越短,显示越克。3 .电路与程序设计电路设计系统总体方案设计图2其总体设计如上图所示,霍尔传感器采集数据通过MSP430的处理控制电机 的转速;MSP430G2553的控制通过按键的中断使LED显示不同的图文,当环境 充度改变时,由光敏电阻和NE555组成的占空比可调的电路自动改变LED的光度, 环境光线越亮,灯越亮,满足设计要求。单元电路及原理分析亮度控制电路:采用NE555与光敏电阻搭建电路。用555,电阻,电容及二 极管组成振荡电路,产生稳定的PWM波输出,而光敏电阻的变化输出PWM波占空比的变化,从而改变LED

12、的显示充度,实现先度随外界的变化而变化。(图 3)线阵LED控制电路:我们所做电路选用的控制芯片用是有20个引脚 MSP430G2553,所以控制16个LED显然不够用,因此利用74HC595实现串转并PWM产生及控制L298电路:采川两片LM358及电容电阻稳压二极管来构成三 角波发生电路产生三角波,通过比较器LM311与一直流量比较产生PWM,通过调 节其占空比来控制L298.(图5)机驱动电路:L298是双H桥高电压大电流集成电路,直接采用TTL逻辑 电平控制。通过外接信号来调节PWM.在一个PWM周期内,电机承受双极性电 压,电机的速度和方向均有PWM决定。(图6)电路原理图见附录一。

13、程序设计见附录四。程序功能描述与设计思路单片机MSP430G2553通过74HC595进行申转并来控制16个LED。初始化,LED自检后,逐个依次点先;通过独立按键控制线阵LED显示不同的图文程序总体流程图当系统上电单片机初始化后,线阵LED进行自检,此时16个LED逐个点兜,当按 键按下时,LED根据程序的设计显示不同的图文,流程图如下:(图7)开始初始化LED自检y按键次数t指针式秒图七程序清单见附录四。4 .测试方案与测试结果测试条件与仪器数字示波器万用表信号发生器测试结果及分析本设计的基本要求均已完成,可以在运转时按按键切换显示的内容,但也 存在值得改进的地方。旋转平台不太稳,导致显示

14、出现稍许飘移,秒表指针显示也不能达到精确的60秒一周。因为单片机内部的DC0本来就存在误差,而延 时乂是用delay来延时的,这样误差更大,为了减小这些误差,应该使用外部 晶振,并且用定时器来延时。5 .结论经过多日的辛勤努力,系统架构设计合理,功能电路实现较好,系统性能 优良、稳定,较好地达到了题目要求的各项指标。通过这次的项目,我们都学 到了很多东西,因为这个项目主要针对的是软件方面,所以我们在软件方面下 了很大功夫,有些程序在我们平时都没有训练过的,经过不断的摸索与实验, 和其它同学交流,软件上有很大的进步。在硬件调试的过程中,我们也遇到很 多问题,主要体现在线阵的平衡和稳定上面。由于时

15、间紧,工作量大,系统还 存在许多可以改进的地方。本次竞赛锻炼了我们各方面的能力,虽然我们遇到 了很多困难和障碍,但总体上成功与挫折交替,困难与希望并存,我们将继续 努力争取更大的进步。6 .参考文献1秦龙编着.MSP430单片机常用模块与综合系统实例精讲.北京:电子工 业出版社,2沈建华等.MSP430系列16位超低功耗单片机实践与系统设计.北京: 清华大学出版社,3董诗白、华成英等.模拟电子技术基础.北京:高等教育出版社.UJ,2(1Ms1nMMrrrjQi yr 芟h«R,y,1,TPTW F1<TAJfT>tTaX >i(TAJT»n>y .附

16、录2:光敏电阻、L298光敏电阻器是利用的制成的一种电阻值随入射光的强弱而改变的电阻器;入 射光强,电阻减小,入射光弱,电阻增大。必L298N是SGS公司生产的直流电机驱动集成电路。内部包含4通道逻辑驱动电 路,可以方便地驱动两个直流电机,或一个两相步进电机。工作电压为46V, 输出电压最高可达50V,可以直接通过电源来调节输出电压;输出电流可达, 最大可以达到4A,可驱动电感性负载;可以直接用单片机的10 口提供信号; 而且电路简单,使用比较方便。L298N可接受标准TTL逻辑电平信号VSS, 9脚 VSS可接7V的电压。4脚VS接电源电压,VS电压范围VIH为+46V。1脚 和15管脚下的

17、发射极分别单独引出以便接入电流采样电阻,形成电流传感信 号。L298可驱动2个电动机,此时0UT1, 0UT2和0UT3, 0UT4之间可分别接电 动机。5、7、10、12脚接输入控制电平,控制电机正反转;ENA, EB脚接控制 使能端,控制电机的停转。L298逻辑功能表IN1IN2ENA电机状态XX0停止000停止011逆时针101顺时针110停止附录3:原器件清单元器件名称元器器件型号元器件个数单片机MSP430G25531电机174HC59574HC5952电机驱动芯片L2981比较器LM3111集成运放LM3582光敏电阻1电源锂电池1传感器霍尔传感器1按键独立按键1电容若干电阻若干导

18、线若干附录四:程序清单f I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I 程序功能:线阵LED图文显示作者:许卫日期 : rights reserved! I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I I #include<> #define uchar unsigned char ttdef

19、ine uint unsigned int/*74HC595 引脚定义*/Mefine L_DATA Billitdefine L_CLK BIT5define L_STR BIT4define L_0E BIT3/*全局变量定义*/uchar t50ms, ts, tm=32, th=12;uchar count=0, num;uchar Clock_buff = ,z 12:35:20z/;uchar const disp_buff64; uchar const num_buff;uchar sort_buff1164;uchar sort_buff2164;/*延时 函 数*/ void

20、 delay_ms(uint time) (uint i, j;for (i=time; i>0; i-) for(j=250;j>0;j);)/*延时函数*/void delay_320us(uchar time) (uint i, j;for (i=time; i>0; i一-) for(j=77; j>0; j) ; /320us/*数组元素重新排序*/void Re_sort () (uchar i;for(i=0;i<64;i+)sort_buff163-i=disp_buffi;for(i=0;i<32;i+) (sort_buff22*i=so

21、rt_buff12*i+l;sort_buff22*i+l=sort_buff1L2*i;/*单片机初始化函数*/void mcu-init () (WDTCTL二WDTPW+WDTHOLD;BCSCTL1 =CALBC1MHZ; /DCO 设置为 IM DCOCTL 二 CALDCOMHZ;BCSCTL3I=LFXT1SJ);IFG1&iOFIFG;BCSCTL2 |=SELM_1; 设置主时钟MCLK为DCO,且频率为1MHz,子时钟 IMo )/*定时器初始化函数*/ void TIMER_init()(/ SMCLK, Contmode使计数模式为增计数/ CCRO inter

22、rupt enabled/50毫秒为霍尔中断按键中断第二功能上拉电阻使能设中断下降沿中断中断标志清零TACTL = TASSEL_2 +TACLRCCTLO = CCIE;CCRO = 50000;)/*P1中断端口初始化*/ void Pl_port_init()(P1DIR&="(BIT1+BIT5);P1SEL&="(BIT1+BIT5);P1REN|= BIT1+BIT5;P1IE =BIT1+BIT5;P1IES|=BIT1+BIT5;P1IFG&二(BIT1+BIT5);)/*74HC595 显示函数*/void display(ucha

23、r bit_flag, uint disp_temp) bit_flag 为 1, 先写高 位。为0,先写低位(unsigned int temp;unsigned char i;P2DIR =L DATA+L CLK+L STR+L 0E;P2OUT&=、L_CLK;P2OUT&="L_STR;P2OUTj=L_OE;temp=disp_temp;if (bit_flag)for(i=0;i<16;i+)if (temp&0x8000) P2OUT=L_DATA;elseP20UT&="L_DATA;P20UTI =L_CLK; 上升

24、沿数据移位P20UT&="L_CLK;temp«=l;)else(for(i=0;i<16;i+)(if(temp&OxOOOl) P2OUT|=L_DATA;elseP2OUT&="L_DATA;P2OUTI =L_CLK; 上升沿数据移位P2OUT&-"L_CLK;temp»=l;)P2OUT |=L_STR;上升沿数据锁存P2OUT&二"L_STR;P2OUT&="L_OE;输出使能)/*写一个字符串*/void disp_ascii(uchar *p)(unsig

25、ned int temp;unsigned char i, j;for (j=O;*p!=, 0, ;j+)(for(i=0;i<8;i+) /8 列(temp=num_buff2*i+(*p-0x30) *161 ;temp«=8;temp =num_buff2*i+l+(*p-0x30) *16;display (0, temp);delay_320us(1); 间隔 320us)p+;)/*开机自检函数*/ void Turn_on_test () (uint i;uint temp=0x0001;for(i=0;i<16;i+)(display(1, temp);

26、 delay_ms(1000); temp«=l;)/ * 同心圆*/ void draweeirele()(uint i;uint temp;temp=0x8000;for(i=0;i<16;i+)(display(1, temp);delay_ms(300); temp»=l;temp=0x0001;for(i=0;i<16;i+)(display (1, temp);delay_ms(300); temp«=l;)/杯程序*/ void draw_TI_cup(uchar (uint i;uint temp;高电平点光/间隔Is从小到大间隔从大到

27、小间隔const *p)/32 列p=&sort_buff20; for(i=0;i<32;i+)将一竖的两个字节合成一个字temp=*p+;temp«=8;temp i =*p+;display(0, temp);delay_320us(1); 间隔 320us /*秒针程序*/ void draw_second_hand() (uint tempi, temp2;templ=0xfffc;temp2=0x0000;delay_320us(2*(60-ts); 延时,等待指向相应的位置 display(1, tempi 0x0001);delay_320us;在该凫的

28、位置显示320usdisplay(1, temp2 0x0001);/ *主函数*/void main(void) (mcu-init ();TIMER_init();Pl_port_init ();Re_sort ();从新排序Turn_on_test (); 开机自检_EINT();开总中断while (1) (;)ttpragma vector=PORT1_VECTORinterrupt void Pl_port(void) (按键切换模式if (P1IFG&BIT5)delay_ms (30);if (P1IFG&BIT5)P1IFG &二(BIT5); cou

29、nt+;if(count>=5) count=l; while(!(P1IN&BIT5);if(P1IFG&BIT1)(P1IFG 及二、(BIT1);if(count=l)(PHE&iBIT1;关中断draw_circle ();piieT=biti ;同心圆显示完后开中断else if (count=2)每次霍尔中断就显示一次TI杯P20UT|=L_OE;draw_TI_cup(sort_buff2);P20UT i =L_OE;else if (count=3)(TACTL | =MC1;开始定时draw_second_hand();)else if (co

30、unt=4)(Clock_buff0=ts%10+0x30;Clock_buffl=ts/10+0x30;Clock_buff3=tm%10+0x30;Clock.buff4=tm/l0+0x30;Clock_buff6=th%10+0x30;Clock_buff7=th/10+0x30;disp_ascii(Clock_buff);)/Timer AO interrupt service routinepragma vector=TIMERO_AO_VECTORinterrupt void Timer_A0 (void)t50ms+;if (t50nls=20) (t50ms=0;ts+;i

31、f (ts=60)(ts=0; tm+;if(tm=60)(tm=0;th+;if(th=24) th=0;) uchar const disp_buffL64=0x18, 0x00, 0x10, 0x00, 0x10, 0x04, OxlF, OxFC,0x10, 0x04, 0x10, 0x00, 0x18, 0x00, 0x00, 0x00,0x00, 0x00, 0x10, 0x04, 0x10, 0x04, OxlF, OxFC,0x10, 0x04, 0x10, 0x04, 0x00, 0x00, 0x00, 0x00,0x10, 0x40, Oxll, 0x80, 0x16, 0x00, OxFF, OxFF,0x12, 0x00, 0x51, 0x20, 0x40, 0x40, 0x40, 0x80,0x43, 0x00, 0x4F, OxFF, 0x70, 0x00, 0x41, 0x00,0x40, 0x80, 0x40, 0x60, 0x40, 0x30, 0x00, 0x00,);uchar const num_buff=0x00, 0x00, 0x07, OxFO, 0x08, 0x08,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论