基于单片机的led点阵显示器设计内容摘要:
示方式极大的缩减了发光单元的信号线数量,因此在 LED 显示技术中被广泛使用。 以 88 点阵模块为例,说明一下其使用方法及控制过程。 图 中,红色水平线 Y0、 Y1„„Y7 叫做行线,接内部发光二极管的阳极,每 一行 8 个 LED 的阳极都接在本行的行线上。 相邻两行线间绝缘。 同样,蓝色竖直线 X0、 X1„„X7 叫做列线,接内部每列 8个 LED 的阴极,相邻两列线间绝缘。 在这种形式的 LED点阵模块中,若在某行线上施加高电平(用 “1” 表示),在某列线上施加低电平(用 “0” 表示)。 则行线和列线的交叉点处的 LED 就会有电流流过而发光。 比如, Y7 为 1, X0 为 0,则右下角的 LED 点亮。 再如 Y0为 1, X0到 X7 均为0,则最上面一行 8 个 LED 全点亮。 现描述一下用动态扫描显示的方式,显示字符 “B” 的过程。 其过程如图 5 图 用动 态扫描显示字符 “B” 的过程 第三节 LED 常见的控制方式 目前常见的是并行传输方式,通过 8位锁存器将 8位总线上的列数据进行锁存显示,各 8位锁存器的片选信号由译码器提供。 此种方式的优点是传输速度快,对微控制器( MCU)的通信速度要求较低。 但是这种方案最大的缺点是不便于随意扩展显示单元的数目。 每增加一个 1616 点阵的全角汉字显示单元,就需要在之前的电路上多增加两根地址线,这就要求在 PCB 布线的时候要留有充足的地址线冗余量。 再一个缺点是,每个单元的 PCB 随着安放位置的不同,布线结构也不相同,不利于厂家批量生产。 并行传输需要的芯片较多,因此市场上已经出现用 FPGA,CPLD 等高密度可编程逻辑器件( PLD)来取代传统锁存器 IC 的方案。 成本有所下降,但可扩展性仍旧较差。 因此,并行传输方式适用于显示单元数目确定的条屏。 随着广告屏显示内容的多媒体化,对控制器传输速度,运算能力的要求越来越高。 因此控制器的种类也在不断发展以适应要求,从最初的 8051 单片机,到 PIC 单片机,又到 FPGA,直到现在的 ARM 处理器。 不同功能档次的广告屏对应着不同的处理器。 一.以传统 8051 单片机为控制器的 LED 显示屏。 因受到单片机运算速度及通信速率的限制, LED 动态显示的刷新率不可能做得太高。 对显示效果和移动算法的处理也比较吃力,在实际显示效果上有比较明显的闪烁感。 除此之外,传统 8051 单片机的内部资源贫乏,仅 128 字节的数据存储器,几 K 字节的程序存储器,无 E2PROM,SPI。 这就需要对单片机扩展外设,无疑增加了硬件成本。 因此, 8051 控制的条屏只 6 能用于显示内容及其简单,不需要经常更改显示内容的场合。 二.以 PIC 单片机为控制器的 LED 显示屏。 因 PIC 单片机是 RISC 架构的工业专用单片机,处理指令的速度有所增加,抗干扰能力优秀,型号种类繁多。 作 为条屏的控制器,可以明显的改善显示效果,同时 PIC 单片机内部的资源较丰富,可节省外部电路设计难度,同时降低了硬件成本。 因此,以 PIC 单片机为控制器的条屏目前仍是单色条屏市场的主流。 三.以 FPGA(复杂可编程逻辑门阵列)为控制器的 LED 显示屏。 FPGA 以高速、并行著称。 是近年来新兴的可编程逻辑器件。 用他作为 LED 显示屏的控制器,能够高速的处理色阶 PWM信号、高速的完成动态扫描逻辑、高速的完成字符移动算法。 因此被运用于双基色、三基色的显示系统。 但是其成本较高,开发难度较大。 四.以 ARM( 32 位 RISC 架构高 性能微处理器)为控制器的 LED 显示屏。 ARM 有着极高的指令效率,极高的时钟频率。 因此其运算能力非常强大,内部资源也十分丰富,极大的简化了硬件设计的难度,缩短了开发周期。 在条屏的运用中,能用 ARM来实现花样繁多的显示方式,以及高色阶,多像素的全彩屏驱动。 ARM 与 FPGA 的组合更是功能强大,除了海量存储技术,无线更新技术外,还能实时地显示视频信号。 因此,以 ARM为控制器的显示屏常为视频全彩屏。 7 第三章 硬件电路设计 第一节 系统硬件概述 整个电路由单片机 89C51, 16 个 9015 三极管 4 个 16 16 的 LED。 该电路所设计的电子屏可 滚动 显示 多 个汉字。 AT89C51是一种带 4KB可编程可擦除 只读存储器 的低电压,高性能微处理器,俗称单 片机。 单片机的可擦除只读存储器可以反复擦除 100次。 该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS51 指令集和输出管脚相兼容。 由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89C51 是一种高效微控制器, AT89C2051 是它的一种精简版本。 AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 AT89C51 引脚即外观如图 所示。 图 AT89C51的管脚图 LED,50 年前人们已经了解半导体材料可产生光线的基本知识,第一个商用二极管产生于 1960 年。 LED 是英文 light emitting diode(发光二极管)的缩写,它的 8 基本结构是一块电致发光的半导体材料,置于一个有引线的架子上,然后四周用环氧7树脂密封,即固体封装,所以能起到保护内部芯线的作用,所以 LED 的抗震性能好该电路的显示采用逐行扫描方式。 工作时,由单片机取出第一行需要显示的 内容 经延时一段时间后再进行下一行点阵数据的显示。 需要注意 的是,每次只能选通一行数据,即要通过不断的逐行扫描来实现汉字或字符的显示。 第二节 1616LED 点阵的内部结构及工作原理 以 UCDOS 中文宋体字库为例,每一个字由 16 行 16列的点阵组成显示。 即国家标准汉字库中的每一个字均由 256点阵来表示。 我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。 事实上这个汉字屏不仅可以显示汉字,也可以显示在 256 像素范围内的任何图形。 这里我们以“祝”字说明,如图。 图 16*16LED汉字显示 用 8 位的 AT89C51 单片机控制,由于单片机的总线为 8位,一个字需要拆分为 2个部分。 一般把它拆分为上部和下部,上部由 8 16 点阵组成,下部也由 8 16 点阵组成。 在本例中单片机首先显示的是左上角的第一列的上半部分,即第 0 列的 — 口。 方向为 到 ,显示汉字“祝”时 , 点亮。 P1 口由上往下排列 , 9 为 灭, 灭 , 灭 , 亮 , 灭 , 亮 , 灭 , 灭。 即二进制 00010000,转换为 16 进制为 10h。 我们用 8421 法来计算“祝”字的左上半部分的点阵数据,使用纵向取模。 从上到下黑方块用“ 1”表示,白方块用“ 0”表示,则: 第 1 列 00010000 ( 8*0+4*0+2*0+1*1) ( 8*0+4*0+2*0+1*0) =10h 第 2 列 00010000 ( 8*0+4*0+2*0+1*1) ( 8*0+4*0+2*0+1*0) =10h 第 3 列 10010001 ( 8*1+4*0+2*0+1*1) ( 8*0+4*0+2*0+1*1) =91h) 第 4 列 01110011 ( 8*0+4*1+2*1+1*1) ( 8*0+4*0+2*1+1*1) =73h 第 5 列 00010101 ( 8*0+4*0+2*0+1*1) ( 8*0+4*1+2*0+1*1) =15h) 第 6 列 00011000 ( 8*0+4*0+2*0+1*1) ( 8*1+4*0+2*0+1*0) =18h 第 7 列 00000000 ( 8*0+4*0+2*0+1*0) ( 8*0+4*0+2*0+1*0) =00h 第 8 列 01111111 ( 8*0+4*1+2*1+1*1) ( 8*1+4*1+2*1+1*1) =7Fh 上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从 向 方向扫描,从上图可以看到,这一列 亮,即为 01000000, 16 进制则为 40h。 然后单片机转向上半部第二列,为 点亮,依照这个方法,继续进行下面的扫描,一共扫描 32 个 8 位,可以得出汉字“祝”的扫描代码为: 10h 10h 91h 73h 15h 18h 00h 7Fh 41h 41。基于单片机的led点阵显示器设计
相关推荐
级管,是一种固态的半导体器件,它能够 直接把电能转化为光能。 LED的核心部分由 P 型半导体和 N 型半导体 而组成的 晶片。 在 P 型半导体, 空穴 的数量比自由电子的数量大得多,多数载流子 为 空穴 ,少数载流子是自由电子 ;在 N 型半导体,自由电子的数量比孔学的数量大的多,载体中大多数为自由电子,少数载流子为空 穴。 半导体的它们之间的连接将是一个 “ PN 结 ”。
*/ void time0(void) interrupt 1 { count++。 if(count==CYCLE) { count=0。 databuf=plus。 plus=0。 if(tt!=2) tt++。 } TH0=0xDC。 TL0=0x00。 //定时 10mS } /* 转速数据处理显示子程序 */ void datamake(unsigned int th) {
图 PWM 调速系统电路图 图的左上方是一个谐振电路,产生一个特定的时钟频率,使 AT89C51 单片机能正常的工作。 晶振片 (CRYSTAL)用于产生时钟频率,该晶振能产生 12MHz 的频率。 两个旁路电容,有频率微调作用,主要是让电路更容易起振,两个电容的值要求一样,至少要非常接近,否则容易造成谐振的不平衡,容易造成停振或者干脆不起振 [6]。 本设计中采用的是 30pf的电容。
{ SBUF=0xff。 while(!TI)。 delayms(10)。 TI=0。 } for(i=0xff。 i0。 i) { SBUF=0x00。 delayms(10)。 while(!TI)。 TI=0。 } ES=1。 flag=0。 } void juchi() //锯齿波 { for(i=0xff。 i0。 i) { SBUF=i。 while(!TI)。 TI=0。 }
度信号,以“一线总线”串行送给 CPU,同时可传送 CRC校验码,具有极强的抗干扰纠错能力。 9) 负压特性。 电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。 9 1) 冷冻库、粮仓、储罐 、电信机房、电力机房、电缆线槽等测温和控制领域。 2) 轴瓦、缸体、纺织、空调等狭小空间工业设备测温和控制。 3) 汽车空调、冰箱、冷柜以及中低纬度干燥箱等。 4) 供热、制冷管道热量计量
输给液晶现实器进行显示。 液晶显示模块 该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块做比较的话,不仅硬件电路结构简洁,且该模块的价格也略低于相同点阵的图形液晶模块, LCD1602 的程序流程图如图 所示。 L C D 初始化开始清显示 R A M 区置显示行初值 , 显示指针指向第一行待显示数据送入缓冲区预设数据显示在指定区域中调整指针 , 指向 L C D