基于单片机的摇摇棒设计1_第1页
基于单片机的摇摇棒设计1_第2页
基于单片机的摇摇棒设计1_第3页
基于单片机的摇摇棒设计1_第4页
基于单片机的摇摇棒设计1_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、 郑州科技学院单片机课程设计 题 目 基于单片机的摇摇棒设计 学生姓名 张焦焦 专业班级 电气工程及其自动化3班 学 号 201147078 院 (系) 电气工程学院 指导教师 程晓琦 完成时间 2014年12月12日 目 录1 前言12 设计方案与论证22.1 方案设计22.2 主要部件原理33 系统硬件设计43.1 基本原理设计43.2 系统硬件设计64 系统软件设计84.1 软件设计思路84.2 主程序流程图85 系统调试与分析105.1 常见故障与调试方法105.2 调试过程126 总结15参考文献16附录1:总体电路原理图17附录2:实物图18附录3:元器件清单191 前言摇摇棒是一

2、种利用视觉暂留效应制作的“高科技”玩具。可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED),而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化(亮或灭),最终显示一幅图片或字符串。它是由单片机控制一排LED灯有规律地亮暗,再通过摇动使之在空中呈现一幅段时间的画面。它的设计需要解决几个问题。因为通过摇动产生的图像是有方向的,所以,要使图像正确不重叠,就要将摇摇棒设计成单方向才显示图像。如果摇动一下的速度比显示一幅图像的速度慢,可能会出现:第二幅图的前面部分在第一下摇动的末尾,后面部分在第二下摇动的开始。这就要使摇摇棒在一次摇动中只显示一次图像。如果

3、要设计一个16X20分辨率的摇摇棒,LED数为16只,LED每5ms10ms变换一次,共变换20次组成一幅图像。测试间隔8ms效果较好。其中亮灯3ms,暗灯5ms。这样能使亮点不呈一条横线,黑暗宽度与LED间隔相近。单片机系统可采用AT89S52单片机。选择P0和P2口输出,连接16只LED灯。P3.2为外部中断INT0,低电平触发方式,接一个轻触开关,功能为切换图像。P3.3为外部中断INT1,低电平触发方式,接一个水银开关,功能是使摇摇棒只有向一个方向摇动时才显示图像,使图像完整。本系统要求设计一个LED显示棒,它主要是由中央控制部分、LED驱动部分、LED显示部分以及电源部分组成,LED

4、显示棒系统,单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。本设计的难点在于送数据的时间间隔以及较长画面或文字的完整显示。LED灯的选择为传统LED发光二极管。颜色多样,在可以同样显示图案的前提下使用它更为经济。2 设计方案与论证2.1 方案设计(1)总体方案本系统要求设计一个LED显示棒,它主要是由中央控制部分、LED驱动部分、LED显示部分以及电源部分组成,LED显示棒系统,单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED点

5、亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。本设计的难点在于送数据的时间间隔以及较长画面或文字的完整显示。LED灯的选择为传统LED发光二极管。颜色多样,在可以同样显示图案的前提下使用它更为经济,但是颜色较为黯淡,不鲜亮。作品本着方便、价格低廉的原则,采用单片机控制,由水银开关的闭合对单片机产生外部中断,从而对中断进行采集。到达一定数量便进行图象的转换。整个系统由单片机控制模块,开关及电源模块和输出显示模块三个部分构成。(2)系统设计单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED灯点亮,利用视觉暂留原理最终使图案完整的显示在

6、摆动的显示屏中。LED灯的选择:传统LED发光二极管,颜色多样,在可以同样显示图案的前提下使用它更为经济。外部中断信号产生方式:通过外部中断可以控制数据开始传输的时刻,选择好外部中断来源是本次制作的难点及重点,使用惯性开关。通过摇晃使得惯性开关的摆杆与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。抗重影方案的选择:使用外部中断控制数据传输时刻,外部中断信号由惯性开关产生,触发方式为下降沿触发。惯性开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地,惯性开关处于不同位置进入不同的中断,从而决定何时送数据。该方案简

7、单易行,可以保证数据是单程传输的,避免了重影。不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以达到省电的效果。系统框图如下:输出显示LED单片机水银开关 图2-1 系统框图2.2主要部件原理(1)单片机控制模块用单片机想要控制LED显示只需要定时输出就可以,但每个人摇动的速度不一样,如何准确的并稳定的变换图案呢,这就需要用到外部中断。将水银开关的两个引脚一端接VCC,一端接GND,这样的话,当摇棒向一边运动时LED按照程序编辑好的规律显示,而向另一边运动时LED全灭,此时一个周期就会产生一个下降沿的信号,信号传递给单片机的INT0产生中断,对中断的数量计数,当计到10时便转换显示的图案,当

