大学生课外学术科技作品竞赛基于LED的梦幻摇摇棒的设计.doc

上传人:文库蛋蛋多 文档编号:3037785 上传时间:2023-03-09 格式:DOC 页数:26 大小:1.74MB
返回 下载 相关 举报
大学生课外学术科技作品竞赛基于LED的梦幻摇摇棒的设计.doc_第1页
第1页 / 共26页
大学生课外学术科技作品竞赛基于LED的梦幻摇摇棒的设计.doc_第2页
第2页 / 共26页
大学生课外学术科技作品竞赛基于LED的梦幻摇摇棒的设计.doc_第3页
第3页 / 共26页
大学生课外学术科技作品竞赛基于LED的梦幻摇摇棒的设计.doc_第4页
第4页 / 共26页
大学生课外学术科技作品竞赛基于LED的梦幻摇摇棒的设计.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《大学生课外学术科技作品竞赛基于LED的梦幻摇摇棒的设计.doc》由会员分享,可在线阅读,更多相关《大学生课外学术科技作品竞赛基于LED的梦幻摇摇棒的设计.doc(26页珍藏版)》请在三一办公上搜索。

1、序号: 编码: 燕山大学第十一届“共创杯”大学生课外学术科技作品竞赛作品申报书 作品名称: 基于LED的梦幻摇摇棒的设计 所属学院: 燕山大学里仁学院电气工程系 申报者姓名(集体名称): 韩林松 类别: 自然科学类学术论文 哲学社会科学类社会调查报告和学术论文 科技发明制作A类n 科技发明制作B类共青团燕山大学委员会2011年3月申报者情况申报者代表情况姓名性别男出生年月学院里仁学院专业电气工程及其自动化年级二年级作品名称基于LED的梦幻摇摇棒的设计论文题目基于LED的梦幻摇摇棒的设计宿舍地址4B-114手机15133578967宿舍电话电子邮箱mansong其他作者情况姓 名性别年龄学院专业

2、年级电话朱波男23里仁学院电气工程及其自动化二年级15227272178龙悦男22里仁学院电气工程及其自动化二年级15232323953申报作品情况(科技发明类学术论文)说明: 1作品分类请按作品的学术方向或所涉及的主要学科领域填写;作品全称作品分类( B )A机械与控制(包括机械、仪器仪表、自动化控 制、工程、交通、建筑等) B信息技术(包括计算机、电信、通讯、电子等) C数理(包括数学、物理、地球与空间科学等) D生命科学(包括生物、农学、药学、医学、健 康、卫生、食品等) E能源化工(包括能源、材料、石油、化学、化 工、生态、环保等)作品撰写的目的和基本思路 在各种聚会、节日活动中均能见

3、到摇摇棒的身影,作为一种娱乐性的玩具其中却包含了许多的科学知识。在原有的基础上进行开发,利用单片机对其进行控制从而产生不同的图像以满足不同场所的需求,增强其商业价值。作品的科学性、先进性及独特之处 1.装置的巧妙设计 2. 通信下载功能,考虑大家的起点不同上位机软件不加分,上位机软件可以用串口助手等类似软件代替,通信协议部分作为加分项目。3. 显示动画,如沙漏、吃豆等等 4. 时钟芯片(RTC)使用及文字图像的存储 作品的实际应用价值和现实意义 作为一种流行的玩具,各种聚会、节日活动中均能见到摇摇棒的身影。所以其具有广阔的商业前景。在原有的基础上进行开发设计增强了其实用价值及其商业价值。学术论

4、文摘要梦幻摇摇棒是如今流行的一种玩具,在各种聚会、节日中均见得到它的身影。本设计也追随着摇摇棒的原理,在此基础上进行开发。通过单片机对其进行控制,进而产生不同的图像,使其更具有使用价值及商用价值。 作品在何时、何地、何种机构举行的会议上或报刊上发表及所获奖励无请提供对于理解、审查、评价所申报作品具有参考价值的现有技术及技术文献的检索目录1 高吉祥主编.全国大学生电子设计竞赛培训系列教程.北京:电子工业出版社,20072 李广弟主编.单片机基础.北京:北京航空航天大学出版社,2008参赛作品打印处基于LED的梦幻摇摇棒的设计摘要:梦幻摇摇棒是如今流行的一种玩具,在各种聚会、节日中均见得到它的身影

