基于单片机的摇摇棒设计 2Word文档格式.docx
《基于单片机的摇摇棒设计 2Word文档格式.docx》由会员分享,可在线阅读,更多相关《基于单片机的摇摇棒设计 2Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
参考文献8
附录1:
总体电路原理图9
附录2:
源程序10
附录3:
电路实物图11
1课程设计的目的
单片机是随着大规模集成电路的出现极其发展,将计算机的CPU,RAM,ROM,定时/计数器和多种I/O接口集成在一片芯片上,形成了芯片级的计算机,因此单片机早期的含义称为单片微型计算机.它拥有优异的性价比、集成度高、体积小、可靠性高、控制功能强、低电压、低功耗的显著优点.主要应用于智能仪器仪表、工业检测控制、机电一体化等方面,并且取得了显著的成果.单片机应用系统可以分为:
最小应用系统是指能维持单片机运行的最简单配置的系统。
这种系统成本低廉,结构简单,常构成一些简单的控制系统,如开关状态的输入/输出控制等。
片内有ROM/EPROM的单片机,其最小应用系统即为配有晶振,复位电路,电源的单个单片机。
片内无ROM/EPROM的单片机,其最小应用系统除了外部配置晶振,复位电路,电源外,还应外接EPROM或EEPROM作为程序存储器用。
最小功耗应用系统是指为了保证正常运行,系统的功耗最小。
本文将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息。
掌握利用8051型单片机对发光二极管阵列进行摇动控制的方法。
输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态,用16个发光二极管进行不同频率的亮灭刷新,通过手动摇动可显示输出文字及图案等信息。
当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。
LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。
可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管后简称LED,而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化亮或灭,最终显示一幅图片或字符串。
随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈,对信息的渴求已成为了人们必不可少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受。
而现代工具务求简捷化、便携化,因此,摇动显示装置的到来,必将会给人们带来一种新的方便的文化传递方式。
让你的心声闪烁在夜空——LED摇摇棒横空出世!
LED摇摇棒又叫摇摇棒、魔棒、闪光棒、闪字棒、闪图棒、星光棒。
LED摇摇棒的诞生是闪光系列产品中的一大革命,它最大的神奇之处,是在手中左右摇晃LED摇摇棒,就会在棒子划过的轨迹上留下清析的文字或图案。
目前市场上,这是最新,价格最低,可远距离观看的一款电子产品。
2课程设计的任务与要求
2.1设计目的
本次设计制作的是一个显示棒,基本要求就是要小巧、轻便,所以要将单片机的系统板简化设计。
通过本次设计,加强学生对MCS-51单片机的深刻理解,提高学生的设计能力和动手能力。
2.2设计要求
设计一个16只高亮度LED发光二极管构成的摇摇棒,通过单片机编程配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片。
3设计思路与方案论证
3.1设计思路
16只LED发光管作为画面每一列的显示,左右摇晃起到了扫描的作用,人眼的视觉暂留现象看到的是一幅完整的画面。
与LED点阵的显示有几分相仿。
图3-1基本原理图与硬件电路设计
通过软件设计思路分析,得到该系统的主程序流程图如3-4所示
表3-1主程序流程图
系统开始运行,内部进行初始化后,等待外部中断。
当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开始显示。
显示完成返回主程序,等待下一个摇动周期的到来。
3.2设计方案
通过外部中断可以控制数据开始传输的时刻。
选择好外部中断来源是本次制作的难点及重点。
方案一:
使用振动开关。
通过摇晃使得振动开关与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。
方案二:
使用光遮断器。
在棒上装一个可以摆动的用来遮挡光遮断器光线的细杆,细杆每左右摆动一次这个杆就会通过一次光遮断器,发生电平变化。
同样通过这种电平变化,结合软件控制显示。
3.3论证
本次设计中产生的中断是为了实现数据的单程传输。
如果使用光遮断器,其触发单片机的时刻处于正中间,不能解决画面因为返回与原来图片重叠的现象。
而使用振动开关,因为在左右都有触点,所以很容易的在往返途中产生两次中断,方便指令控制,所以选择使用方案一。
4功能说明
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期24个振荡周期以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按钮复位和上电复位。
手动按钮复位需要人为在复位输入端RST上加入高电平。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
时钟在引脚XTAL1和XTAL2外接晶体振荡器简称晶振或陶瓷谐振器,就构成了内部振荡方式。
由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
外部振荡方式是把外部已有的时钟信号引入单片机内。
这种方式适宜用来使单片机的时钟与外部信号保持同步。
功能为棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一支水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来。
5电路仿真及单元电路功能
5.1电路仿真图
图5-1电路仿真图
5.2单元电路功能
使用一个按键对显示的所有内容进行切换,通过按钮按下的次数确定显示的内容。
图3-2复位电路图3-3时钟电路
在摇动LED棒的时候单片机必须单程传送数据否则显示的图形会产生重影,影响视觉效果。
因此当系统开始工作后通过惯性开关的位置来使单片机实现单程传送数据给LED。
如果惯性开关位于右边,则进入外部中断1并将一变量置1,。
在变量为1期间让单片机以一定的频率将数据传送给LED。
如果惯性开关位于左边,则进入外部中断0并将变量置0,。
在这期间单片机不会传送数据给LED。
在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤。
之后再立刻熄灭LED并开始重新判断惯性开关的位置。
6焊接与调试
6.1焊接
使用电烙铁时,首先检查焊头,焊头若出现黑色的氧化物就先磨掉。
上锡的具体方法是:
插上电源插头,将电烙铁烧热,刚刚熔化焊锡时,涂上助焊剂,再用焊锡均匀地涂在烙铁头上,是烙铁头均匀地涂上一层锡。
焊接时将引脚对应好焊接电路板的焊接位置上,接着先将焊丝接触然后电烙铁从下至上的较快速的上锡。
焊接出来的焊点应该饱满,略有尖头。
导线焊接:
导线焊接前要出去末端绝缘层。
导线焊接,搪锡是关键步骤,尤其多股导线。
焊接时间不宜过长,否则容易烫坏元件,必要时可用镊子夹住管脚帮忙散热。
焊点应呈正弦波峰形状,表面应光亮圆滑,无焊刺锡量适中。
焊接完成后,再对照电路图检查一遍接线有无错误,然后加电压进行测试。
加上电压后,若正常工作且符合设计要求和目的,则电路设计成功,否则继续调试找出问题所在,修正错误直至达到正常工作且符合设计要求和目的。
6.2硬件调试方法
第一步,测试LED显示电路和C51单片机最小系统。
首先测试LED,输入一个简单程序,发现有一个LED不亮,于是检查该LED的引脚,发现线路断了,接好后LED亮了。
于是输入摇摇棒程序,但LED灯不闪,猜测是数码管芯片与插槽接触不良的问题,就把插槽重新焊接,之后,再次检测时,发现有时闪烁有时灯不亮。
说明不是插槽的问题,于是反复检查最小系统模块,通过用电压表最数码管的每个引脚进行高低电平测试,最总发现原来是接线问题,即是一根线忘了连接。
使得硬件与软件的设置不匹配,从而导致了LED显示不正常。
改正后重新测试。
手动摇晃可呈现图像。
第二步,测试驱动电路,该模块完好。
第三步,软件测试。
在软件方面,改部分主要调延时函数,调试过程简单但费时。
于是,多次耐心尝试后软件调试才成功,能够完整并较为清晰地完整图像。
最终,实现摇摇棒功能
7结论
本次将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息。
输出信号频率的控制通过单片机来实现,用水银开关摆动状态和16个发光二极管进行不同频率的亮灭刷新,通过手动摇动可显示输出文字及图案等信息。
设计综合运用了字模转换软件。
同时查阅了大量相关资料,包括查阅相关书籍和网上的资料,获得了一些相关信息。
在设计方面,采用了在变量自加的原理,在经过逐个读取的方法来显示要显示的内容。
最后还得出以下几点:
第一、准备越充分,实做越顺利
在做设计前了解相关知识、材料、方法可以避免许多没有必要的麻烦,一步一个脚印就不必“从头再来”。
最不能容忍的是在开始的几步偷懒,造成后面总有一些无法排除的障碍。
第二、温故而知新
课程设计发端之始,思绪全无,举步维艰,对于理论知识学习不够扎实的我深感知识的不够,便重拾教材对知识系统而全面进行了梳理,终于熟练掌握了基本理论知识,而且领悟诸多平时学习难以理解掌握的较难知识。
第三、思路即出路
当初没有思路,诚如举步维艰,茫茫大地,不见道路。
在对理论知识梳理掌握之后,茅塞顿开,柳暗花明,思路如泉涌,高歌“条条大路通罗马”。
顿悟,没有思路便无出路,原来思路即出路。
第四、通过这次课程设计,使我学会了编写程序,焊接电路板,增强了我的动手能力,为以后参加工作打下了坚实的基础。
参考文献
[1]杨振江,冯军.单片机原理与实践指导【M】,中国电力出版社,2008,8.
[2]姜志海.单片微型计算机原理及应用【M】,机械工业出版社,2007,3.
[3]陈桂友,柴远彬.单片机应用技术【M】,机械工业出版社,2008,1.
[4]冯先成.单片机应用系统设计【J】,北京航空大学出版社,2009.
[5]何宏.微型计算机原理与接口技术【M】,西安电子科技大学出版社,2009,4.
[6]刘海成.单片机及应用系统设计原理与实践【M】,北京航空大学出版社,2009,8.
[7]金杰.单片机应用技术基本功【J】,人民邮电出版社,2009.
[8]韩志军.单片机系统设计与应用实例【M】,机械工业出版社,2010.
[9]李广弟.单片机基础【M】,北京航空大学出版社,2007.
[10]刘同法,陈忠平,眭仁武.单片机基础与最小系统实践【M】,北京航空大学出版社,2007.
[11]李群芳.单片微型计算机接口技术及应用【M】,电子工业出版社,2005.
[12]严天峰.单片机应用系统设计与仿真调试【M】,北京航空航天大学出版社,2005.
[13]廖雷.C语言程序设计【M】,高等教育出版社,2008.
总体电路原理图
源程序
#include<
reg52.h>
#defineucharunsignedchar
#defineuintunsignedint//宏定义
sbitKEY=P3^4;
//定义画面切换按键
ucharKY;
//KY作用在后面说明
uchardisp;
//显示汉字指针
ucharpic=0,num=0;
//pic为按键次数;
num为中断次数
/*********n(us)延时子程序***********/
voidDelayUs(uintM)
{
uintx;
for(x=0;
x<
=M;
x++);
}
/***********显示子程序(LOVE)********/
voiddisplay2(void)
uchari;
DelayUs(2000);
for(i=0;
i<
64;
i++)
{
P1=~love[i*2];
P2=~love[i*2+1];
DelayUs(130);
}
/*****主函数*****/
voidmain(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;
}}
电路实物图