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

下载本文档

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

文档简介

2013年全国大学生电子设计竞赛线阵LED图文显示装置2013年7月22日组员 许卫 赵俊 饶建玲摘 要:本设计是利用人眼视觉暂留效应原理来实现的。通过直流电机带动线阵LED以合适的速度旋转,以MSP430G2553单片机为核心,来精确地控制LED的亮灭时间,从而实现LED的各种变换。本设计由MSP430控制电路模块,电机及其驱动模块,线阵LED驱动模块,亮度自动调节模块等主要模块组成。利用霍尔传感器来确定线阵LED的起始位置,使用取模软件来实现显示文图,通过光敏电阻来自动控制LED亮度,并运用按键切换来控制显示不同的内容。关键词:MSP430G2553 视觉暂留 线阵LED 霍尔传感器 光敏电阻 Abstract: This design is to use the principle of persistence of vision effect to the human eye. Driven by dc 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 light 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 modulus 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目录目 录1系统方案选择和论证41.1课题任务及要求41.2系统方案论证及选择41.2.1电机的比较与选择41.2.2电机驱动电路的比较与选择51.2.3 LED亮度控制电路比较与选择51.2.4供电方案的比较与选择52理论分析与计算62.1线阵LED参数计算62.2 线阵LED运动参数分析与计算62.3 显示亮度自动调节分析与计算6 3.电路与程序设计73.1电路设计73.1.1系统总体方案设计73.1.2单元电路及原理分析73.1.4 电路原理图93.2 程序设计93.2.1程序功能描述与设计思路93.2.2程序总体流程图103.2.3程序清单104.测试方案与测试结果114.1 测试条件与仪器114.2 测试结果及分析115. 结论116. 参考文献11附录1:电路原理图12附录2:光敏电阻、L29812附录3:原器件清单131系统方案选择和论证1.1课题任务及要求(1) 制作一个由16只 LED构成的线状点阵及其控制电路,安装于可旋转的平台上,在平台的中心设置一个按键,用于功能的切换,电机带动平台以合适速度旋转。(2) 开机时装置完成显示自检,能对点阵中16只LED逐个点亮,每只LED显示时间约为1秒,此时平台不旋转。(3) 通过按键切换,实现16个同心圆图形分别顺序(由大到小)和逆序(由小到大)显示,每个同心圆图形显示时间为0.3秒左右。(4) LED显示亮度能依据环境亮度变化自动调节。2. 发挥部分(1) 通过按键切换,显示字符“TI杯”,要求字符显示稳定,无明显漂移。(2) 通过按键切换,显示一个指针式秒表,该秒表以标志杆为起始标志,秒针随时间动态旋转,旋转一周的时长为601秒。 (3) 其它。1.2系统方案论证及选择 1.2.1电机的比较与选择方案一:使用步进电机,步进电机停转时具有最大的转矩,而且每步的精度在3%5%,并且误差不会累计到下一步,因而有较好的位置精度和运动重复性,但是其控制不当容易产生共振,且难以运转较高的速度。方案二:开关磁阻电机,结构简单,成本低,可用于高速运转,可控参数多,调速性能好,但是因为转矩是由脉冲转矩叠加而成,合成的转矩不是恒定转矩,噪声震动比一般电动机大。方案三:直流电机有优良的控制性能,其机械性能和调速特性均为平行的直线,且启动转矩大,效率高,过载能力强,调速方便动态性能好。通过对本次项目的综合考虑 ,故采用方案三。 1.2.2电机驱动电路的比较与选择方案一:中功率三极管直接搭建。在电机驱动要求不高的地方可以由三极管直接搭建一个驱动电路。使用三极管搭建的电路,其电路简单,但功率和性能一般,集电极电流过大,电阻消耗的功率加大,造成发热,影响系统的性能,并且对输入信号要求较高,输出性能只能满足一般要求。方案二:使用L298N芯片驱动电机L298N既可以驱动直流电机也可以驱动步进电机,本设计中考虑到电机的带负载能力以及效率和调速方便等问题所以选择用直流电机。L298N电路简单,使用比较方便。通过比较,使用L298N芯片充分发挥了它的功能,能稳定地驱动直流电机,且价格不高,故选用L298N驱动电机1.2.3 LED亮度控制电路比较与选择方案一:通过光敏二极管和一个2.7K的电阻一起控制NPN型三极管基极的电流,从而控制加在LED上面的电流,这样不需要在每个LED前面加限流电阻。只需要用一个限流电阻,电路简单。光敏二极管暗电流较小,有光时光电流较大。但是其效果并不明显,且电路不稳定。(图1) 图1方案二::采用光敏电阻与TLC555搭建电路。用TLC555、电容、电位器组成振荡电路产生稳定的PWM波输出。而光敏电阻的变化引起输出PWM波占空比的变化,从而改变显示亮度。电路简单,且易于控制。通过比较选定此方案二作为环境亮度变化调节电路。1.2.4供电方案的比较与选择方案一:采用电刷供电。即在电机的转轴上手工增加一个电刷,通过电刷为系统供电。此方法能够让系统长期供电,但是由于增加了电刷,电机的摩擦增大,势必会使系统的功耗增加,且不易控制,比较麻烦。 方案二:采用锂电池供电。即在电路板是直接附带一个锂电池,为系统供电。锂电池体积小,供电时间长,容易固定。使用时将电池固定在电路板,既解决旋转时因重力引起的重心不稳,同时也省去制作的时间。综合考虑本设计的电路模式,采用方案二。2理论分析与计算 2.1线阵LED参数计算 LED与电阻串联,所以该限流电阻为:根据 设计要求,Vcc=3.3v,Vled=1.8v,Von=0.6v,Iled=10mA;可求得的限流电阻为R=90.为了方便最后电阻取为R=100.2.2 线阵LED运动参数分析与计算在电机的带动下,线阵LED依靠旋转平台进行旋转,在40毫秒之内运动的物体认得眼睛无法辨别,线阵LED就能很好的地显示图文。设电机周期为,我们取周期t为40毫秒。 2.4 显示亮度自动调节分析与计算采用TI的TLC555、电容,、电阻和光敏电阻等组成振荡电路产生稳定的PWM波输出。则产生PWM波的周期、充电时间及其占空比的计算公式如下:周期为:T=(R1+R2)C1高电平时间为:T1=R1C1 经测试,光敏电阻的阻值在200到16K变化,正常光线下,阻值为2K,取R1为2K,占空比的变化范围较大。光敏电阻的变化引起输出PWM波占空比的变化,从而改变显示亮度。占空比越大,LED接通的时间越长,断开的时间越短,显示越亮。3.电路与程序设计 3.1电路设计 3.1.1系统总体方案设计MSP430G2553霍尔传感器 线阵LED电机驱动L298亮度控制(光敏电阻)12V电源直流电机3.3V电源按键 图2其总体设计如上图所示,霍尔传感器采集数据通过MSP430的处理控制电机的转速;MSP430G2553的控制通过按键的中断使LED显示不同的图文,当环境亮度改变时,由光敏电阻和NE555组成的占空比可调的电路自动改变LED的亮度,环境光线越亮,灯越亮,满足设计要求。 3.1.2单元电路及原理分析亮度控制电路:采用NE555与光敏电阻搭建电路。用555,电阻,电容及二极管组成振荡电路,产生稳定的PWM波输出,而光敏电阻的变化输出PWM波占空比的变化,从而改变LED的显示亮度,实现亮度随外界的变化而变化。(图3) 图3 线阵LED控制电路:我们所做电路选用的控制芯片用是有20个引脚MSP430G2553,所以控制16个LED显然不够用,因此利用74HC595实现串转并来控制线阵LED.(图4)图4 PWM产生及控制L298电路:采用两片LM358及电容电阻稳压二极管来构成三角波发生电路产生三角波,通过比较器LM311与一直流量比较产生PWM,通过调节其占空比来控制L298.(图5) 图5 机驱动电路: L298是双H桥高电压大电流集成电路,直接采用TTL逻辑电平控制。通过外接信号来调节PWM.在一个PWM周期内,电机承受双极性电压,电机的速度和方向均有PWM决定。(图6) 图6 3.1.4 电路原理图 见附录一。3.2 程序设计 见附录四。3.2.1程序功能描述与设计思路单片机MSP430G2553通过 74HC595进行串转并来控制16个LED。初始化,LED自检后,逐个依次点亮;通过独立按键控制线阵LED显示不同的图文3.2.2程序总体流程图当系统上电单片机初始化后,线阵LED进行自检,此时16个LED逐个点亮,当按键按下时,LED根据程序的设计显示不同的图文,流程图如下:(图7)开始初始化LED自检按键按键次数tt=1同心圆由大到小t=2T=3同心圆由小到大TI杯t=4指针式秒表ynynyyynnn 图七3.2.3程序清单见附录四。4.测试方案与测试结果 4.1 测试条件与仪器数字示波器 万用表 信号发生器 4.2 测试结果及分析 本设计的基本要求均已完成,可以在运转时按按键切换显示的内容,但也存在值得改进的地方。旋转平台不太稳,导致显示出现稍许飘移,秒表指针显示也不能达到精确的60秒一周。因为单片机内部的DCO本来就存在误差,而延时又是用delay来延时的,这样误差更大,为了减小这些误差,应该使用外部晶振,并且用定时器来延时。 5. 结论经过多日的辛勤努力,系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标。通过这次的项目,我们都学到了很多东西,因为这个项目主要针对的是软件方面,所以我们在软件方面下了很大功夫,有些程序在我们平时都没有训练过的,经过不断的摸索与实验,和其它同学交流,软件上有很大的进步。在硬件调试的过程中,我们也遇到很多问题,主要体现在线阵的平衡和稳定上面。由于时间紧,工作量大,系统还存在许多可以改进的地方。本次竞赛锻炼了我们各方面的能力,虽然我们遇到了很多困难和障碍,但总体上成功与挫折交替,困难与希望并存,我们将继续努力争取更大的进步。6. 参考文献1 秦龙编著.MSP430单片机常用模块与综合系统实例精讲.北京:电子工业出版社,2007.72 沈建华等.MSP430系列16位超低功耗单片机实践与系统设计.北京:清华大学出版社,2005.43 董诗白、华成英等.模拟电子技术基础.北京:高等教育出版社.2005.6附录1:附录2:光敏电阻、L298光敏电阻器是利用半导体的光电效应制成的一种电阻值随入射光的强弱而改变的电阻器;入射光强,电阻减小,入射光弱,电阻增大。L298N是SGS公司生产的直流电机驱动集成电路。内部包含4通道逻辑驱动电路,可以方便地驱动两个直流电机,或一个两相步进电机。工作电压为46V,输出电压最高可达50V,可以直接通过电源来调节输出电压;输出电流可达2.5A,最大可以达到4A,可驱动电感性负载;可以直接用单片机的IO口提供信号;而且电路简单,使用比较方便。L298N可接受标准TTL逻辑电平信号VSS,9脚VSS可接4.57V的电压。4脚VS接电源电压,VS电压范围VIH为2.546V。1脚和15管脚下的发射极分别单独引出以便接入电流采样电阻,形成电流传感信号。L298可驱动2个电动机,此时OUT1,OUT2和OUT3,OUT4之间可分别接电动机。5、7、10、12脚接输入控制电平,控制电机正反转;ENA,ENB脚接控制使能端,控制电机的停转。L298逻辑功能表IN1IN2ENA电机状态0停止000停止011逆时针101顺时针110停止附录3:原器件清单元器件名称元器器件型号元器件个数单片机MSP430G25531电机174HC59574HC5952电机驱动芯片L2981比较器LM3111集成运放LM3582光敏电阻1电源锂电池1传感器霍尔传感器1按键独立按键1电容若干电阻若干导线若干附录四: 程序清单/* 程序功能:线阵LED图文显示 作者 :许卫 日期 :2013.7.25All rights reserved!*/#include#define uchar unsigned char#define uint unsigned int/*74HC595引脚定义*/#define L_DATA BIT1#define L_CLK BIT5#define L_STR BIT4#define L_OE BIT3/*全局变量定义*/uchar t50ms,ts,tm=32,th=12;uchar count=0,num;uchar Clock_buff=12:35:20;uchar const disp_buff64;uchar const num_buff;uchar sort_buff164;uchar sort_buff264;/*延时函数*/void delay_ms(uint time)uint i,j;for(i=time;i0;i-) for(j=250;j0;j-);/*延时函数*/void delay_320us(uchar time)uint i,j; for(i=time;i0;i-) for(j=77;j0;j-); /320us/*数组元素重新排序*/void Re_sort() uchar i; for(i=0;i64;i+) sort_buff163-i=disp_buffi; for(i=0;i32;i+) sort_buff22*i=sort_buff12*i+1; sort_buff22*i+1=sort_buff12*i; /*单片机初始化函数*/void mcu_init() WDTCTL=WDTPW+WDTHOLD; BCSCTL1=CALBC1_1MHZ; /DCO设置为1M DCOCTL=CALDCO_1MHZ; BCSCTL3|=LFXT1S_0; IFG1&=OFIFG; BCSCTL2 |=SELM_1; /设置主时钟MCLK为DCO,且频率为1MHz,子时钟1M。 /*定时器初始化函数*/void TIMER_init() TACTL = TASSEL_2 +TACLR ; / SMCLK, Contmode 使计数模式为增计数 CCTL0 = CCIE; / CCR0 interrupt enabled CCR0 = 50000; /50毫秒/*P1中断端口初始化*/void P1_port_init() P1DIR&=(BIT1+BIT5); /P1.1为霍尔中断 P1.5按键中断 P1SEL&=(BIT1+BIT5); /第二功能 P1REN|= BIT1+BIT5; /上拉电阻使能 P1IE|=BIT1+BIT5; /设中断 P1IES|=BIT1+BIT5; /下降沿中断 P1IFG&=(BIT1+BIT5); /中断标志清零/*74HC595显示函数*/void display(uchar bit_flag, uint disp_temp) /bit_flag为1,先写高位。为0,先写低位 unsigned int temp; unsigned char i; P2DIR|=L_DATA+L_CLK+L_STR+L_OE; P2OUT&=L_CLK; P2OUT&=L_STR; P2OUT|=L_OE; temp=disp_temp; if(bit_flag) for(i=0;i16;i+) if(temp&0x8000) P2OUT|=L_DATA; else P2OUT&=L_DATA; P2OUT|=L_CLK; /上升沿数据移位 P2OUT&=L_CLK; temp=1; else for(i=0;i=1; P2OUT|=L_STR; /上升沿数据锁存 P2OUT&=L_STR; P2OUT&=L_OE; /输出使能 /*写一个字符串*/void disp_ascii(uchar *p) unsigned int temp; unsigned char i,j; for(j=0;*p!=0;j+) for(i=0;i8;i+) /8列 temp=num_buff2*i+(*p-0x30)*16; temp=8; temp|=num_buff2*i+1+(*p-0x30)*16; display(0,temp); delay_320us(1); /间隔320us p+; /*开机自检函数*/void Turn_on_test() uint i; uint temp=0x0001; for(i=0;i16;i+) display(1,temp); /高电平点亮 delay_ms(1000); /间隔1s temp=1; /*同心圆*/void draw_circle() uint i; uint temp; temp=0x8000; for(i=0;i=1; temp=0x0001; for(i=0;i16;i+) /从大到小 display(1,temp); delay_ms(300); /间隔0.3s temp=1; /*TI杯程序*/void draw_TI_cup(uchar const *p) uint i; uint temp; p=&sort_buff20; for(i=0;i32;i+) /32列 temp=*p+; /将一竖的两个字节合成一个字 temp=5) count=1; while(!(P1IN&BIT5); if(P1IFG&BIT1) P1IFG &=(BIT1); if(count=1) P1IE&=BIT1; /关中断 draw_circle(); P1IE|=BIT1; /同心圆显示完后开中断 else if(count=2) /每次霍尔中断就显示一次TI杯 P2OUT|=L_OE; draw_TI_cup(sort_buff2); P2OUT|=L_OE; else if(count=3) TACTL|=MC_1; /开始定时 draw_second_hand(); else if(count=4) Clock_buff0=ts%10+0x30; Clock_buff1=ts/10+0x30; Clock_buff3=tm%10+0x30; Clock_buff4=tm/10+0x30; Clock_buff6=th%10+0x30; Clock_buff7=th/10+0x30; disp_ascii(Clock_buff); /Timer A0 interrupt service routine#pragma vector=TIMER0_A0_VECTOR_interrupt void Timer_A0 (void) t50ms+; if(t50ms=20) t50ms=0; ts+; if(ts=60) ts=0; tm+; if(tm=60) tm=0;th+; if(th=24) th=0; uchar const disp_buff64=0x18,0x00,0x10,0x00,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x10,0x04,0x10,0x04,0x1F,0xFC,0x10,0x04,0x10,0x04,0x00,0x00,0x00,0x00,0x10,0x40,0x11,0x80,0x16,0x00,0xFF,0xFF,0x12,0x00,0x51,0x20,0x40,0x40,0x40,0x80,0x43,0x00,0x4F,0xFF,0x70,0x00,0x41,0x00,0x40,0x80,0x40,0x60,0x40,0x30,0x00,0x00,;uchar const num_buff= 0x00,0x00,0x07,0xF0

温馨提示

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

评论

0/150

提交评论