5、。本设计也追随着摇摇棒的原理,在此基础上进行开发。通过单片机对其进行控制,进而产生不同的图像,使其更具使用价值及商业价值 关键词:摇摇棒 玩具 单片机 图像1系统设计 1.1整体方案比较与论证 根据题目要求设计一个循环的LED 显示,要利用人的视觉滞留产生静态显示的现象,这就要求延时部分做的比较小,所以采用石英晶体振荡器。而目前能够实现这种功能的器件有很多种,不同的类型的器件也能够很好的完成。 综上所述,提出来两种切实可行的技术方案。 方案一:使用单片机控制。由惯性开关的闭合对单片机产生外部中断, 从而对中断进行采集。到达一定数量便进行图象的转换。整个 系统由单片机控制模块,开关及电源模块和输

6、出显示模块三个 部分构成。系统框图如下:输出显示LED惯性开关单片机 方案二:使用FPGA控制。过Altera 公司生产的FPGA 芯片及SOPC 上可编程嵌入式系统方式,可以实现强大的功能。 上述两种方案均可行,但方案一方便,且价格低廉,故选方案一。1.2、主要部件原理及参数计算 1.2.1、单片机控制模块 那么如何用单片机实现对LED 的控制呢?LED又是如何转换的呢?下面 将回答这些问题。 用单片机想要控制LED 显示只需要定时输出就可以,但每个人摇动的速 度不一样,如何准确的并稳定的变换图案呢?这就需要用到外部中断。将惯 性开关的两个金属片一端接VCC,一端接GND,这样的话,当摇棒向

7、一边运 动时LED 按照程序编辑好的规律显示,而向另一边运动时LED 全灭,此时一 个周期就会产生一个下跳沿的信号,信号传递给单片机的nINT0 产生中断, 对中断的数量计数,当计到10 时便转换显示的图案,当依次显示完后便回 到初始状态进行循环。 由于人的视觉滞留时间长达0.1s,所以在每显示完一列LED 后加入一 段合适的延时,如5ms,每个字之间加入延时如15ms,这样,我们就能看到 静态的稳定的字,并且每个字之间是有空隙的。为了让字能够在空间的中部 显示,在启动中断显示后延时一段合适的时间,使棒在半圆轨迹的大约1/4处开始显示,这样看到的文字方向才比较正。1.2.2 惯性开关下图是惯性

8、开关的示意图1.3、系统设计 本系统包括单片机控制模块,开关及电源模块和输出显示模块三个部分。单片机控制模块由Keil C 进行编写,实现起来简单,主要有两部分, 一个是中断服务部分一个是字符点阵。开关及电源模块采用两至三节电池供电并配合惯性开关使用。输出显示模块采用16 个LED 灯,在版上一字排开。 1.3.1、硬件设计 硬件连接上用惯性开关产生的电平转换引发中断,传递给单片机,再由单片机调用点阵文件输出到LED 上。下面是电路图(Protel DXP)。1.3.2、软件设计 软件部分原分为 5 个文件,HANZI.c 显示“电子工程师之家”字样 eehome_cn.c 显示“”字样,ch

9、ina.c 显示“中国行!”字样heart_smile.c 显示笑脸图案和动画心,wave.c 是主函数文件,包括中断服务程序。后来为了编译方便全改在一个wave.c 中。软件设计流程如下:2、系统测试 2.1、测试组成 主要测试单片机的工作情况,能否正常用LED 显示出各图案,并 且记录各图案持续的时间和稳定显示度以及一个循环周期所用的时 间。并且检查LED 的发光亮度,使之可以明显的分辩出来。用秒表记录。2.2测试方法与数据2.3、测试结果 经过测试,我们看到前两个因为字多,摆动幅度不够大或延时不够短的原因,出现的图案不是准确的静态,不过可以明显的显示出来。其它的可以 比较好的显示出来。

10、整体来说,本方案设计成功,基本达到要求。附录:附图一:eehome附图二 电子工程师之家附图三 中国行附图四 笑脸 附图五 心跳附图六 实物附图六 Kile软件程序源代码: #include #define uchar unsigned char /-两边加0x0000 是为了两个字之间延时时不出现字的”拖尾“现 象- uchar code EE198 = /-e- 0x00,0x00,0x00,0x00,0x00,0xf8,0x01,0xfc,0x01,0x44,0x01,0x44,0x01,0 x44,0x01,0xcc,0x00,0xc8,0x00,0x00,0x00,0x00, /-e

11、- 0x00,0x00,0x00,0x00,0x00,0xf8,0x01,0xfc,0x01,0x44,0x01,0x44,0x01,0 x44,0x01,0xcc,0x00,0xc8,0x00,0x00,0x00,0x00, /-h- 0x00,0x00,0x10,0x04,0x1f,0xfc,0x1f,0xfc,0x01,0x84,0x01,0x00,0x01,0 x04,0x01,0xfc,0x00,0xfc,0x00,0x04,0x00,0x00, /-o- 0x00,0x00,0x00,0x00,0x00,0xf8,0x01,0xfc,0x01,0x04,0x01,0x04,0x01

