LED点阵显示屏(完整源程序版)

合集下载

16×16点阵LED显示屏整个过程及C语言程序

16×16点阵LED显示屏整个过程及C语言程序

16×16点阵L‎E D显示屏‎整个过程及‎C语言程序‎7.1功能要求‎设计一个室‎内用16×16点阵L‎E D图文显‎示屏,要求在目测‎条件下LE‎D显示屏各‎点亮度均匀‎、充足,可显示图形‎和文字,显示图形或‎文字应稳定‎、清晰无串扰‎。

图形或文字‎显示有静止‎、移入移出等‎显示方式。

7.2方案论证‎从理论上说‎,不论显示图‎形还是文字‎,只要控制与‎组成这些图‎形或文字的‎各个点所在‎位置相对应‎的LED器‎件发光,就可以得到‎我们想要的‎显示结果,这种同时控‎制各个发光‎点亮灭的方‎法称为静态‎驱动显示方‎式。

16×16的点阵‎共有256‎个发光二极‎管,显然单片机‎没有这么多‎端口,如果我们采‎用锁存器来‎扩展端口,按8位的锁‎存器来计算‎,16×16的点阵‎需要256‎/8=32个锁存‎器。

这个数字很‎庞大,因为我们仅‎仅是16×16的点阵‎,在实际应用‎中的显示屏‎往往要大的‎多,这样在锁存‎器上花的成‎本将是一个‎很庞大的数‎字。

因此在实际‎应用中的显‎示屏几乎都‎不采用这种‎设计,而采用另一‎种称为动态‎扫描的显示‎方法。

动态扫描的‎意思简单地‎说就是逐行‎轮流点亮,这样扫描驱‎动电路就可‎以实现多行‎(比如16行‎)的同名列共‎用一套列驱‎动器。

具体就16‎×16的点阵‎来说,我们把所有‎同一行的发‎光管的阳极‎连在一起,把所有同一‎列的发光管‎的阴极连在‎一起(共阳的接法‎),先送出对应‎第一行发光‎管亮灭的数‎据并锁存,然后选通第‎一行使其燃‎亮一定的时‎间,然后熄灭;再送出第二‎行的数据并‎锁存,然后选通第‎二行使其燃‎亮相同的时‎间,然后熄灭;……第十六行之‎后又重新燃‎亮第一行,这样反复轮‎回。

当这样轮回‎的速度足够‎快(每秒24次‎以上),由于人眼的‎视觉暂留现‎象,我们就能看‎到显示屏上‎稳定的图形‎了。

LED点阵显示屏(完整源程序版)

LED点阵显示屏(完整源程序版)

LED点阵显示屏(完整源程序版)————————————————————————————————作者:————————————————————————————————日期:编号:单片机实训 (论文)说明书题目:LED点阵模块控制器院 (系):应用科技学院专业: 电子信息工程学生姓名:学号:指导教师:2009年12月28日目录引言 (1)1系统的设计与分析 (2)1.1 LED点阵控制原理 (3)1。

1.1LED简介 (3)1。

1.2LED点阵 (4)1。

1。

3显示原理 (5)1。

1。

4显示屏的原理图及结构 (6)1。

2 单片机小系统 (8)1。

2.1 51系列单片机的概述 (8)1.2.2单片机的组成 (8)2 程序设计 (10)2。

1 系统程序的框架 (10)2。

1。

1 串口通讯协议 (10)2.1。

2 显示处理效果函数 (10)2.1.3 显示函数 (10)2。

2 程序流程图 (9)3总结 (11)谢辞 (13)参考文献 (14)附录(所有的源程序) (15)摘要LED是发光二极管Light Emitting Diode的英文缩写,是一种能够将电能转化为可见光的半导体。

LED点阵是由发光二极管排列组成的显示器件,在我们日常生活的电器中随处可见,极为普通也广为人知.特别是它的发光类型属于冷光源,效率及发热量是普通发光器件难以比拟的,它采用低电压扫描驱动,具有:耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远、规格品、可靠耐用、应用灵活、安全、响应时间短、绿色环保、控制灵活种等特点.目前LED显示屏作为新一代的信息传播媒体,已经成为城市信息现代化建设的标志.随着社会经济的不断进步,以及LED显示技术的不断完善,人们对LED显示屏的认识将越来越深入,其应用领域将会越来越广。

本文设计一个16*64点阵模块控制器,根据标准的08控制接口要求,可以驱动市面上常见的16扫单色显示屏,显示汉字、英文、阿拉伯数字及其他信息等。

16×16点阵LED显示屏整个过程及C语言程序(1).

16×16点阵LED显示屏整个过程及C语言程序(1).

16×16点阵LED显示屏整个过程及C语言程序7.1功能要求设计一个室内用16×16点阵LED图文显示屏,要求在目测条件下LED显示屏各点亮度均匀、充足,可显示图形和文字,显示图形或文字应稳定、清晰无串扰。

图形或文字显示有静止、移入移出等显示方式。

7.2方案论证从理论上说,不论显示图形还是文字,只要控制与组成这些图形或文字的各个点所在位置相对应的LED器件发光,就可以得到我们想要的显示结果,这种同时控制各个发光点亮灭的方法称为静态驱动显示方式。

16×16的点阵共有256个发光二极管,显然单片机没有这么多端口,如果我们采用锁存器来扩展端口,按8位的锁存器来计算,16×16的点阵需要256/8=32个锁存器。

这个数字很庞大,因为我们仅仅是16×16的点阵,在实际应用中的显示屏往往要大的多,这样在锁存器上花的成本将是一个很庞大的数字。

因此在实际应用中的显示屏几乎都不采用这种设计,而采用另一种称为动态扫描的显示方法。

