16×16点阵-LED电子广告牌-课程设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

郑州航空工业管理学院微机原理课程设计2012级电气工程及其自动化专业971班级题目LED电子广告牌姓名**学号120******指导教师***职称教授二О一二年十二月十八日1摘要LED显示屏分为图文显示屏和视频显示屏,均由LED矩阵块组成。LED显示屏可以显示变化的数字、文字、图形图像;不仅可以用于室内环境还可以用于室外环境,具有投影仪、电视墙、液晶显示屏无法比拟的优点。LED之所以受到广泛重视而得到迅速发展,是与它本身所具有的优点分不开的。这些优点概括起来是:亮度高、工作电压低、功耗小、小型化、寿命长、耐冲击和性能稳定。LED的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。现代LED的发展很快,很多研究领域非常已经深刻,所以想利用自己学的微机知识简单的研究一下用微机驱动的LED显示汉字,以达到学以致用和实践相结合的目的,同时巩固加深自己的微机知识。用点阵方式构成图形或文字,是非常灵活的,可以根据需要任意组合和变化,只要设计好合适的数据文件,就可以得到满意的显示效果。因而采用点阵式图文显示屏显示经常需要变化的信息,是非常有效的。点阵大小可以有16×16、24×24、32×32、48×48等不同规格,也有单色、双色、和多色几种,最常用的是单色图文屏。单色屏多使用红色或橘红色或橙色LED点阵单元。双色图文屏和多色图文屏,在LED点阵的每一个“点”上布置有两个或多个不同颜色的LED发光器件。换句话说,对应于每种颜色都有自己的显示矩阵。显示的时候,各颜色的显示点阵是分开控制的。事先设计好各种颜色的显示数据,显示时分别送到各自的显示点阵,即可实现预期效果。每一种颜色的控制方法和单色的完全相同,因此掌握了单色图文显示屏的原理,双色屏和多色屏就不难理解了。关键词:LED,微机,点阵,驱动,矩阵21.LED电子广告牌基本原理1.1、系统构成该设计大体可以分为CPU控制、LED驱动、LED点阵显示三部分组成,控制电路部分包括一个8086和构成其最小系统的外围电路。其信号传输规则如图1.1,在整个电路当中微机负责控制整个电路以及相应的程序的运行、与PC机的串行通讯、以及给屏体电路,以及它的行和列的各个驱动电路发送命令。图1.1.11.2、LED动态显示原理LED点阵显示系统中各模块的显示方式:有静态和动态显示两种。静态显示原理简单、控制方便,但硬件接线复杂,在实际应用中一般采用动态显示方式,动态显示采用扫描的方式工作,由峰值较大的窄脉冲电压驱动,从上到下逐次不断地对显示屏的各行进行选通,同时又向各列送出表示图形或文字信息的列数据信号,反复循环以上操作,就可显示各种图形或文字信息。点阵式LED汉字广告屏绝大部分是采用动态扫描显示方式,这种显示方式巧妙地利用了人眼的视觉暂留特性。将连续的几帧画面高速的循环显示,只要帧速率高于24帧/秒,人眼看起来就是一个完整的,相对静止的画面。最典型的例子就是电影放映机。在电子领域中,因为这种动态扫描显示方式极大的缩减了发光单元的信号线数量,因此在LED显示技术中被广泛使用。以8×8点阵模块为例,说明一下其使用方法及控制过程。图2.1中,红色水平8284等外围电路8086CPU74LS138驱动电路16×16LED显示3线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”的过程。图1.2.12.设计方案该设计采用8086微机做主控制芯片,使用8284芯片及其外围器件为8086提供晶振、复位以及READY信号,是CPU可以正常工作,使用74HC573作为地址锁存,为8255A提供I/O口选通地址,使用8255A进行I/O口的扩展,其三个口全做输出,并使其分别接在4个74LS138译码器上,作用为138译码器提供LED显示用的行数据,列选通,以及各译码器片选信号,138译码器主要用来为LED点阵提供行显示数据,列数据选通,LED点阵采用4块8×8点阵行并联拼接而构成的16×16点阵,点阵采用共阴极,高电平点亮方式。设计目的为显示汉字“我爱郑航”,并使其从右至左滚屏显示。43.硬件电路设计3.1、8284A模块8284A是用于8086系统的时钟发生器、驱动芯片,它为8086及其外设提供所需要的时钟信号。8284A由3部分构成。外接5MHZ晶振,接入X1、X2,10UF电解电容接复位端,8284A内部产生自己振荡,在CLK端为8086提供时钟脉冲。上电RESET端为8086RET端送入低电平使其复位,来自内存或外围设备等待的请求信号送入RDY1端,经8284同步后送入8086的READY输入端。如图:图3.1.13.2、8255A模块8255A是8086系列配套微处理机并行接口芯片,它可以为CPU与外设之间提供并行I/O的通道。8255A有3个8位的并行I/O口,它可以通过设置多种工作方式,通常不需要附加外部电路,在中小型系统有着广泛的应用。8086通过锁存器74HC573为8255A提供地址及方式选择,573两5低位输出分别接8255A的A0、A1端口,其八位并行输入口接8086的AD0~AD7,PA0~PA7分别接四块8×LED点阵的行选择端,PB0~PB3接74LS138译码器U1的A、B、C以及片选段,PB4~PB7接74LS138译码器U2的A、B、C以及片选段,PC0~PC3接74LS138译码器U3的A、B、C以及片选段,PC4~PC7接74LS138译码器U4的A、B、C以及片选段。如图:图3.2.13.3、74LS138译码器模块74LS138译码器为3输入8输出译码器,该电路使用它为LED点阵提供列扫描。四块138译码器分别接8255A的PB、PC用来获得译码以及片选数据,U1的输出接16×16点阵的左上8×8点阵的列,U2的输出接16×16点阵的右上8×8点阵的列,U1的输出接16×16点阵的左下8×8点阵的列,U1的输出接16×16点阵的右下8×8点阵的列。6如图:图3.3.13.4、LED点阵模块该点阵使用20mA草帽红灯,采用共阴极接法,正极串接470Ω电阻限流。4块相同的点阵正极同时并接在8255A的PA口,进行行扫描,负极分别接在四块不同的138译码器用来获得列扫描数据。如图:图3.4.174.软件程序设计4.1、程序流程图开始初始化8255AA、B、C方式0输出初始化数据段,堆栈段初始化8255地址、初始化字模区域、初始化138译码器列扫描数据调用送字模指令送字模‘我’调用滚屏指令调用送字模指令送字模‘爱’调用滚屏指令调用送字模指令送字模‘郑’调用滚屏指令调用送字模指令送字模‘航’调用滚屏指令给PA口送行数据选中译码器U1,送列数据DI+1,SI+1N自加一,AL=NAL=AL×4SI=SI+AL调用送字模指令循环7次?选中译码器U3,送列数据DI+1,SI+1循环8次?给PA口送行数据给PA口送行数据选中译码器U2,送列数据DI+1,SI+1给PA口送行数据选中译码器U2,送列数据DI+1,SI+1循环8次?返回返回84.2、软件设计该程序主要针对8255A进行一系列的选地址,送数据操作,从而达到进行行列扫描的目的,A0,A1的四种方式地址分别是00FFH,01FFH,02FFH,03FFH。点阵扫描时以左上、左下、右上,右下的方式依次选中点阵块,即依次选中U1,U3,U2,U4译码器,选中每个译码器之前先要送一次行数据,然后再进行该数据下的列扫描,该行扫描结束,行数据指针加1,列指针加1,给下个点阵块送行数据,然后选中该点阵块的译码器,剩下两块同上。字模滚屏显示:如要实现滚屏,需要每次循环时将字模数据指针加4,目的是将下一行的数据移至上一行显示,然后调用字模处理子程序,接着使用长一点的延时,就可以看到字符在移动。4.3、源程序DATASEGMENTADR0DB00FFH//定义8255地址ADR1DB01FFHADR2DB02FFHADR3DB03FFHNDB0WELADB08H,80H,09H,90H,0AH,0A0H,0BH,0B0H,DB0CH,0C0H,0DH,0D0H,0EH,0E0H0FH,0F0H//定义列扫描WORD1db20h,00h,24h,08h,24h,48h,24h,84hdb0FEh,7Fh,23h,02h,22h,21h,20h,10hdb0FFh,09h,20h,06h,22h,1Ah,0ACh,61hdb20h,80h,30h,0E0h,20h,00h,00h,00h‘我’WORD2db40h,00h,0B0h,00h,92h,40h,96h,30hdb9Ah,8Ch,92h,83h,0F2h,46h,9Eh,2Ah9db92h,12h,91h,2Ah,99h,26h,95h,42hdb91h,0C0h,50h,40h,30h,00h,00h,00h‘爱’WORD3db80h,00h,89h,40h,8Ah,20h,8Ch,18hdb0F8h,07h,8Ch,08h,8Ah,30h,0C9h,00hdb80h,00h,0FEh,0FFh,02h,08h,42h,10hdb0B2h,20h,0Eh,11h,00h,0Eh,00h,00h‘郑’WORD4db80h,80h,80h,40h,0FCh,3Fh,96h,02hdb0A5h,44h,84h,80h,0FCh,7Fh,08h,80hdb08h,40h,0C9h,3Fh,4Ah,00h,4Eh,00hdb0E8h,3Fh,4Ch,40h,08h,70h,00h,00h‘航’DATAENDSSTACKSEGMENTPARASTACKDW100DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAXDATAMOVDS,AXMOVAL,80H//初始化8255AMOVDX,ADR3OUTDX,ALNEXT:LEASI,WORD1//送字模‘我’,每次送去4个数据,32/4=8CALLGWORD//调用送字模指令LEASI,WORD1//调用滚屏显示,CALLRUN//调用滚屏指令10LEASI,WORD2//送字模‘爱’CALLGWORDLEASI,WORD2CALLRUN//调用滚屏指令LEASI,WORD3//送字模‘郑’CALLGWORDLEASI,WORD3CALLRUNLEASI,WORD4//送字模‘航’CALLGWORDLEASI,WORD4CALLRUNJMPNEXTMOVAH,4CHINT21HGWORD:PUSHCXPUSHSI//保护SI,CX断点LEADI,WELA//取列扫描数据MOVCX,8LP://LP为左半边扫描MOVDX,ADR0//给U1第1列送数据MOVAL,[SI]MOVDX,ALMOVDX,ADR1//选中U1块138译码器MOVBL,[DI]MOVDX,BLINCDIINCSI11MOVDX,ADR0//SI自加一,给U3第1列送数据MOVAL,[SI]MOVDX,ALMOVDX,ADR1//选中U3块138译码器,并选择列MOVBL,[DI]MOVDX,BLINCDIINCSICALLDELAY1MS//一列显示完毕,延时一毫秒LOOPLPLEADI,WELA//取列扫描数据MOVCX,8LN:MOVDX,ADR0//给U2第1列送数据MOVAL,[SI]MOVDX,ALMOVDX,ADR2//选中U2块138译码器,并选择列MOVBL,[DI]MOVDX,BLI

1 / 16
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功