您好,欢迎来到爱go旅游网。
搜索
您的当前位置:首页彩灯设计

彩灯设计

来源:爱go旅游网


第一节 引言

1.1LED彩灯概述 1.2系统主要功能

第二节 新型LED彩灯硬件设计

2.1系统的硬件构成及功能 2.2ATC51单片机及其引脚说明 第三节 系统的软件设计

3.1软件设计 第四节 结语 参考文献 附录

第1节 引言

随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯。LED彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰街道和城市建筑物已经成为一种时尚。但目前市场上各式各样的LED彩灯控制器大多数用全硬件电路实现,电路结构复杂,功能单一,这样一旦制作成品只能按照固定的模式闪亮,不能根据不同场合,不同时间段的需要来调节灯亮时间、模式、闪烁频率等动态参数。这种彩灯控制器结构往往有芯片过多、电路复杂、功率损耗大等缺点。此外从功能效果上看,亮灯模式少而且样式单调,缺乏用户可操作性,影响亮灯效果。因此有必要对现有的彩灯控制器进行改进。 1.1 8路LED彩灯概述

该LED彩灯控制器是一种基于ATC51单片机的彩灯控制器,实现对LED彩等的控制。本方案一ATC51单片机作为主控核心,与按键、显示、驱动等模块组成核心主控制模块。该电路可根据用户的需要编写若干种亮灯模式,利用其内部定时器T0实现一个基本单位时间为一秒的定时中断,根据各种亮灯时间的不同需要,在不同时刻输出灯亮或灯灭的控制信号,然后驱动各种颜色的灯亮或灭,该新型LED彩灯与普通LED彩灯相比,具有体积小、价格低、低能耗等优点。 1.2 系统主要功能

该电路的功能是:开机后第一秒钟L1,L3亮,其他灯熄灭;第二秒钟L2,L4亮,其他灯熄灭;第三秒钟L5,L7亮,其他灯熄灭;第四秒钟L6,L8亮,其他灯熄灭;第五秒钟L1,L3,L5,L7亮,其他灯熄灭;第六秒钟L2,L4,L6,L8亮,其他灯熄灭;第七秒钟全亮;第八秒钟全灭。然后再从头开始,L1,L3亮,接着L2,L4亮……周而复始。LED灯亮的间隔时间是一秒钟,间隔时间由ATC51的内部定时器0控制,定时器0按方式1工作。

第2节 LED彩灯硬件设计

本节主要讲LED彩灯系统的硬件构成及功能,包括ATC51单片机及其引脚说明、电源、LED显示、开关。

2.1 系统的硬件构成及功能

LED彩灯系统包括2大部分,即LED彩灯控制器部分(C51主控模块)和LED彩灯管(管内LED板模块)。前者是主控模块,利用C51的P1口输出控制信号;后者是受控模块,有LED彩灯构成。 2.1.1

主控模块电路组成及其说明 单片机C51最小系统电路

ATC51单片机的最小系统电路包含以下几部分:

1单片机供电电路:ATC51需要具有可靠的5V供电,在电路图中的VCC和GND○为供电网络标示符。

2振荡电路:ATC51需要一个稳定的振荡电路才能够正常工作,在该电路用了○

12Mhz的晶振作为ATC51的时钟源。

3复位电路:复位电路是单片机正常运行的一个必要部分,复位电路应该保证单片○

机在上电的瞬间进行一次有效的复位,在单片机正常工作时将RST引脚置低。此外通过一个按键进行手动复位,在单片机运行不正常时使用。

ATC51单片机的最小系统电路如图1所示: 2.1.2

受控模块电路组成及其说明

LED显示电路

LED显示电路由单片机C51的P1口与LED灯相连接,低电平使灯发光,LED显示电路如图2所示: 2.2 ATC51单片机功能说明 引脚说明: ①电源引脚 Vcc(40脚):典型值+5V。 Vss(20脚):接低电平。 ②外部晶振

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出

XTAL1、XTAL2分别与晶体两端相连接。当采用外部时钟信号时,XTAL2接振荡

信号,XTAL1接地。

XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 ③输入输出口引脚:

