基于单片机的摇摇棒课程设计(共30页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于单片机的摇摇棒课程设计(共30页).doc》由会员分享,可在线阅读,更多相关《基于单片机的摇摇棒课程设计(共30页).doc(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上郑州科技学院单片机原理及应用课程设计专心-专注-专业1 课程设计的目的单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机.它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果.单片机应用系统可以分为:(1)最小应用系统是指能维持单片机运行的最简单配置的系统。这种系统成本低廉,结构简单,常构成一些简单的控制系统,如开关状态的输入/输
2、出控制等。片内有ROM/EPROM的单片机,其最小应用系统即为配有晶振,复位电路,电源的单个单片机。片内无ROM/EPROM的单片机,其最小应用系统除了外部配置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为程序存储器用。(2)最小功耗应用系统是指为了保证正常运行,系统的功耗最小。(3)典型应用系统是指单片机要完成工业测控功能所必须的硬件结构系统。本文将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息。掌握利用8051型单片机对发光二极管阵列进行摇动控制的方法。输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态,用16个发光二极管进行不同
3、频率的亮灭刷新,通过手动摇动可显示输出文字及图案等信息。当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED),而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化(亮或灭),最终显示一幅图片或字符串。随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈,对信息的渴求已成为了人们必不可少的需要,更加简捷
4、与新颖的信息传递方式无疑会给人们带来耳目一新的感受。而现代工具务求简捷化、便携化,因此,摇动显示装置的到来,必将会给人们带来一种新的方便的文化传递方式。让你的心声闪烁在夜空LED摇摇棒横空出世!LED摇摇棒又叫摇摇棒、魔棒、闪光棒、闪字棒、闪图棒、星光棒。LED摇摇棒的诞生是闪光系列产品中的一大革命,它最大的神奇之处,是在手中左右摇晃LED摇摇棒,就会在棒子划过的轨迹上留下清析的文字或图案。目前市场上,这是最新,价格最低,可远距离观看的一款电子产品。设计具有市场前景,可满足各种大型演出、集会、游行等宣传需要,为人们的生活提供便利。2 课程设计的任务与要求2.1 设计目的本次设计制作的是一个显示
5、棒,基本要求就是要小巧、轻便,所以要将单片机的系统板简化设计。通过本次设计,加强学生对MCS-51单片机的深刻理解,提高学生的设计能力和动手能力。2.2 设计要求设计一个16只高亮度LED发光二极管构成的摇摇棒,通过单片机编程配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片。3 设计方案与论证3.1 LED灯的选择方案一:传统LED发光二极管。颜色多样,在可以同样显示图案的前提下使用它更为经济,但是颜色较为黯淡,不鲜亮。方案二:高亮LED发光二极管。正如其名,它的亮度比传统二极管要亮,而且同样也有很多颜色,但是高亮LED的工作电流也要大于传统二极管。为了使显示的图案清晰、明了,我们选
6、择方案二,经过比较,使用红色的LED使得显示画面更为明显、突出,使用两片CR2032纽扣电池为其供电,提供足够的电流。3.2 外部中断信号产生方式通过外部中断可以控制数据开始传输的时刻。选择好外部中断来源是本次制作的难点及重点。方案一:使用水银开关。通过摇晃使得水银开关与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。方案二:使用光遮断器。在棒上装一个可以摆动的用来遮挡光遮断器光线的细杆,细杆每左右摆动一次这个杆就会通过一次光遮断器,发生电平变化。同样通过这种电平变化,结合软件控制显示。本次设计中产生的中断是为了实现数据的单程传输。如果使用光
7、遮断器,其触发单片机的时刻处于正中间,不能解决画面因为返回与原来图片重叠的现象。而使用水银开关,因为在左右都有触点,所以很容易的在往返途中产生两次中断,方便指令控制,所以选择使用方案一。3.3 抗重影方案的选择方案一:使用外部中断控制数据传输时刻。外部中断信号由惯性开关产生,触发方式为下降沿触发。水银开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地。水银开关处于不同位置进入不同的中断,从而决定何时送数据。该方案简单易行,可以保证数据是单程传输的,避免了重影。惯性开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地。惯性开关处于不同位置
8、进入不同的中断,从而决定何时送数据。该方案简单易行,可以保证数据是单程传输的,避免了重影。不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以达到省电的效果。 方案二:使用定时器与外部中断。当我们在摆动手臂的时候,短时间内摆动位置和左右幅度不会有太大变化,利用我们手臂的这个运动规律,只要能得到棒从一侧摆动到另一侧的时间,然后把这个时间分成N份,在每一份的时间里显示不同的花样就能实现图形的显示。设计中摇动的摆子与左右两个触点接触各一次的时间可以通过外部中断和定时器计算出来,然后用单片机的另一个定时器T1,其定时时间是T0 的N 分之一,每次中断依次显示一列,就可以得到预期显示的图案了。该方法可以
9、控制摇动频率低的时候不显示图形。但程序的稳定性不高,图形之间的间隔不易确定,只要电源开关开着LED始终是点亮的。本次设计要求显示的字符长度较短,使用方案一中的外部中断方法只要控制好延时就可以达到完整显示图案的目的,而且方案一中只使用了外部中断,它所占用的内存比方案二中既使用外部中断又使用两个定时器所占用的单片机资源要少,所以选择使用方案一。具体地说,已知摇摇棒从一侧摆动到另一侧所需的时间是0.8秒,把0.8秒分成64份,则每一列的图形显示时间为0.0125秒。每一列对应两个八位的字节,16位字节对应16个LED发光二极管,然后在这每一份的时间里显示图形的相应一列,则可以得到完整的图形显示。(1
10、) LED显示部分由:16个高亮度的发光二极管,16个270欧姆的电阻以及水银开关组成。其中水银开关的作用:棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一只水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来。图3-1 水银开关(2) 单片机部分由:一个11.059MHz的晶振以及两个30pf的电容构成的晶振电路、一个23uF的电容,10K的电阻以及复位开关构成的复位电路、芯片AT89s52构成。3.4 单元电路设计 图3-2 复位电路 图3-3 时钟电路单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机的复位
11、信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期24个振荡周期以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。手动按钮复位需要人为在复位输入端RST上加入高电平(如图4-1)。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。89系列单片机
12、的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。单片机系统的复位方式有:手动按钮复位和上电复位。时钟在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式(如图4-2)。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如下图所示。外部振荡方式是把外部已有的时钟信号引入单片机内。这种方式适宜用来使单片机的时钟与外部信号保持同步。外部振荡方式的外部电路
13、如图所示。图4-2中,电容器C01,C02起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。晶振频率的典型值为12MHz,采用6MHz的情况也比较多。内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。3.5 主程序流程图通过软件设计思路分析,得到该系统的主程序流程图如3-4所示开始系统初始化开关在左边吗?外部中断T1外部中断T0送数据读取数据LED灯熄灭NY图3-4 主程序流程图系统开始运行,内部进行初始化后,等待外部中断。当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开始显示。显示完成返回主程序,等待下一个摇动周期的到来。4 硬件电路设计4.1 基本原理图
14、图4-1 基本原理图与硬件电路设计16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象看到的是一幅完整的画面。与LED点阵的显示有几分相仿。其硬件电路如图4.1所示:系统电源VCC为5V,下载程序和调试时一定要保证5V电压,MCS-51单片机作为控制器,在它的P1,P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。P1口,P2口的上拉电阻不能少。串在LED公共端的二极管D1会产生一定的压降,用来保护LED,经试验测试LED点亮时两端电压为3V左右,在LED的安全承受范围之内。4.2 各部分功能(1) 按键模块使用一个按键对显示的所有内容进行
15、切换,通过按钮按下的次数确定显示的内容。S1:水银开关功能为棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一支水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来。S2:画面切换开关功能为用于切换显示不同内容。S3:手动复位开关功能为可以控制系统的启停(2) LED显示模块首先,我们根据LED点阵屏的显示原理:点阵屏的显示分为行扫描与列扫描两种,列扫描是将我们的字模数组通过点阵屏的行驱动进行输入,然后通过列对每一行进行扫描,当列为低(高)电平、行为高(低)电平时则表示该点为图案的一部分,将其读出、显示。它的顺序可以总结为:行不断的送数据,每送完设置的信息后列进行
16、读取,然后行再次送数据,列再次读取依次循环下去,一幅完整的图案就显示在了显示屏上。而本次设计的LED显示棒数据传输原理与LED点阵屏相似。可以把LED显示棒看成是LED点阵屏中的一列。为了使显示的图案清晰,我们使用了16个LED管将它们排成一列,整个屏在静止时也就相当于16行1列。数据传输时我们同样使用行送数据、列扫描。在摆动过程中,应用视觉暂留原理,我们点亮的列不会很快的消失,而是随着摆动的方向继续向前移动,只要移动的速度高于视觉暂留的最短时间显示内容就不会熄灭,至此,一幅图案也就可以这样被“摆动”出来了。4.3 系统硬件(1) 单片机控制(STC89C051)本装置采用了STC12C205
17、1单片机,它支持直接通过串口线下载程,对于本设计而言,显示文字需经常改变,STC12C2051方便许多,因此选择STC12C2051作为本设计所用的单片机。(2) 显示功能。(D1D16)信息传递主要由显示来完成,本设计显示功能由16个发光二极管来完成。16个发光二极管分为4组,以共阳的方式连接,共用P1口和P2口作为输出口。4.4 传感器系统硬件传感器主要为摇动传感器,本设计的摇动传感器由滚珠开关构成。可选摇动开关有水银摇动开关和滚珠开关两种。水银摇动开关稳定性较高,但容易发生破裂,水银外泄,安全性较差。滚珠开关稳定性稍差,但不容易损坏,安全度很高。考虑到实际应用环境,故选用滚珠开关作为系统
18、的摇动传感器。由滚珠开关带来的不稳定性可以通过软件进行弥补。经过分析论证,我们决定了系统各模块的最终方案,流程图如下:图4-2 传感器系统流程图整套系统以STC12C2051单片机为核心控制系统,使用16只LED灯作为显示屏,其中16只直接与单片机I/O口相连。当惯性开关触发中断T1时,单片机向16只LED传送数据,依据人体的视觉暂留原理,随着显示棒的摆动前进,输出数据的列也不会立刻消失而是随着摆动逐渐显示在了形成的扇形区域。5 系统软件设计5.1 软件设计思路在摇动LED棒的时候单片机必须单程传送数据否则显示的图形会产生重影,影响视觉效果。因此当系统开始工作后通过惯性开关的位置来使单片机实现
19、单程传送数据给LED。如果惯性开关位于右边,则进入外部中断1并将一变量置1,。在变量为1期间让单片机以一定的频率将数据传送给LED。如果惯性开关位于左边,则进入外部中断0并将变量置0,。在这期间单片机不会传送数据给LED。在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤。之后再立刻熄灭LED并开始重新判断惯性开关的位置。5.2 主程序流程通过软件设计思路分析,得到该系统的主程序流程图3.1如下:图4-1 主程序流程图系统开始运行,内部进行初始化后,等待外部中断。当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开始显示。显示完成返回主程序,等待下一个摇动周期
20、的到来。经过文字取模后,系统的源程序编制参考附录2:5.3 软件实现功能的完善本次设计的一个难点是去除重影,我们的解决方法是使用外部中断让数据单程传输。第二个难点是当显示较长字符时不能完整的显示在一次摇摆的扇形区域内。通过反复试验,我们改变了送数据方式:由一个字符接一个字符传送改为一组字符一起传送,传送结束后再延时,通过不断调试实现了完整显示的功能,同时也解决了画面连续出现没有间断的问题。综上,只要控制好数据传输方式以及每次传输数据间的延时就可以实现多种数据的显示方法。6 试验与仿真单片机应用系统的硬件调试和软件调试是分不可的,许多硬件故障是在调试软件时才发现的。但通常是先排除系统中明显的硬件
21、故障后才和软件结合起来调试的。其一般的调试过程如下:6.1 硬件调试方法脱机调试是在电路板加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号,规格和安装是否符合要求。应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查拓展系统总线是否存在相互间的短路或其他信号线的短路。对于样机所用的电源事先必须单独调试,调试好后,检查其电压值,负载能力,极性等均符合要求,才能加到系统的各个部件上。在不插片子的情况下,加电检查各插件上引脚的电位,仔细检查各地点电位是否正常,尤其应注意单片机插座上的各点电位是否正常,若有高压,联机时将会损坏开发机。联机调试
22、通过脱机调试可排除一些明显的硬件故障。有些硬件故障还是要通过联机调试才能发现和排除。联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。一切正常,即可打开电源。通电后执行开发机读写指令,对用户机的存储器、I/O端口进行读写操作、逻辑检查,若有故障,可用示波器观察波形。通过对波形的观察分析,寻找故障原因,并进一步排除故障。可能的故障有:线路连接上的逻辑错误、有断线或短路现象、集成电路失效等。6.2 软件调试方法软件调试与所选用的软件结构和程序设计技术有关。如果采用模块程序设计技术,则逐个模块调试好以后,再进行系统程序总调试。如果采用实时多任务操
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 摇摇 课程设计 30
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内