完整版摇摇棒毕业课程设计论文Word文档下载推荐.docx
- 文档编号:18189671
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:12
- 大小:224.97KB
完整版摇摇棒毕业课程设计论文Word文档下载推荐.docx
《完整版摇摇棒毕业课程设计论文Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《完整版摇摇棒毕业课程设计论文Word文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。
LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。
可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED),而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化(亮或灭),最终显示一幅图片或字符串。
目录
一.引言·
·
3
二.系统设计方案·
5
1.设计目的·
2.设计要求·
3.设计思路·
三.系统硬件设计·
7
1.基本原理及各部分功能·
2.系统硬件·
8
四.系统软件设计·
10
1.软件设计思路·
2.主程序流程图·
3.软件实现功能的完善·
18
五.系统的硬件调试及软件调试·
19
六.总结·
22
七.致谢·
23
八.参考文献·
24
二.系统设计方案
1.设计目的
本次设计制作的是一个显示棒,基本要求就是要小巧、轻便,所以要将单片机的系统板简化设计。
通过本次设计,加强学生对MCS-51单片机的深刻理解,提高学生的设计能力和动手能力。
2.设计要求
设计一个16只高亮度LED发光二极管构成的摇摇棒,通过单片机编程配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片。
3.设计思路
本系统要求设计一个LED显示棒且需要有按键进行内容切换,它主要是由中央控制部分,LED驱动部分,LED显示部分以及电源部分组成,如图所示
单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过IO口输出,使LED灯点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。
1.LED灯的选择:
传统LED发光二极管。
颜色多样,在可以同样显示图案的前提下使用它更为经济。
2.外部中断信号产生方式:
通过外部中断可以控制数据开始传输的时刻。
选择好外部中断来源是本次制作的难点及重点。
使用惯性开关。
通过摇晃使得惯性开关的摆杆与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。
3.抗重影方案的选择:
使用外部中断控制数据传输时刻。
外部中断信号由惯性开关产生,触发方式为下降沿触发。
惯性开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地。
惯性开关处于不同位置进入不同的中断,从而决定何时送数据。
该方案简单易行,可以保证数据是单程传输的,避免了重影。
不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以达到省电的效果。
三.系统硬件设计
1.基本原理图为:
基本原理与硬件电路设计:
16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象看到的是一幅完整的画面。
与LED点阵的显示有几分相仿。
其硬件电路如上图中所示:
系统电源VCC为5V,下载程序和调试时一定要保证5V电压,MCS-51单片机作为控制器,在它的P1,P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。
P1口,P2口的上拉电阻不能少。
串在LED公共端的二极管D1会产生一定的压降,用来保护LED,经试验测试LED点亮时两端电压为3V左右,在LED的安全承受范围之内。
各部分功能
(1)按键模块
使用一个按键对显示的所有内容进行切换,通过按钮按下的次数确定显示的内容。
S1:
水银开关 功能为棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一支水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来。
S2:
画面切换开关 功能为用于切换显示不同内容。
S3:
手动复位开关 功能为可以控制系统的启停
(2)LED显示模块
首先,我们根据LED点阵屏的显示原理:
点阵屏的显示分为行扫描与列扫描两种,列扫描是将我们的字模数组通过点阵屏的行驱动进行输入,然后通过列对每一行进行扫描,当列为低(高)电平、行为高(低)电平时则表示该点为图案的一部分,将其读出、显示。
它的顺序可以总结为:
行不断的送数据,每送完设置的信息后列进行读取,然后行再次送数据,列再次读取……依次循环下去,一幅完整的图案就显示在了显示屏上。
而本次设计的LED显示棒数据传输原理与LED点阵屏相似。
可以把LED显示棒看成是LED点阵屏中的一列。
为了使显示的图案清晰,我们使用了16个LED管将它们排成一列,整个屏在静止时也就相当于16行×
1列。
数据传输时我们同样使用行送数据、列扫描。
在摆动过程中,应用视觉暂留原理,我们点亮的列不会很快的消失,而是随着摆动的方向继续向前移动,只要移动的速度高于视觉暂留的最短时间显示内容就不会熄灭,至此,一幅图案也就可以这样被“摆动”出来了。
2.系统硬件
系统功能主要体现在3个部分:
1.单片机控制(STC12C2051)
本装置采用了STC12C2051单片机,它支持直接通过串口线下载程序,对于本设计而言,显示文字需经常改变,STC12C2051方便许多,因此选择STC12C2051作为本设计所用的单片机。
2.显示功能。
(D1~D16)
信息传递主要由显示来完成,本设计显示功能由16个发光二极管来完成。
16个发光二极管分为4组,以共阳的方式连接,共用P1口和P2口作为输出口。
3.传感器系统
硬件传感器主要为摇动传感器,本设计的摇动传感器由滚珠开关构成。
可选摇动开关有水银摇动开关和滚珠开关两种。
水银摇动开关稳定性较高,但容易发生破裂,水银外泄,安全性较差。
滚珠开关稳定性稍差,但不容易损坏,安全度很高。
考虑到实际应用环境,故选用滚珠开关作为系统的摇动传感器。
由滚珠开关带来的不稳定性可以通过软件进行弥补。
经过分析论证,我们决定了系统各模块的最终方案,流程图如下:
整套系统以STC12C2051单片机为核心控制系统,使用16只LED灯作为显示屏,其中16只直接与单片机IO口相连。
当惯性开关触发中断T1时,单片机向16只LED传送数据,依据人体的视觉暂留原理,随着显示棒的摆动前进,输出数据的列也不会立刻消失而是随着摆动逐渐显示在了形成的扇形区域。
系统的元器件明细表:
1、单片机STC12C20511片;
2、发光二极管16只;
3、12M晶振1个
4、电阻、电容若干
5、USB接口1个
6、按钮及开关若干
四.系统软件设计
1.软件设计思路
在摇动LED棒的时候单片机必须单程传送数据否则显示的图形会产生重影,影响视觉效果。
因此当系统开始工作后通过惯性开关的位置来使单片机实现单程传送数据给LED。
如果惯性开关位于右边,则进入外部中断1并将一变量置1,。
在变量为1期间让单片机以一定的频率将数据传送给LED。
如果惯性开关位于左边,则进入外部中断0并将变量置0,。
在这期间单片机不会传送数据给LED。
在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤。
之后再立刻熄灭LED并开始重新判断惯性开关的位置。
2.主程序流程图
通过软件设计思路分析,得到该系统的主程序流程图如下:
系统开始运行,内部进行初始化后,等待外部中断。
当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开始显示。
显示完成返回主程序,等待下一个摇动周期的到来。
经过文字取模后,系统的源程序编制如下:
#include<
AT89X52.(us)延时子程序*****
voidDelayUs(uintN)
{
uintx;
for(x=0;
x<
=N;
x++);
}
*****中断服务程序*****
voidintersvr0(void)interrupt0using1
KY=~KY;
每个摇动来回水银开关会在摆幅两端分别产生下降沿中断,只提取其中一次(从左向右摇才显示)
if(KY==0)
{
num++;
计算中断次数
switch(pic)选择画面
case0:
{display1();
}break;
case1:
{display2();
case2:
{display3();
case3:
{display4();
default:
}
}
*****显示子程序1(汉字)*****
voiddisplay1(void)
uchari;
if(num>
10){disp++;
num=0;
}12个汉字分为3次显示完(每次显示4个),每中断10次切换
if(disp>
2)disp=0;
DelayUs(5200);
此处延时时间依各硬件差别而各不相同,试着调整使得显示内容居中即可
for(i=0;
i<
64;
i++)
P0=~(void)
IT0=1;
EX0=1;
EA=1;
开中断,下降沿中断
KY=0;
while
(1)主程序中只检测按键
if(KEY==0)画面切换键按下
DelayUs(10000);
按键去抖
if(KEY==0);
pic++;
if(pic>
3)pic=0;
*****END*****
3.软件实现功能的完善
本次设计的一个难点是去除重影,我们的解决方法是使用外部中断让数据单程传输。
第二个难点是当显示较长字符时不能完整的显示在一次摇摆的扇形区域内。
通过反复试验,我们改变了送数据方式:
由一个字符接一个字符传送改为一组字符一起传送,传送结束后再延时,通过不断调试实现了完整显示的功能,同时也解决了画面连续出现没有间断的问题。
综上,只要控制好数据传输方式以及每次传输数据间的延时就可以实现多种数据的显示方法。
五.系统的硬件调试及软件调试
单片机应用系统的硬件调试和软件调试是分不可的,许多硬件故障是在调试软件时才发现的。
但通常是先排除系统中明显的硬件故障后才和软件结合起来调试的。
其一般的调试过程如下:
1.常见的硬件故障
(1)逻辑错误
样机硬件的逻辑错误是由于设计错误和加工过程中的工艺性错误所造成的。
这类错误包括:
错线,开路,短路等几种,其中短路时最常见的故障。
在印刷电路板布线密度高的情况下,极易因工艺原因造成短路。
(2)器件失效
元器件失效的原因有两个方面:
一是器件本身已损坏或性能不符合要求;
二是由于组装错误而造成的元器件失效,如电解电容,二极管的极性错误,集成块安装方向错误等。
(3)可靠性差
引起系统不可靠的因素很多,如金属化孔,接插件接触不良会造成系统时好时坏;
内部和外部的干扰,电源纹波系数过大,器件负载过大等造成逻辑电平不稳定;
另外,走线和布局的不合理等也会引起系统可靠性差。
(4)电源故障
若样机中存在电源故障,则加电后将造成器件损坏。
电源的故障包括:
电压值不符合设计要求,电源引出线和插座不对应,电源功率不足,负载能力差。
2.硬件调试方法
(1)脱机调试
脱机调试是在电路板加电之前,先用万用表等工具,根据硬件电气原理图和装配图仔细检查样机线路的正确性,并核对元器件的型号,规格和安装是否符合要求。
应特别注意电源的走线,防止电源之间的短路和极性错误,并重点检查拓展系统总线是否存在相互间的短路或其他信号线的短路。
对于样机所用的电源事先必须单独调试,调试好后,检查其电压值,负载能力,极性等均符合要求,才能加到系统的各个部件上。
在不插片子的情况下,加电检查各插件上引脚的电位,仔细检查各地点电位是否正常,尤其应注意单片机插座上的各点电位是否正常,若有高压,联机时将会损坏开发机。
(2)联机调试
通过脱机调试可排除一些明显的硬件故障。
有些硬件故障还是要通过联机调试才能发现和排除。
联机前先断电,把开发系统的仿真插头插到样机的单片机插座上,检查一下开发机与样机之间的电源、接地是否良好。
一切正常,即可打开电源。
通电后执行开发机读写指令,对用户机的存储器、IO端口进行读写操作、逻辑检查,若有故障,可用示波器观察波形。
通过对波形的观察分析,寻找故障原因,并进一步排除故障。
可能的故障有:
线路连接上的逻辑错误、有断线或短路现象、集成电路失效等。
3.软件调试方法
软件调试与所选用的软件结构和程序设计技术有关。
如果采用模块程序设计技术,则逐个模块调试好以后,再进行系统程序总调试。
如果采用实时多任务操作系统,一般是逐个任务,下面进一步予以说明。
对于模块结构程序,要一个个子程序分别调试。
调试子程序时,一定要符合现场环境,即入口条件和出口条件。
调试的手段可采用单步运行方式和断点运行方式,通过检查用户系统CPU的现场、RAM的内容和IO口的状态,检测程序执行结果是否符合设计要求。
通过检测,可以发现程序中的死循环错误、机器码错误及转移地址的错误,同时也可以发现用户系统中的硬件故障、软件算法及硬件设计错误。
在调试过程中不断调整用户系统的软件和硬件,逐步通过一个个程序模块。
各程序模块通过后,可以把各功能块联系起来一起进行整体程序综合调试。
在这阶段若发生故障,可以考虑各子程序在运行时是否破坏现场,缓冲单元是否发生冲突,零位的建立和清除在设计上有否失误,堆栈区域有否溢出,输入设备的状态是否正常,等等。
若用户系统是在开发系统的监控程序下运行时,还要考虑用户缓冲单元是否和监控程序的工作单元发生冲突。
单步和断点调试后,还应进行连续调试,这是因为单步运行只能验证程序的正确与否,而不能确定定时精度、CPU的实时响应等问题。
待全部完成后,应反复运行多次,除了观察稳定性之外,还要观察用户系统的操作是否符合原始设计要求、安排的用户操作是否合理等,必要时还要做适当修正。
对于实时多任务操作系统的应用程序是由若干个任务程序组成,一般是逐个任务进行调试,在调试某一个任务时,同时也调试相关的子程序、中断服务程序和一些操作系统的程序。
逐个任务调试好以后,再使各个任务同时运行,如果操作系统中没有错误,一般情况下系统就能正常运转。
在全部调试修改完成后,将用户软件固化于EPROM中,插入用户样机后,用户系统即能离开发机独立工作,至此系统研制完成。
4.本次设计中,具体调试过程为:
在开始实验设计前,根据实验要求,分析实验所涉及的相关知识点,查阅身边的资料,并根据自己以前所学的理论知识,有了大概设计框图后,在PROTEL中画出原理图,然后根据原理图分析模块焊出电路板,并对模块进行测试。
第一步,测试LED显示电路和C51单片机最小系统。
首先测试LED,输入一个简单程序(#include<
reg51.(){p1=0*00;
p2=0*00;
}),发现有一个LED不亮,于是检查该LED的引脚,发现线路断了,接好后LED亮了。
于是输入摇摇棒程序,但LED灯不闪,猜测是数码管芯片与插槽接触不良的问题,就把插槽重新焊接,之后,再次检测时,发现有时闪烁有时灯不亮。
说明不是插槽的问题,于是反复检查最小系统模块,通过用电压表最数码管的每个引脚进行高低电平测试,最总发现原来是接线问题,即是一根线忘了连接。
使得硬件与软件的设置不匹配,从而导致了LED显示不正常。
改正后重新测试。
手动摇晃可呈现图像。
第二步,测试驱动电路,该模块完好。
第三步,软件测试。
在软件方面,改部分主要调延时函数,调试过程简单但费时。
于是,多次耐心尝试后软件调试才成功,能够完整并较为清晰地完整图像。
最终,实现摇摇棒功能
总结
在曲娜老师的指导下,通过一周的时间完成了摇摇棒的设计,本次设计以传感器和单片机的实际应用为背景,介绍了以单片机和传感器为核心系统摇动传感器和显示设计的基本结构和基本原理。
本次将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息。
当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 摇摇 毕业 课程设计 论文