12、,0 x04,0x01,0xf8,0x00,0xf8,0x00,0x00,0x00,0x00, /-m- 0x00,0x00,0x01,0x04,0x01,0xfc,0x01,0xfc,0x01,0x00,0x01,0xfc,0x01,0 xfc,0x01,0x00,0x01,0xfc,0x00,0xfc,0x00,0x00, /-e- 0x00,0x00,0x00,0x00,0x00,0xf8,0x01,0xfc,0x01,0x44,0x01,0x44,0x01,0 x44,0x01,0xcc,0x00,0xc8,0x00,0x00,0x00,0x00, /-.- 0x00,0x00,0x0

13、0,0x00,0x00,0x0c,0x00,0x0c,0x00,0x0c,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /-c- 0x00,0x00,0x00,0x00,0x00,0x70,0x00,0xf8,0x01,0x8c,0x01,0x04,0x01,0 x04,0x01,0x8c,0x00,0x88,0x00,0x00,0x00,0x00, /-n- 0x00,0x00,0x01,0x04,0x01,0xfc,0x01,0xfc,0x01,0x84,0x01,0x00,0x01,0x04,0x01,0xfc

14、,0x00,0xfc,0x00,0x00,0x00,0x00 ; /-两边加0x0000 是为了两个字之间延时时不出现字的”拖尾“现 象- uchar code HANZI252 = /-电- 0x00, 0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x1F,0xF0,0x12,0x20,0x12,0x20,0 x12,0x20,0xFF,0xFC, 0xFF,0xFE,0x12,0x22,0x12,0x22,0x12,0x22,0x1F,0xF2,0x1F,0xF2,0x00,0 x0E,0x00,0x0E, 0x00,0x00, /-子- 0x00, 0x00,0

15、x00,0x80,0x00,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x82,0 x40,0x83,0x47,0xFF, 0x4F,0xFE,0x58,0x80,0x70,0x80,0x60,0x80,0x40,0x80,0x01,0x80,0x01,0 x80,0x00,0x80, 0x00, 0x00, /-工- 0x00, 0x00,0x00,0x04,0x00,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0 x40,0x04,0x7F,0xFC, 0x7F,0xFC,0x40,0x04,0x40,0x

16、04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0 x04,0x00,0x04, 0x00, 0x00, /-程- 0x00, 0x00,0x08,0x20,0x48,0xE0,0x4B,0xC0,0x7F,0xFF,0xFF,0xFF,0x89,0x82,0 x89,0xA2,0xFD,0x22, 0xFD,0x22,0x85,0xFE,0x85,0xFE,0x85,0x22,0xFD,0x22,0xFD,0x22,0x01,0 x22,0x00,0x02, 0x00, 0x00, /-师- 0x00, 0x00,0x00,0x02,0x3F,0xE6,0x3F,

17、0xEC,0x00,0x78,0xFF,0xF0,0xFF,0x80,0 x4F,0xF0,0x4F,0xF0, 0x48,0x00,0x48,0x00,0x7F,0xFF,0x7F,0xFF,0x48,0x20,0x48,0x30,0x4F,0 xF0,0x4F,0xE0, 0x00, 0x00, /-之- 0x00, 0x00,0x00,0x04,0x10,0x06,0x10,0x0E,0x10,0x1C,0x10,0x18,0x10,0x3C,0 x90,0x24,0xD0,0x64, 0x70,0xC6,0x31,0x82,0x13,0x02,0x16,0x02,0x3C,0x02,0

18、x38,0x02,0x10,0 x02,0x00,0x02, 0x00, 0x00, /-家- 0x00, 0x00,0x00,0x00,0x18,0x94,0x38,0x94,0x28,0xBC,0x29,0xA8,0x29,0x7A,0 xAB,0xD3,0xEF,0xB3, 0x6D,0xFE,0x28,0xFC,0x29,0xF0,0x29,0x90,0x28,0x98,0x38,0x0C,0x30,0 x0C,0x20,0x08,0x00, 0x00 ; /-两边加0x0000 是为了两个字之间延时时不出现字的”拖尾“现 象-/*-小心图-*/ uchar code small_he

19、art36 = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xc0,0x07,0xe0,0x07,0 xf0,0x07,0xf0,0x03,0xf8, 0x03,0xf8,0x07,0xf0,0x07,0xf0,0x07,0xe0,0x03,0xc0,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00 ; /*-大心图-*/ uchar code big_heart36= 0x00,0x00,0x00,0x00,0x0f,0x80,0x1f,0xc0,0x1f,0xe0,0x1f,0xe0,0x1f,0 xf0,0x

