单片机课程设计趣味摇摇棒.doc

上传人:土8路 文档编号:9978658 上传时间:2021-04-08 格式:DOC 页数:26 大小:949.50KB
返回 下载 相关 举报
单片机课程设计趣味摇摇棒.doc_第1页
第1页 / 共26页
单片机课程设计趣味摇摇棒.doc_第2页
第2页 / 共26页
单片机课程设计趣味摇摇棒.doc_第3页
第3页 / 共26页
单片机课程设计趣味摇摇棒.doc_第4页
第4页 / 共26页
单片机课程设计趣味摇摇棒.doc_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《单片机课程设计趣味摇摇棒.doc》由会员分享,可在线阅读,更多相关《单片机课程设计趣味摇摇棒.doc(26页珍藏版)》请在三一文库上搜索。

1、 任务书 设计题目中文:趣味摇摇棒的设计英文:Design of Interesting Magic Waving Stick 设计功能要求1、静态的时候发光二极管能够正常闪烁;2、摇动的时候可以正确显示文字或图形;3、显示“安徽工程大学”字样;4、显示“电子信息工程!”字样;5、显示“中国行!”字样;6、显示微笑图样;7、显示动画心跳图样;8、自动转换图形,轮流显示并循环;9、其他创新思想,如位置检测装置的巧妙设计等。 设计任务内容1、学习与研究相关的单片机原理及应用理论知识,查阅资料,拿出可行的设计方案;2、根据设计方案进行电路设计,完成电路参数计算、元器件选型、绘制电路原理图;3、进行电

2、路软件仿真(如: Protues7.5),或制作实物进行调试实验,获得实验数据,验证设计有效性。4、撰写课程设计报告。签名 趣味摇摇棒的设计摘 要为了提高运用8051单片机基本知识进行理论设计、实践创新的能力,培养独立工作、团队合作的意识,学会阅读相关科技文献,查找器件手册与相关参数,整理总结设计报告,并学习计算机辅助设计EDA软件Proteus7.5和单片机程序设计软件Keil的使用,通过设计一个摇摇棒,学会合理的利用电子器件完成基于单片机电路的课程设计与制作。本次设计的趣味摇摇棒是如今流行的一种玩具,在各种聚会、节日中均见得到它的身影。本设计也追随着摇摇棒的原理,即利用人眼视觉暂留,使闪烁

3、的LED在扰动的过程中实现快速扫描,并在此基础上进行开发。通过单片机对其进行控制,进而产生不同的图像。电路设计完成后,将各单元电路整合后送入Proteus7.5中仿真,得出结果和理论分析完全吻合,最终验证设计方案有效。关键词:摇摇棒;8051单片机;数字显示;Proteus仿真,Keil软件 目 录引 言1第1章 总体方案设计21.1 整体方案设计21.2 主要元件原理及参数计算21.2.1 单片机最小系统21.2.2 复位电路31.2.3 惯性开关模块31.2.4 LED显示模块4第2章 系统设计与仿真52.1 硬件设计52.2 软件设计62.3 系统仿真7结 论9致 谢10参考文献11附录

4、A 电路总图12附录B 程序源代码13附录C 实物图21引 言摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。所谓“静如处子,动如脱兔”。也就是说,不去摇动,它只是几个LED 而已;而一旦按照一定的频率去摇晃它,则LED就会随着位置的变化而变化(亮或灭),最终构成一幅图片或字符串。本设计就是利用以上原理,用8051单片机实现上述任务书中所描述的摇摇棒的功能。第1章 总体方案设计1.1 整体方案设计根据题目要求设计一个循环的LED显示,要利用人的视觉滞留产生静态显示的现象,这就要求延时部分做的比较小,所以采用石英晶体振荡器。而目前能够实现这种功能的器件有很多种,不同的类型的器件均能够很好的完

5、成。鉴于单片机8051单片机具有功耗低、物美价廉的优势,本设计选用8051系列单片机。由水银开关的闭合对单片机产生外部中断,从而对中断进行采集,到达一定数量便进行图象的转换。整个系统由单片机控制模块,开关及电源模块和输出显示模块三个部分构成。系统框图如下:单片机最小系统高亮LED惯性开关复位电路1.2 主要元件原理及参数计算1.2.1 单片机最小系统8051单片机最小系统是使单片机正常工作所需的最基本的环境,其主要由单片机芯片、晶振和电容组成。其图示如下:1.2.2 复位电路为确保单片机系统中电路稳定可靠工作,复位电路是必不可少的一部分。本设计复位电路采用常见的按键复位。手动按钮复位需要人为在