动态扫描的意思简单地说就是逐行轮流点亮,这样扫描驱动电路就可以实现多行(比如16行)的同名列共用一套列驱动器。

具体就16×16的点阵来说,我们把所有同一行的发光管的阳极连在一起,把所有同一列的发光管的阴极连在一起(共阳的接法),先送出对应第一行发光管亮灭的数据并锁存,然后选通第一行使其燃亮一定的时间,然后熄灭;再送出第二行的数据并锁存,然后选通第二行使其燃亮相同的时间,然后熄灭;……第十六行之后又重新燃亮第一行,这样反复轮回。

当这样轮回的速度足够快(每秒24次以上),由于人眼的视觉暂留现象,我们就能看到显示屏上稳定的图形了。

采用扫描方式进行显示时,每行有一个行驱动器,各行的同名列共用一个列驱动器。

显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。

显示时要把一行中各列的数据都传送到相应的列驱动器上去,这就存在一个显示数据传输的问题。

LED点阵显示程序

LED点阵显示程序

实验二十五LED点阵显示实验一.实验要求利用实验系统提供的实验模块○27点阵显示,编程实现中英文字符的显示。

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

2.掌握点阵汉字库的编码和从标准字库中提取汉字编码的方法。

三.实验电路及连线点阵显示模块MD1216C-RG的(红色)行输入线接至内部LED的阴极端,列输入线接至内部LED的阳极端(若阳极端输入为高电平,阴极端输入低电平,则该LED点亮)。

发光点的分布如下图Fig1所示。

Fig1 MD1216C-RG分布如图Fig2所示,本实验模块使用74LS374来控制行输入线的电平值。

将74LS374的某输出置0,则对应的LED阴极端被置低。

如图Fig3所示,本实验模块使用74LS273来控制列输入线,并通过9013提供电流驱动。

将74LS273的某输出置1,则对应的LED阳极端被置高。

每次系统重新开启或总清后,74LS273输出为全0,LED显示被关闭。

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

Fig 2 LED模块及行扫描电路Fig 3 列扫描电路本实验模块使用1块MD1216C-RG(共阳极)组成16×16点阵,以满足汉字显示的要求。

为了方便的控制四个单元,使用了一片74LS139译码,产生四个地址片选信号:CLKC1= CSLED ,CLKC2= CSLED+1,用于列控制的两片74LS273;CLKR1= CSLED+2,CLKR2= CSLED+3,用于行控制的两片74LS374。

实验接线按示例程序,LED 模块的CSLED 接F200H 。

四.实验说明使用高亮度LED 发光管构成点阵,通过编程控制可以显示中英文字符、图形及视频动态图形。

LED 显示以其组构方式灵活、亮度高、技术成熟、成本低廉等特点在证券、运动场馆及各种室内/外显示场合得到广泛的应用。

所显示字符的点阵数据可以自行编写(即直接点阵画图),也可从标准字库(如ASC16、HZ16)中提取。

LED点阵显示屏工作原理及驱动程序

LED点阵显示屏工作原理及驱动程序

LED点阵显示屏工作原理及驱动程序LED显示屏驱动程序几年前本人得到一块双色LED显示屏,因为没有控制器,所以对显示屏的工作原理进行了一番研究,利用手头上的元件,搭了一块电路板,编写了一段程序就放置一边了,这几天有时间,把原来的89C51汇编程序改了一下,改为AT89C2051和STC11F04E单片机能用的程序,放到博客上希望有兴趣的同行可以参考一下。

下面是显示效果图:下面是接口电路板图:下面是电路原理图:工作原理:这块显示屏是分为上下共32行LED点阵,水平有4块16*16点阵,所以能显示16*16点阵8个汉字。

工作原理是用74ls138做为行扫描,列用74ls595控制,当138扫描到某一行时,595决定哪一列该亮,就这样快速扫描,就形成了图像了。

参见下图:以单色单元板为例走线方式如下图:各信号走向如下:l JP1排针16脚信号A->74HC245的第2脚(信号放大)->74HC245的第18脚->74HC138的第1脚->JP2排针16脚l JP1排针15脚信号B->74HC245的第3脚(信号放大)->74HC245的第17脚->74HC138的第2脚->JP2排针15脚l JP1排针1脚信号OE->74HC245的第4脚(信号放大)->74HC245的第16脚->74HC04D的第1脚->74HC04D的2脚->①74HC138的第5脚->②74HC04D的3脚->74HC04D的4脚->JP2排针1脚l JP1排针11脚信号R->74HC245的第9脚(信号放大)->74HC245的第11脚->最左上角74HC595-1的第14脚->74HC595-1的9脚->74HC595-2的14脚->74HC595-2的9脚->最右下角74HC595-16的14脚->74HC595-16的9脚->JP2排针11脚我现在用的是双色板,JP1各端口含义如下:ABCD是显示屏电路板上的74LS138地址译码端,单片机寄存器R3控制行扫描,当R3从00000000到00010000增加时ABCD的变化给138译码,当R3=0FH 时正好扫描16行,当进位到10时扫描结束,OE是138的片选使能端,低电平有效。

LED点阵书写显示屏(文稿最终)-11.21

LED点阵书写显示屏(文稿最终)-11.21

LED点阵书写显示屏的设计摘要以ARM系列主流32位微处理器STM32为控制核心设计LED点阵书写显示屏系统。

系统主要包括主控模块、光笔模块、键盘输入模块、液晶显示模块、电源模块和32×32LED点阵屏。

系统通过键盘进行功能切换,光电三极管作为光笔的感应器件,在STM32的控制下进行信号采集,进而实现LED点阵屏的“点亮、划亮、反显、整屏擦除、笔画擦除、连写多字、对象拖移、点阵屏亮度调节、超时休眠”等功能。

经测试,系统功能齐全,响应速度快,书写流畅,各项性能指标均达到了设计要求。