20、0f,0xf8,0x07,0xfc, 0x07,0xfc,0x0f,0xf8,0x1f,0xf0,0x1f,0xe0,0x1f,0xe0,0x1f,0xc0,0x0f,0 x80,0x00,0x00,0x00,0x00 ; /*-笑脸图-*/ uchar code smile36= 0x00,0x00,0x03,0x80,0x0c,0x60,0x10,0x18,0x20,0xc4,0x4c,0x24,0x4c,0 x12,0x4c,0x12,0x40,0x12, 0x40,0x12,0x4c,0x12,0x4c,0x12,0x4c,0x24,0x20,0xc4,0x10,0x18,0x0c,0

21、 x60,0x03,0x80,0x00,0x00 ; /-两边加0x0000 是为了两个字之间延时时不出现字的”拖尾“现象- uchar code CHINA144 = /-中- 0x00,0x00,0x00,0x00,0x00,0x00,0x3f,0xe0,0x3f,0xe0,0x10,0x40,0x10,0 x40,0x10,0x40,0xff,0xff, 0xff,0xff,0x10,0x40,0x10,0x40,0x10,0x40,0x3f,0xe0,0x3f,0xe0,0x10,0 x00,0x00,0x00,0x00,0x00, /-国- 0x00,0x00,0x00,0x00,0

22、x7f,0xff,0x7f,0xff,0x50,0x12,0x51,0x12,0x51,0 x12,0x51,0x12,0x5f,0xf2, 0x5f,0xf2,0x51,0x92,0x51,0xf2,0x51,0x72,0x50,0x12,0x7f,0xff,0x7f,0 xff,0x00,0x00,0x00,0x00, /-行- 0x00,0x00,0x08,0x40,0x18,0xc0,0x31,0x80,0x63,0xff,0xef,0xff,0xce,0 x00,0x46,0x00,0x22,0x00, 0x22,0x02,0x22,0x03,0x23,0xff,0x23,0xfe,

23、0x22,0x00,0x22,0x00,0x22,0 x00,0x02,0x00,0x00,0x00, /-!- 0x00,0x00,0x00,0x00,0x0f,0xfa,0x0f,0xfa,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00, 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00 ; uchar wave_time = 0; uchar state = 10; / 无效状态 uchar flag =

24、 0; / 显示过一遍则置1 /-延时- void delay(uchar time); void main() signed int i; IT0 = 1; IE0 = 0; EX0 = 1; EA = 1;/-P1 接上面八位,P0 接下面八位- P1 = 0xff; P0 = 0xff; while(1) /-如果没有中断产生则不显示- if(!flag) IE0 = 0;/-中断请求置0- EA = 0;/-关中断- /-状态转换- switch(state) /- case 0: delay(10); / 使图形在中央附近显示 for(i = sizeof(EE)-1;i = 0;i

25、-) P1 = EEi; P0 = EE-i; delay(2); flag = 1; break; /-电子工程师之家- case 1: delay(10); / 使图形在中央附近显示 for(i = sizeof(HANZI)-1;i = 0;i-) P1 = HANZIi; P0 = HANZI-i; delay(2); flag = 1; break; /-中国行!- case 2: delay(15); / 使图形在中央附近显示 for(i = sizeof(CHINA)-1;i = 0;i-) P1 = CHINAi; P0 = CHINA-i; delay(2); flag =

26、1; break; /-笑脸- case 3: delay(30); / 使图形在中央附近显示 for(i = sizeof(smile)-1;i = 0;i-) P1 = smilei; P0 = smile-i; delay(5); flag = 1; break; /-心跳(小)- case 4: delay(30); / 使图形在中央附近显示 for(i = sizeof(small_heart)-1;i = 0;i-) P1 = small_hearti; P0 = small_heart-i; delay(5); flag = 1; break; /-心跳(大)- case 5:

27、delay(30); / 使图形在中央附近显示 for(i = sizeof(big_heart)-1;i = 0;i-) P1 = big_hearti; P0 = big_heart-i; delay(5); flag = 1; break; /-其它不显示- default: P1 = 0xff; P0 = 0xff; flag = 1; break; EA = 1;/-开中断- /-延时- void delay(uchar time) unsigned int i,j; for(i = 0;i 15;i+) for(j = 0;j time;j+); /-外部中断- void INT_

28、0() interrupt 0 using 1 flag = 0; if(wave_time+ = 90)wave_time = 0;/-90 次中断一个轮回 - if(wave_time 15) state = 0;/- else if(wave_time 30) state = 1;/-电子工程师之家- else if(wave_time 45) state = 2;/-中国行!-else if(wave_time 60) state = 3;/-笑脸- else if(wave_time % 2 = 0) state = 4;/-动画心跳小- else if(wave_time % 2 = 1) state = 5;/-动画心跳大- IE0 = 0;/-防抖动-

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

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号