6、复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。手动按钮复位的电路如所示。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。1.2.3 惯性开关模块 所谓惯性开关,顾名思义,就是利用物体运动的惯性实现开关功能的元器件,对于摇摇棒来说,惯性开关是防止棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一只惯性开关来控制,使摇摇棒从左向右摇动时将内容显示出来,而反向摇动时不显示。因此,惯性开关是本设计必不可少的重要元件。1.2.4 LED显示模块

7、由于摇摇棒在摇动过程中闪烁非常快,普通亮度的发光二极管已经不能满足本设计的要求,因此,为保证其能够清晰显示文字和图像,所用的LED发光二极管必须是高亮的。在本设计中,由于单片机上电后I/O接口均为高电平,因此16个发光二极管采用共阳接法,如图所示。第2章 系统设计与仿真本系统包括单片机控制模块,开关及电源模块和输出显示模块三个部分。 单片机控制模块由Keil C进行编写,实现起来简单,主要有两部分,一个是中断服务部分一个是字符点阵。开关及电源模块采用两至三节电池供电并配合惯性开关使用。输出显示模块采用16个LED灯,在版上一字排开。2.1 硬件设计硬件连接上用惯性开关产生的电平转换引发中断,传

8、递给单片机,再由单片机调用点阵文件输出到LED上。下面是电路图(Proteus7.5)。那么如何用单片机实现对LED的控制呢?LED又是如何转换的呢?下面将回答这些问题。 用单片机想要控制LED显示只需要定时输出就可以,但每个人摇动的速度不一样,如何准确的并稳定的变换图案呢?这就需要用到外部中断。将惯性开关的两个金属片一端接VCC,一端接GND,这样的话,当摇棒向一边运动时LED按照程序编辑好的规律显示,而向另一边运动时LED全灭,此时一个周期就会产生一个下跳沿的信号,信号传递给单片机的nINT0产生中断,对中断的数量计数,当计到10时便转换显示的图案,当依次显示完后便回到初始状态进行循环。

9、由于人的视觉滞留时间长达0.1s,所以在每显示完一列LED后加入一段合适的延时,如5ms,每个字之间加入延时如15ms,这样,我们就能看到静态的稳定的字,并且每个字之间是有空隙的。为了让字能够在空间的中部显示,在启动中断显示后延时一段合适的时间,使棒在半圆轨迹的大约1/4处开始显示,这样看到的字方向上才比较正。2.2 软件设计软件部分原分为5个文件,HANZI.c显示“安徽工程大学”字样,dz.c显示“电子信息工程”字样,china.c显示“中国行!”字样,heart_smile.c显示笑脸图案和动画心,wave.c是主函数文件,包括中断服务程序。后来为了编译方便全改在一个wave.c中。软件

10、设计流程如下:2.3 系统仿真 由于本设计硬件连接相对比较简单,仿真调试可以直接从整体入手。另外,由于摇摇棒本身的特性,需要摇晃才能看出来效果,因此仿真只能通过单步运行来测试本设计的可行性。单步运行结果如下图:将以上16个单步结果组合起来,便可以得到汉字“学”,如下图所示。结 论本次设计的趣味摇摇棒,完成了设计任务书中的基本要求。本设计在对电路基本参数进行合理计算的基础上,用Proteus7.5对所做设计的虚拟仿真和验证,最终达到了较好的设计效果。在这次的趣味摇摇棒的课程设计当中,开始的时候遇到了很多的问题和麻烦,比如惯性开关的程序中断写法。再比如说电路设计好之后,各个参数都计算的准确无误,但

11、最后仿真的时候却得不到想要的结果,最后还要在Keil中仔细调试,最终才得以解决,由此可见理论与实践还是有很大的差别的。电子设计过程是一个考验人耐心的过程,不能有丝毫的急躁,马虎,对电路的仿真调试更要一步一步来,不能急躁,要学会灵活处理问题,在不影响仿真效果的前提下加快进度,合理的分配时间。这次的课程设计不仅使我获取了很多平常学习生活当中所接触不到的知识和经验,也使我认识到课堂所学的知识不仅要掌握熟练,会做题目,更要将其应用在实际电路的设计当中。致 谢经过一个星期的努力,在指导老师和周围同学的细心指导和热情帮助下,我的课程设计终于得以顺利完成,并且最终把实际电路做了出来,并达到了良好的效果。我在

