LED图文显示系统论文

上传人:guoc****ang 文档编号:53432047 上传时间:2022-02-10 格式:DOC 页数:47 大小:419.39KB
收藏 版权申诉 举报 下载
LED图文显示系统论文_第1页
第1页 / 共47页
LED图文显示系统论文_第2页
第2页 / 共47页
LED图文显示系统论文_第3页
第3页 / 共47页
资源描述:

《LED图文显示系统论文》由会员分享,可在线阅读,更多相关《LED图文显示系统论文(47页珍藏版)》请在装配图网上搜索。

1、电子信息工程学院电子设计大赛论文LED图文显示系统报告 参赛人员: 任毅超 王悦润 孙立财 参赛时间:2014.5.112014.6.16 指导教师: 邵 清 亮 目录摘要3一、任务要求4 1. 基本要求4 2. 发挥部分4二、总体方案设计5 1.系统分析5 2.方案论证5 3.方案设计6 4.系统总体方框图6三、电路与程序设计7 3.1 电路设计7 3.1.1 单片机选择及系统电路7 3.1.2 亮度自动调节装置8 3.1.3 电路稳压模块8 3.1.4 电平检测电路9 3.2 程序设计9 3.2.1 主函数9 3.2.2 定义STC12C5A16S2的各拐角功能10 3.2.3 二极管检测

2、10 3.2.4 从大到小亮同心圆11 3.2.5 从小到大亮同心圆12 3.2.6 显示“IT”13 3.2.7 显示“电”14 3.2.8 显示“时钟”16 3.2.9 电机起转函数17 3.2.10 电机停转函数18 3.2.11 消息等待194、 测试结果21 4.1 测试工具21 4.2 测试结果完整性214.3 测试结果分析21五、参考文献22六、附录23 附录一 控制电路电路图23 附录二 设计源程序24 附录三 元器件清单43摘 要LED旋转显示器时基于视觉暂留原理,开发的一种旋转式LED显示屏。本设计基于STC89C52RC单片机,通过步进电机带动旋转,在具有一定转速地载体上

3、安装16个LED发光器件,各LED发光管等间距排位一条直线,随着旋转速度的加快,不断扫描出预设的文字,图案等。针对传统LED显示屏视角单一、体积较大、需要的发光二极管数目较多等特点,利用电机带动LED显示阵列高速旋转实现环形显示,达到360全视角,在相同显示信息量上降低产品体积,减少对发光二极管的使用,设计一个可以经常方便变换内容、能够携带方便、信息容量大、价格低廉、结构简单的信息播放系统,即旋转LED显示屏。实际制作的LED旋转显示屏技术参数的测试结果,以及实际的运行效果表明,本文设计和制作的旋转显示屏基本符合设计的基本要求,具有一定的创新性与实际应用价值。设计关键词:STC12C5A16S

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

5、。(2) 通过按键切换,显示字符“电”,要求字符显示稳定,无明显漂移。(3) 通过按键切换,显示一个指针式秒表,该秒表以标志杆为起始标志,秒针随时间动态旋转,旋转一周的时长为 601 秒。(4) 其它。二、总体方案设计1.系统分析本设计要求进行旋转LED显示屏的研究和设计。系统以STC89C52RC系列单片机作为核心控制器件,通过控制电机保持一定的速度稳定旋转,带动单排LED旋转,形成扫描显示屏;单片机根据LED旋转的速度,控制LED发光或熄灭,在视觉上形成平面图形点阵的显示效果。2.方案论证系统供电方案选择 我们采用固定电池供电。即在电路板是直接附带一组干电池,为系统供电。采用电池供电,使用

6、时,将电池固定在电路板上适当的位置,既解决旋转时因重力引起的重心不稳,同时也省去制作的时间。驱动电机模块 方案一:采用普通的直流电机。此方案,虽然使用方便,成本较低,但是要完成实验要求需要进行改装,比较麻烦。 方案二:采用步进电机。步进电机能够准确的定向,同时可以通过角度控制图文显示,使得图文显示更加准确、稳定。实验室可以提供步进电机,所以无需考虑成本问题。 综合各方面考虑,为了节省成本,简单系统电路,以及更方便的为系统供电,准确的控制图文显示,使系统能够长期工作,我们采用了直流电机。3.方案设计 本文的设计是以STC12C5A16S2为核心,利用LED显示阵列搭建的点阵式旋转LED屏系统。该