Abstract:Writing Dot Matrix LED Display System is designed,which control core is ARM-series of mainstream 32-bit microprocessor of STM32.Which mainly includes Control module,Light pen module,Keyboard input module,Liquid crystal display modules,Power modules,and 32 ×32LED dot-matrix display.Function Switch is conducted by keyboard keys,a light pen sensing devices is photoelectric transistor,Under the control of the STM32 signal acquisition,LED dot-matrix screen’s function are reslized of Light,zoned light,anti-evident,and the entire screen erase,stroke erase,write continuously-word,object drag,dot-matrix screen brightness adjustment,overtime sleep,and so on.Been tested,which fully functional,fast response,writing fluency,the performance indicators have reached the design requirement.一、方案的选择和论证根据题目要求,系统可以分为几个基本模块,各模块的实现方案如下:1、控制器模块方案一:采用89C51单片机,技术成熟,调试方便,价格便宜。

1664点阵led灯显示程序

1664点阵led灯显示程序

c语言实现16*64点阵led灯显示程序#include "reg51.h" //包含51单片机的端口和内部寄存器定义的头文件typedef unsigned char uint8; //定义字符型typedef unsigned int uint16; //定义整型typedef unsigned long uint32; //定义长整型uint32 dx,dxx,delayer; //字符显示偏移量uint8 brk,flag;uint8 BUFFER[22]; ??sbit RTC_RST = P2^1;sbit RTC_SCLK = P2^0;sbit RTC_IO = P2^2;uint8 bdata AA; ??//brk延时用sbit AA7 = AA^7;#define READ_SECOND 0x81#define WRITE_SECOND 0x80#define READ_MINE 0x83#define WRITE_MINE 0x82#define READ_HOUR 0x85#define WRITE_HOUR 0x84#define READ_DAY 0x87#define WRITE_DAY 0x86#define READ_MONTH 0x89#define WRITE_MONTH 0x88#define READ_WEEK 0x8b#define WRITE_WEEK 0x8a#define READ_YEAR 0x8d#define WRITE_YEAR 0x8cuint8 const code NUM[][16]= ??{{0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x18,0x 00,0x00,0x00},/*"0",0*/{0x00,0x00,0x3E,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x0E,0x08,0x 00,0x00,0x00},/*"1",1*/{0x00,0x00,0x7E,0x42,0x04,0x08,0x10,0x20,0x20,0x42,0x42,0x42,0x3C,0x 00,0x00,0x00},/*"2",2*/{0x00,0x00,0x1C,0x22,0x42,0x40,0x40,0x20,0x18,0x20,0x42,0x42,0x3C,0x 00,0x00,0x00},/*"3",3*/{0x00,0x00,0x78,0x20,0x20,0x7E,0x22,0x22,0x24,0x24,0x28,0x30,0x20,0x 00,0x00,0x00},/*"4",4*/{0x00,0x00,0x1C,0x22,0x42,0x40,0x40,0x26,0x1A,0x02,0x02,0x02,0x7E,0x 00,0x00,0x00},/*"5",5*/{0x00,0x00,0x18,0x24,0x42,0x42,0x42,0x26,0x1A,0x02,0x02,0x24,0x38,0x 00,0x00,0x00},/*"6",6*/{0x00,0x00,0x08,0x08,0x08,0x08,0x08,0x08,0x10,0x10,0x22,0x22,0x7E,0x 00,0x00,0x00},/*"7",7*/{0x00,0x00,0x3C,0x42,0x42,0x42,0x24,0x18,0x24,0x42,0x42,0x42,0x3C,0x 00,0x00,0x00},/*"8",8*/{0x00,0x00,0x1C,0x24,0x40,0x40,0x58,0x64,0x42,0x42,0x42,0x24,0x18,0x 00,0x00,0x00},/*"9",9*/};uint8 const code WEEK[][32]={{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x7F,0xFE,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*"一",0*/{0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0xFE,0x20,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0 xFC,0x08,0x00,0x00,0x00},/*"二",1*/{0x00,0x00,0x00,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0 xFE,0x00,0x00,0x00,0x00},/*"三",2*/{0x00,0x00,0x20,0x02,0x3F,0xFE,0x20,0x02,0x20,0x06,0x20,0x0A,0x3E,0x 12,0x21,0x12,0x21,0x22,0x21,0x22,0x21,0x22,0x21,0x22,0x21,0x22,0x21,0 x22,0x3F,0xFE,0x00,0x00},/*"四",3*/{0x00,0x00,0x00,0x00,0x7F,0xFF,0x24,0x20,0x04,0x20,0x04,0x20,0x04,0x2 0,0x04,0x20,0x0F,0xFC,0x04,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x 40,0x1F,0xFE,0x00,0x00},/*"五",4*/{0x00,0x00,0x10,0x02,0x30,0x04,0x30,0x08,0x18,0x10,0x08,0x10,0x04,0x 20,0x02,0x60,0x01,0x20,0x00,0x00,0x00,0x00,0x7F,0xFF,0x00,0x80,0x01,0 x80,0x00,0xC0,0x00,0x20},/*"六",5*/{0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0xF8,0x08,0x08,0x08,0x08,0x08,0x 08,0x08,0x08,0x08,0x08,0x0F,0xF8,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0 x08,0x0F,0xF8,0x00,0x00},/*"日",6*/};uint8 const code HZ1[][32]={//**************显示字模数据************************************************************** ************************************************************** **********************************************//*{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x02,0x02,0x07,0x04,0x08,0x08,0x08,0x10,0x08,0x10,0x08,0x 20,0x08,0x20,0x08,0x20,0x08,0x40,0x1F,0xC0,0x08,0x40,0x00,0x40,0x00,0 x40,0x7F,0xFE,0x00,0x00},/*"万",0*/{0x00,0x40,0x00,0xA0,0x00,0x90,0x10,0x80,0x1F,0xFC,0x10,0x80,0x7F,0x FF,0x10,0x80,0x1F,0xFC,0x00,0x80,0x1F,0xF8,0x10,0x88,0x1F,0xF8,0x00,0 x80,0x7F,0xFF,0x00,0x80},/*"事",1*/{0x00,0x01,0x42,0x42,0x42,0xC4,0x7E,0x28,0x42,0x10,0x42,0x28,0x42,0x 24,0x42,0x44,0x42,0x44,0x42,0x44,0x42,0x44,0x42,0x7F,0x7E,0x08,0x00,0 x18,0x00,0x08,0x00,0x08},/*"如",2*/{0x00,0x00,0x0F,0xE0,0x28,0x16,0x21,0x14,0x10,0x94,0x00,0x00,0x0F,0xF 8,0x08,0x88,0x08,0x48,0x0F,0xF8,0x00,0x00,0x7F,0xFF,0x02,0x20,0x04,0x 10,0x3F,0xFC,0x00,0x80},/*"意",3*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*///************************************************************ ************************************************************** ************************************************************** *********************0x55,0xaa};uint8 const code HZ[][32]= //汉字数组16X16点阵{//*****************开头显示字模程序************************************************************** ************************************************************** ******************************{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0 x00,0x00,0x00,0x00,0x00},/*" ",1*/{0x00,0x00,0x02,0x04,0x05,0x0A,0x04,0x08,0x04,0x08,0x44,0x28,0x44,0x 49,0x44,0x4A,0x24,0x8C,0x25,0xB8,0x14,0x88,0x04,0x08,0x04,0x10,0x04, 0x20,0x04,0x7E,0x04,0x00},/*"孙",0*/{0x20,0x02,0x70,0x04,0x18,0x08,0x08,0x10,0x04,0x20,0x02,0x20,0x02,0x 40,0x01,0x40,0x01,0x40,0x00,0x80,0x7F,0xFF,0x00,0x80,0x00,0x80,0x00,0 x80,0x00,0x80,0x00,0x80},/*"大",1*/{0x10,0x00,0x28,0x20,0x20,0x40,0x20,0x80,0x20,0x80,0x21,0x00,0x21,0x 3E,0x3F,0x22,0x21,0x22,0x21,0x22,0x21,0x3E,0x3F,0x22,0x21,0x22,0x21,0 x22,0x21,0x3E,0x3F,0x00},/*"明",2*/{0x00,0x04,0x7E,0x1A,0x03,0xA8,0x02,0x68,0x02,0x48,0x3E,0x48,0x02,0x 49,0x02,0x0A,0x3F,0xEC,0x00,0x18,0x1F,0x88,0x10,0x88,0x1F,0xBF,0x10,0 x88,0x1F,0x88,0x00,0x08},/*"提",3*/{0x00,0x00,0x7F,0x81,0x04,0x7F,0x04,0x41,0x3F,0x41,0x04,0x7F,0x04,0xC 3,0x3F,0x75,0x05,0x55,0x04,0x55,0x3F,0x55,0x21,0x7F,0x3F,0x14,0x21,0x 14,0x3F,0x7F,0x00,0x00},/*"醒",4*/{0x20,0x02,0x70,0x04,0x18,0x08,0x08,0x10,0x04,0x20,0x02,0x20,0x02,0x 40,0x01,0x40,0x01,0x40,0x00,0x80,0x7F,0xFF,0x00,0x80,0x00,0x80,0x00,0 x80,0x00,0x80,0x00,0x80},/*"大",5*/{0x00,0x40,0x00,0xA0,0x21,0x06,0x71,0x18,0x0D,0x66,0x03,0x98,0x03,0x 20,0x0D,0x4E,0x04,0xF0,0x00,0x40,0x00,0x80,0x17,0xFA,0x20,0x02,0x7F,0 xFC,0x00,0x80,0x00,0x40},/*"家",6*/{0x00,0x80,0x01,0x00,0x02,0x00,0x02,0x00,0x04,0x00,0x04,0x00,0x0F,0x F8,0x00,0x00,0x21,0x03,0x71,0x84,0x18,0x48,0x04,0x10,0x02,0x20,0x01,0 x40,0x00,0x80,0x00,0x80},/*"今",7*/{0x00,0x02,0x20,0x04,0x70,0x08,0x18,0x10,0x04,0x20,0x02,0x40,0x01,0x 40,0x00,0x80,0x00,0x80,0x7F,0xFE,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0 x80,0x3F,0xFC,0x00,0x00},/*"天",8*/{0x00,0x00,0x7F,0x02,0x00,0xC4,0x00,0xA8,0x00,0x90,0x1F,0x90,0x00,0x 90,0x00,0x80,0x7F,0xFF,0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0 x10,0x0F,0xF0,0x00,0x00},/*"是",9*///************************************************************ ************************************************************** ************************************************************** ************************************************************** ******0x55,0xaa,};uint8 const code Date[][32]={{0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFF,0x01,0x1 0,0x01,0x10,0x01,0x10,0x01,0x11,0x1F,0xF2,0x01,0x04,0x01,0x08,0x01,0x 08,0x3F,0xF0,0x00,0x10},/*"年",0*/{0x00,0x00,0x04,0x02,0x0A,0x04,0x08,0x08,0x08,0x10,0x08,0x10,0x08,0x 20,0x0F,0xE0,0x08,0x20,0x08,0x20,0x08,0x20,0x0F,0xE0,0x08,0x20,0x08,0 x20,0x08,0x20,0x0F,0xE0},/*"月",1*/{0x00,0x00,0x00,0x00,0x08,0x08,0x0F,0xF8,0x08,0x08,0x08,0x08,0x08,0x 08,0x08,0x08,0x08,0x08,0x0F,0xF8,0x08,0x08,0x08,0x08,0x08,0x08,0x08,0 x08,0x0F,0xF8,0x00,0x00},/*"日",2*/{0x00,0x00,0x7F,0xFE,0x00,0x80,0x00,0x80,0x1F,0xF2,0x00,0x84,0x00,0x8 4,0x3F,0xF8,0x00,0x88,0x00,0x80,0x1F,0xF8,0x10,0x08,0x1F,0xF8,0x10,0x 08,0x1F,0xF8,0x00,0x00},/*"星",3*/{0x00,0x00,0x10,0x81,0x28,0xC2,0x21,0x44,0x21,0x24,0x22,0x00,0x3E,0x FF,0x22,0x44,0x22,0x44,0x22,0x7C,0x3E,0x44,0x22,0x7C,0x22,0x44,0x22,0 xFE,0x3E,0x44,0x00,0x44},/*"期",4*/{0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00,0x 00,0x00,0x00},/*":",0*/};/************************************************************* ************************************************************** **/ 端口定义************************************************************** ************************************************************** **/sbit SER_CR=P1^5;sbit LED_G1=P1^7;sbit SER_EN=P1^6; //74595数据有效线/************************************************************* ************************************************************** **/ 函数名称:Delay/ 作用: 延时子程序主要用于LED的消隐**************************************************************************************************************************** **/void Delay() //延时子程序{uint16 i,j;for(i=0;i<0x14;i++)for(j=0;j<0x05;j++);}void led_y(uint8 dat){P1 &= 0xf0;P1 |= dat&0x0f;}/************************************************************* ************************************************************** **/ 函数名称:LED_Ser/ 作用: 发送串行数据到74LS595/ 入口参数:dat 为要发送的数据8位************************************************************** ************************************************************** **/void LED_Ser_8(uint8 dat){SBUF = dat;while(!TI);TI = 0;}void LED_Ser(uint16 dat){LED_Ser_8(dat);LED_Ser_8(dat>>8);}/************************************************************* ************************************************************** **/ 函数名称:LED_Ser_EN/ 作用: 用于在SER_EN口线上产生上长沿使74595发送的数据有效************************************************************** ************************************************************** **/void LED_Ser_EN(){SER_EN=0; //SER_EN=1; //产生上升沿脉冲用于使74595发的数据有效}/************************************************************* ************************************************************** **/ 函数名称:LED_Disp/ 作用: 在LED上显示字符或BMP/ 入口参数:*dat 为要显示的字符或BMP的数据的首地址指针************************************************************** ************************************************************** **/void LED_Disp(uint8 *dat){uint8 i,j,h;uint32 itmp;uint16 tmp,dat1h,dat1l,dat1,dat2,dat2h,dat2l;for(i = 0;i < 16;i++){LED_G1 = 0;if(dx>15){dxx+=32;dx=0;} //dx,dxx为显示偏移量for(h = 0;h < 4;h ++){itmp = i*2+dxx+h*32;dat1l = dat[itmp+1];dat1h = dat[itmp];dat2l = dat[itmp+32+1];dat2h = dat[itmp+32];dat1 = (dat1h<<8)|dat1l;dat2 = (dat2h<<8)|dat2l;tmp = (dat1>>dx)|(dat2<<(16-dx));if(dat2h==0x55||dat2h==0xaa){dxx=0;tmp=0;dx = 0;flag = 1;}LED_Ser(tmp);}LED_Ser_EN();led_y(i);Delay();LED_G1 = 1;// _delay_ms(1);if(delayer++ >25){dx++;delayer = 0;} }}void RTC_Write(uint8 dat){uint8 i;for(i=0;i<8;i++){RTC_IO=(bit)(dat&0x01);RTC_SCLK=1;RTC_SCLK=0;dat>>=1;}}uint8 RTC_Read(){uint8 i;for(i=0; i<8; i++){AA >>=1; //相当于汇编中的RRCAA7 = RTC_IO;RTC_SCLK = 1;RTC_SCLK = 0;}return AA;}void RTC_Write_Byte(uint8 addr,uint8 dat) {RTC_RST=0;RTC_SCLK=0;RTC_RST=1;RTC_Write(addr);RTC_Write(dat);RTC_SCLK=1;RTC_RST=0;}uint8 RTC_Read_Byte(uint8 addr){uint8 dat;RTC_RST=0;RTC_SCLK=0;RTC_RST=1;RTC_Write(addr|0x01);dat=RTC_Read();RTC_SCLK=1;RTC_RST=0;return dat;}typedef struct __SYSTEMTIME__{uint8 Second;uint8 Mine;uint8 Hour;uint8 Day;uint8 Month;uint8 Week;uint8 Year;}SYSTEMTIME;SYSTEMTIME TIMETYPE;void CurrentTime(SYSTEMTIME *dat){uint8 TimeValue;TimeValue=RTC_Read_Byte(READ_SECOND);dat->Second=(((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f); TimeValue=RTC_Read_Byte(READ_MINE);dat->Mine= (((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f); TimeValue=RTC_Read_Byte(READ_HOUR);dat->Hour= (((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f);TimeValue=RTC_Read_Byte(READ_DAY);dat->Day= (((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f); TimeValue=RTC_Read_Byte(READ_MONTH);dat->Month= (((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f); TimeValue=RTC_Read_Byte(READ_WEEK);dat->Week= (TimeValue&0x0f);TimeValue=RTC_Read_Byte(READ_YEAR);dat->Year= (((TimeValue&0x70)>>4)*10)+(TimeValue&0x0f); }void LED_Disp_Time_Year(SYSTEMTIME *dat) //年份的延时{uint8 j,i;for(j=0;j<16;){for(i=0;i<16;i++){LED_G1 = 0;LED_Ser_8(HZ[0]); //发送右LED_Ser_8(NUM[2]); //发送右LED_Ser_8(NUM[0]); //发送右LED_Ser_8(NUM[(dat->Year)/10]); //发送右LED_Ser_8(NUM[(dat->Year)%10]); //发送右LED_Ser_8(Date[0][i*2+1]);LED_Ser_8(Date[0][i*2]);LED_Ser_8(HZ[0]); //发送右LED_Ser_EN(); //使发送的数据显示led_y(j);Delay(); //延时LED_G1 = 1;j++;}}if(delayer++ >10){dx++;delayer = 0;}}void LED_Disp_Time_Month(SYSTEMTIME *dat) //日期的延时{uint8 j,i;for(j=0;j<16;){for(i=0;i<16;i++){LED_G1 = 0;LED_Ser_8(NUM[dat->Month/10]); //发送右LED_Ser_8(NUM[dat->Month%10]); //发送右LED_Ser_8(Date[1][i*2+1]); //发送右LED_Ser_8(Date[1][i*2]); //发送右LED_Ser_8(NUM[dat->Day/10]); //发送右LED_Ser_8(NUM[dat->Day%10]);LED_Ser_8(Date[2][i*2+1]);LED_Ser_8(Date[2][i*2]); //发送右LED_Ser_EN(); //使发送的数据显示led_y(j);Delay(); //延时LED_G1 = 1;j++;}}}void LED_Disp_Time_Week(SYSTEMTIME *dat) //星期的延时{uint8 j,i;for(j=0;j<16;){for(i=0;i<16;i++){LED_G1 = 0;LED_Ser_8(HZ[0]); //发送右LED_Ser_8(Date[3][i*2+1]); //发送右LED_Ser_8(Date[3][i*2]); //发送右LED_Ser_8(Date[4][i*2+1]); //发送右LED_Ser_8(Date[4][i*2]); //发送右LED_Ser_8(WEEK[dat->Week-1][i*2+1]);LED_Ser_8(WEEK[dat->Week-1][i*2]);LED_Ser_8(HZ[0]); //发送右LED_Ser_EN(); //使发送的数据显示led_y(j);Delay(); //延时LED_G1 = 1;j++;}}}void LED_Disp_Time_Time(SYSTEMTIME *dat) //时间的延时{uint8 j,i;for(j=0;j<16;){for(i=0;i<16;i++){LED_G1 = 0;LED_Ser_8(NUM[dat->Hour/10]); //发送右LED_Ser_8(NUM[dat->Hour%10]); //发送右LED_Ser_8(Date[5]); //发送右LED_Ser_8(NUM[dat->Mine/10]); //发送右LED_Ser_8(NUM[dat->Mine%10]); //发送右LED_Ser_8(Date[5]);LED_Ser_8(NUM[dat->Second/10]);LED_Ser_8(NUM[dat->Second%10]); //发送右LED_Ser_EN(); //使发送的数据显示led_y(j);Delay(); //延时LED_G1 = 1;Delay();j++;}}}/************************************************************* ************************************************************** **/ 函数名称:ET0_INT/ 作用: 定时器T0的中断服务程序用于延自加字符显示偏移量以产生字符滚动显示的效果************************************************************** ************************************************************** **/void Char_to_time(uint8 *dat){uint8 year,month,day,week,hour,mine;year=((dat[0]-'0')*16+(dat[1]-'0'));month=((dat[3]-'0')*16+(dat[4]-'0'));day=((dat[6]-'0')*16+(dat[7]-'0'));hour=((dat[9]-'0')*16+(dat[10]-'0'));mine=((dat[12]-'0')*16+(dat[13]-'0'));week=(dat[15]-'0');RTC_Write_Byte(0x8e,0x00); //写入允许RTC_Write_Byte(0x80,WRITE_SECOND|0x80);RTC_Write_Byte(0x8e,0x80); //禁止写入RTC_Write_Byte(0x8e,0x00); //写入允许RTC_Write_Byte(WRITE_YEAR,year); //写入新的秒数RTC_Write_Byte(WRITE_MONTH,month); //写入新的秒数RTC_Write_Byte(WRITE_DAY,day); //写入新的秒数RTC_Write_Byte(WRITE_HOUR,hour); //写入新的秒数RTC_Write_Byte(WRITE_MINE,mine&0x7f); //写入新的秒数RTC_Write_Byte(WRITE_WEEK,week); //写入新的秒数RTC_Write_Byte(0x8e,0x00); //写入允许RTC_Write_Byte(0x80,WRITE_SECOND&0x7f);RTC_Write_Byte(0x8E,0x80);}/************************************************************* ************************************************************** **/ 函数名称:main/ 作用: 主程序******************************************************* ******************************************************* ****************/void main(){SCON=0;SER_CR = 1;while(1){//****************这个是时间提醒屏蔽后不显示************************************************************** *******************//// while(!flag)// {// LED_Disp(HZ);// }//****************这个是显示年份屏蔽后不显示************************************************************** ******************//// while(dx!=0x14)// {// CurrentTime(&TIMETYPE);// LED_Disp_Time_Year(&TIMETYPE); //显示主程序// if(delayer++ >5){dx++;delayer = 0;}// }// dx=0;//*****************这个是显示日期的屏蔽后不显示************************************************************** *****************//*// while(dx!=0x14)// {// CurrentTime(&TIMETYPE);// LED_Disp_Time_Month(&TIMETYPE);// if(delayer++ >5){dx++;delayer = 0;}// }// dx=0;//*****************这个是显示星期的屏蔽后不显示************************************************************** ****************//*// while(dx!=0x14)// {// CurrentTime(&TIMETYPE);// LED_Disp_Time_Week(&TIMETYPE);// if(delayer++ >5){dx++;delayer = 0;}// }// dx=0;//******************这个是显示时间的屏蔽后不显示************************************************************** ***************//*// while(dx!=0x24)// {// CurrentTime(&TIMETYPE);// LED_Disp_Time_Time(&TIMETYPE);// if(delayer++ >5){dx++;delayer = 0;}// }// dx=0;// flag=0;//****************这个程序是显示汉字数据表屏蔽后不显******************************************************//*while(!flag){LED_Disp(HZ1);}flag=0;//***************结束************************************************************** **********************//*} }。

