循环彩灯课程设计报告
电 子 系 统 课 程
设 计 报 告
学 号: 1 7
姓 名: 虞 丽 惠
班 级: 应电091班
指导老师: 吴 夏 来
时 间:2011-5-30—2011-6-10
目 录
一、引言·································2
二、设计要求·····························3
1.任务 2.基本要求
三、设计流程·····························3
1.流程总图 2.AT89C51引脚图
四、设计方案·····························5
1.硬件设计 2.软件设计 3.实物的焊接与调试
五、实习心得·····························7
六、附录·································8
课题:循 环 彩 灯
一、 引言
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。 LED 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。但目前市场上各式样的 LED 彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。
课程设计是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练,是培养学生工程意识和创新能力的重要环节。进一步巩固和加深“单片机”课程的基本知识,了解单片机设计知识在实际中的应用。综合运用“单片机”课程和先修课程的理论及生产实际知识去分析和解决电路设计问题,进行单片机电路设计的训练。学习单片机设计电路的一般方法,了解和掌握单片机电路的设计过程和进行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体电路设计能力。通过计算和绘图,学会运用标准、规范和查阅有关技术资料等,培养单片机电路设计的基本技能。
二、 设计要求
1. 任务
设计一款基于AT89C52单片机的彩灯。
2. 基本要求
⑴ 用8只LED灯能按一定的规律和频率做各种循环闪烁,五种花样。 ⑵ 闪烁的频率可调。
⑶ 彩灯用8个发光二级管代替。
三、 设计流程
本课程设计是采用AT89C51单片机设计循环彩灯,通过KEIL进行编程,通过PROTUES进行软件仿真。用AT89C52与电阻、电容、开关等组成单片机的最小系统,AT89C52单片机的P1口作为控制端口控制循环彩灯的亮与灭。在设计中利用软件程序延时的方法来控制循环彩灯亮灭的时间。考虑延时时间较长所以先用DELAY来实现延时。利用P2口的八个发光二极管作为循环彩灯的输出端口。
1. 总流程图
N
图 1 流程总图
2. AT89C52引脚图
(T2)P1.0P1.2P1.3P1.4P1.5P1.6P1.7RST(RXD)P3.0(TXD)P3.1(T0)P3.4(T1)P3.5(WR)P3.6(RD)P3.7XTTAL2XTTAL1GND
VCCP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7EA/VPPALE/PROGPSENP2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0
图 2AT89C52引脚图
四、 设计方案 1. 硬件设计
⑴单片机最小系统设计
89C52单片机最小系统是由晶体振荡器和复位电路构成,如图3所示:
图 3 最小系统图
⑵单片机外部电路设计
单片机外部由8个LED灯,5个独立拨动开关,8个限流电阻组成。 整体电路如图4所示
:
图 4 整体电路图
⑶ 硬件设计分析
本硬件设计简单易操作,不死机,只需拨动开关即可达到指定指令,省略模式选择简单易懂。
硬件设计过程中遇到的问题及解决:
问题:在仿真过程中,拨动开关不起作用,发光LED灯一直只执行花样1。
解决:开关的高低电平接错,导致开关一直处在高电平状态,所以一直循环花样1,因为开关存在优先级别。
2. 软件设计 源程序见附录。
软件设计过程中遇到的问题及解决:
在设计整个程序的设计是先设计整体框架,再设计花样的程序逐步添加到整体程序中。在编译、时方便检查程序中的错误,运行时也更容易。 问题1:编译时存在错误。
解决1:最低级的错误,字母前面加0。
问题2:在修改程序过程中,添加程序后就无法编译。
解决2:因为超过了跳转指令的范围,添加LJMP指令,加大跳转范围。
3. 实物的焊接与调试
元器件清单如表1所示:
表 1
调试过程中遇到的问题及解决:
问题1:接通电源后,只有一盏灯亮。 解决1:LED灯的共阴极没焊接好。 问题2:8盏灯只亮,不会有花样变化。
解决2:因为单片机不工作,电源、地没有接通。
五、 实习心得
通过学习单片机这门课程,我进一步接触并了解到了软硬件的结合这个问题。此次设计也加强了我的动手、思考和解决问题的能力,在整个设计过程中,我遇到了以下问题: 1、刚着手设计时,不知道如何下手,但经过查阅相关资料和老师的指导,逐渐有了自己的设计想法,制定出来这个系统的结构框图。
2、软件设计师耗时最长的一项,涉及整个系统工作的稳定性。首先编写总体框架,然后做简单的测试,保证能正常运行,接下来编写每个花样的程序,写完一个测试一个,这样保证了最后调试的成功率。在编写程序过程中需要很好的编写习惯,结构要明显、随时存档。程序要简约。另外要兼顾到硬件的结构,尽量使得硬件结构简单,所用资源更少。
这次课程设计让我学到很多东西,不仅了解到AT89C52的功能、加强了单片机的理论知识,增强了对单片机的理解,学会查寻资料﹑比较方案,学会单片机的设计﹑计算;进一步提高分析解决实际问题的能力,创造一个动脑动手﹑独立开展电路实验的机会,锻炼分析﹑解决程序编写问题的实际本领,真正实现由课本知识向实际能力的转化,培养了我的动手能力及分析解决问题的能力;通过课程的设计与制作,加深对基本原理的了解,增强了实践能力,更令我的创照性思维得到了拓展。
由于我们的能力和水平有限,实验过程过于简陋,实验经验尚浅,错误之处在所难免,恳请老师加以纠正,以后不断学习改进!
同时要感谢老师的耐心的指导,没有老师的帮助我们不可能这么顺利的完成这次的课程设计。
六、 附录
源程序: ORG 0000H LJMP 0100H ORG 0100H START:
MOV P2,#00H ORL P1,#1FH MOV A,P1 CPL A
ANL A,#1FH JZ START
JNB P1.0, LOOP JNB P1.1, LOOP1 JNB P1.2, LOOP2 JNB P1.3, LOOP3
JNB P1.4, LOOP4
SJMP LOOP LOOP3: LJMP LOOP5 LOOP4: LJMP LOOP6 LOOP: MOV A, #01H LOOPL:
MOV P2, A RL A
CALL DELAY
JNB ACC.7, LOOPL LOOPR:
MOV P2, A RR A
CALL DELAY
JNB ACC.0,LOOPR LJMP START LJMP LOOP LOOP1:
MOV A,#81H MOV P2,A CALL DELAY MOV A,#42H MOV P2,A CALL DELAY MOV A,#24H MOV P2,A CALL DELAY
MOV A,#18H MOV P2,A CALL DELAY MOV A,#24H MOV P2,A CALL DELAY MOV A,#42H MOV P2,A CALL DELAY MOV A,#81H MOV P2,A CALL DELAY LJMP START LJMP LOOP1 LOOP2:
MOV A,#18H MOV P2,A CALL DELAY MOV A,#3CH MOV P2,A CALL DELAY MOV A,#7EH MOV P2,A CALL DELAY MOV A,#0FFH MOV P2,A CALL DELAY MOV A,#00H MOV P2,A CALL DELAY MOV A,#81H MOV P2,A CALL DELAY MOV A,#0C3H MOV P2,A CALL DELAY MOV A,#0E7H MOV P2,A CALL DELAY MOV A,#0FFH MOV P2,A CALL DELAY MOV A,#00H MOV P2,A
课 程 设 计 报 告
CALL DELAY LJMP START LJMP LOOP2
LOOP5:
MOV A, #03H LOOP5L:
MOV P2, A
RL A
CALL DELAY
JNB ACC.7, LOOP5L LOOP5R:
MOV P2, A
RR A
CALL DELAY
JNB ACC.0,LOOP5R LJMP START LJMP LOOP5
LOOP6:
MOV A,#0AAH MOV P2,A
CALL DELAY MOV A,#55H MOV P2,A
CALL DELAY MOV A,#0FFH MOV P2,A
CALL DELAY LJMP START LJMP LOOP6
DELAY:
MOV R4, #2
L1: MOV R2, #250 L2: MOV R3, #250 L3: DJNZ R3, L3 DJNZ R2, L2 DJNZ R4, L1 RET
END
10