基于单片机的广告灯控制系统设计论文15273.docx
-
资源ID:68843880
资源大小:705.91KB
全文页数:30页
- 资源格式: DOCX
下载积分:20金币
快捷下载

会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
基于单片机的广告灯控制系统设计论文15273.docx
摘要广告灯是是用于广广告匾,楼楼宇装饰饰和户外外装潢的的灯具,近近来随着着国家经经济的迅迅速发展展,人民民物质文文化生活活水平的的不断提提高,对对于装饰饰的美化化美观的的要求也也越来越越高,广广告灯的的越来越越多的出出现在个个人们的的视野中中。近年年来随着着科技的的飞速发发展,单单片机的的应用正正在不断断地走向向深入,同同时自动动控制系系统日新新月益更更新。本文结合合国内外外霓虹灯灯控制技技术的发发展状况况设计了了一种采采用美国国ATMMEL公公司生产产的AVVR系列列单片机机中的AATmeega88作控制制芯片的的霓虹灯灯控制器器通过过ATmmegaa8芯片片控制驱驱动电路路,在由由驱动电电路驱动动继电器器,而继继电器则则作为霓霓虹灯的的功率控控制。其其中,与与别的产产品在设设计上不不同的是是,功率率控制板板块采用用的是继继电器阵阵列,而而不是通通常用的的可控硅硅,将继继电器阵阵列模块块化,电电路的设设计条理理也很清清晰,既既方便检检查线路路故障,有有方便技技术维修修。该板板块的设设计也是是本次设设计的重重点和难难点。另另外,文文中还介介绍了电电源电路路、PCC机与单单片机的的通讯接接口电路路的设计计原理。软软件设计计部分采采用的是是ICCC-AVVR环境境下的CC语言进进行编写写程序,使使用AVVR SStuddio进进行仿真真说明。本本文设计计的霓虹虹灯单片片机控制制器,电电路简单单,抗干干扰性强强,图案案变化方方式多,可可适用于于各种霓霓虹灯牌牌面,可可根据用用户的要要求,通通过修改改软件,控控制多种种多样花花样的变变化,是是一代新新型的霓霓虹灯控控制器。关键字:霓虹灯;控制器;继电器;ATmega8 目录一系统方方案论证证与比较较方案一:使用CDD40660与KD556033作为主主控制器器这是一例例变色广广告灯自自动控制制电路,它它采用了了两种控控制方式式:光控控方式,白白天自动动关闭,夜夜晚自动动开启;时间间控制方方式,夜夜晚自动动开启后后,通过过定时控控制使其其在预定定的时间间自动关关闭,以以节约电电能。在在广告灯灯开启后后,通过过控制电电路使两两种彩色色的广告告灯光交交替循环环显示,增增强广告告效果。电电路在灯灯光显示示的同时时还伴有有广告语语言,介介绍广告告要说明明的内容容,是一一种功能能较完善善的广告告灯控制制器。变变色广告告灯控制制器的电电路组成成如图66-455 所示示。电路工作作原理分分析变色广告告灯控制制器电路路由光控控电路、时时间控制制电路、语语言电路路、彩灯灯循环控控制电路路和电源源电路组组成。光光控电路路是本电电路的主主控电路路,它通通过为其其余控制制电路接接通工作作电源的的方式控控制着整整个工作作电路的的开启时时间。光光控电路路主要由由光敏电电阻RGG 和由由VTll 、VT22 组成成的直接接桐合式式晶体管管放大电电路组成成。白天天, RRG 受受光的照照射阻值值变小, VTl 的基极得到较大的偏置电压而导通,VT2 则因VTl的导通而截止。IC21C4因无工作电源而停止工作。夜晚来临临时,光光照减弱弱, RRG 阻阻值升高高, VVTl 截止, VT22 因VTll 的截截止而导导通, 12VV电源经经VT22 向IC22ICC4 提提供工作作电源,使使其进入入工作状状态。时时间控制制电路的的作用是是:当夜晚晚来临后后使电路路投入工工作,夜夜深人静静时停止止工作,以以避免不不必要的的电源消消耗。时时间控制制电路由由一只114 级级二进制制计数/分频电电路CDD40660 组组成。该该电路通通过外接接R4 、C7 组成一一个RCC 振荡荡器,其其振荡周周期T= 2. 2RR4C7 = LLIs 。经内内部144 级分分频(分频系系数为1163884) 后,控控制时间间约为55 小时时( 11. 11 X 163384 =一八八0222s , 一八八0222/366005小时时)。当VTT2 导导通后,电电源通过过C6 、R3 形成的的复位脉脉冲使CCD40060 复位,随随后电路路工作,产产生脉冲冲并分频频。在接接通电源源之初,由由于ICC2 的的脚输输出低电电平, VT33 导通通,为IIC3 及IC44提供工工作电源源。5 小时后后定时结结束,脚输出出高电平平, VVT3 截止,切切断了IIC3 与IC44的工作作电源,广广告灯与与语言电电路因失失去控制制电源而而停止工工作。方案二:NE5555与与CD445411作为主主控制器器广告灯控控制器由由NE5555组组成的光光控及抗抗干扰电电路、CCD45541定定时电路路、继电电器控制制、电源源电路等等部分组组成。电电原理图图如图11所示。NE5555时基基电路接接成施密密特触发发器,对对光敏电电阻RCC接收到到的信号号进行整整形和功功率放大大以后,驱驱动后续续电路。当当白天有有光照时时,其第第脚输出出低电平平,夜晚晚无光照照时输出出高电平平。CD445411是一块块具有振振荡计数数、定时时功能的的IC,在在电路中中作为定定时控制制,各脚脚功能如如表1所示。CCD45541工工作时,第第脚接振振荡电阻阻,第脚接振振荡电容容,第脚接保保护电阻阻,第脚为输输出脚,第第脚可选选择第脚的输输出状态态,第脚接低低电平为为单定时时模式,接接高电平平为循环环定时模模式,第第12、一一三脚可可设定时时间或设设定输出出频率,CD4541分频或计数次数如表2所示。220V交流市电经R9、C6阻容降压D2D5整流,C5滤波,WD2稳压,给继电器提供24V的吸合电压。此电压通过R8和WD1稳压,C4滤波,给IC1和IC2提供9.1V的工作电压。白天,光光敏电阻阻RG阻值值很小,通通过RGG和WR11分压,NNE5555第脚电压压大于22/3VVcc,使使第脚输出出为低电电平,三三极管BBG1截截止。CCD45541第脚复位位端为高高电平,其其内部计计数器清清零复位位,第脚输出出端为低低电平,BG2截止,继电器常开触电断开,其受控电路不工作。当夜幕降临的时候,RG阻值逐渐增大,NE555第脚电位逐渐降低,当小于13Vcc时,NE555第脚输出端信号翻转为高电平。BG1基极电位升高而导通,给CD4541第脚提供一个由高电平变为低电平的脉冲负跳变沿,使内部电路开始计数,输出端第脚输出高电平。BG2导通,继电器K1得电,常开触点闭合,受控电路工作。WR2和C3为CD4541外接振荡电阻和振荡电容,当经t=32768×2.3RC24871秒时间后,输出端第脚变为低电平。VT2截止,K1的常开触点失电而断开,受控电路停止工作。通过微调WR2,可改变定时时长。此电路对于外界干扰引起的白天瞬间变暗不会导致继电器误动作,因为NE555第、脚所接R1和C1组成延时抗干扰电路,当RG阻值瞬间增大时,由于电容C1两端电压不能突变,从而保持第脚电位基本不变,第脚输出仍为低电平。但当RG阻值长时间较大时,C1充电完成后,NE555第脚电压降低,第脚输出高电平,从而导致继电器动作。方案三:采用LLED点点阵与AATmeega88作为主主驱动器器数控扫描描器有以以下主要要特点:(1)分体联联控结构构:解决决了大型型工程既既要求扫扫描器分分体就近近安装又又要求扫扫描器整整体调控控的矛盾盾。(2)强抗抗干扰设设计:通通过系统统软件的的抗干扰扰处理,避避免了乱乱闪及抖抖动的现现象,使使版面极极为干净净。(3)自动动同步:当遇强强干扰造造成扫描描器不能能同步工工作时,系系统软件件将在11分钟内内自动修修复。(4)调试试开关:对于大大型工程程的调试试,这个个功能极极为有用用。(5)接插插件结构构:整个个线路全全部采用用接插件件绘声结结构,拆拆卸简单单,维修修方便。图3 ATmmegaa8与点点阵显示示广告控控制系统统综上所述述,我们们选择方方案三。二元器件件简介1.主控控芯片AATmeega88简介(1)产产品特性性高性能能、低功功耗的88 位AVRR® 微处处理器先进的的RISSC 结结构一三00 条指指令 大多数数指令执执行时间间为单个个时钟周周期32个个8 位通通用工作作寄存器器全静态态工作工作于于16 MHzz 时性性能高达达16 MIPPS只需两两个时钟钟周期的的硬件乘乘法器非易失失性程序序和数据据存储器器8K 字节的的系统内内可编程程Flaash擦写寿寿命: 10,0000 次具有独独立锁定定位的可可选Booot 代码区区通过片片上Booot 程序实实现系统统内编程程真正的的同时读读写操作作5122 字节节的EEEPROOM擦写寿寿命: 1000,0000 次次1K字字节的片片内SRRAM可以对对锁定位位进行编编程以实实现用户户程序的的加密(2)外外设特点点两个具具有独立立预分频频器8 位定时时器/ 计数器器, 其中中之一有有比较功功能一个具具有预分分频器、比比较功能能和捕捉捉功能的的16 位定时时器/ 计数器器具有独独立振荡荡器的实实时计数数器RTTC三通道道PWMMTQFFP与MLFF 封装装的8 路ADCC路100 位ADCC8 路路10 位ADCC面向字字节的两两线接口口两个可可编程的的串行UUSARRT可工作作于主机机/ 从机机模式的的SPII 串行行接口具有独独立片内内振荡器器的可编编程看门门狗定时时器片内模模拟比较较器(3)特特殊的处处理器特特点上电复复位以及及可编程程的掉电电检测片内经经过标定定的RCC 振荡荡器片内/ 片外外中断源源 5种种睡眠模模式: 空闲模模式、AADC 噪声抑抑制模式式、省电电模式、掉掉电模式式及Sttanddby 模式。(4)II/O 和封装装 233个可编编程的II/O 口 288引脚PDDIP 封装,332 引引脚TQQFP 封装,332 引引脚MLLF 封封装(5)工工作电压压 2.7 - 5.5V (ATTmegga8LL) 4.5 - 5.5V (ATTmegga8)(6)速速度等级级 0 - 88 MHHz (ATmmegaa8L) 0 - 116 MMHz (ATTmegga8)4 MMhz 时功耗耗, 33V, 25°C工作模模式: 3.66 mAA空闲模模式: 1.00 mAA掉电模模式: 0.55 AA具有88KB 系统内内可编程程Flaash 的8 位位微控制制器ATmeega88引脚图图ATmeega88内部结结构简图图(7)引引脚说明明VCC 数字电电路的电电源。GND 地。端口B(PB77.PPB0)XTAAL1/XTAAL2/TOSSC1/TOSSC2端口B 为8 位双双向I/O 口口,具有有可编程程的内部部上拉电电阻。其其输出缓缓冲器具具有对称称的驱动动特性,可可以输出出和吸收收大电流流。作为为输入使使用时,若若内部上上拉电阻阻使能,端端口被外外部电路路拉低时时将输出出电流。在在复位过过程中,即即使系统统时钟还还未起振振,端口口B 处于于高阻状状态。通通过时钟钟选择熔熔丝位的的设置,PB6 可作为反向振荡放大器或时钟操作电路的输入端。通过时钟选择熔丝位的设置PB7 可作为反向振荡放大器的输出端。若将片内标定RC 振荡器作为芯片时钟源,且ASSR 寄存器的AS2 位设置,PB7.6 作为异步T/C2 的TOSC2.1 输入端。端口B 的其他功能见P55“ 端口B 的第二功能” 及P 22“ 系统时钟及时钟选项” 。端口C(PC55.PPC0) 端口口C 为7 位双双向I/O 口口,具有有可编程程的内部部上拉电电阻。其其输出缓缓冲器具具有对称称的驱动动特性,可可以输出出和吸收收大电流流。作为为输入使使用时,若若内部上上拉电阻阻使能,端端口被外外部电路路拉低时时将输出出电流。在在复位过过程中,即即使系统统时钟还还未起振振,端口口C 处于于高阻状状态。PC6/RESSET 若RSTTDISSBL 熔丝位位编程,PC6 作为I/O 引脚使用。注意PC6 的电气特性与端口C 的其他引脚不同若RSTDISBL 熔丝位未编程,PC6 作为复位输入引脚。持续时间超过最小门限时间的低电平将引起系统复位。门限时间见P 35Table 一五。持续时间小于门限时间的脉冲不能保证可靠复位。端口C 的其他他功能见见后。端口D(PD77.PPD0) 端口口D 为8 位双双向I/O 口口,具有有可编程程的内部部上拉电电阻。其其输出缓缓冲器具具有对称称的驱动动特性,可可以输出出和吸收收大电流流。作为为输入使使用时,若若内部上上拉电阻阻使能,则则端口被被外部电电路拉低低时将输输出电流流。在复复位过程程中,即即使系统统时钟还还未起振振,端口口D 处于于高阻状状态。端端口D 的其他他功能见见后。RESEET 复复位输入入引脚。持持续时间间超过最最小门限限时间的的低电平平将引起起系统复复位。门门限时间间见P335Taablee 一五五。持续续时间小小于门限限时间的的脉冲不不能保证证可靠复复位。AVCCC AVVCC 是A/DD转换器器、端口口C (3.0) 及ADCC (77.66) 的的电源。不不使用AADC时时,该引引脚应直直接与VVCC 连接。使使用ADDC 时时应通过过一个低低通滤波波器与VVCC 连接。注注意,端端口C (5.4) 为数数字电源源,VCCC。AREFF A/D 的的模拟基基准输入入引脚。ADC77.66(TQFFP 与与MLFF 封装装) TQQFP与与MLFF封装的的ADCC7.6作为为A/DD转换器器的模拟拟输入。为为模拟电电源且作作为100位ADCC通道。(8)AATmeega88状态寄寄存器状态寄存存器包含含了最近近执行的的算术指指令的结结果信息息。这些些信息可可以用来来改变程程序流程程以实现现条件操操作。如如指令集集所述,所所有ALLU 运运算都将将影响状状态寄存存器的内内容。这这样,在在许多情情况下就就不需要要专门的的比较指指令了,从从而使系系统运行行更快速速,代码码效率更更高。在在进入中中断服务务程序时时状态寄寄存器不不会自动动保存,中中断返回回时也不不会自动动恢复。这这些工作作需要软软件来处处理。AVR 中断寄寄存器SSREGG 定义义如下: Biit 77 I: 全局中中断使能能I 置位位时使能能全局中中断。单单独的中中断使能能由其他他独立的的控制寄寄存器控控制。如如果I 清零,则则不论单单独中断断标志置置位与否否,都不不会产生生中断。任任意一个个中断发发生后II 清零零,而执执行REETI指指令后II 恢复复置位以以使能中中断。II 也可可以通过过SEII 和CLII 指令令来置位位和清零零。 Biit 66 T: 位拷贝贝存储位位拷贝指指令BLLD 和和BSTT 利用用T 作为为目的或或源地址址。BSST 把把寄存器器的某一一位拷贝贝到T,而BLLD 把把T 拷贝贝到寄存存器的某某一位。 Biit 55 H: 半进位位标志半半进位标标志H 表示算算术操作作发生了了半进位位。此标标志对于于BCDD 运算算非常有有用。详详见指令令集的说说明。 Biit 44 S: 符号位位, SS = N VS 为负负数标志志N 与2 的补补码溢出出标志VV 的异异或。详详见指令令集的说说明。 Biit 33 V:22 的补补码溢出出标志支支持2 的补码码运算。详详见指令令集的说说明。 Biit 22 N: 负数标标志表明明算术或或逻辑操操作结果果为负。详详见指令令集的说说明。 Biit 11 Z: 零标志志表明算算术或逻逻辑操作作结果为为零。详详见指令令集的说说明。 Biit 00 C: 进位标标志(9)通通用寄存存器文件寄存存器文件件针对AAVR 增强型型RISSC 指指令集做做了优化化。为了了获得需需要的性性能和灵灵活性,寄寄存器文文件支持持以下的的输入/ 输出出方案: 输出出一个88 位操操作数,输输入一个个8 位结结果。 输出出两个88 位位位操作数数,输入入一个88 位结结果。 输出出两个88 位位位操作数数,输入入一个116 位位结果。 输出出一个116 位位位操作作数,输输入一个个16 位结果果。CPU 32 个通用用工作寄寄存器的的结构(10)堆栈指指针堆栈指针针主要用用来保存存临时数数据、局局部变量量和中断断/ 子程程序的返返回地址址。堆栈栈指针总总是指向向堆栈的的顶部。要要注意AAVR 的堆栈栈是向下下生长的的,即新新数据推推入堆栈栈时,堆堆栈指针针的数值值将减小小。堆栈栈指针指指向数据据SRAAM 堆堆栈区。在在此聚集集了子程程序堆栈栈和中断断堆栈。调调用子序序和使能能中断之之前必须须定义堆堆栈空间间,且堆堆栈指针针必须指指向高于于0x660 的的地址空空间。使使用PUUSH指指令将数数据推入入堆栈时时指针减减一;而而子程序序或中断断返回地地址推入入堆栈时时指针将将减二。使使用POOP 指指令将数数据弹出出堆栈时时,堆栈栈指针加加一;而而用REET 或或RETTI 指指令从子子程序或或中断返返回时堆堆栈指针针加二。AVR的堆栈指针由I/O空间中的两个8位寄存器实现。实际使用的位数与具体器件有关。请注意某些AVR 器件的数据区太小,用SPL 就足够了。此时将不给出SPH 寄存器。指令执行行时序这这一节介介绍指令令执行过过程中的的访问时时序。AAVR CPUU 由系系统时钟钟clkkCPUU 驱动动。此时时钟直接接来自选选定的时时钟源。芯芯片内部部不对此此时钟进进行分频频。Fiigurre 55 说明明了由HHarvvardd 结构构决定的的并行取取指和指指令执行行,以及及可以进进行快速速访问的的寄存器器文件的的概念。这这是一个个基本的的流水线线概念,性性能高达达1 MMIPSS/MHzz,具有有优良的的性价比比、功能能/ 时钟钟比、功功能/ 功耗比比。(11)复位与与中断处理AVVR有不不同的中中断源。每每个中断断和复位位在程序序空间都都有独立立的中断断向量。所所有的中中断事件件都有自自己的使使能位。当当使能位位置位,且且状态寄寄存器的的全局中中断使能能位I 也置位位时,中中断可以以发生。根根据程序序计数器器PC 的不同同,在引引导锁定定位BLLB022 或BLBB12 被编程程的情况况下,中中断可能能被自动动禁止。这这个特性性提高了了软件的的安全性性。详见见P 2209“ 存储器器编程” 的描述述。程序序存储区区的最低低地址缺缺省为复复位向量量和中断断向量。完完整的向向量列表表请参见见P 443“ 中断”列表也也决定了了不同中中断的优优先级。向向量所在在的地址址越低,优优先级越越高。RRESEET 具具有最高高的优先先级,第第二个为为INTT0 外部部中断请请求0。通过过置位通通用中断断控制寄寄存器(GICCR) 的IVSSEL,中中断向量量可以移移至引导导Flaash的的起始处处,参见见P 443“中中断” 。编程程熔丝位位BOOOTRSST也可可以将复复位向量量移至引引导Fllashh 的起起始处。具具体参见见P 1196“ 支持引引导装入入程序在写的的同时可可以读(RWWW, RReadd-Whhilee-Wrritee) 的自自我编程程能力” 。任一一中断发发生时全全局中断断使能位位I 被清清零,从从而禁止止了所有有其他的的中断。用用户软件件可以在在中断程程序里置置位I 来实现现中断嵌嵌套。此此时所有有的中断断都可以以中断当当前的中中断服务务程序。执执行REETI 指令后后I 自动动置位。从从根本上上说有两两种类型型的中断断。第一一种由事事件触发发并置位位中断标标志。对对于这些些中断,程程序计数数器跳转转到实际际的中断断向量以以执行中中断处理理程序,同同时硬件件将清除除相应的的中断标标志。中中断标志志也可以以通过对对其写”11” 的的方式来来清除。当当中断发发生后,如如果相应应的中断断使能位位为"00",则则中断标标志位置置位,并并一直保保持到中中断执行行,或者者被软件件清除。类类似的,如如果全局局中断标标志被清清零,则则所有已已发生的的中断都都不会被被执行,直直到I 置位。然然后挂起起的各个个中断按按中断优优先级依依次执行行。2.点阵阵显示器器(1)88*8点点阵原理理图(2)88*8点点阵实物物图图为8××8点阵阵LEDD外观及及引脚图图,其等等效电路路如图(2)所示,只要其对应的X、Y轴顺向偏压,即可使LED发亮。例如如果想使左上角LED点亮,则Y0=1,X0=0即可。应用时限流电阻可以放在X轴或Y轴(3)88*8点点阵扫描描方式LED一一般采用用扫描式式显示,实实际运用用分为三三种方式式(1)点点扫描(2)行行列扫描16×664=110244Hz,周周期小于于1mss即可。若若使用第第二和第第三种方方式,则则频率必必须大于于16××8=1128HHz,周周期小于于7.88ms即即可符合合视觉暂暂留要求求。此外外一次驱驱动一列列或一行行(8颗LEDD)时需需外加驱驱动电路路提高电电流,否否则LEED亮度度会不足足。(4)88*8点点阵应用用举例点阵内部部结构及及外形如如下,88X8点点阵共由由64个发发光二极极管组成成,且每每个发光光二极管管是放置置在行线线和列线线的交叉叉点上,当当对应的的某一行行置1电平,某某一列置置0电平,则则相应的的二极管管就亮;如要将将第一个个点点亮亮,则99脚接高高电平一一三脚接接低电平平,则第第一个点点就亮了了;如果果要将第第一行点点亮,则则第9脚要接接高电平平,而(一一三、33、4、10、6、11、一一五、116)这这些引脚脚接低电电平,那那么第一一行就会会点亮;如要将将第一列列点亮,则则第一三三脚接低低电平,而而(9、14、8、12、1、7、2、5)接高高电平,那那么第一一列就会会点亮。一般我们使用点阵显示汉字是用的16*16的点阵宋体字库,所谓16*16,是每一个汉字在纵、横各16点的区域内显示的。也就是说得用四个8*8点阵组合成一个16*16的点阵。如下图所示,要显示“你”则相应的点就要点亮,由于我们的点阵在列线上是低电平有效,而在行线上是高电平有效,所以要显示“你”字的话,它的位代码信息要取反,即所有列(一三16脚)送(1111011101111111,0xF7,0x7F),而第一行(9脚)送1信号,然后第一行送0。再送第二行要显示的数据(一三16脚)送(1111011101111111,0xF7,0x7F),而第二行(14脚)送1信号。依此类推,只要每行数据显示时间间隔够短,利用人眼的视觉暂停作用,这样送16次数据扫描完16行后就会看到一个“你”字;第二种送数据的方法是字模信号送到行线上再扫描列线也是同样的道理。同样以“你”字来说明,16行(9、14、8、12、1、7、2、5)上送(0000000000000000,0x00,0x00)而第一列(一三脚)送、“0”。同理扫描第二列。当行线上送了16次数据而列线扫描了16次后一个“你”字也就显示出来了。因此,形形成的列列代码为为000H,00HH,3EHH,41HH,41HH,3EHH,00HH,00HH;只要要把这些些代码分分别依次次送到相相应的列列线上面面,即可可实现“00”的数数字显示示。3.驱动动芯片44-166译码器器CC445144(1)推推荐工作作条件电源电压压范围.3V一五V输入电压压范围.0VVVDDD(2)工工作温度度范围M 类.551255E 类.4085(3)极极限值电源电压压.0.55V一八V输入电压压0.55VVVDD+0.55V输入电流流 .±110mAA储存稳定定.65一五0CD45514引引脚图三广告控控制器系系统设计计1.系统统硬件设设计(1)主主控制器器ATmmegaa8本控制系系统采用用存储容容量大的的AVRR单片机机ATmmegaa8作为为主控制制器,直直接可以以将容量量较大的的系统字字库存储储在ATTmegga8内内部存储储器内,节节约了资资源,也也使整个个系统变变得简洁洁。(2)点点阵扫描描驱动电电路扫描电路路采用CCD45514,即即4-116的译译码器来来进行行行列扫描描,用单单片机控控制其选选通端IINH来来控制送送行列字字库码,控控制扫描描,并在在输出端端加一个个非门,来来提高其其驱动能能力,以以满足点点阵发光光的需求求。2.系统统软件设设计(1)程程序流程程图(2)程程序清单单*/#inccludde <<32xx16lled.h>voidd maain (vooid)whiile (1)ledd_innitiial();prinnt_ccharr("TTESTT LEED 00123345667899 abbc");priint_chaar(""我爱金金鱼");dellay(50);/ledd_innitiial();priint_chaar(""自己编编的练习习程序,");priint_chaar(""显示效效果与延延时参数数和电脑脑速度有有很大关关系."");priint_chaar(""我的电电脑太差差运行起起来老是是一顿一一顿的_"");priint_chaar(""相信换换台好点点的电脑脑会有更更好的效效果! 刘伟");delaay(550);/*#inccludde <<iomm16vv.h>>#inccludde <<maccross.h>>#inccludde <<fonnt.hh>#deffinee LEED_DDATAA_LOOW PPORTTA#deffinee LEED_DDDR_LOWW DDDRAA#deffinee LEED_DDATAA_HIIGH PPORTTB#deffinee LEED_DDDR_HIGGH DDDRBB#deffinee LEED_SSCANN_DAATAPORRTC#deffinee LEED_SSCANN_DDDRDDRRC#deffinee uccharr unnsiggnedd chhar #deffinee uiint unssignned intt/缓存存大小,对对应LEED屏的的大小#deffinee buuffeer_llongg64/定义义字模数数据数组组的大小小,即所所存字的的个数#deffinee gbb16_tabbel_lonng 662/* 利用定定时器11 定时时扫描LLED屏屏 */* 定时参参数对显显示效果果影响很很大 */#deffinee T11_TIIME_H 00xe77#deffinee T11_TIIME_L 00x500enumm diirecctioon rigght,lefftddir_f;uchaar ddispplayy_buuffeerbbufffer_lonng;/* LLED屏屏初始化化*/voidd leed_iinittiall ( voiid ) uchhar i;/ddispplayy_buuffeer iinittiall forr (ii=0; i<<buffferr_loong; i+)dissplaay_bbuffferi = 00x000;/ porrt iinittiallLEDD_DDDR_LLOW = 00xfff;LEDD_DDDR_HHIGHH = 0xfff;LEDD_SCCAN_DDRR = 0x11f;/移移动方向向 riightt orr leeftdirr_f = lleftt;/tt0 iinittiall CLII(); /dissablle aall intterrruptts TCCCR1BB = 0xee0; /sstopp TCNNT1HH = T1_TIMME_HH; /seetupp TCNNT1LL = T1_TIMME_LL; OCRR1AHH = 0x001; OCRR1ALL = 0xFF4; OCRR1BHH = 0x001; OCRR1BLL = 0xFF4; ICRR1H = 0x001; ICRR1L = 00xF44; TCCCR1AA = 0x000; TCCCR1BB = 0x002; /sstarrt TTimeer MCUUCR = 00x000; GICCR = 00x000; TIMMSK = 00x044; /tiimerr innterrruppt ssourrcess SEII(); /re-enaablee innterrruppts/* 字符符串输出出子程序序*/voidd prrintt_chhar (chhar *p)uchhar tabb_n,j,ii=0;intt k;uchhar d0,d1;whiile(pii >> 0)if (pi >=1128)/如如果是汉汉字/* 查找找移位输输出 */forr(j=0; j<=gb116_ttabeel_llongg; jj+)if (ggb_116jj.iindeex00 = ppi) &&& (gb_16j.inddex1 = pii+1) iff ( dirr_f = lefft )/如如果字向向左移动动就顺序序读字模模forr (kk=0; k<<32; k+)d0 = ggb_116jj.mmaskkk;k+;d1 = ggb_116jj.mmaskkk;movve_tto_bbufffer (d00,d11);dellay(1); ellse /如如果字向向右移动动就逆序序读字模模forr (kk=311; kk>=00; kk-)d1 = ggb_116jj.mmaskkk;k-;d0 = ggb_116jj.mmaskkk;movve_tto_bbufffer (d00,d11);dellay(1);breeak;/找找到了就就退出循循环/* 字库库没有的的字,则则输出空空白0xx00 */if (j>>gb116_ttabeel_llongg)/ forr (kk=0; k<<16; k+)d0 = 00x000;d1 = 00x000;movve_tto_bbufffer (d00,d11);dellay(1);i+=2; elsse /如果果是字符符j = pi-32;if (diir_ff = leeft) forr (kk=0; k<<16; k+) d0 = AASC_MSKK(jj*166)+kk;k+;d1 = AASC_MSKK(jj*166)+kk;movve_tto_bbufffer (d00,d11);dellay(1);elsse forr (kk=一五五; kk>=00; kk-) d1 = AASC_MSKK(jj*166)+kk;k-;d0 = AASC_MSKK(jj*166)+kk;movve_tto_bbufffer (d00,d11);dellay(1); i+;/* 数据移移入缓存存*/ dd0 移移入数据据高八位位/ dd1 移移入数据据低八位位voidd moove_to_buffferr (uuchaar dd0,uuchaar dd1)uchhar i;if ( ddir_f = rrighht)/判断断移动方方向forr (ii=0; i<<(buuffeer_llongg-2); ii+)dissplaay_bbuffferbuffferr_loong-1-ii = diispl