(完整版)16×16点阵LED电子显示屏的设计_毕业论文

(完整版)16×16点阵LED电子显示屏的设计_毕业论文

16×16点阵LED电子显示屏的设计摘要LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。

本设计是1616××16点阵LED电子显示屏的设计。

整机以美国ATMEL公司生产的40脚单片机AT89C51为核心,介绍了以它为控制系统的LED点阵电子显示屏的动态设计和开发过程。

通过该芯片控制一个行驱动器74LS154和两个列驱动器74L373来驱动显示屏显示。

该电子显示屏可以显示各种文字或单色图像,采用4块8 x 8点阵LED显示模块来组成一个16x16点阵显示模式。

显示采用动态显示,使得图形或文字能够实现静止、移入移出等多种显示方式。

文中详细介绍了LED点阵显示的硬件设计思路、硬件电路各个部分的功能及原理、相应软件的程序设计,以及使用说明等。

关键词:AT89C51单片机 LED 点阵显示动态显示AbstractAs a popular display device component, LED dot-matrix display board consists of several independent LED (Light Emitting Diode).The LED dot-matrix display board can display the number or sign,and it is usually used to show time, speed, the state of system etc.This design is 1 16 ×16 lattice LED electron display monitor design.The whole equipment is with the 40-pin AT89C51 MCU (Micro Controller Unit) produced by the American ATMEL company at thecore, introduced take it as the control system LED lattice electron display monitor dynamic design and the development process. Controls good driver 74LS154 an two row driver 74L373 through thischip actuates the display monitor demonstration. The electronic screen can show all kinds of written or monochrome images, one full screen display Chinese characters, four pieces of 8 x 8 dot-matrix LEDdisplay modules to form the 16x16 dot matrix display mode. Show dynamic show that makes static graphic or text can be achieved, shifted out of various formats. This paper describes the of the LEDdot matrix display, and the principle function of the various parts ofthe circuit, the corresponding software program design and the use of some such. Key words: AT89C51 Micro Controller U nitUnit; LED; LatticeDisplay;Dynamic Display目录第1章绪论1.1 选题背景LED显示屏是八十年代后期在全球迅速发展起来的新型信息显示媒体,显示屏由几万……几十万个半导体发光二极管像素点均匀排列组成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

