011109030102基于单片机的广告灯控制系统设计论文.docx
- 文档编号:7973669
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:24
- 大小:481.12KB
011109030102基于单片机的广告灯控制系统设计论文.docx
《011109030102基于单片机的广告灯控制系统设计论文.docx》由会员分享,可在线阅读,更多相关《011109030102基于单片机的广告灯控制系统设计论文.docx(24页珍藏版)》请在冰豆网上搜索。
011109030102基于单片机的广告灯控制系统设计论文
摘要
广告灯是用于广告匾,楼宇装饰和户外装潢的灯具,近来随着国家经济的迅速发展,人民物质文化生活水平的不断提高,对于装饰的美化美观的要求也越来越高,广告灯的越来越多的出现在个人们的视野中。
近年来随着科技的飞速发展,单片机的应用正在不断地走向深入,同时自动控制系统日新月益更新。
本文结合国内外霓虹灯控制技术的发展状况设计了一种采用美国ATMEL公司生产的AVR系列单片机中的ATmega8作控制芯片的霓虹灯控制器.通过ATmega8芯片控制驱动电路,在由驱动电路驱动继电器,而继电器则作为霓虹灯的功率控制。
其中,与别的产品在设计上不同的是,功率控制板块采用的是继电器阵列,而不是通常用的可控硅,将继电器阵列模块化,电路的设计条理也很清晰,既方便检查线路故障,有方便技术维修。
该板块的设计也是本次设计的重点和难点。
另外,文中还介绍了电源电路、PC机与单片机的通讯接口电路的设计原理。
软件设计部分采用的是ICC-AVR环境下的C语言进行编写程序,使用AVRStudio进行仿真说明。
本文设计的霓虹灯单片机控制器,电路简单,抗干扰性强,图案变化方式多,可适用于各种霓虹灯牌面,可根据用户的要求,通过修改软件,控制多种多样花样的变化,是一代新型的霓虹灯控制器。
关键字:
霓虹灯;控制器;继电器;ATmega8
目录
摘要1
目录2
一系统方案论证与比较4
方案一:
使用CD4060与KD5603作为主控制器4
方案二:
NE555与CD4541作为主控制器5
方案三:
采用LED点阵与ATmega8作为主驱动器6
二元器件简介8
1.主控芯片ATmega8简介8
(1)产品特性8
(2)外设特点9
(3)特殊的处理器特点9
(4)I/O和封装9
(5)工作电压9
(6)速度等级10
(7)引脚说明11
(8)ATmega8状态寄存器12
(9)通用寄存器13
(10)堆栈指针14
(11)复位与中断15
2.点阵显示器16
(1)8*8点阵原理图16
(2)8*8点阵实物图17
(3)8*8点阵扫描方式17
(4)8*8点阵应用举例17
3.驱动芯片4-16译码器CC451419
(1)推荐工作条件19
(2)工作温度范围19
(3)极限值19
三广告控制器系统设计21
1.系统硬件设计21
(1)主控制器ATmega821
(2)点阵扫描驱动电路21
2.系统软件设计22
(1)程序流程图22
(2)程序清单23
一系统方案论证与比较
方案一:
使用CD4060与KD5603作为主控制器
这是一例变色广告灯自动控制电路,它采用了两种控制方式:
①光控方式,白天自动关闭,夜晚自动开启;②时间控制方式,夜晚自动开启后,通过定时控制使其在预定的时间自动关闭,以节约电能。
在广告灯开启后,通过控制电路使两种彩色的广告灯光交替循环显示,增强广告效果。
电路在灯光显示的同时还伴有广告语言,介绍广告要说明的内容,是一种功能较完善的广告灯控制器。
变色广告灯控制器的电路组成如图6-45所示。
电路工作原理分析
变色广告灯控制器电路由光控电路、时间控制电路、语言电路、彩灯循环控制电路和电源电路组成。
光控电路是本电路的主控电路,它通过为其余控制电路接通工作电源的方式控制着整个工作电路的开启时间。
光控电路主要由光敏电阻RG和由VTl、VT2组成的直接桐合式晶体管放大电路组成。
白天,RG受光的照射阻值变小,VTl的基极得到较大的偏置电压而导通,VT2则因VTl的导通而截止。
IC2~1C4因无工作电源而停止工作。
夜晚来临时,光照减弱,RG阻值升高,VTl截止,VT2因VTl的截止而导通,12V电源经VT2向IC2~IC4提供工作电源,使其进入工作状态。
时间控制电路的作用是:
当夜晚来临后使电路投入工作,夜深人静时停止工作,以避免不必要的电源消耗。
时间控制电路由一只14级二进制计数/分频电路CD4060组成。
该电路通过外接R4、C7组成一个RC振荡器,其振荡周期T=2.2R4C7=LIs。
经内部14级分频(分频系数为16384)后,控制时间约为5小时(1.1X16384=18022s,18022/3600≈5小时)。
当VT2导通后,电源通过C6、R3形成的复位脉冲使CD4060复位,随后电路工作,产生脉冲并分频。
在接通电源之初,由于IC2的③脚输出低电平,VT3导通,为IC3及IC4提供工作电源。
5小时后定时结束,③脚输出高电平,VT3截止,切断了IC3与IC4的工作电源,广告灯与语言电路因失去控制电源而停止工作。
方案二:
NE555与CD4541作为主控制器
广告灯控制器由NE555组成的光控及抗干扰电路、CD4541定时电路、继电器控制、电源电路等部分组成。
电原理图如图1所示。
NE555时基电路接成施密特触发器,对光敏电阻RC接收到的信号进行整形和功率放大以后,驱动后续电路。
当白天有光照时,其第③脚输出低电平,夜晚无光照时输出高电平。
CD4541是一块具有振荡计数、定时功能的IC,在电路中作为定时控制,各脚功能如表1所示。
CD4541工作时,第①脚接振荡电阻,第②脚接振荡电容,第③脚接保护电阻,第⑧脚为输出脚,第⑨脚可选择第⑧脚的输出状态,第⑩脚接低电平为单定时模式,接高电平为循环定时模式,第12、13脚可设定时间或设定输出频率,CD4541分频或计数次数如表2所示。
220V交流市电经R9、C6阻容降压.D2~D5整流,C5滤波,WD2稳压,给继电器提供24V的吸合电压。
此电压通过R8和WD1稳压,C4滤波,给IC1和IC2提供9.1V的工作电压。
白天,光敏电阻RG阻值很小,通过RG和WR1分压,NE555第⑥脚电压大于2/3Vcc,使第③脚输出为低电平,三极管BG1截止。
CD4541第⑥脚复位端为高电平,其内部计数器清零复位,第⑧脚输出端为低电平,BG2截止,继电器常开触电断开,其受控电路不工作。
当夜幕降临的时候,RG阻值逐渐增大,NE555第②脚电位逐渐降低,当小于1/3Vcc时,NE555第③脚输出端信号翻转为高电平。
BG1基极电位升高而导通,给CD4541第⑥脚提供一个由高电平变为低电平的脉冲负跳变沿,使内部电路开始计数,输出端第⑧脚输出高电平。
BG2导通,继电器K1得电,常开触点闭合,受控电路工作。
WR2和C3为CD4541外接振荡电阻和振荡电容,当经t=32768×2.3RC≈24871秒时间后,输出端第⑧脚变为低电平。
VT2截止,K1的常开触点失电而断开,受控电路停止工作。
通过微调WR2,可改变定时时长。
此电路对于外界干扰引起的白天瞬间变暗不会导致继电器误动作,因为NE555第②、⑥脚所接R1和C1组成延时抗干扰电路,当RG阻值瞬间增大时,由于电容C1两端电压不能突变,从而保持第⑥脚电位基本不变,第③脚输出仍为低电平。
但当RG阻值长时间较大时,C1充电完成后,NE555第⑥脚电压降低,第③脚输出高电平,从而导致继电器动作。
方案三:
采用LED点阵与ATmega8作为主驱动器
数控广告灯扫描器有以下主要特点:
(1)分体联控结构:
解决了大型广告灯工程既要求扫描器分体就近安装又要求扫描器整体调控的矛盾。
(2)强抗干扰设计:
通过系统软件的抗干扰处理,避免了广告灯乱闪及抖动的现象,使版面极为干净。
(3)自动同步:
当遇强干扰造成扫描器不能同步工作时,系统软件将在1分钟内自动修复。
(4)调试开关:
对于大型广告灯工程的调试,这个功能极为有用。
(5)接插件结构:
整个线路全部采用接插件绘声结构,拆卸简单,维修方便。
图3ATmega8与点阵显示广告控制系统
综上所述,我们选择方案三。
二元器件简介
1.主控芯片ATmega8简介
(1)产品特性
●高性能、低功耗的8位AVR®微处理器
●先进的RISC结构
●130条指令–大多数指令执行时间为单个时钟周期
●32个8位通用工作寄存器
●全静态工作
●工作于16MHz时性能高达16MIPS
●只需两个时钟周期的硬件乘法器
●非易失性程序和数据存储器
●8K字节的系统内可编程Flash
●擦写寿命:
10,000次
●具有独立锁定位的可选Boot代码区
●通过片上Boot程序实现系统内编程
●真正的同时读写操作
●512字节的EEPROM
●擦写寿命:
100,000次
●1K字节的片内SRAM
●可以对锁定位进行编程以实现用户程序的加密
(2)外设特点
●两个具有独立预分频器8位定时器/计数器,其中之一有比较功能
●一个具有预分频器、比较功能和捕捉功能的16位定时器/计数器
●具有独立振荡器的实时计数器RTC
●三通道PWM
●TQFP与MLF封装的8路ADC
●路10位ADC
●8路10位ADC
●面向字节的两线接口
●两个可编程的串行USART
●可工作于主机/从机模式的SPI串行接口
●具有独立片内振荡器的可编程看门狗定时器
●片内模拟比较器
(3)特殊的处理器特点
●上电复位以及可编程的掉电检测
●片内经过标定的RC振荡器
●片内/片外中断源
●5种睡眠模式:
空闲模式、ADC噪声抑制模式、省电模式、掉电模式及Standby模式。
(4)I/O和封装
●23个可编程的I/O口
●28引脚PDIP封装,32引脚TQFP封装,32引脚MLF封装
(5)工作电压
●2.7-5.5V(ATmega8L)
●4.5-5.5V(ATmega8)
(6)速度等级
●0-8MHz(ATmega8L)
●0-16MHz(ATmega8)
●4Mhz时功耗,3V,25°C
●工作模式:
3.6mA
●空闲模式:
1.0mA
●掉电模式:
0.5μA
●具有8KB系统内可编程Flash的
●8位微控制器
ATmega8引脚图
ATmega8内部结构简图
(7)引脚说明
VCC数字电路的电源。
GND地。
端口B(PB7..PB0)XTAL1/XTAL2/TOSC1/TOSC2
端口B为8位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口B处于高阻状态。
通过时钟选择熔丝位的设置,PB6可作为反向振荡放大器或时钟操作电路的输入端。
通过时钟选择熔丝位的设置PB7可作为反向振荡放大器的输出端。
若将片内标定RC振荡器作为芯片时钟源,且ASSR寄存器的AS2位设置,PB7..6作为异步T/C2的TOSC2..1输入端。
端口B的其他功能见P55“端口B的第二功能”及P22“系统时钟及时钟选项”。
端口C(PC5..PC0)端口C为7位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口C处于高阻状态。
PC6/RESET若RSTDISBL熔丝位编程,PC6作为I/O引脚使用。
注意PC6的电气特性与端口C的其他引脚不同若RSTDISBL熔丝位未编程,PC6作为复位输入引脚。
持续时间超过最小门限时间的低电平将引起系统复位。
门限时间见P35Table15。
持续时间小于门限时间的脉冲不能保证可靠复位。
端口C的其他功能见后。
端口D(PD7..PD0)端口D为8位双向I/O口,具有可编程的内部上拉电阻。
其输出缓冲器具有对称的驱动特性,可以输出和吸收大电流。
作为输入使用时,若内部上拉电阻使能,则端口被外部电路拉低时将输出电流。
在复位过程中,即使系统时钟还未起振,端口D处于高阻状态。
端口D的其他功能见后。
RESET复位输入引脚。
持续时间超过最小门限时间的低电平将引起系统复位。
门限时间见P35Table15。
持续时间小于门限时间的脉冲不能保证可靠复位。
AVCCAVCC是A/D转换器、端口C(3..0)及ADC(7..6)的电源。
不使用ADC时,该引脚应直接与VCC连接。
使用ADC时应通过一个低通滤波器与VCC连接。
注意,端口C(5..4)为数字电源,VCC。
AREFA/D的模拟基准输入引脚。
ADC7..6(TQFP与MLF封装)TQFP与MLF封装的ADC7..6作为A/D转换器的模拟输入。
为模拟电源且作为10位ADC通
道。
(8)ATmega8状态寄存器
状态寄存器包含了最近执行的算术指令的结果信息。
这些信息可以用来改变程序流程以实现条件操作。
如指令集所述,所有ALU运算都将影响状态寄存器的内容。
这样,在许多情况下就不需要专门的比较指令了,从而使系统运行更快速,代码效率更高。
在进入中断服务程序时状态寄存器不会自动保存,中断返回时也不会自动恢复。
这些工作需要软件来处理。
AVR中断寄存器SREG定义如下:
•Bit7–I:
全局中断使能I置位时使能全局中断。
单独的中断使能由其他独立的控制寄存器控制。
如果I清零,则不论单独中断标志置位与否,都不会产生中断。
任意一个中断发生后I清零,而执行RETI指令后I恢复置位以使能中断。
I也可以通过SEI和CLI指令来置位和清零。
•Bit6–T:
位拷贝存储位拷贝指令BLD和BST利用T作为目的或源地址。
BST把寄存器的某一位拷贝到T,而BLD把T拷贝到寄存器的某一位。
•Bit5–H:
半进位标志半进位标志H表示算术操作发生了半进位。
此标志对于BCD运算非常有用。
详见指令集的说明。
•Bit4–S:
符号位,S=N⊕VS为负数标志N与2的补码溢出标志V的异或。
详见指令集的说明。
•Bit3–V:
2的补码溢出标志支持2的补码运算。
详见指令集的说明。
•Bit2–N:
负数标志表明算术或逻辑操作结果为负。
详见指令集的说明。
•Bit1–Z:
零标志表明算术或逻辑操作结果为零。
详见指令集的说明。
•Bit0–C:
进位标志
(9)通用寄存器
文件寄存器文件针对AVR增强型RISC指令集做了优化。
为了获得需要的性能和灵活性,寄存器文件支持以下的输入/输出方案:
•输出一个8位操作数,输入一个8位结果。
•输出两个8位位操作数,输入一个8位结果。
•输出两个8位位操作数,输入一个16位结果。
•输出一个16位位操作数,输入一个16位结果。
CPU32个通用工作寄存器的结构
(10)堆栈指针
堆栈指针主要用来保存临时数据、局部变量和中断/子程序的返回地址。
堆栈指针总是指向堆栈的顶部。
要注意AVR的堆栈是向下生长的,即新数据推入堆栈时,堆栈指针的数值将减小。
堆栈指针指向数据SRAM堆栈区。
在此聚集了子程序堆栈和中断堆栈。
调用子序和使能中断之前必须定义堆栈空间,且堆栈指针必须指向高于0x60的地址空间。
使用PUSH指令将数据推入堆栈时指针减一;而子程序或中断返回地址推入堆栈时指针将减二。
使用POP指令将数据弹出堆栈时,堆栈指针加一;而用RET或RETI指令从子程序或中断返回时堆栈指针加二。
AVR的堆栈指针由I/O空间中的两个8位寄存器实现。
实际使用的位数与具体器件有关。
请注意某些AVR器件的数据区太小,用SPL就足够了。
此时将不给出SPH寄存器。
指令执行时序这一节介绍指令执行过程中的访问时序。
AVRCPU由系统时钟clkCPU驱动。
此时钟直接来自选定的时钟源。
芯片内部不对此时钟进行分频。
Figure5说明了由Harvard结构决定的并行取指和指令执行,以及可以进行快速访问的寄存器文件的概念。
这是一个基本的流水线概念,性能高达1MIPS/MHz,具有优良的性价比、功能/时钟比、功能/功耗比。
(11)复位与中断
处理AVR有不同的中断源。
每个中断和复位在程序空间都有独立的中断向量。
所有的中断事件都有自己的使能位。
当使能位置位,且状态寄存器的全局中断使能位I也置位时,中断可以发生。
根据程序计数器PC的不同,在引导锁定位BLB02或BLB12被编程的情况下,中断可能被自动禁止。
这个特性提高了软件的安全性。
详见P209“存储器编程”的描述。
程序存储区的最低地址缺省为复位向量和中断向量。
完整的向量列表请参见P43“中断”列表也决定了不同中断的优先级。
向量所在的地址越低,优先级越高。
RESET具有最高的优先级,第二个为INT0–外部中断请求0。
通过置位通用中断控制寄存器(GICR)的IVSEL,中断向量可以移至引导Flash的起始处,参见P43“中断”。
编程熔丝位BOOTRST也可以将复位向量移至引导Flash的起始处。
具体参见P196“支持引导装入程序-在写的同时可以读(RWW,Read-While-Write)的自我编程能力”。
任一中断发生时全局中断使能位I被清零,从而禁止了所有其他的中断。
用户软件可以在中断程序里置位I来实现中断嵌套。
此时所有的中断都可以中断当前的中断服务程序。
执行RETI指令后I自动置位。
从根本上说有两种类型的中断。
第一种由事件触发并置位中断标志。
对于这些中断,程序计数器跳转到实际的中断向量以执行中断处理程序,同时硬件将清除相应的中断标志。
中断标志也可以通过对其写”1”的方式来清除。
当中断发生后,如果相应的中断使能位为"0",则中断标志位置位,并一直保持到中断执行,或者被软件清除。
类似的,如果全局中断标志被清零,则所有已发生的中断都不会被执行,直到I置位。
然后挂起的各个中断按中断优先级依次执行。
2.点阵显示器
(1)8*8点阵原理图
(2)8*8点阵实物图
图为8×8点阵LED外观及引脚图,其等效电路如图
(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。
例如如果想使左上角LED点亮,则Y0=1,X0=0即可。
应用时限流电阻可以放在X轴或Y轴
(3)8*8点阵扫描方式
LED一般采用扫描式显示,实际运用分为三种方式
(1)点扫描
(2)行列扫描
16×64=1024Hz,周期小于1ms即可。
若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。
此外一次驱动一列或一行(8颗LED)时需外加驱动电路提高电流,否则LED亮度会不足。
(4)8*8点阵应用举例
点阵内部结构及外形如下,8X8点阵共由64个发光二极管组成,且每个发光二极管是放置在行线和列线的交叉点上,当对应的某一行置1电平,某一列置0电平,则相应的二极管就亮;如要将第一个点点亮,则9脚接高电平13脚接低电平,则第一个点就亮了;如果要将第一行点亮,则第9脚要接高电平,而(13、3、4、10、6、11、15、16)这些引脚接低电平,那么第一行就会点亮;如要将第一列点亮,则第13脚接低电平,而(9、14、8、12、1、7、2、5)接高电平,那么第一列就会点亮。
一般我们使用点阵显示汉字是用的16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。
也就是说得用四个8*8点阵组合成一个16*16的点阵。
如下图所示,要显示“你”则相应的点就要点亮,由于我们的点阵在列线上是低电平有效,而在行线上是高电平有效,所以要显示“你”字的话,它的位代码信息要取反,即所有列(13~16脚)送(111101*********1,0xF7,0x7F),而第一行(9脚)送1信号,然后第一行送0。
再送第二行要显示的数据(13~16脚)送(111101*********1,0xF7,0x7F),而第二行(14脚)送1信号。
依此类推,只要每行数据显示时间间隔够短,利用人眼的视觉暂停作用,这样送16次数据扫描完16行后就会看到一个“你”字;第二种送数据的方法是字模信号送到行线上再扫描列线也是同样的道理。
同样以“你”字来说明,16行(9、14、8、12、1、7、2、5)上送(0000000000000000,0x00,0x00)而第一列(13脚)送、“0”。
同理扫描第二列。
当行线上送了16次数据而列线扫描了16次后一个“你”字也就显示出来了。
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
因此,形成的列代码为 00H,00H,3EH,41H,41H,3EH,00H,00H;只要把这些代码分别依次送到相应的列线上面,即可实现“0”的数字显示。
3.驱动芯片4-16译码器CC4514
(1)推荐工作条件
电源电压范围……………….3V~15V
输入电压范围………………..0V~VDD
(2)工作温度范围
M类……………….-55℃~125℃
E类……………….-40℃~85℃
(3)极限值
电源电压…...-0.5V~18V
输入电压……-0.5V~VDD+0.5V
输入电流………….±10mA
储存稳定…………….-65℃~150℃
CD4514引脚图
三广告控制器系统设计
1.系统硬件设计
(1)主控制器ATmega8
本控制系统采用存储容量大的AVR单片机ATmega8作为主控制器,直接可以将容量较大的系统字库存储在ATmega8内部存储器内,节约了资源,也使整个系统变得简洁。
(2)点阵扫描驱动电路
扫描电路采用CD4514,即4-16的译码器来进行行列扫描,用单片机控制其选通端INH来控制送行列字库码,控制扫描,并在输出端加一个非门,来提高其驱动能力,以满足点阵发光的需求。
2.系统软件设计
(1)程序流程图
(2)程序清单
**********************************************/
#include<32x16led.h>
voidmain(void)
{
while
(1)
{
led_initial();
print_char("TESTLED0123456789abc");
print_char("我爱金鱼");
delay(50);
//led_initial();
print_char("自己编的练习程序,");
print_char("显示效果与延时参数和电脑速度有很大关系.");
print_char("我的电脑太差运行起来老是一顿一顿的^_^");
print_char("相信换台好点的电脑会有更好的效果!
刘伟");
delay(50);
}
}
/**********************************************
#include
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 011109030102 基于 单片机 广告 控制系统 设计 论文