P0口:I/O双向口。作输入口时,应先软件置“ 1”。 P1口:I/O双向口。作输入口时,应先软件置“ 1”。 P2口:I/O双向口。作输入口时,应先软件置“ 1”。 P3口:I/O双向口。作输入口时,应先软件置“ 1”。

P0口:是一个8位漏极开路输出型双向I/O端口。作为输出端口时,每位能以吸收电流的方式驱动8 个TTL输入,对端口写1时,又可作高阻抗输入端用。

在访问外部程序或数据存储器时,它是时分多路转换的地址(低8位)/数据总线, 在访问期间将激活内部的上拉电阻。

P1口:P1口是一个带有内部上拉电阻的8位双向I/O端口。P1口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。 P2口:P2口是一个带有内部上拉电阻的8位双向I/O端口。P2口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P2口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。

在访问外部程序存储器时和16位外部地址的外部数据存储器(如执行 MOVX @DPTR)时,P2口送出高8位地址。在访问8位地址的外部数据存储器(如执行 MOVX @RI)时, P2口引脚上的内容(就是专用寄存器(SFR)区中的P2寄存器的内容),在整个访问期不会改变。

P3口:P3口是一个带有内部上拉电阻的8位双向I/O端口。P3口的输出缓冲器可驱动(吸收或输出电流方式)4个TTL输入。对端口写1时,通过内部的上拉电阻把端口拉到高电位,这时可作输入口。P3口作输入口使用时,因为内部有上拉电阻,那些被外部信号拉低的引脚会输出一个电流(Iil)。

P3口也可作为ATC51的一些特殊功能口,如下表所示: 口管脚 备选功能 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(外部数据存储器读选通)

P3口同时为闪烁编程和编程校验接收一些控制信号。

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),不管是否有内部程序存储器,/EA将内部锁定为RESET;当/EA端保持高电平时,此内部程序存储器在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

第3节 系统的软件设计 3.1

程序设计思路

定时/计数器T0工作方式1,当时钟频率为12MHz时,由公式:

t=(216—X)*晶振周期*12

可知,当X=0时,t=0.065536(秒),这是一次定时的最长时间。

若实现定时一秒钟,可设置定时器的定时时间为0.05秒,此时X=15536=3CB0H,即(TH0)=3CH,(TL0)=B0H。设置一个记数标志m,m的初值为0。每次定时器溢出并产生中断后,m值加1,当m的值为20时,表明总共的计时已达到1秒,可以进行相关处理。然后再将m的值设为0,重新开始新一次计时。 3.2

汇编程序

ORG 0000H

LJMP MAIN

ORG 0013H;定时器0的入口

LJMP INT_T0 ORG 4100H MAIN: MOV DPTR,#CASE MOV R7,#0 MOV A,#0 MOV TOMD,#01H MOV TH0,#03CH MOV TL0,#0B0H

SETB EA SETB ET0 SETB TR0 LOOP: JMP @A+DPTR CASE: AJMP TYPE0

AJMP AJMP AJMP AJMP AJMP AJMP AJMP TYPE0: MOV AJMP TYPE1: MOV AJMP TYPE2: MOV AJMP TYPE3: MOV AJMP TYPE4: MOV AJMP TYPE5: MOV AJMP TYPE6: MOV TYPE1 TYPE2 TYPE3 TYPE4 TYPE5 TYPE6 TYPE7

P1,#01011111B LOOP P1,#10101111B LOOP P1,#11110101B LOOP P1,#11111010B LOOP P1,#01010101B LOOP P1,#10101010B LOOP P1,#00000000B

AJMP LOOP TYPE7: MOV P1,#11111111B AJMP LOOP INT_T0: INC R7

CJNE R7,#20, RETURN MOV INC INC CJNE MOV RETURN:

MOV MOV RETI END

R7,#0 A A

A,#16,RETURN A,0 TH0,#03CH TL0,#0B0H

3.3程序流程图

L1A=0? 主程序 置中断允许位 设置定时器初值 设置循环标志 0 L22 L L66 L1 L3 L5 L78 L2 L4 L6 L81012 14 与L3与L4与L7与L8全亮全灭 亮亮亮亮 亮亮

NO 中断子程序 R7加1 R7=20? Yes R7 0 A加2 Yes A=16? No A 0 重新设置T0初值,准备下次定时 中断返回

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- igat.cn 版权所有 赣ICP备2024042791号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务