8、依次显示完后便回到初始状态进行循环。由于人的视觉滞留时间长达0.1s,所以在每显示完一列LED后加入一段合适的延时,如5ms,每个字之间加入延时如15ms,这样,我们就能看到静态的稳定的字,并且每个字之间是有空隙的,为了让字能够在空间的中部显示,在启动中断显示后延时一段合适的时间,使棒在半圆轨迹的大约1/4处开始显示,这样看到的字方向上才比较正。(2)水银开关水银开关,又称倾侧开关,是电路开关的一种,以一接著电极的小巧容器储存著一小滴水银,容器中多数注入惰性气体或真空。图2-2 水银开关实物图仔细观察水银开关,实际上他是一个封闭的玻璃管,里面有两个分开着的导线和一段水银球,当玻璃管的平衡位置变

9、化时,水银球会来回移动,当水银球移动到两根导线时,因水银是金属-导体,故电路变为通路,此时接收器处于工作状态;反之,水银球远离两根导线时为断路,此时接收器处于非工作状态。3 系统硬件设计3.1 基本原理设计硬件连接上用水银开关产生的电平转换引发中断,传递给单片机,再由单片机调用点阵文件输出到LED上。图3-1 摇摇棒设计电路图AT89S52单片机作为控制器,在它的P0、P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。P0口处接上拉电阻串。在LED公共端的二极管D1会产生一定的压降,用来保护LED。K1是画面切换开关,用于切换显示不同内容;S1为水银开关。系统电源VCC为

10、5V,实际使用时用2节干电池串联3V即可。16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象使得看到的是一幅完整的画面。水银开关的作用:棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一只水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来。3.2 系统硬件设计(1)系统功能主要体现在三个部分:单片机控制(AT89S52)AT89S52为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。图3-1 AT89S52最小系统图AT89S52主要功能:a、拥有灵巧的8位CPU和在系统可编程Fl

11、ash;b、晶片内部具时钟振荡器(传统最高工作频率可至12MHz);c、内部程序存储器(ROM)为8KB;d、内部数据存储器(RAM)为256字节;e、32个可编程I/O口线;f、8个中断向量源;g、三个 16 位定时器/计数器;单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能

12、识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件存储器中。存储器由许多存储单元(最小的存储单位)组成,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。图3-2 AT89S52引脚图(2) 显示功能(D1D16)信息传递主要由显示来完成,本设计显示功能由16个发光二极管来完成。16个发光二极管分为4组,以共阳的方式连接,共用P1口和P2

13、口作为输出口。根据LED点阵屏的显示原理:点阵屏的显示分为行扫描与列扫描两种,列扫描是将我们的字模数组通过点阵屏的行驱动进行输入,然后通过列对每一行进行扫描,当列为低(高)电平、行为高(低)电平时则表示该点为图案的一部分,将其读出、显示。它的顺序可以总结为:行不断的送数据,每送完设置的信息后列进行读取,然后行再次送数据,列再次读取依次循环下去,一幅完整的图案就显示在了显示屏上。而本次设计的LED显示棒数据传输原理与LED点阵屏相似。可以把LED显示棒看成是LED点阵屏中的一列。为了使显示的图案清晰,我们使用了16个LED管将它们排成一列,整个屏在静止时也就相当于16行×1列。数据传输

14、时我们同样使用行送数据、列扫描。在摆动过程中,应用视觉暂留原理,我们点亮的列不会很快的消失,而是随着摆动的方向继续向前移动,只要移动的速度高于视觉暂留的最短时间显示内容就不会熄灭,至此,一幅图案也就可以这样被摆动出来了。(3).传感器系统硬件传感器主要为摇动传感器,本设计的摇动传感器由滚珠开关构成。可选摇动开关有水银摇动开关和滚珠开关两种。水银摇动开关稳定性较高,但容易发生破裂,水银外泄,安全性较差。滚珠开关稳定性稍差,但不容易损坏,安全度很高。考虑到实际应用环境,故选用滚珠开关作为系统的摇动传感器。由滚珠开关带来的不稳定性可以通过软件进行弥补。4 系统软件设计4.1 软件设计思路在摇动LED

15、棒的时候单片机必须单程传送数据否则显示的图形会产生重影,影响视觉效果。因此当系统开始工作后通过惯性开关的位置来使单片机实现单程传送数据给LED,如果惯性开关位于右边,则进入外部中断1并将一变量置1,在变量为1期间让单片机以一定的频率将数据传送给LED,如果惯性开关位于左边,则进入外部中断0并将变量置0,在这期间单片机不会传送数据给LED,在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤。之后再立刻熄灭LED并开始重新判断惯性开关的位置。4.2 主程序流程图软件部分包括主函数程序、中断服务程序、延时子程序以及四个显示子程序。软件设计流程如下:开始上电复位查询是否中断延时取点阵

16、文件显示并产生新中断是否转换画面是否显示完所有的图案显示下一个图案开始循环,显示第一个图案中断数量加1否是是是否否图4-1 系统流程图系统开始运行,内部进行初始化后,等待外部中断。当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开始显示。显示完成返回主程序,等待下一个摇动周期的到来。5 系统调试与分析5.1 常见故障与调试方法(1)常见的硬件故障 a、逻辑错误样机硬件的逻辑错误是由于设计错误和加工过程中的工艺性错误所造成的。这类错误包括:错线,开路,短路等几种,其中短路时最常见的故障。在印刷电路板布线密度高的情况下,极易因工艺原因造成短路。b、器件失效 元器件失效的原因有两个

