基于单片机的摇摇棒设计.docx
《基于单片机的摇摇棒设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的摇摇棒设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于单片机的摇摇棒设计
本科毕业设计(论文)
题目基于单片机的摇摇棒设计
毕业设计(论文)任务书
题目基于单片机的摇摇棒设计
专业学号姓名
主要内容、基本要求、主要参考资料等:
主要内容:
1.根据设计要求确定系统的总体框图。
2.了解掌握单片机的基本结构和应用特点。
3.熟悉水银开关和集成电路的要求。
4.根据系统的要求绘制系统硬件电路图,进行部分软件功能的设计。
基本要求:
1.设计摇摇棒的总体方案与硬件设计。
2.绘出总体程序流程图和模块化设计,并作相关程序编译。
3.对设计进行调试,模拟电路的工作过程。
主要资料:
现代化单片机技术与系统、单片机汇编语言常用模块与综合系统设计、单片机原理及其应用。
完成期限:
指导教师签名:
评审小组负责人签名:
2011年10月30日
毕业设计(论文)开题报告表
课题名称
基于单片机的摇摇棒设计
指导教师
学生姓名
学号
专业
机电一体化
开题报告内容:
一、课题来源:
指导老师指定题目。
二设计目的:
本次设计制作的是一个显示棒,基本要求就是小巧、轻便,所以要将单片机的系统板简化设计。
通过本次的设计,加强对单片机的深刻理解,提高设计能力和动手能力。
设计特点:
(1)吸引力强。
(2)以LED电子灯显示,图案显示清晰、高贵,可显示多幅图案。
(3)可多次使用,降低浪费。
(4)亮度高,视角更大,可视距离更远。
设计思路:
(1)利用单片机、LED发光二极管、导线、万能板、水银开关制作。
(2)熟悉课题,查找相关资料,掌握水银开关和单片机的工作原理。
(3)根据摇摇棒的原理图搭接电路原理图,并准备好实物进行焊接。
(4)复调试摇摇棒来达到预期值。
设计方案:
(1)使用水银开关。
通过摇晃使得水银开关与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。
(2)使用光遮断器。
在棒上装一个可以摆动的用来遮挡光遮断器光线的细杆,细杆每左右摆动一次这个杆就会通过一次光遮断器,发生电平变化。
(3)使用角度传感器,通过角度的控制来克服时间上的误差。
五、任务完成的阶段内容和时间安排:
第一阶段:
2011.11.3—2011.11.5,查阅文献资料,收集相关设计的材料,写开题报告;
第二阶段:
2011.11.6—2011.11.25,分析气体烟雾报警器的工作原理,与指导老师讨论,并拟定论文初稿;
第三阶段:
2011.11.26—2011.12.10,气体烟雾报警器的分析,进行总体设计;
第四阶段:
2012.2.25—2012.3.10,根据收集的资料,设计总结,开始撰写论文,做毕业设计;
第五阶段:
2012.3.11—2012.3.26,由指导老师审核毕业设计,指出不足,修改毕业设计,准备提交。
指导教师签名:
日期:
基于单片机的摇摇棒设计
摘要
随着科技的不断发展,社会的不断进步,供人们娱乐休闲的工具越来越多,摇摇棒也随之成为一个热点产品。
“摇摇棒”是基于人眼视觉暂留原理而产生的,当进行摇动时,由于人的视觉暂留会在发光二极管摇动区域产生一个视觉平面,从而达到在该视觉平面上传达信息的作用。
本文介绍了以52单片机控制为主控芯片、配合高亮度LED二极管以及水银开关构成简易摇摇棒的设计过程,通过分时刷新16个发光二极管来显示输出文字或图案等信息。
关键词:
单片机,LED,水银开关
Basedonsingle-chipshakinghisstickdesign
ABSTRACT
Asweallknow,thehumaneyevisualpersistencephenomenon,becausetheeyeisunresponsive,itenrichedthehumanvisualperception.
Withthecontinuousdevelopmentofscienceandtechnology,socialprogress,offerpeopleentertainmenttoolmoreandmore,shakinghisstickalsobecomesahotproduct."Swing"isbasedonthehumanvisualpersistenceprinciplewhich,whenmoved,duetothepersistenceofvisioninthelightemittingdiodeshaketheregionproducesavisualplane,inordertoachievethevisionplanetoconveyinformationabouttheroleof.Thispaperintroducesthe52singlechipmicrocomputerasmaincontrolchip,withhighbrightnessLEDdiodeandamercuryswitch.Asimplerockingroddesignprocess,throughtime-sharingrefresh16light-emittingdiodestodisplaytheoutputoftextorgraphicsinformation.
KEYWORDS:
hakinghisstick,SCM,LED,themercuryswitch
第1章绪论
1.1概述
随着人们物质生活水平的提高,人们对精神生活的追求也愈加强烈,对信息的渴求已成为了人们必不可少的需要,更加简捷与新颖的信息传递方式无疑会给人们带来耳目一新的感受。
而现代工具务求简捷化、便携化,因此,摇动显示装置的到来,必将会给人们带来一种新的方便的文化传递方式。
让你的心声闪烁在夜空——LED摇摇棒横空出世!
LED摇摇棒又叫摇摇棒、魔棒、闪光棒、闪字棒、闪图棒、星光棒。
LED摇摇棒的诞生是闪光系列产品中的一大革命,它最大的神奇之处,是在手中左右摇晃LED摇摇棒,就会在棒子划过的轨迹上留下清析的文字或图案。
目前市场上,这是最新,价格最低,可远距离观看的一款电子产品。
设计具有市场前景,可满足各种大型演出、集会、游行等宣传需要,为人们的生活提供便利。
目前LED摇摇棒的优势。
LED摇摇棒可显示内容有:
中文、英文、日文、韩文、图案等。
显示内容可设计成单色显示、双基色显示,一根棒可存储、显示多幅文字或图案。
目前研发生产的LED摇摇棒具有的优势如下:
1、在控制模块上,设计了USB接口。
2、LED摇摇棒,采用专利驱动技术,具有摇晃速度自适应系统。
根据使用者摇动速度自动调整显示速度,不论摇晃的速度快或慢,图象始终稳定显示。
3、在LED摇摇棒的手握部分,设计成手柄,更人性化,而且使得摇晃过程中,显示内容的定位更准确。
4、这种设计的软件可拓展性能强大,现今拓展了可通过USB接口连接线对显示内容进行编辑和更换的功能。
未来,将可能实现图象与音乐自主相结合的功能等等。
1.2设计目的
本次设计制作的是一个显示棒,基本要求就是要小巧、轻便,所以要将单片机的系统板简化设计。
通过本次设计,加强对AT89S52单片机的深刻理解,提高设计能力和动手能力。
1.3设计要求
设计一个16只高亮度LED发光二极管构成的摇摇棒,通过单片机编程配合手的左右摇晃就可呈现一幅完整的画面,可以显示字符、图片。
1.4设计思路
本系统要求设计一个LED显示棒且需要有按键进行内容切换,它主要是由中央控制部分,LED驱动部分,LED显示部分以及电源部分组成。
单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED灯点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。
1.5摇摇棒的基本原理
人的眼睛存在视觉暂留现象,正因为眼睛反应迟钝,才丰富了人的视觉感受,LED摇摇棒很好地利用了人眼的视觉暂留特性。
运用最新专利电子技术研制而成的线阵LED运动成像的高科技产品。
LED摇摇棒是在手摆动到不同位置的时候,让位于一条直线上的LED显示二维图像的不同的列,利用人眼的视觉暂留效应,实现图形扫描显示。
输出信号频率的控制通过单片机来实现,用16个发光二极管进行不同频率的亮灭刷新。
当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。
第2章基于单片机的摇摇棒方案设计
2.1硬件设计与实现
硬件电路的系统电源VCC为5V,下载程序和调试时一定要保证5V电压,实际使用时用3节干电池串联4.5V即可。
AT89S52单片机作为控制器,在它的P1、P2口接有16只以共阳的方式连接的高亮度LED,由单片机输出低电平点亮。
S2为水银开关。
硬件电路包括三部分:
LED显示模块、单片机控制模块以及下载口模块。
即:
图2-1硬件电路模块
2.2LED灯的选择
方案一:
传统LED发光二极管。
颜色多样,在可以同样显示图案的前提下使用它更为经济,但是颜色较为黯淡,不鲜亮。
方案二:
高亮LED发光二极管。
正如其名,它的亮度比传统二极管要亮,而且同样也有很多颜色,但是高亮LED的工作电流也要大于传统二极管。
为了使显示的图案清晰、明了,我们选择方案二,经过比较,使用红色的LED使得显示画面更为明显、突出,使用两片CR2032纽扣电池为其供电,提供足够的电流。
2.2外部中断信号产生方式
通过外部中断可以控制数据开始传输的时刻。
选择好外部中断来源是本次制作的难点及重点。
方案一:
使用水银开关。
通过摇晃使得水银开关与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。
方案二:
使用光遮断器。
在棒上装一个可以摆动的用来遮挡光遮断器光线的细杆,细杆每左右摆动一次这个杆就会通过一次光遮断器,发生电平变化。
同样通过这种电平变化,结合软件控制显示。
本次设计中产生的中断是为了实现数据的单程传输。
如果使用光遮断器,其触发单片机的时刻处于正中间,不能解决画面因为返回与原来图片重叠的现象。
而使用水银开关,因为在左右都有触点,所以很容易的在往返途中产生两次中断,方便指令控制,所以选择使用方案一。
2.3抗重影方案的选择
方案一:
使用外部中断控制数据传输时刻。
外部中断信号由惯性开关产生,触发方式为下降沿触发。
水银开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地。
水银开关处于不同位置进入不同的中断,从而决定何时送数据。
该方案简单易行,可以保证数据是单程传输的,避免了重影。
惯性开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地。
惯性开关处于不同位置进入不同的中断,从而决定何时送数据。
该方案简单易行,可以保证数据是单程传输的,避免了重影。
不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以达到省电的效果。
方案二:
使用定时器与外部中断。
当我们在摆动手臂的时候,短时间内摆动位置和左右幅度不会有太大变化,利用我们手臂的这个运动规律,只要能得到棒从一侧摆动到另一侧的时间,然后把这个时间分成N份,在每一份的时间里显示不同的花样就能实现图形的显示。
设计中摇动的摆子与左右两个触点接触各一次的时间可以通过外部中断和定时器计算出来,然后用单片机的另一个定时器T1,其定时时间是T0的N分之一,每次中断依次显示一列,就可以得到预期显示的图案了。
该方法可以控制摇动频率低的时候不显示图形。
但程序的稳定性不高,图形之间的间隔不易确定,只要电源开关开着LED始终是点亮的。
本次设计要求显示的字符长度较短,使用方案一中的外部中断方法只要控制好延时就可以达到完整显示图案的目的,而且方案一中只使用了外部中断,它所占用的内存比方案二中既使用外部中断又使用两个定时器所占用的单片机资源要少,所以选择使用方案一。
具体地说,已知摇摇棒从一侧摆动到另一侧所需的时间是0.8秒,把0.8秒分成64份,则每一列的图形显示时间为0.0125秒。
每一列对应两个八位的字节,16位字节对应16个LED发光二极管,然后在这每一份的时间里显示图形的相应一列,则可以得到完整的图形显示。
1、LED显示部分由:
16个高亮度的发光二极管,16个270欧姆的电阻以及水银开关组成。
其中水银开关的作用:
棒在摇动时,只能在朝某一方向摇动时显示,否则会出现镜像字或镜像画面,所以通过接一只水银开关来控制,使摇摇棒从左向右摇动时将内容显示出来。
图2-2水银开关
2、单片机部分由:
一个11.059MHz的晶振以及两个30pf的电容构成的晶振电路、一个23uF的电容,10K的电阻以及复位开关构成的复位电路、芯片AT89s52构成。
2.4单元电路设计
图2-3复位电路图2-4时钟电路
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期24个振荡周期以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按钮复位和上电复位。
手动按钮复位需要人为在复位输入端RST上加入高电平(如图4-1)。
一般采用的办法是在RST端和正电源Vcc之间接一个按钮。
当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。
由于人的动作再快也会使按钮保持接通达数十毫秒,所以,完全能够满足复位的时间要求。
单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。
89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作状态时,且振荡器稳定后,如果RST引脚上有一个高电平并维持2个机器周期(24个振荡周期)以上,则CPU就可以响应并将系统复位。
单片机系统的复位方式有:
手动按钮复位和上电复位。
时钟在引脚XTAL1和XTAL2外接晶体振荡器(简称晶振)或陶瓷谐振器,就构成了内部振荡方式(如图4-2)。
由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。
内部振荡方式的外部电路如下图所示。
外部振荡方式是把外部已有的时钟信号引入单片机内。
这种方式适宜用来使单片机的时钟与外部信号保持同步。
外部振荡方式的外部电路如下图所示。
图4-2中,电容器C01,C02起稳定振荡频率、快速起振的作用,其电容值一般在5-30pF。
晶振频率的典型值为12MHz,采用6MHz的情况也比较多。
内部振荡方式所得的时钟情号比较稳定,实用电路中使用较多。
2.5主程序流程图
通过软件设计思路分析,得到该系统的主程序流程图如5-1所示
图5-1主程序流程图
系统开始运行,内部进行初始化后,等待外部中断。
当摇动到指定位置时,由滚珠开关出触发外部中断,再经过一段时间延时后开始显示。
显示完成返回主程序,等待下一个摇动周期的到来。
2.6AT89S52单片机简介
AT89S52为ATMEL所生产的一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flsah存储器。
1、AT89S52主要功能列举如下:
(1)拥有灵巧的8位CPU和在系统可编程Flash
(2)晶片内部具时钟振荡器(传统最高工作频率可至12MHz)
(3)内部程序存储器(ROM)为8KB
(4)内部数据存储器(RAM)为256字节
(5)32个可编程I/O口线
(6)8个中断向量源
(7)三个16位定时器/计数器
(8)三级加密程序存储器
(9)全双工UART串行通道
2、AT89S52各引脚功能介绍:
VCC:
AT89S52电源正端输入,接+5V。
VSS:
电源地端。
XTAL1:
单芯片系统时钟的反相放大器输入端。
XTAL2:
系统时钟的反相放大器输出端,一般在设计上只要在XTAL1和XTAL2上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入一20PF的小电容,可以使系统更稳定,避免噪声干扰而死机。
RESET:
AT89S52的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电平提升至高电平并保持两个机器周期以上的时间,AT89S51便能完成系统重置的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址0000H处开始读入程序代码而执行程序。
EA/Vpp:
"EA"为英文"ExternalAccess"的缩写,表示存取外部程序代码之意,低电平动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部EPROM中)来执行程序。
因此在8031及8032中,EA引脚必须接低电平,因为其内部无程序存储器空间。
如果是使用8751内部程序空间时,此引脚要接成高电平。
此外,在将程序代码烧录至8751内部EPROM时,可以利用此引脚来输入21V的烧录高压(Vpp)。
ALE/PROG:
ALE是英文"AddressLatchEnable"的缩写,表示地址锁存器启用信号。
AT89S52可以利用这支引脚来触发外部的8位锁存器(如74LS373),将端口0的地址总线(A0~A7)锁进锁存器中,因为AT89S52是以多工的方式送出地址及数据。
平时在程序执行时ALE引脚的输出频率约是系统工作频率的1/6,因此可以用来驱动其他周边晶片的时基输入。
此外在烧录8751程序代码时,此引脚会被当成程序规划的特殊功能来使用。
读取外部程序代码工作模式时(EA=0),会送出此信号以便取得程序代码,通常这支脚是接到EPROM的OE脚。
AT89S52可以利用PSEN及RD引脚分别启用存在外部的RAM与EPROM,使得数据存储器与程序存储器可以合并在一起而共用64K的定址范围。
PORT0(P0.0~P0.7):
端口0是一个8位宽的开路汲极(OpenDrain)双向输出入端口,共有8个位,P0.0表示位0,P0.1表示位1,依此类推。
其他三个I/O端口(P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0在当做I/O用时可以推动8个LS的TTL负载。
如果当EA引脚为低电平时(即取用外部程序代码或数据存储器),P0就以多工方式提供地址总线(A0~A7)及数据总线(D0~D7)。
设计者必须外加一锁存器将端口0送出的地址栓锁住成为A0~A7,再配合端口2所送出的A8~A15合成一完整的16位地址总线,而定址到64K的外部存储器空间。
PORT2(P2.0~P2.7):
端口2是具有内部提升电路的双向I/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。
P2除了当做一般I/O端口使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8~A15,这个时候P2便不能当做I/O来使用了。
PSEN:
此为"ProgramStoreEnable"的缩写,其意为程序储存启用,当8051被设成为
PORT1(P1.0~P1.7):
端口1也是具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个LSTTL负载,同样地若将端口1的输出设为高电平,便是由此端口来输入数据。
如果是使用8052或是8032的话,P1.0又当做定时器2的外部脉冲输入脚,而P1.1可以有T2EX功能,可以做外部中断输入的触发脚位。
PORT3(P3.0~P3.7):
端口3也具有内部提升电路的双向I/O端口,其输出缓冲器可以推动4个TTL负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。
其引脚分配如下:
P3.0:
RXD,串行通信输入。
P3.1:
TXD,串行通信输出。
P3.2:
INT0,外部中断0输入。
P3.3:
INT1,外部中断1输入。
P3.4:
T0,计时计数器0输入。
P3.5:
T1,计时计数器1输入。
P3.6:
WR:
外部数据存储器的写入信号。
P3.7:
RD,外部数据存储器的读取信号。
RST:
复位输入。
当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:
当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
在FLASH编程期间,此引脚用于输入编程脉冲。
在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。
因此它可用作对外部输出的脉冲或用于定时目的。
然而要注意的是:
每当用作外部数据存储器时,将跳过一个ALE脉冲。
如想禁止ALE的输出可在SFR8EH地址上置0。
此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。
另外,该引脚被略微拉高。
如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:
外部程序存储器的选通信号。
在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。
但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:
当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。
注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。
在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:
反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:
来自反向振荡器的输出。
3、存储器
52的存储器组织分成3种地址空间和一个程序计数PC,包括:
(1)16位的程序计数器PC:
赋予52最大64KB的寻址能力。
(2)64KB的程序存储器空间:
这代表我们所写的程序码可达65536个字节。
(3)64KB的外部数据存储器空间:
这部分空间是同时可以读和写的。
(4)256字节的内部存储器空间,包括SFR特殊功能寄存器、堆栈区、数据区和常用寄存器区R0~R7。
STC89C52主要功能
STC89C52主要功能如下表3-1所示。
主要功能特性
兼容MCS51指令系统
8K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
表3-1STC89C52主要功能
第3章关于一些元器件的介绍
3.1LED发光二极管的原理
LED是发光二极管(LightEmittingDiode,LED)的简称,也被称作发光二极管,这种半导体组件一般是作为指示灯、显示板,它不但能够高效率地直接将电能转化为光能,而且拥有最长达数万小时~10万小时的使用寿命,同时具备不若传统灯泡易碎,并能省电等优点。
图3-1发光二极管结构图
当单片机的P1和P2的十六个口输出低电平时,LED灯的阴极就是低电平,在水银开关的作用下,5V的电压加到LED的阳极,LED就有电流通过,这