编号:单片机实训 (论文)说明书题目:LED点阵模块控制器院(系):应用科技学院专业:电子信息工程学生姓名:学号:指导教师:2009年12月28日目录引言 (1)1系统的设计与分析 (2)1.1 LED点阵控制原理 (3)1.1.1LED简介 (3)1.1.2LED点阵 (4)1.1.3显示原理 (5)1.1.4显示屏的原理图及结构 (6)1.2 单片机小系统 (8)1.2.1 51系列单片机的概述 (8)1.2.2单片机的组成 (8)2 程序设计 (10)2.1 系统程序的框架 (10)2.1.1 串口通讯协议 (10)2.1.2 显示处理效果函数 (10)2.1.3 显示函数 (10)2.2 程序流程图 (9)3总结 (11)谢辞 (13)参考文献 (14)附录(所有的源程序) (15)摘要LED是发光二极管Light Emitting Diode的英文缩写, 是一种能够将电能转化为可见光的半导体。

LED点阵是由发光二极管排列组成的显示器件, 在我们日常生活的电器中随处可见,极为普通也广为人知。

特别是它的发光类型属于冷光源,效率及发热量是普通发光器件难以比拟的,它采用低电压扫描驱动,具有:耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远、规格品、可靠耐用、应用灵活、安全、响应时间短、绿色环保、控制灵活种等特点。

