线阵LED图文显示装置论文Word下载.docx

上传人:b****1 文档编号:4381507 上传时间:2023-05-03 格式:DOCX 页数:22 大小:368.27KB
下载 相关 举报
线阵LED图文显示装置论文Word下载.docx_第1页
第1页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第2页
第2页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第3页
第3页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第4页
第4页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第5页
第5页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第6页
第6页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第7页
第7页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第8页
第8页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第9页
第9页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第10页
第10页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第11页
第11页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第12页
第12页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第13页
第13页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第14页
第14页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第15页
第15页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第16页
第16页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第17页
第17页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第18页
第18页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第19页
第19页 / 共22页
线阵LED图文显示装置论文Word下载.docx_第20页
第20页 / 共22页
亲,该文档总共22页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

线阵LED图文显示装置论文Word下载.docx

《线阵LED图文显示装置论文Word下载.docx》由会员分享,可在线阅读,更多相关《线阵LED图文显示装置论文Word下载.docx(22页珍藏版)》请在冰点文库上搜索。

线阵LED图文显示装置论文Word下载.docx

1.3电机驱动电路比较与选择

中功率三级管直接搭建。

在电机驱动要求不高的地方可以由三极管直接搭建一个驱动电路,使用三级关搭建的电机驱动电路电路简单,但功率和性能一般。

对输入信号要求较高,输出性能只能满足一般要求。

使用单片机MSP430G2553控制电机驱动芯片L298N。

L298N的驱动能力强,输入电压可变化范围大,是一块专用直流电机驱动芯片。

其各项性能都较好,但价格较高,在电机要求驱动器较高的地方使用较佳。

在该系统中,带动旋转平台的直流电机使用L298N驱动模块,很容易实现对电机较稳的控制,故采用方案二。

1.4亮度自动调节电路比较与选择

采用线性较好的光敏电阻,将光敏电阻串入控制电路的输出端再接入线阵LED灯,当光亮度变化时即可改变电流大小,从而达到亮暗调节。

但是电路不稳定,故不采取此方案。

方案二:

采用光敏电阻与TLC555搭建电路。

用TLC555、电容、电位器组成振荡电路产生稳定的PWM波输出。

而光敏电阻的变化引起输出PWM波占空比的变化,从而改变显示亮度。

电路简单,且易于控制,因此选定此方案作为环境亮度变化调节电路。

2理论分析与参数计算

2.1线状点阵LED驱动参数分析与计算

该线状点阵中LED驱动方法为普通的LED与电阻串联的方式来驱动点亮LED,该限流电阻计算公式如下:

根据设计要求,

可求得限流电阻:

经计算采用

电阻与LED串联即可。

2.2线阵LED运动参数分析与计算

在电机的带动下,线阵LED依靠旋转平台进行旋转,设电机周期为

,LED完成需要时间为

,软件延时为

,它们之间存在下列关系:

只要保证

,经计算由

,线阵LED就能很好的地显示图文。

2.3指针式秒表分析与计算

指针秒表完全通过软件来控制显示,设电机周期为

,存在下列关系:

保证

成立,确定LED完成需要时间为

,线阵LED就能很好的地显示秒表计时。

2.4显示亮度自动调节分析与计算

采用TI的TLC555、电容

、电阻

和光敏电阻

等组成振荡电路产生稳定的PWM波输出。

则产生PWM波的周期、高电平及其占空比的计算公式如下:

光敏电阻的变化引起输出PWM波占空比的变化,从而改变显示亮度,即电流控制。

控制电流大小计算如下:

3电路与程序设计

3.1电路设计

3.1.1系统总体方案设计

本系统将外接的12V电源给电机供电,4.2V电源为控制器供电,通过电源调压芯片LP2950-33LPR为系统提供3.3V电压。

单片机按照一定的算法控制电机的转动,使电机转动稳定以完成各种控制动作,总体设计框图如图1。

图1

3.1.2系统电源设计

系统需要12V、3.3V电源,采用12V开关电源给直流电机供电,需要的3.3V电压则从4.2V锂电池通过TI公司的电源调压芯片LP2950-33LPR位系统提供3.3V电压,系统电源电路图见附图一。

3.1.3单片机G2553控制电路的设计

控制电路主要有单片机MSP430G2553、串并转换芯片74HC164、16个限流电阻和16个LED组成的。

单片机很好地利用软件程序发送串行数据,通过串并转换芯片把从单片机发出的数据通过限流电阻并行送到16个LED,控制线阵LED显示图文,单片机G2553控制电路图见附图二。

3.1.4亮度自动调节电路设计

通过采用TI公司的芯片TLC555与光敏电阻搭建电路。