12、这些天尽了最大的努力去设计和研究这个电路。从收集大量的有关本设计的文献资料到电路中每个模块的设计和参数计算,再到用Proteus的仿真模拟和利用Keil软件编写程序,我接触到了设计一个电子产品的基本过程并从中积累了很多课堂上学不到的知识和经验。衷心感谢指导我此次电子设计的王冠凌老师和在我周围帮助我的同学们,正是你们的热情的支持给了我前进的动力,使我能顺利完成本次的课程设计,再次感谢你们!参考文献1 张毅刚主编.单片机原理及应用M. 北京:高等教育出版社,2003.122 林志琦,郎建军,李会杰,佟大鹏编著.基于Proteus的单片机可视化软硬件仿真M. 北京:北京航空航天大学出版社,2006.

13、93 林伸茂编著. 8051单片机彻底研究入门篇M. 北京:中国电力出版社,2007.54 林伸茂编著. 8051单片机彻底研究经验篇M. 北京:中国电力出版社,2007.55 林伸茂编著. 8051单片机彻底研究实习篇M. 北京:中国电力出版社,2007.56 高吉祥主编.全国大学生电子设计竞赛培训系列教程.北京:电子工业出版社,2007附录A 电路总图附录B 程序源代码/*=*/* */* 安徽工程大学课程设计作品 */* 电子081 李辉 王磊 */* */*=*/#include#define uchar unsigned char/-两边加0x0000是为了两个字之间延时时不出现字的

14、”拖尾“现象-uchar code EE192 = /安0x09,0x00,0x31,0x00,0x21,0x01,0x21,0x21,0x21,0x62,0x21,0x92,0xAF,0x14,0x61,0x08, 0x21,0x08,0x21,0x14,0x21,0xE2,0x21,0x03,0x21,0x00,0x2B,0x00,0x31,0x00,0x00,0x00,/徽 0x04,0x40,0x08,0x80,0x31,0xFF,0xC6,0x02,0x3A,0x94,0x0B,0xB1,0xFA,0xDF,0x0A,0xB0, 0x3B,0x15,0x04,0x02,0x09,0x

15、E4,0xF8,0x18,0x08,0x34,0x0F,0xC3,0x08,0x02,0x00,0x00,/工 0x00,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x3F,0xFC, 0x20,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x60,0x04,0x20,0x0C,0x00,0x04,0x00,0x00,/程 0x24,0x10,0x24,0x60,0x25,0x80,0x7F,0xFF,0xC5,0x00,0x44,0xC2,0x04,0x82,0x7E,0x92,

16、0x42,0x92,0x42,0x92,0x42,0xFE,0x42,0x92,0x42,0xB2,0xFE,0x96,0x40,0x82,0x00,0x00,/大 0x04,0x00,0x04,0x02,0x04,0x02,0x04,0x04,0x04,0x08,0x04,0x30,0x05,0xC0,0xFE,0x00,0x05,0x80,0x04,0x60,0x04,0x10,0x04,0x08,0x04,0x04,0x0C,0x06,0x04,0x04,0x00,0x00,/学0x02,0x20,0x0C,0x20,0x88,0x20,0x69,0x200x09,0x20,0x09,0

17、x22,0x89,0x21,0x69,0x7E,0x09,0x60,0x09,0xA0,0x19,0x20,0x28,0x20,0xC8,0x20,0x0A,0x60,0x0C,0x20,0x00,0x00;/-两边加0x0000是为了两个字之间延时时不出现字的”拖尾“现象-uchar code HANZI252 = /-电- 0x00, 0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x1F,0xF0,0x12,0x20,0x12,0x20,0x12,0x20,0xFF,0xFC, 0xFF,0xFE,0x12,0x22,0x12,0x22,0x12,0x22,0x1

18、F,0xF2,0x1F,0xF2,0x00,0x0E,0x00,0x0E, 0x00,0x00,/-子- 0x00, 0x00,0x00,0x80,0x00,0x80,0x40,0x80,0x40,0x80,0x40,0x80,0x40,0x82,0x40,0x83,0x47,0xFF, 0x4F,0xFE,0x58,0x80,0x70,0x80,0x60,0x80,0x40,0x80,0x01,0x80,0x01,0x80,0x00,0x80, 0x00, 0x00,/-信- 0x00, 0x00,0x00,0x04,0x00,0x04,0x40,0x04,0x40,0x04,0x40,0x

