注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

眼睛想旅行

技术就是我的生命与信仰!

 
 
 

日志

 
 
关于我

精通C,C++,python,Erlang。并熟悉各种其他编程语言,用cocos2dx游戏引擎作过几个项目。会MySQL增删改查,了解OpenGL渲染原理。懂单片机,能设计数字电路系统,会画电路图和设计电路板。喜欢了解最新前沿技术,并持续关注和学习新技术。

网易考拉推荐

点阵LED显示原理(转)  

2008-11-07 15:07:48|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

加个广告,我的淘宝网店,http://fengmm521.taobao.com

点阵LED显示原理(转2007年5月24日)

前几天看一个朋友做LED屏,就想自已试试看能不能做,在网上找到这个现在和大家分享!!

一.实验要求

编程实现中英文字符的显示。

二.实验目的

1.了解LED点阵显示的基本原理和实现方法。

2.掌握

三.实验电路及连线

点阵显示模块WTD3088的(红色)列输入线接至内部LED的阴极端,行输入线接至内部LED的阳极端(若阳极端输入为高电平,阴极端输入低电平,则该LED点亮)。发光点的分布如图22-0所示。

         点阵LED显示原理(转) - ♂苹果 - 眼睛想旅行

              Fig 22-0 WTD3088 LED分布

如图22-1示,本实验模块使用74LS374来控制列输入线的电平值。将74LS374的某输出置0,则对应的LED阴极端被置低。如图22-2示,本实验模块使用74LS273来控制行输入线,并通过9013提供电流驱动。将74LS273的某输出置1,则对应的LED阳极端被置高。每次系统重新开启或总清后,74LS273输出为全0,LED显示被关闭。

通过编程控制各显示点对应LED阳极和阴极端的电平,就可以有效的控制各显示点的亮灭。

  点阵LED显示原理(转) - ♂苹果 - 眼睛想旅行

                 Fig 22-1 LED模块及列扫描电路

 点阵LED显示原理(转) - ♂苹果 - 眼睛想旅行

                     Fig 22-2 行扫描电路

点阵LED显示原理(转) - ♂苹果 - 眼睛想旅行

                     Fig 22-3地址译码电路

本实验模块使用4块WTD3088组成16×16点阵,以满足汉字显示的要求。为了方便的控制四个单元,使用了一片74LS139译码,产生四个地址片选信号:CLKR1= CSLED,CLKR2= CSLED+1,用于行控制的两片74LS273;CLKC1= CSLED+2,CLKC2= CSLED+3,用于列控制的两片74LS374。

实验接线:按示例程序,模块的CSLED接51/96地址的8000H。

四.实验说明

使用高亮度LED发光管构成点阵,通过编程控制可以显示中英文字符、图形及视频动态图形。LED显示以其组构方式灵活、亮度高、技术成熟、成本低廉等特点在证券、运动场馆及各种室内/外显示场合得到广泛的应用。

所显示字符的点阵数据可以自行编写(即直接点阵画图),也可从标准字库(如ASC16、HZ16)中提取。后者需要正确掌握字库的编码方法和字符定位的计算。

实验盘片中“字符转换”子目录下提供的Basc16.exe,BHz16.exe可方便的将单个字符的码表从标准字库Asc16,Hzk16中提取出来。具体使用方法是运行上述可执行程序,根据提示输入所需字符(如是汉字还需要先启动dos下的汉字环境,如ucdos,pdos95等)。程序将该字符的码表提取出来,存放在该字符ASC或区位码为文件名称的.dat文件中。用户只需将该文件中内容拷贝、粘贴到自己的程序中即可。但需要注意字节排列顺序、字节中每一位与具体显示点的一一对应关系,必要时还要对码表稍作修改。同一目录下还提供了上述可执行程序的源文件,使用BC3.1编写,供用户参考。

五.实验程序框图

             点阵LED显示原理(转) - ♂苹果 - 眼睛想旅行

      

        用户应留心其中行扫描的实现及码表的处理。

六.实验程序:

(一)提供LEDA51演示Asc16字符的简单点阵显示。

;*********LED 点阵显示示例程序***********************

;** 该程序显示 Asc16字符 **

;** 为了简单起见,程序只显示一个字符 **

;** 该程序针对T598实验机的模块14 **

;****************************************************

CSLED EQU 8000H

CSR1 EQU CSLED ;行1 273

CSR2 EQU CSLED+1H ;行2 273

CSC1 EQU CSLED+2H ;列1 374

CSC2 EQU CSLED+3H ;列2 374

ORG 0000H

MOV SP,#60H

INIT: MOV A,#0H ;关闭行

MOV DPTR,#CSR1

MOVX @DPTR,A

MOV DPTR,#CSR2

MOVX @DPTR,A

MOV A,#0FFH ;关闭列

MOV DPTR,#CSC1

MOVX @DPTR,A

MOV DPTR,#CSC2

MOVX @DPTR,A

D: MOV R5,#00H

MOV R4,#01H ;每次为单行扫描

DISP:

MOV A,R5

MOV DPTR,#ASCE ;此处设定所要显示的字符

MOVC A,@A+DPTR

CPL ACC ;代码取反,决定显示的阴阳

MOV DPTR,#CSC2

MOVX @DPTR,A

MOV DPTR,#CSR1

MOV A,R4

MOVX @DPTR,A

RL ACC

MOV R4,ACC

INC R5

LCALL DELAY

CJNE R5,#8H,DISP

MOV A,#0H

MOVX @DPTR,A

MOV R5,#08H