目前LED显示屏作为新一代的信息传播媒体,已经成为城市信息现代化建设的标志。

随着社会经济的不断进步,以及LED显示技术的不断完善,人们对LED显示屏的认识将越来越深入,其应用领域将会越来越广。

本文设计一个16*64点阵模块控制器,根据标准的08控制接口要求,可以驱动市面上常见的16扫单色显示屏,显示汉字、英文、阿拉伯数字及其他信息等。

整个系统提供很宽的外部扩展,包括时钟、温湿度、亮度等常规点阵控制器的模块。

关键词:LED点阵控制器;89S52;16扫;08接口AbstractLED Light Emitting Diode Light Emitting Diode is the English abbreviation is an electrical energy into visible light can be a semiconductor. LED dot matrix is composed of light-emitting diode array display devices, the appliances in our daily life everywhere, it is common are also well known. In particular, it belongs to the type of light-emitting cold light source, efficiency, and heat an ordinary light-emitting devices is difficult to match, it uses low-voltage scan driver with: low power consumption, long life, low cost, high brightness, fault less large angle, visual distance specification products, reliable and durable, application flexibility, security, response time is short, green environmental protection, control and flexible kinds of characteristics. Present LED display as a new generation of information and communication media, has become a symbol of the modernization of city information. As social and economic advances, as well as LED display technology continues to improve, people's understanding of the LED display will be more in-depth, its applications will become more widely.This design of a 16 * 64 Dot Matrix module controller, according to the standard control interface of the 08 requirements of the common market can drive 16 scan monochrome display, display Chinese characters, English, Arabic, and other information. Throughout the system provides a wide external expansion, including clock, temperature and humidity, brightness and other conventional dot matrix controller module.Key words:LED dot matrix controller; 89S52; 16 sweep; 08 Interface引言自20世纪80年代后期开始,随着LED制造技术的不断完善,在国外得到了广泛的应用。