7、系统主要由电机,控制电路,LED显示阵列三部分组成。 电机的作用就是带动电路部分进行旋转,这个部分的关键就在于电机的转速要均匀,这样才能保证图像在水平方向不会被局部伸展或者压缩。为了使LED转速保持稳定,我们采用使用匀速的步进电机。 LED整列是旋转屏的显示主体,为LED显示控制电路的作用是将存储在芯片内图像或符号,在旋转位置感应信号的同步下,根据旋转的位置按列扫描显示在LED阵列上。这部分是整个系统的核心。4系统总体方框图 24V电源 步进电机驱动5V电源 步进电机 单片机 STC12C5A16S2 WERWESTC12C5A16S2STC12C5A16S2STA12C5ASTC12C5A1

8、6S2STC12C5A16S2STC12C5A16S2STC12C5A16S2STC12C5A16S2 LED显示三、电路与程序设计3.1电路设计3.1.1单片机选择及系统电路 单片机作为整个硬件系统的核心部分,它既是协调整机工作的控制器,也是数据处理器。本系统采用STC12C5A16S2作为主控制器,他是一款与MCS51完全兼容的且内部自带有12KB的Flash存储器及512KB RAM单元的芯片。因此可以不需要另外扩展EEPROM及静态RAM就可以实现所需功能。电路如图(一)所示。 图(一) 单片机控制电路3.1.2亮度自动调节装置通过采用TI公司的芯片TLC555与光敏电阻搭建电路。用T

9、LC555、电容、电位器组成振荡电路产生稳定的PWM波输出。而光敏电阻的变化引起输出PWM波占空比的变化,从而改变显示亮度,实现亮度随外界环境变化而自动调节,亮度自动调节电路图如图(二)所示。 图 (二) 亮度调节电路3.1.3电路稳压模块由于采用四节直流电池供电,每节电池电压为1.5V,而单片机需要5V直流电源。所以采用稳压二极管及补偿电路,将6V直流电压进行稳压、滤波得到所需要的5V直流电源供给单片机。电路如图(三)所示。 图 三 稳压电路图3.1.4电平检测电路设置一个按键开关,当单片机每一模块执行结束后,检测开关是否按下。3.2程序设计3.2.1 主函数主函数模块图如图所示定义STC1

10、2C5A16S2的各拐角功能 二极管检测 初始化从大到小亮同心圆从小到大亮同心圆显示“IT”显示“电”显示“时钟”图(四) 主函数模块图3.2.2. 定义STC12C5A16S2的各拐角功能设置P0口为二极管低八位,P1口为二极管高八位,P2.0为电动机接口,给步进电机提供步进脉冲,P3.2口为按键检测。#define LEDLow P0 /设置二极管低八位 #define LEDHigh P1 /设置二极管高八位 sbit MOTOR=P20; /设置电动机接口 sbit button=P32;3.2.3 二极管检测16个led灯从大到小依次点亮,一个亮一秒。void start() /图文

11、显示初始化unsigned int dop;dop=0x7fff;while(count-)view(dop);dstop(1000);dop=_iror_(dop,1);dop=0xffff;view(dop);count=16;return;3.2.4 从大到小亮同心圆通过人眼视觉停留,LED灯从大到小依次点亮,使平台旋转后,形成由大到小的同心圆。void ror()/顺时针转圈static unsigned int dop1=0x7fff;if (rorinit=0)rorinit=1;view(dop1);TestSecond=second;count=16;/重新启动if (Test

12、Second!=second)TestSecond=second;count-;dop1=_iror_(dop1,1);view(dop1);if (count=0)view(0xffff);rorinit=0;return;3.2.5 从小到大亮同心圆通过人眼视觉停留,LED灯从小到大依次点亮,使平台旋转后,形成由小到大的同心圆。void rol() /逆时针转圈static unsigned int dop2=0xfffe;if (rolinit=0)rolinit=1;view(dop2);TestSecond=second;count=16;/重新启动if (TestSecond!=s

13、econd)TestSecond=second;count-;dop2=_irol_(dop2,1);view(dop2);if (count=0)view(0xffff);rolinit=0;return;3.2.6 显示“IT”因该作品采用的电机为步进电机,所以方便采用角度的方法对led亮灯进行控制,通过电机驱动每输入800个脉冲控制步进电机旋转一周。再通过极坐标控制的方法,对每个led亮的位置进行控制。使用极坐标对“IT”的算法:unsigned short int T1=0,T2=0,I=0,show=0;if(Tangle=66&Tangle=100&Tangle=500&Tangl

14、e=100&Tangle=500&Tangle=300&Tangle=700&Tangle=0&Tangle=300&Tangle=280&Tangle=second&(tag*3/40)=second&(tag+400)/800*3/20)195|(tag%200)1) wait-;if (tangle=800)tangle=0; while (tangle)MOTOR=0;dstop(wait); /电机校零函数MOTOR=1;dstop(wait);tangle+;if (tangle=800)tangle=0; return;3.2.10 电机停转函数void motostop() /

