单片机控制的花样彩灯.docx
《单片机控制的花样彩灯.docx》由会员分享,可在线阅读,更多相关《单片机控制的花样彩灯.docx(18页珍藏版)》请在冰豆网上搜索。
单片机控制的花样彩灯
单片机控制的花样彩灯
课程设计报告书
题目:
花样彩灯控制系统
专业:
电气工程
日期:
2012-6-22
河南工业职业技术学院
课程设计(论文)任务书
一、课题设计(论文)题目:
花样彩灯控制系统
二、课程设计(论文)使用的原始资料(数据)及设计技术要求:
设计要求:
利用8031单片机,正常情形下使P1口八个发光二极管做跑马灯和流水灯显示;紧急情形下,使八个发光二极管做鸳鸯戏水灯显示。
三、设计任务:
1.设计硬件电路,画出电路原理图;
2.画出程序流程图;
3.编制程序,写出源程序代码;
4.写出5000字的详细说明书,要求字迹工整,原理叙述正确,会计算主要元器件的一些参数,并选择元器件;
四、主要参考资料:
1、《单片机原理及应用》,李建忠,西安电子科技大学出版社,2002年
2、《单片微型计算机与接口技术》,李群芳等,电子工业出版社,2002年
3、《单片微型计算机原理与接口技术》,陈光东等,华中科技大学出版社,1999年
4、《单片机实验与实践》,周立功等,北京航空航天大学出版社,2004年
5、《开放式综合实验/仿真系统MCS51实验分册》,伟福公司
电气工程系电气自动化专业1001班
学生:
杜世会
指导教师:
赵阳
助理指导教师(并指出所负责的部分):
教研室:
教研室主任:
1引言4
2设计原理5
2.1MCS515
2.2LED6
2.3中断指令8
2.4硬件接原理图9
3程序流程图11
3.1主流程图11
3.2流水灯子流程图12
3.3中断程序流程图13
4汇编程序14
4.1主程序14
4.2一秒钟定时程序17
5小结18
参考文献19
1.1引言
随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。
LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚。
但目前市场上各式样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂、功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合、不同时间段的需要来调节亮灯时间、模式、闪烁频率等动态参数。
这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。
此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。
因此有必要对现有的彩灯控制器进行改进。
课程设计是学完一门课后应用本课知识及以前的知识积累而进行的综合性、开放性的训练,是培养学生工程意识和创新能力的重要环节。
进一步巩固和加深“单片机”课程的基本知识,了解单片机设计知识在实际中的应用。
综合运用“单片机”课程和先修课程的理论及生产实际知识去分析和解决电路设计问题,进行单片机电路设计的训练。
学习单片机设计电路的一般方法,了解和掌握单片机电路的设计过程和进行方式,培养正确的设计思想和分析问题、解决问题的能力,特别是总体电路设计能力。
通过计算和绘图,学会运用标准、规范和查阅有关技术资料等,培养单片机电路设计的基本技能。
该程序示例了单片机键盘控制p1口流水灯花样的方法;具体表现为:
p3.23.23.43.5四个小本文提出了一种基于AT89S51单片机的彩灯控制方案,实现对LED彩灯的控制。
按键,分别实现了四个控制。
通过这次实验,我们也了解了团队合作的重要性,集体的力量是伟大的,一个人如何融入一个团队是是一个重要问题,讲究合作才能取得最后的成功!
2设计原理
2.1MCS51单片机
引脚说明
MCS单片机都采用40引脚的双列直插封装方式。
图2-9为引脚排列图,40条引脚说明如下:
1、主电源引脚Vss和Vcc
①Vss接地
②Vcc正常操作时为+5伏电源
2、外接晶振引脚XTAL1和XTAL2
①XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。
当采用外部振荡器时,此引脚接地。
②XTAL2内部振荡电路反相放大器的输出端。
是外接晶体的另一端。
当采用外部振荡器时,此引脚接外部振荡源。
3、控制或与其它电源复用引脚RST/VPD,ALE/
,
和
/Vpp
①RST/VPD当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位
在Vcc掉电期间,此引脚可接图2-98051引脚排列图
上备用电源,由VPD向内部提供备用电源,以保持内部RAM中的数据。
②ALE/
正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE引脚以不变的频率(振荡器频率的
)周期性地发出正脉冲信号。
因此,它可用作对外输出的时钟,或用于定时目的。
但要注意,每当访问外部数据存储器时,将跳过一个ALE脉冲,ALE端可以驱动(吸收或输出电流)八个LSTTL电路。
对于EPROM型单片机,在EPROM编程期间,此引脚接收编程脉冲(
功能)
③
外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,
在每个机器周期内两次有效。
同样可以驱动八LSTTL输入。
④
/Vpp、
/Vpp为内部程序存储器和外部程序存储器选择端。
当
/Vpp为高电平时,访问内部程序存储器,当
/Vpp为低电平时,则访问外部程序存储器。
对于EPROM型单片机,在EPROM编程期间,此引脚上加21伏EPROM编程电源(Vpp)。
4、输入/输出引脚P0.0-P0.7,P1.0-P1.7,P2.0-P2.7,P3.0-P3.7。
①P0口(P0.0-P0.7)是一个8位漏极开路型双向I/O口,在访问外部存储器时,它是分时传送的低字节地址和数据总线,P0口能以吸收电流的方式驱动八个LSTTL负载。
②P1口(P1.0-P1.7)是一个带有内部提升电阻的8位准双向I/O口。
能驱动(吸收或输出电流)四个LSTTL负载。
。
③P2口(P2.0-P2.7)是一个带有内部提升电阻的8位准双向I/O口,在访问外部存储器时,它输出高8位地址。
P2口可以驱动(吸收或输出电流)四个LSTTL负载。
④P3口(P3.0-P3.7)是一个带有内部提升电阻的8位准双向I/O口。
能驱动(吸收或输出电流)四个LSTTL负载
2.2LED显示数码管
LED有共阴极和共阳极两种。
如图所示。
二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。
为了保护各段LED不被损坏,需外加限流电阻。
LED数码管结构原理图:
高电平驱动共阴极
低电平驱动共阳极
图3AT89C2051引脚配置
AT89C2051芯片的20个引脚功能为:
VCC电源电压。
GND接地。
RST复位输入。
当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。
XTAL1反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2来自反向振荡放大器的输出。
P1口8位双向I/O口。
引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。
P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。
在闪速编程与编程校验期间,P1口也可接收编码数据。
P3口引脚P3.0~P3.5与P3.7为7个带内部上拉的双向I/0引脚。
P3.6在内部已与片内比较器输出相连,不能作为通用I/O引脚访问。
P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。
P3口也可用作特殊功能口。
2.3中断指令。
在CPU和外设交换信息时,存在着快速CPU和慢速外设间的矛盾,机器内部有时也可能出现突发事件,为此,计算机中通常采用中断技术。
CPU和外设并行工作,当外设数据准备好(或有某种突发事件发生)时向CPU提出请求,CPU暂停正在执行的程序转而为该外设服务(或处理紧急事件),处理完毕再回到原断点继续执行原程序。
中断优先级:
当有多个中断源同时向CPU申请中断时,CPU优先响应最需紧急处理的中断请求,处理完毕再响应优先级别较低的,这种预先安排的响应次序。
中断的嵌套:
在中断系统中,高优先级的中断请求能中断正在进行的较低级的中断源处理,
(1)中断技术是实时控制中的常用技术,51系列单片机有三个内部中断,二个外部中断。
所谓外部中断就是在外部引脚上有产生中断所需要的信号。
每个中断源有固定的中断服务程序的入口地址(称矢量地址或向量地址)。
当CPU响应中断以后单片机内部硬件保证它能自动的跳转到该地址。
因此,此地址是应该熟记的,在汇编程序中,中断服务程序应存放在正确的向量地址内。
(或存放一条转移指令);而在C语言中是靠Interruptn的关键字n自动设置的。
(2)单片机的中断是靠内部的寄存器管理的,这就是中断允许寄存器IE,中断优先权寄存器IP,必须在CPU开中断即开全局中断开关EA,开各中断源的中断开关,CPU才能响应该中断源的中断请求,其中缺一不可。
(3)从程序表面看来,主程序和中断服务程序好象是没有关连的,只有掌握中断响应的过程,才能理解中断的发生和返回,看得懂中断程序,并能编写高质量中断程序。
表2.1常用中断
符号
名称
中断引起原因
中断服务程序入口
INT0
外部中断0
P3.2引脚的低电平或下降沿信号
0003H
INT1
外部中断1
P3.3引脚的低电平或下降沿信号
0013H
T0
定时器0中断
定时计数器0计数回零溢出
000BH
T1
定时器1中断
定时计数器1计数回零溢出
001BH
T2
定时器2中断
定时计数器2中断(TF2或T2EX信号)
002BH
TI/RI
串行口中断
串行通信完成一帧数据发送或接收引起中断
0023H
2.4硬件原理图
晶振(12MHz)定时1秒
对于12MHz的晶振而言,其时钟周期T=1/f=1/12us,而89C51的一个机器周期包括12个时钟周期,所以一个机器周期为1us,对于T0而言,使之工作于16-bit,
最大计时为65536*1=65536us,需要多次定时才能实现一秒定时。
3程序流程图
3.1总流程图
N
Y
NYNYNYNY
3.2流水灯子程序流程图
N
Y
N
Y
其他子程序流程图与上图按下其他键的流程图和它相类似。
3.3中断程序流程图
4汇编程序
4.1主程序:
ORG0000H;中断入口程序;
LJMPSTART
ORG0003H
RETI
ORG000BH
RETI
ORG0013H
RETI
ORG001BH
RETI
CLEAR:
RET;;初始化程序
;START:
ACALLCLEAR;主程序
STAR1:
MOVP3,#0FFH
JNBP3.2,FUN2
JNB