在我国改革开放之后,提别是进入90年代国民经济的高速增长,对公众场合发布信息的需求日益强烈。

而LED显示屏作为信息传播的一种重要手段,已经成为城市信息现代化建设的标志,LED显示屏随着社会经济的不断进步,以及LED制造技术的完善,人们对LED显示屏的认识将会越来越深入,其应用领域将会越来越广;LED显示屏经多年的开发、研制、生产,其技术目前已经成熟。

现在各种广告牌不再是白底黑字了,也不再是单一的非电产品,而是用上了丰富多彩的LED电子产品,为城市的增添了一道靓丽的风景。

而且它采用低电压扫描驱动,具有耗电少、使用寿命长、成本低、发光效率高、故障少、视角大、可视距离远、可靠耐用、组态灵活、安全、响应时间短、绿色环保、控制灵活、色彩丰富以及对室内外环境适应能力强等特点。

近年来LED显示屏市场得到了迅猛的发展,已经广泛应用到银行、邮电、税务、机场、车站、证券市场及其它交易市场、医院、电力、海关、体育场等需要进行多种公告、宣传的场合。

因此,学习LED系统原理与工程技术很有必要。

通过设计一个可显示文字与图形的16*64点阵控制器来学习和熟悉LED的使用。

1 系统的设计与分析本文是通过设计一个可显示文字与图形的16*64点阵控制器电路来学习和熟悉LED 的使用,LED点阵控制器分为五个模块,系统框图(如图1),一是参数输入部分,例如温度、湿度、亮度等;二是字库部分,如16点阵、24点阵或者32点;三是单片机控制部份;四是接口部分(如图2),一般采用08接口,如果需要不同的接口类型,可以根据08接口为基础进行转接,这也是本系统采用08接口的原因之一;五是串口通讯部分(图3),其中亮度、温度、时钟模块由于时间的原因没有完善,等待扩展。