15、电机停转函数(用于消除起转过载)unsigned int tanglestar=800;unsigned char wait=1;while(tanglestar-)MOTOR=0;motodelay(wait);/4转每秒到半转每秒减速2圈MOTOR=1;motodelay(wait);tangle+;if (tangle%160=0)if (wait=800)tangle=0; while (tangle)MOTOR=0;motodelay(wait); /电机校零函数MOTOR=1;motodelay(wait);tangle+;if (tangle=800)tangle=0;retur

16、n;3.2.11消息等待void message()while (msg)int t=50000;while(button=0);while (t-);if (button=0)msg=0;second=0;motostar();TH0=15536/256; TL0=15536%256;TR0=1;count=16;item+;switch (item)/转动时间选择函数case 1:case 2:rosecond=16;break;case 5:rosecond=60;break;default:rosecond=10;msg=1;四、测试结果4.1测试工具电源箱 万用表 示波器 4.2测试

17、结果完整性1.完成制作一个由16只 LED构成的线状点阵及其控制电路,安装于可旋转的平台上,在平台的中心设置一个按键,用于功能的切换,电机带动平台以合适速度旋转。2.开机时装置完成显示自检,能对点阵中16只LED逐个点亮,每只LED显示时间约为1秒,此时平台不旋转。3.通过按键切换,实现16个同心圆图形分别顺序(由大到小)和逆序(由小到大)显示,每个同心圆图形显示时间为0.3秒左右。4.LED显示亮度能依据环境亮度变化自动调节。5.通过按键切换,显示字符“TI杯”,要求字符显示较稳定,无明显漂移。6.通过按键切换,显示一个指针式秒表,该秒表以标志杆为起始标志,秒针随时间动态旋转,旋转一周的时长

18、为601秒。4.3测试结果分析 经过测试,可以确定系统构架设计比较合理,可以很好确定旋转平台的中心,电路功能实现基本符合设计要求。五、参考文献1 谭浩强编著.C程序设计.北京:清华大学出版社出版社,2005.72 张刚毅、刘杰编著.单片机原理及应用.哈尔滨:哈尔滨工业大学出版社,2008.93 童诗白编著.模拟电子技术基础.北京:高等教育出版社.2012.124 童诗白编著。数字电子技术.北京:高等教育出版社.2012.12六、附录 附录一 控制电路电路图附录二 程序1. 主程序/* 文件名 : LED图文显示 创建者 : 任毅超 创建日期 : 2014-5-24 控制IC : MCU类型 :

19、 STC12C5A16S2 描述 : LCD图文显示模块测试程序 修改历史 : */ #include #include / #include #define LEDLow P0 /设置二极管低八位 #define LEDHigh P1 /设置二极管高八位 sbit MOTOR=P20; /设置电动机接口 sbit button=P32; /设置外部中断0口检测位 #include mechine.h /电机头文件 void main()start();init(); /电机转动message();while(second=800)tangle=0; if (second=rosecond)/

20、显示完成view(0xffff);TR0=0;MOTOR=1;button=1;motostop();message();while(second=800)tangle=0; if (second=rosecond)/显示完成view(0xffff);TR0=0;MOTOR=1;button=1;motostop();message();while(second=800)tangle=0; if (second=rosecond)/显示完成view(0xffff);TR0=0;MOTOR=1;button=1;motostop();message();while(second=800)tang

21、le=0; if (second=rosecond)/显示完成view(0xffff);TR0=0;MOTOR=1;button=1;motostop();message();while(second=817)tangle=0; if (second=rosecond)/显示完成view(0xffff);TR0=0;MOTOR=1;button=1;motostop();message();while(second=800)tangle=0; if (second=rosecond)/显示完成view(0xffff);TR0=0;MOTOR=1;button=1;motostop();void

