课程设计报告书题目: 花样彩灯控制系统专业:电气工程学号: 0401100102学生姓名:杜世会指导教师:赵阳日期:2012-6-22河南工业职业技术学院课程设计(论文)任务书电气工程系电气自动化 1001 学生:杜世会指导教师:赵阳助理指导教师(并指出所负责的部分):教研室:教研室主任:目录1引言 (4)2 设计原理 (5)2.1MCS51 (5)2.2 LED (6)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.2 3.2 3.4 3.5四个小本文提出了一种基于AT89S51单片机的彩灯控制方案,实现对LED 彩灯的控制。
按键,分别实现了四个控制。
通过这次实验,我们也了解了团队合作的重要性,集体的力量是伟大的,一个人如何融入一个团队是是一个重要问题,讲究合作才能取得最后的成功!2设计原理2.1 MCS51单片机引脚说明MCS 单片机都采用40引脚的双列直插封装方式。
图2-9为引脚排列图, 40条引脚说明如下:1、主电源引脚Vss 和Vcc ① Vss 接地② Vcc 正常操作时为+5伏电源 2、外接晶振引脚XTAL1和XTAL2 ① XTAL1内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。
当采用外部振荡器时,此引脚接地。
② XTAL2内部振荡电路反相放大器的输出端。
是外接晶体的另一端。
当采用外部振荡器时,此引脚接外部振荡源。
3、控制或与其它电源复用引脚ALE/PROG,PSEN 和RST/VPD ,P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST/VPD 9RXD P3.010TXD P3.111INT0 P3.212INT1 P3.313T0 P3.414T1 P3.515WR P3.616RD P3.717XTAL218XTAL119VSS 20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN 29ALE/PROG30EA/VPP 31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC 408031 8051 8751EA /Vpp① RST/VPD 当振荡器运行时,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc 掉电期间,此引脚可接 图2-9 8051引脚排列图 上备用电源,由VPD 向内部提供备用电源,以保持内部RAM 中的数据。
② ALE/PROG 正常操作时为ALE 功能(允许地址锁存)提供把地址的低字节锁存到外部锁存器,ALE 引脚以不变的频率(振荡器频率的61)周期性地发出正脉冲信号。
因此,它可用作对外输出的时钟,或用于定时目的。
但要注意,每当访问外部数据存储器时,将跳过一个ALE 脉冲,ALE 端可以驱动(吸收或输出电流)八个LSTTL 电路。
对于EPROM 型单片机,在EPROM 编程期间,此引脚接收编程脉冲(PROG 功能)③ PSEN 外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,PSEN 在每个机器周期内两次有效。
PSEN 同样可以驱动八LSTTL 输入。
④ EA /Vpp 、 EA /Vpp 为内部程序存储器和外部程序存储器选择端。
当EA /Vpp 为高电平时,访问内部程序存储器,当EA /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.2 LED 显示数码管LED 有共阴极和共阳极两种。
如图所示。
二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V 的电压。
一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a ~g ,另一个小数点为dp 发光二极管。
当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。
为了保护各段LED 不被损坏,需外加限流电阻。
LED 数码管结构原理图:图3 AT89C2051引脚配置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语言中是靠Interrupt n的关键字n自动设置的。
(2)单片机的中断是靠内部的寄存器管理的,这就是中断允许寄存器IE,中断优先权寄存器IP ,必须在CPU开中断即开全局中断开关EA,开各中断源的中断开关,CPU才能响应该中断源的中断请求,其中缺一不可。
(3)从程序表面看来,主程序和中断服务程序好象是没有关连的,只有掌握中断响应的过程,才能理解中断的发生和返回,看得懂中断程序,并能编写高质量中断程序。
表2.1 常用中断2.4 硬件原理图晶振(12MHz)定时1秒对于12MHz的晶振而言,其时钟周期T=1/f=1/12us,而89C51的一个机器周期包括12个时钟周期,所以一个机器周期为1us,对于T0而言,使之工作于16-bit,最大计时为65536*1=65536us,需要多次定时才能实现一秒定时。
3 程序流程图3.1总流程图3.23.3中断程序流程图4 汇编程序4.1主程序:ORG 0000H ;中断入口程序; LJMP STARTORG 0003HRETIORG 000BHRETIORG 0013HRETIORG 001BHRETICLEAR: RET; ; 初始化程序;START:ACALL CLEAR ; 主程序STAR1:MOV P3,#0FFHJNB P3.2,FUN2JNB P3.3,FUN3 ;关闭按纽JNB P3.4,FUN0JNB P3.5,FUN1JNB F0,STAR1 ;曾经有键按下F0置1 RET;FUN0:LCALL DL10MS ;消除抖动JB P3.4,STAR1WAITL0:JNB P3.4,WAITL0 ;等待键释放SETB F0FUN01:LCALL FUN00LCALL STAR1LJMP FUN01;FUN1:LCALL DL10MS ;消除抖动JB P3.5,STAR1WAITL1:JNB P3.5,WAITL1 ;等待键释放SETB F0FUN10:LCALL FUN11LCALL STAR1LJMP FUN10;FUN2:LCALL DL10MS ;消除抖动JB P3.2,STAR1WAITL2:JNB P3.2,WAITL2 ;等待键释放SETB F0FUN20:LCALL FUN22LCALL STAR1LJMP FUN20;FUN3:LCALL DL10MS ;消除抖动JB P3.3,STAR1WAITL3:JNB P3.3,WAITL3 ;等待键释放MOV P1,#0FFH ;关显示LJMP STAR1;FUN00:MOV A,#0FEH ;从P1.0到P1.7移动点亮FUN000:MOV P0,ALCALL DL05SJNB ACC.7,OUTRL AAJMP FUN000OUT: RET;FUN11:MOV A,#0FEH ;从P1.0到P1.7依次点亮FUN111:MOV P1,ALCALL DL05SJZ OUTRL AANL A,P1AJMP FUN111;FUN22:MOV A,#0FEH ;间隔点亮FUN222:MOV P1,ALCALL DL01SCPL ARL AMOV P1,ALCALL DL01SRET;FUN33: MOV A,#01H ;逐点熄灭FUN333: MOV P1,ALCALL DL01SJNZ OUTRL AAJMP FUN333DL01S:MOV R2,#0FFH ; 延时程序MOV R7,#02HLOOP1: DJNZ R2,LOOP1LOOP5:DJNZ R7,DL512RETDL10MS:MOV R3,#14HLOOP2: LCALL DL512DJNZ R3,LOOP2RETDL05S:MOV R4,#0AHLOOP3: LCALL DL10MSDJNZ R4,LOOP3RETDL30S:MOV R5,#03HLOOP4:LCALL DL05SDJNZ R5,LOOP4RETEND4.2一秒钟定时程序MOV B,#0AH ;允许中断MOV TMOD,#01H ;工作方式1 MOV TH0,#0B0HMOV TL0,#3CHSETB TR0 ;启动计数SETB EA ;开中断BU:JBC TF0,SHISJMP BUSHI:MOV TH0,#3CHMOV TL0,#0B0HRET小结经过努力,我们组终于完成这次数字彩灯的课程设计任务。