图1 系统框图图 2 标准08接口部分图3 串口通讯部分1.1 LED点阵控制原理显示屏是由发光二极管行列组成的LED点阵模块组成显示屏体。

1.1.1LED简介LED是发光二极管英文Light Emitting Diode的缩写格式,LED器件种类繁多,早期的LED产品是单个发光管,随着数字化设备的出现,LED数码管和字符管得到了广泛的应用,LED点阵等显示器件的出现,适应了信息化社会发展的需要,成为了大众传媒的重要工具。

LED发光灯按类型可以分为单色发光灯、双色发光灯、三色发光灯、面发光灯、闪烁发光灯、电压型发光灯等;按发光强度可分为普通亮度发光灯、高亮度发光灯、超高亮度发光灯等;LED发光灯结构如图2所示,它由芯片3、阳极引脚1、阴极引脚2和环氧树脂封装外壳四部分组成。

它核心部分是具有复合发光功能的PN结,即芯片3。

环氧树脂封装外壳具有保护芯片的作用,还有透光聚光的能力,以增强显示效果。

图41.1.2LED点阵随着LED应用领域的扩大,要求生产更为直接和方便的LED显示器件。

因而出现了数码管、字符管、电平管、LED点阵等多种LED显示器。

不管显示器的结构怎么变,它的核心部件仍然是发光半导体芯片。

例如一个8*8的点阵是由64个发光二极管按一个规律组成的,如图3。

图5如图3所示的发光二极管,行接低电平,列接高电平,发光二极管导通发光。

1.1.3显示原理人眼的亮度感觉不会因光源的消失而立即消失,要有一个延迟时间,这就是视觉的惰性。

视觉惰性可以理解为光线对人眼视觉的作用、传输、处理等过程都需要时间,因而使视觉具有一定的低通性。

实验表明,当外界光源突然消失时,人眼的亮度感觉是按指数规律逐渐减小的。

这样当一个光源反复通断,在通断频率较低时,人眼可以发现亮度的变化;而通断频率增高时,视觉就逐渐不能发现相应的亮度变化了。

不致于引起闪烁感觉的最低反复通断频率称为临界闪烁频率。

通过实验证明临界闪烁频率大约为24Hz。

因此采用每秒24幅画面的电影,在人看起来就是连续活动的图象了。

同样的原理,日光灯每秒通断50次,而人看起来却是一直亮的。

由于视觉具有惰性,人们在观察高于临界闪烁频率的反复通断的光线时,所得到的主观亮度感受实际上是客观亮度的平均值。

视觉惰性可以说是LED显示屏得以广泛应用的生理基础。

首先,在LED显示屏中可以利用视觉惰性,改善驱动电路的设计,形成了目前广为采用的扫描驱动方式。

扫描驱动方式的优点在于LED显示屏不必对每个发光灯提供单独的驱动电路,而是若干个发光灯为一组共用一个驱动电路,通过扫描的方法,使各组发光灯依次点燃,只要扫描频率高于临界闪烁频率,人眼看起来各组灯都在发光。

由于LED显示屏所使用的发光灯数量很大,一般在几千只到几十万只的范围,所以节约驱动电路的效益是十分可观的。

1.1.4显示屏的原理图及结构图6行扫描部分图7 列扫描部分根据显示屏的原理图结构,分析LED点阵控制器的控制原理:如显示10个汉字,先将这10个汉字的点阵从字库中读出,放到显示缓存,如果要实现左移或者其它的显示效果则将显示缓存中的每个位进行移位或者其它处理,然后再调用扫描显示函数就可以实现所规定的效果。

相关文档
最新文档