22、 message()while (msg)int t=50000;while(button=0);while (t-);if (button=0)msg=0;second=0;motostar();TH0=15536/256; TL0=15536%256;TR0=1;count=16;item+;switch (item)/转动时间选择函数case 1:case 2:rosecond=16;break;case 5:rosecond=60;break;default:rosecond=10;msg=1;void view(unsigned int LED) /二极管亮灯函数char Low,H

23、igh;Low=LED%0x100;High=LED/0x100;LEDLow=Low;LEDHigh=High;return;2. 函数的声明和实现的头文件#include datait.h /IT数据头文件#include dataelc.h /电数据头文件#include dataface.h /笑脸头文件void init();/总初始化void view(unsigned int LED);void message();void start();void dstop(unsigned int t); /停转普通延函数0.1毫秒(不精确)void motodelay(unsigned

24、int t);unsigned int msecond=0,second=0,rosecond,TestSecond,tangle;unsigned char count=16,item=0;bit msg=1,rorinit=0,rolinit=0;void init()TMOD=0x01;TH0=15536/256; /重新装数TL0=15536%256; EA=1; /总中断ET0=1; /T0中断TR0=0; /开始定时return;void timer0() interrupt 1 /定时器T0中断服务程序 用于产生秒信号TH0=15536/256; /重新装数TL0=15536%2

25、56;msecond+;if (msecond=20) /精确为1秒msecond=0;second+;return;void start() /图文显示初始化unsigned int dop;dop=0x7fff;while(count-)view(dop);dstop(1000);dop=_iror_(dop,1);dop=0xffff;view(dop);count=16;return;void ror() /顺时针转圈static unsigned int dop1=0x7fff;if (rorinit=0)rorinit=1;view(dop1);TestSecond=second;

26、count=16; /重新启动if (TestSecond!=second)TestSecond=second;count-;dop1=_iror_(dop1,1);view(dop1);if (count=0)view(0xffff);rorinit=0;return;void rol() /逆时针转圈static unsigned int dop2=0xfffe;if (rolinit=0)rolinit=1;view(dop2);TestSecond=second;count=16; /重新启动if (TestSecond!=second)TestSecond=second;count-

27、;dop2=_irol_(dop2,1);view(dop2);if (count=0)view(0xffff);rolinit=0;return;void ShowIt(unsigned int Tangle)unsigned int show=Tangle/8;view(dataitshow);return;void ShowElc(unsigned int Tangle)unsigned int show=Tangle/8;view(dataelcshow);return;void Showface(unsigned int Tangle)unsigned int show=Tangle

28、/8;view(datafaceshow);return;void showclock(unsigned intTangle)unsigned int miao1=0,miao2=0,dot=0,show=0,tag=Tangle;if (tag*3/40)=second&(tag*3/40)=second&(tag+400)/800*3/20)195|(tag%200)1) wait-;if (tangle=800)tangle=0; while (tangle)MOTOR=0;dstop(wait); /电机校零函数MOTOR=1;dstop(wait);tangle+;if (tangl

29、e=800)tangle=0; return;void motostop() /电机停转函数(用于消除起转过载)unsigned int tanglestar=800;unsigned char wait=1;while(tanglestar-)MOTOR=0;motodelay(wait); /4转每秒到半转每秒减速2圈MOTOR=1;motodelay(wait);tangle+;if (tangle%160=0)if (wait=800)tangle=0; while (tangle)MOTOR=0;motodelay(wait); /电机校零函数MOTOR=1;motodelay(wa

30、it);tangle+;if (tangle=800)tangle=0;return;void dstop(unsigned int t) /停转普通延函数0.1毫秒(不精确)unsigned int x;while (t-)x=600;while(x-);return;void motodelay(unsigned int t) /停转普通延函数0.1毫秒(不精确)unsigned int x;while (t-)x=50;while(x-);return;附录三 元器件清单序号编号名称型号数量1MCU1 单片机STC12C5A16S212BJ1步进电机86BYGB13SF1步进电机驱动SF-2HB04M14DC15号电池1.5V45DCH1电池盒4节装16J1开关点按开关17J2开关按键开关18R1光敏电阻15k19R2排阻1k210M2集成运放LM741111R3可变电阻232112LED1发光二极管LED-red1613C1电容100u614R4电阻100k645

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!