摇摇棒课程设计基于AT89S51单片机文档格式.docx
- 文档编号:17027307
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:10
- 大小:57.30KB
摇摇棒课程设计基于AT89S51单片机文档格式.docx
《摇摇棒课程设计基于AT89S51单片机文档格式.docx》由会员分享,可在线阅读,更多相关《摇摇棒课程设计基于AT89S51单片机文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
3.软件实现功能的完善.........................6
五、结论........................................7
参考文献.........................................8
附录.............................................8
附录一元器件明细表.........................8
附录二系统程序.............................9
附录三电路图...............................12
一、引言
LED显示棒,又称摇摇棒,是一种利用视觉暂留效应制作的“高科技”玩具。
可以用“静如处子,动如脱兔”来形容它,即当静止时,它只是几个LED发光二极管(后简称LED),而一旦按照一定的频率去摇晃它,它就会随着位置的变化而变化(亮或灭),最终显示一幅图片或字符串。
本设计要求制作完成一个LED的显示棒。
要求LED灯线状排列,通过摇动时形成的亮灯扇形区域能够分辨出如:
“电”、“A”、五环之类的汉字或图案且可以使用按键对显示内容进行切换。
二、系统设计方案
1.设计思路
本系统要求设计一个LED显示棒,且需要有按键进行内容切换,它主要是由中央控制部分、LED驱动部分、LED显示部分以及电源部分组成,如图1所示:
图1:
LED显示棒系统框图
单片机将提取的字模进行存储,当接收到按键输入的指令时单片机就将相应的字模代码通过I/O口输出,使LED点亮,利用视觉暂留原理最终使图案完整的显示在摆动的显示屏中。
本题的难点在于送数据的时间间隔以及较长画面或文字的完整显示。
以下将对各模块的方案进行论证与比较:
2.模块方案的论证与比较
2.1LED灯的选择
方案一:
传统LED发光二极管。
颜色多样,在可以同样显示图案的前提下使用它更为经济,但是颜色较为黯淡,不鲜亮。
方案二:
高亮LED发光二极管。
正如其名,它的亮度比传统二极管要亮,而且同样也有很多颜色,但是高亮LED的工作电流也要大于传统二极管。
为了使显示的图案清晰、明了,我们选择方案二,经过比较,使用绿色5mm的LED使得显示画面更为明显、突出,使用3节1.5V电池为其供电,提供足够的电流。
2.2外部中断信号产生方式
通过外部中断可以控制数据开始传输的时刻。
选择好外部中断来源是本次制作的难点及重点。
使用惯性开关如水银开关。
通过摇晃使得惯性开关的摆杆与焊接的左右两个触点接触,利用这种接触产生的电平变化来触发中断,结合软件控制显示,制作简单,使用方便。
使用光遮断器。
在棒上装一个可以摆动的用来遮挡光遮断器光线的细杆,细杆每左右摆动一次这个杆就会通过一次光遮断器,发生电平变化。
同样通过这种电平变化,结合软件控制显示。
本次设计中产生的中断是为了实现数据的单程传输。
如果使用光遮断器,其触发单片机的时刻处于正中间,不能解决画面因为返回与原来图片重叠的现象。
而使用惯性开关,因为在左右都有触点,所以很容易的在往返途中产生两次中断,方便指令控制,所以选择使用方案一。
2.3抗重影方案的选择
使用外部中断控制数据传输时刻。
外部中断信号由惯性开关产生,触发方式为下降沿触发。
惯性开关左右两边的触点分别与单片机两个外部中断接口相连,默认为高电平,摇动的摆杆接地。
惯性开关处于不同位置进入不同的中断,从而决定何时送数据。
该方案简单易行,可以保证数据是单程传输的,避免了重影。
不摇动时把惯性开关处在左边就可以使LED棒熄灭,可以达到省电的效果。
使用定时器与外部中断。
当我们在摆动手臂的时候,短时间内摆动位置和左右幅度不会有太大变化,利用我们手臂的这个运动规律,只要能得到棒从一侧摆动到另一侧的时间,然后把这个时间分成N份,在每一份的时间里显示不同的花样就能实现图形的显示。
设计中摇动的摆子与左右两个触点接触各一次的时间可以通过外部中断和定时器计算出来,然后用单片机的另一个定时器T1,其定时时间是T0的N分之一,每次中断依次显示一列,就可以得到预期显示的图案了。
该方法可以控制摇动频率低的时候不显示图形。
但程序的稳定性不高,图形之间的间隔不易确定,只要电源开关开着LED始终是点亮的。
本次设计要求显示的字符长度较短,使用方案一中的外部中断方法只要控制好延时就可以达到完整显示图案的目的,而且方案一中只使用了外部中断,它所占用的内存比方案二中既使用外部中断又使用两个定时器所占用的单片机资源要少,所以选择使用方案一。
三、系统硬件设计
1.总体设计
经过分析论证,我们决定了系统各模块的最终方案,流程图如下:
图2:
LED显示棒系统原理框图
整套系统以AT89S52单片机为核心控制系统,使用16只LED灯作为显示屏,其中前24只直接与单片机I/O口相连,后8只由一个74HC595控制。
当惯性开关触发中断T1时,单片机向32只LED传送数据,依据人体的视觉暂留原理,随着显示棒的摆动前进,输出数据的列也不会立刻消失而是随着摆动逐渐显示在了形成的扇形区域。
(整体电路图见附录图1)
2.单元电路设计
单片机最小系统的设计
由于本次设计制作的是一个显示棒,基本要求就是要小巧、轻便,所以要将单片机的系统板简化设计。
它的最小系统包括晶体振荡电路、复位开关和电源部分。
图3为AT89S52单片机的最小系统。
图3AT89S52单片机最小系统
原理图:
PCB图:
程序:
ORG0000H
AJMPWGQWXD
ORG0003H
AJMPINT
ORG0030H
WGQWXD:
SETBEA
SETBIT0
SETBEX0
AJMP$
;
==============================================================================
INT:
JNBP3.5,WGQ_B
RETI
WGQ_B:
MOVR2,#00H
WGQ_A:
MOVA,R2
MOVDPTR,#TAB
MOVCA,@A+DPTR
CPLA
MOV54H,A
INCR2
MOV55H,A
ACALLDL
MOVP0,55H
MOVP2,54H
CJNER2,#256,WGQ_A;
#32为1个字,#64为2个字,以此类推.
DL:
MOVR3,#030H
L1:
MOVR4,#010H
L2:
DJNZR4,L2
DJNZR3,L1
RET
TAB:
DB00H,00H,00H,00H,00H,00H,00H,00H
DB00H,00H,00H,00H,00H,00H,00H,00H;
空字符
DB10H,04H,57H,0D5H,55H,7EH,55H,54H
DB0F7H,0D4H,55H,54H,55H,7EH,57H,0D5H
DB10H,0CH,0FFH,90H,10H,70H,91H,8CH
DB56H,02H,30H,01H,10H,07H,00H,00H;
戴
DB02H,02H,02H,04H,12H,08H,12H,10H
DB12H,20H,12H,7EH,0FEH,89H,13H,09H
DB32H,11H,16H,11H,0AH,21H,12H,61H
DB32H,01H,06H,07H,02H,00H,00H,00H;
老
DB00H,00H,3FH,0F1H,00H,02H,00H,0CH
DB0FFH,0F0H,00H,00H,40H,00H,4FH,0FCH
DB48H,00H,48H,00H,7FH,0FFH,48H,08H
DB48H,04H,0DFH,0F8H,48H,00H,00H,00H;
师
DB08H,02H,08H,44H,0FH,0A8H,0F8H,10H
DB08H,28H,0FH,0C6H,01H,00H,41H,00H
DB41H,02H,41H,01H,47H,0FEH,49H,00H
DB51H,00H,63H,00H,01H,00H,00H,00H;
好
END
四、系统软件设计
1.软件设计思路
在摇动LED棒的时候单片机必须单程送数据否则显示的图形会产生重影,影响视觉效果。
因此当系统开始工作后通过惯性开关的位置来使单片机实现单程送数据给LED。
如果惯性开关位于右边,则进入外部中断T1并将一变量置1。
在变量为1期间让单片机以一定的频率将数据送给LED。
如果惯性开关位于左边,则进入外部中断T0并将变量置0,在这期间单片机不会送数据给LED。
在送数据时,数据送完后应延时一段时间来使摇动时显示的每个字不会太拥挤。
之后再立刻熄灭LED并开始重新判断惯性开关的位置
图4.系统流程图
3.软件实现功能的完善
本次设计的一个难点是去除重影,我们的解决方法是使用外部中断让数据单程传输。
其实此设计还可以添加多种变幻字符,由于本人技术有限,取自摸的时候一直出错,所以改来改去只做了一个最基本的
综上,只要控制好数据传输方式以及每次传输数据间的延时就可以实现多
种数据的显示方法。
五、结论
在戴在平老师的指导下,通过一周的时间完成了摇摇棒的设计,本次设计以传感器和单片机的实际应用为背景,介绍了以单片机和传感器为核心系统摇动传感器和显示设计的基本结构和基本原理。
本次将使用单片机对摇动显示进行实例化,设计一个LED摇动显示器来显示文字、图像等信息。
掌握利用8051型单片机对发光二极管阵列进行摇动控制的方法。
输出信号频率的控制通过单片机来实现,用摇动传感器检测当前摇动状态,用16个发光二极管进行不同频率的亮灭刷新,通过手动摇动可显示输出文字及图案等信息。
当进行摇动时,由于人的视觉暂留原理,会在发光二极管摇动区域产生一个视觉平面,在视觉平面内的二极管通过不同频率的刷新,会在摇动区域内产生图像,从而达到在该视觉平面上传达信息的作用。
设计具有市场前景,可满足各种大型演出、集会、游行等宣传需要,为人们的生活提供便利,通过这次课程设计,使我学会了编写程序,焊接电路板,增强了我的动手能力,为以后打下了坚实的基础!
参考文献:
[1]《电子技术基础数字部分》康华光编高等教育出版社
[2]《单片机C51程序设计教程与实验》祁伟杨亭编北京航空航天大学出版社
[3]《LED及其工程应用》杨清德康娅编人民邮电出版社
[4]《C程序设计》谭浩强编清华大学出版社
[5]《全国大学生电子设计竞赛试题精解选》陈永真编电子工业出版社
附录:
附录1:
元器件明细表:
1、单片机AT89S521片;
2、发光二极管16只;
3、12M晶振1个
4、电阻、电容若干
5、电池盒
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 摇摇 课程设计 基于 AT89S51 单片机