MOV R4,#01H

DISP2:

MOV A,R5

MOV DPTR,#ASCE

MOVC A,@A+DPTR

CPL ACC

MOV DPTR,#CSC2

MOVX @DPTR,A

MOV DPTR,#CSR2

MOV A,R4

MOVX @DPTR,A

RL ACC

MOV R4,ACC

INC R5

LCALL DELAY

CJNE R5,#10H,DISP2

MOV A,#0H

MOVX @DPTR,A

SJMP D

;******** 延时子程序,协调字符显示速度 *************

DELAY: MOV R7,#1H

DL1: MOV R6,#00H

DL2: DJNZ R6,DL2

DJNZ R7,DL1

RET

;******** 字符点阵字库 ***************

; ASC16 字符编码排列

; 0

; 1

; |

; |

; 14

; 15

; 高位 D7--D0

; 请注意编码的排列次序和实际显示点阵分布的关系

ASCA:DB 00H,00H,10H,38H,6CH,0C6H,0C6H,0FEH

DB 0C6H,0C6H,0C6H,0C6H,00H,00H,00H,00H

ASCE:DB 00H,00H,0FEH,66H,62H,68H,78H,68H

DB 60H,62H,66H,0FEH,00H,00H,00H,00H

ASCD:DB 00H,00H,0F8H,6CH,66H,66H,66H,66H

DB 66H,66H,6CH,0F8H,00H,00H,00H,00H

ASCK:DB 00H,00H,0E6H,66H,66H,6CH,78H,78H

DB 6CH,66H,66H,0E6H,00H,00H,00H,00H

;****************************************************

END

(二)LEDHZ51两个示例程序。和Hz16字符的简单点阵显示。

;*********LED 点阵显示示例程序***********************

;** 该程序显示 hz16字符 **

;** 为了简单起见,程序只显示一个字符 **

;** 该程序针对T598实验机的模块14 **

;****************************************************

CSLED EQU 8000H

CSR1 EQU CSLED ;行1 273

CSR2 EQU CSLED+1H ;行2 273

CSC1 EQU CSLED+2H ;列1 374

CSC2 EQU CSLED+3H ;列2 374

ORG 0000H

MOV SP,#60H

INIT: MOV A,#0H ;关闭LED显示

MOV DPTR,#CSR1

MOVX @DPTR,A

MOV DPTR,#CSR2

MOVX @DPTR,A

MOV A,#0FFH ;关闭LED显示

MOV DPTR,#CSC1

MOVX @DPTR,A

MOV DPTR,#CSC2

MOVX @DPTR,A

D: MOV R5,#00H

MOV R4,#01H

DISP:

MOV A,R5

RL ACC

MOV DPTR,#HZAI

MOVC A,@A+DPTR

CPL ACC

MOV DPTR,#CSC2

MOVX @DPTR,A

MOV A,R5

RL ACC

INC ACC

MOV DPTR,#HZAI

MOVC A,@A+DPTR

CPL ACC

MOV DPTR,#CSC1

MOVX @DPTR,A

MOV DPTR,#CSR1

MOV A,R4

MOVX @DPTR,A

RL ACC

MOV R4,ACC

INC R5

LCALL DELAY

CJNE R5,#8H,DISP

MOV A,#0H

MOVX @DPTR,A

MOV R5,#08H

MOV R4,#01H

DISP2:

MOV A,R5

RL ACC

MOV DPTR,#HZAI

MOVC A,@A+DPTR

CPL ACC

MOV DPTR,#CSC2

MOVX @DPTR,A

MOV A,R5

RL ACC

INC ACC

MOV DPTR,#HZAI

MOVC A,@A+DPTR

CPL ACC

MOV DPTR,#CSC1

MOVX @DPTR,A

MOV DPTR,#CSR2

MOV A,R4

MOVX @DPTR,A

RL ACC

MOV R4,ACC

INC R5

LCALL DELAY

CJNE R5,#10H,DISP2

MOV A,#0H

MOVX @DPTR,A

SJMP D

;******** 延时子程序,协调字符显示速度 *************

DELAY: MOV R7,#1H

DL1: MOV R6,#00H

DL2: DJNZ R6,DL2

DJNZ R7,DL1

RET

;******** 字符点阵字库 ***************

; HZ16 字符编码排列

; 0 1

; 2 3

; |

; |

; 28 29

; 30 31

; 高位 D7--D0

HZAI:DB 00H,78H,3FH,80H,11H,10H,09H,20H

DB 7FH,0FEH,42H,02H,82H,04H,7FH,0F8H

DB 04H,00H,07H,0F0H,0AH,20H,09H,40H

DB 10H,80H,11H,60H,22H,1CH,0CH,08H

HZDI:DB 00H,80H,40H,80H,20H,88H,2FH,0FCH

DB 08H,88H,08H,88H,0E8H,88H,2FH,0F8H

DB 28H,88H,28H,88H,28H,88H,2FH,0F8H

DB 28H,08H,50H,06H,8FH,0FCH,00H,00H

HZKE:DB 01H,00H,01H,04H,0FFH,0FEH,01H,00H

DB 01H,10H,1FH,0F8H,10H,10H,10H,10H

DB 10H,10H,1FH,0F0H,14H,50H,04H,40H

DB 04H,40H,08H,42H,10H,42H,60H,3EH

;****************************************************

END

所用芯片资料:

我的E盘资料文件夹

74ls273(带清零的八位D触发器)

74ls373(八位传输控制器)

 

  评论这张
 
阅读(2844)| 评论(1)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017