17、方面:一是器件本身已损坏或性能不符合要求;二是由于组装错误而造成的元器件失效,如电解电容,二极管的极性错误,集成块安装方向错误等。 c、可靠性差 引起系统不可靠的因素很多,如金属化孔,接插件接触不良会造成系统时好时坏;内部和外部的干扰,电源纹波系数过大,器件负载过大等造成逻辑电平不稳定;另外,走线和布局的不合理等也会引起系统可靠性差d、电源故障 若样机中存在电源故障,则加电后将造成器件损坏。电源的故障包括:电压值不符合设计要求,电源引出线和插座不对应,电源功率不足,负载能力差。(2)硬件调试方法a、脱机调试脱机调试是在电路板加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路

18、的正确性,并核对元器件的型号,规格和安装是否符合要求。应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查拓展系统总线是否存在相互间的短路或其他信号线的短路。 对于样机所用的电源事先必须单独调试,调试好后,检查其电压值,负载能力,极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细检查各地点电位是否正常,尤其应注意单片机插座上的各点电位是否正常,若有高压,联机时将会损坏开发机。 b、联机调试 通过脱机调试可排除一些明显的硬件故障。有些硬件故障还是要通过联机调试才能发现和排除。联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,检查一下

19、开发机与样机之间的电源、接地是否良好。一切正常,即可打开电源。 通电后执行开发机读写指令,对用户机的存储器、I/O端口进行读写操作、逻辑检查,若有故障,可用示波器观察波形。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线路连接上的逻辑错误、有断线或短路现象、集成电路失效等。 (3)软件调试方法 软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块调试好以后,再进行系统程序总调试。如果采用实时多任务操作系统,一般是逐个任务,下面进一步予以说明。对于模块结构程序,要一个个子程序分别调试。调试子程序时,一定要符合现场环境,即入口条件和出口条件。调试

20、的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和I/O口的状态,检测程序执行结果是否符合设计要求。通过检测,可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。在调试过程中不断调整用户系统的软件和硬件,逐步通过一个个程序模块。各程序模块通过后,可以把各功能块联系起来一起进行整体程序综合调试。在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,零位的建立和清除在设计上有否失误,堆栈区域有否溢出,输入设备的状态是否正常,等等。若用户系统是在开发系统的监控程序下运行时,还要

21、考虑用户缓冲单元是否和监控程序的工作单元发生冲突。 单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。待全部完成后,应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时还要做适当修正。对于实时多任务操作系统的应用程序是由若干个任务程序组成,一般是逐个任务进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序和一些操作系统的程序。逐个任务调试好以后,再使各个任务同时运行,如果操作系统中没有错误,一般情况下系统就能正常运转。在全部调试修改完成后,将用户软件固

22、化于EPROM中,插入用户样机后,用户系统即能离开发机独立工作,至此系统研制完成。5.2 调试过程在开始实验设计前,根据实验要求,分析实验所涉及的相关知识点,查阅身边的资料,并根据自己以前所学的理论知识,有了大概设计框图后,在PROTEL中画出原理图,然后根据原理图分析模块焊出电路板,并对模块进行测试。 第一步,测试LED显示电路和C51单片机最小系统。首先测试LED,输入一个简单程序,发现有一个LED不亮,于是检查该LED的引脚,发现线路断了,接好后LED亮了。于是输入摇摇棒程序,但LED灯不闪,猜测是数码管芯片与插槽接触不良的问题,就把插槽重新焊接,之后,再次检测时,发现有时闪烁有时灯不亮

23、。说明不是插槽的问题,于是反复检查最小系统模块,通过用电压表最数码管的每个引脚进行高低电平测试,最总发现原来是接线问题,即是一根线忘了连接。使得硬件与软件的设置不匹配,从而导致了LED显示不正常。改正后重新测试。手动摇晃可呈现图像。第二步,测试驱动电路,该模块完好。 第三步,软件测试。在软件方面,改部分主要调延时函数,调试过程简单但费时。于是,多次耐心尝试后软件调试才成功,能够完整并较为清晰地完整图像。最终,实现摇摇棒功能 表5-1 调试结果记录图 案稳定程序欢迎使用神奇魔幻摇摇棒较稳定心形较稳定笑脸较稳定LOVE较稳定 拍摄照片:图5-1 “LOVE”拍摄图图5-2 “爱心“拍摄图6 总结在程老师的指导下,通过两周的时间完成了摇摇棒的设计,本次设计以传感器和单片机的实际应用为背景,介绍了以单片机和传感器为核心系统摇动传感器和显示设计的基本结构和基本原理。本次将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息。掌握利用单片机对发光二极管阵列进行摇动控制的方法。输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态,用16个发光二极管进行不同频率的亮灭刷

温馨提示

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

评论

0/150

提交评论