19、04,0x40,0x04,0x40,0x04,0x7F,0xFC, 0x7F,0xFC,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x40,0x04,0x00,0x04, 0x00, 0x00,/-息- 0x00, 0x00,0x08,0x20,0x48,0xE0,0x4B,0xC0,0x7F,0xFF,0xFF,0xFF,0x89,0x82,0x89,0xA2,0xFD,0x22, 0xFD,0x22,0x85,0xFE,0x85,0xFE,0x85,0x22,0xFD,0x22,0xFD,0x22,0x01,0x22,0x00,0x

20、02, 0x00, 0x00,/-工- 0x00, 0x00,0x00,0x02,0x3F,0xE6,0x3F,0xEC,0x00,0x78,0xFF,0xF0,0xFF,0x80,0x4F,0xF0,0x4F,0xF0, 0x48,0x00,0x48,0x00,0x7F,0xFF,0x7F,0xFF,0x48,0x20,0x48,0x30,0x4F,0xF0,0x4F,0xE0, 0x00, 0x00,/-程- 0x00, 0x00,0x00,0x04,0x10,0x06,0x10,0x0E,0x10,0x1C,0x10,0x18,0x10,0x3C,0x90,0x24,0xD0,0x64,

21、 0x70,0xC6,0x31,0x82,0x13,0x02,0x16,0x02,0x3C,0x02,0x38,0x02,0x10,0x02,0x00,0x02, 0x00, 0x00,/-!- 0x00, 0x00,0x00,0x00,0x18,0x94,0x38,0x94,0x28,0xBC,0x29,0xA8,0x29,0x7A,0xAB,0xD3,0xEF,0xB3, 0x6D,0xFE,0x28,0xFC,0x29,0xF0,0x29,0x90,0x28,0x98,0x38,0x0C,0x30,0x0C,0x20,0x08,0x00, 0x00;/-两边加0x0000是为了两个字之间

22、延时时不出现字的”拖尾“现象-/*-小心图-*/uchar code small_heart36 = 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xc0,0x07,0xe0,0x07,0xf0,0x07,0xf0,0x03,0xf8,0x03,0xf8,0x07,0xf0,0x07,0xf0,0x07,0xe0,0x03,0xc0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;/*-大心图-*/uchar code big_heart36=0x00,0x00,0x00,0x00,0x0f,0x80,0x1f,0x

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

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

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

26、x23,0xfe,0x22,0x00,0x22,0x00,0x22,0x00,0x02,0x00,0x00,0x00,/-!-0x00,0x00,0x00,0x00,0x0f,0xfa,0x0f,0xfa,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00;uchar wave_time = 0;/ 摇晃次数uchar state = 10;/无效状态uchar fla

27、g = 0;/显示过一遍则置1/-延时-void delay(uchar time);void main()signed int i;IT0 = 1;/ 下降沿触发中断IE0 = 0;/ 初始化中断请求标志位EX0 = 1;/ 外部中断0中断允许EA = 1;/ CPU开放中断/-P1接上面八位,P2接下面八位-P1 = 0xff;P2 = 0xff;while(1)/-如果没有中断产生则不显示-if(!flag)IE0 = 0;/-中断请求置0-EA = 0;/-关中断-/-状态转换-switch(state)/-安徽工程大学-case 0:delay(100);/使图形在中央附近显示for

28、(i = sizeof(EE)-1;i = 0;i-)P1 = EEi;P2 = EE-i;delay(20);flag = 1;break;/-电子信息工程!-case 1:delay(100);/使图形在中央附近显示for(i = sizeof(HANZI)-1;i = 0;i-)P1 = HANZIi;P2 = HANZI-i;delay(20);flag = 1;break;/-中国行!-case 2:delay(150);/使图形在中央附近显示for(i = sizeof(CHINA)-1;i = 0;i-)P1 = CHINAi;P2 = CHINA-i;delay(20);fla

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

30、附近显示for(i = sizeof(big_heart)-1;i = 0;i-)P1 = big_hearti;P2 = big_heart-i;delay(50);flag = 1;break;/-其它不显示-default:P1 = 0xff;P2 = 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_0() interrupt 0 using 1flag = 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;/-防抖动-附录C 实物图

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1