而光敏电阻的变化引起输出PWM波占空比的变化,从而改变显示亮度,实现亮度随外界环境变化而自动调节,亮度自动调节电路图见附图三。

`3.1.5起始标志杆检测电路设计

本电路采用霍尔传感器采集数据并检测标志杆,把霍尔传感器固定到旋转平台,一块小磁铁固定到标志杆上,并与霍尔传感器水平一条线放置。

当旋转平台边缘上网霍尔传感器经过标志位的小磁铁时,传感器感应到磁场发生变化,同时产生输出电压脉冲,并将此脉冲送入单片机。

起始标志杆检测电路图见附图四。

3.2程序设计

3.2.1主程序设计

当系统上电后单片机初始化后,先进行LED检测,按键触发计数选择显示不同的图文,程序则按照相应部分的程序算法执行,主程序流程图如图2。

图2

4测试结果

4.1测试仪器

示波器DS1302CA、万用表DT-9205

4.2测试结果完整性

1.完成制作一个由16只LED构成的线状点阵及其控制电路,安装于可旋转的平台上,在平台的中心设置一个按键,用于功能的切换,电机带动平台以合适速度旋转。

2.开机时装置完成显示自检,能对点阵中16只LED逐个点亮,每只LED显示时间约为1秒,此时平台不旋转。

3.通过按键切换,实现16个同心圆图形分别顺序(由大到小)和逆序(由小到大)显示,每个同心圆图形显示时间为0.3秒左右。

4.LED显示亮度能依据环境亮度变化自动调节。

5.通过按键切换,显示字符“TI杯”,要求字符显示较稳定,无明显漂移。

6.通过按键切换,显示一个指针式秒表,该秒表以标志杆为起始标志,秒针随时间动态旋转,旋转一周的时长为60±

1秒。

4.3测试结果分析

经过测试,可以确定系统构架设计比较合理,可以很好确定旋转平台的中心,电路功能实现基本符合设计要求。

5结束语

经过多日的辛勤努力,系统架构设计合理,功能电路实现较好,系统性能优良、稳定,较好地达到了题目要求的各项指标,在硬件调试的过程中,我们遇到很多问题。

由于时间紧,工作量大,系统还存在许多可以改进的地方。

本次竞赛锻炼了我们各方面的能力,虽然我们遇到了很多困难和障碍,但总体上成功与挫折交替,困难与希望并存,我们将继续努力争取更大的进步。

参考文献:

[1]秦龙编著.《MSP430单片机常用模块与综合系统实例精讲》.北京:

电子工业出版社,2007.7

[2]沈建华等.《MSP430系列16位超低功耗单片机实践与系统设计》.北京:

清华大学出版社,2005.4

[3]郁有文等.《传感器原理及工程应用》.西安:

西安电子科技大学出版社.2008.6

[4]张剑平编著.《模拟电子技术教程》.北京:

清华大学出版社.2011.3

[5]龙治红、谭本军编著。

《数字电子技术》.北京:

北京理工大学出版社.2010.7

附录一:

1.系统电源电路图(见附图一)

附图一

2.单片机G2553控制电路图见附图二

附图二

3.亮度自动调节电路图(见附图三)

附录三

4.起始标志杆检测电路图(见附图四)

附图四

5.电机驱动电路图(见附图五)

附图五

附录二:

#include<

msp430g2553.h>

//单片机头文件

#defineCPU_F((double)1000000)

#definedelay_us(x)__delay_cycles((long)(CPU_F*(double)x/1000000.0))//调用delay_ms(2000);

延时2000MS

#definedelay_ms(x)__delay_cycles((long)(CPU_F*(double)x/1000.0))//调用delay_us(x);

延时Xus

#defineL_WRP1OUT&

=~BIT5

#defineH_WRP1OUT|=BIT5

#defineL_CLKP2OUT&

=~BIT0

#defineH_CLKP2OUT|=BIT0

#defineL_DAT0P2OUT&

=~BIT1

#defineH_DAT0P2OUT|=BIT1

#defineL_DAT1P2OUT&

=~BIT2

#defineH_DAT1P2OUT|=BIT2

#defineL_ENP2OUT&

=~BIT3

#defineH_ENP2OUT|=BIT3

//#defineKEYP1;

//霍尔传感器A04E设置中断标志位

unsignedcharconstzimu[],aa[];

unsignedchart=0;

unsignedcharm=0;

unsignedcharx=0,y=0;

/*********************************************************************************************

函数名:

关闭所有LED灯(操作硬件)

结果:

所有LED灯熄灭

**********************************************************************************************/

voidDISPLAY_OFF(void)

{

delay_us(50);

//显示停留

L_WR;

H_WR;

}

/**********************************************************************************************/

参数:

16位显示数据(下高位)(d:

上面8位,e:

下面8位)

voiddisplay(unsignedcharconstd,unsignedcharconste)//第1列横向显示程序

{

unsignedchari,a,b;

L_EN;

a=d;

b=e;

for(i=0;

i<

8;

i++)

{

L_CLK;

if((a&

0x80)==0x80)

H_DAT0;

else

L_DAT0;

if((b&

H_DAT1;

L_DAT1;

H_CLK;

a<

<

=1;

b<

}

H_EN;

DISPLAY_OFF();

}

voiddisplay1(unsignedcharconstd,unsignedcharconste)//第1列横向显示程序

a=e;

b=d;

/****************************************************************************

时钟初始化

***************************************************************************/

voidOSCILLATOR_Init(void)

if(CALBC1_1MHZ==0xFF||CALDCO_1MHZ==0xFF)

{while

(1);

}//Ifcalibrationconstantserased,trapCPU!

!

BCSCTL1=CALBC1_1MHZ;

//Setrange

DCOCTL=CALDCO_1MHZ;

//SetDCOstep+modulation

BCSCTL3|=LFXT1S_2;

//SetLFXT1

IFG1&

=~OFIFG;

//ClearOSCFaultflag

BCSCTL2|=SELM_1+SELS+DIVM_0;

//SetMCLK

IO初始化程序

voidinit(void)//初始IO接口状态

P1DIR=0xff;

P2DIR=0xff;

P1OUT=0xff;

P2OUT=0xff;

/*****************************************************************************

定时器初始化

*************************************************************************/

voidTIMER()

TACTL=TASSEL_2+MC_1;

//SMCLK,Contmode使计数模式为增计数

CCTL0=CCIE;

//CCR0interruptenabled

CCR0=14000;

//初始值为14000相当于1s

/*************************************************************************

扫描中断初始化函数

******************************************************************************/

voidZ_init()

P1DIR&

=~BIT4;

=~BIT0;

P1SEL&

P1IFG&

P1IE|=BIT4;

P1IE|=BIT0;

P1IES&

P1IES|=BIT0;

/******************************************************************************/

voidLDE_0()//16个LED逐个亮1S

unsignedchari=0;

32;

i+=2)

display1(aa[i],aa[i+1]);

delay_ms(1000);

//P2OUT|=BIT2;

//启动电机

delay_ms(10);

_EINT();

//开中断

/***************************************************************************/

voidLED_1()//同心圆从大到小0.3S

delay_ms(300);

}

voidLED_2()//同心圆从小到大0.3S

unsignedchari;

for(i=32;

i>

0;

i-=2)

display1(aa[i-2],aa[i-1]);

/*****************************************************************************/

voidLED_3()//TI杯显示

unsignedchara;

unsignedintc=0;

//数据指针

for(a=0;

a<

55;

a++)

display(zimu[c],zimu[c+1]);

c=c+2;

//产生显示一列移位

delay_ms(25);

delay_us(700);

/****************************************************************************/

voidLED_4()//指针式秒表

y++;

if(y==30)

y=0;

x++;

if(x==60)x=0,y=0;

for(i=61-x;

1;

i--)

delay_us(1000);

display(0xff,0xff);

//TIMER();

主函数

voidmain(void)

//Stopwatchdogtimertopreventtimeoutreset

WDTCTL=WDTPW+WDTHOLD;

OSCILLATOR_Init();

//时钟初始化

init();

//IO初始程序

Z_init();

//中断初始化

LDE_0();

//启动自检开中断

while

(1)

{}

/**************************************************************************/

#pragmavector=PORT1_VECTOR//霍尔中断

__interruptvoidport_1(void)

if(P1IFG&

BIT0)

{

delay_ms

(1);

t++;

if(t==5)t=1;

=~(BIT0);

BIT4)

//delay_ms

(1);

=~(BIT4);

if(t==1)LED_1();

if(t==2)LED_2();

if(t==3)LED_3();

if(t==4)LED_4();

//TimerA0interruptserviceroutine

#pragmavector=TIMER0_A0_VECTOR

__interruptvoidTimer_A0(void)

m++;

if(m>

60)m=0;

/******************************************************************************

字幕数组

*******************************************************************************/

unsignedcharconstaa[]={//从外到内,一次点亮

0x00,0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80,

0x01,0x00,0x02,0x00,0x04,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,0x80,0x00,

};

unsignedcharconstzimu[]={//(取码:

从上到下从左到右,纵向8位下高位)

//TI杯

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

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2