16乘16点阵LED电子显示屏的设计

合集下载

LED16乘16电子显示器课程设计

LED16乘16电子显示器课程设计

目录1. 前言................................................... 错误!未定义书签。

2. 方案设计............................................... 错误!未定义书签。

2.1. 系统功能要求...................................... 错误!未定义书签。

2.2. 硬件设计.......................................... 错误!未定义书签。

2.2.1. 8255A芯片................................... 错误!未定义书签。

2.3. 设计框图.......................................... 错误!未定义书签。

2.4. LED点阵介绍 ...................................... 错误!未定义书签。

2.5. LED显示方式 ...................................... 错误!未定义书签。

3. 测试与调试............................................. 错误!未定义书签。

4. 总结与体会............................................. 错误!未定义书签。

5. 程序清单............................................... 错误!未定义书签。

6. 参考文献............................................... 错误!未定义书签。

1.前言LED 电子显示屏是集微电子技术、计算机技术、信息处理技术于一体的大型显示屏系统。

它发布信息灵活多变,易于控制。

在现代工业控制和一些智能化仪器仪表中,越来越多的场所需要用点阵图形显示屏显示信息。

16×16点阵LED电子显示屏的设计

16×16点阵LED电子显示屏的设计

单片机课程设计16×16点阵LED电子显示屏的设计题目:16×16点阵LED电子显示屏的设计姓名:学号:专业班级:指导老师:摘要:LED显示屏作为一种新型的显示器件,是由多个发光二极管按矩阵形式排列封装而成,通常用来显示时间、图文等信息。

本设计是基于MCS-51单片机的16x16显示屏,其中包含了硬件、软件、调试等方案的设计。

此外、该设计只需简单的级联就能实现显示屏的拓展,但级联时要注意不要超过驱动负载范围。

关键词:MCS-51;LED;单片机一、概述当今社会在飞速发展无疑能源、健康、空间的利用,成了人们着重关注的对象。

而在这个信息传递极速的社会,LED的出现给人们带来了希望之光。

LED的特色之处一是节能(直接功耗,间接耗能),二是基本无电离辐射,三提高空间利用率。

而这些特色又恰好解决了上述的三种问题。

然而LED点阵显示屏的特点不仅仅于此LED点阵显示屏用的是数码管,而数码管具有实用,便宜等优点。

做出来的LED点阵显示很耐用。

LED点阵显示屏之所以受到广泛重视而得到迅速发展,是与LED显示屏本身所具有的优点分不开的。

LED点阵显示屏的发展前景极为广阔,目前正朝着更高亮度、更高耐气候性、更高的发光密度、更高的发光均匀性,可靠性、全色化方向发展。

二、简介组合型led点阵显示器以发光二极体为图素,它用高亮度LED晶粒进行阵列组合后,再透过环氧树脂和塑模封装而成。

具有高亮度、功耗低、引脚少、视角大、寿命长、耐湿、耐冷热、耐腐蚀等特点。

点阵显示器有单色和双色两类,可显示红,黄,绿,橙等。

LED点阵有4×4、4×8、5×7、5×8、8×8、16×16、24×24、40×40等多种;根据图素的数目分为等,双原色、三原色等,根据图素顏色的不同所显示的文字、图像等内容的顏色也不同,单原色点阵只能显示固定色彩如红、绿、黄等单色,双原色和三原色点阵显示内容的顏色由图素内不同顏色发光二极体点亮组合方式决定,如红绿都亮时可显示黄色,如果按照脉冲方式控制二极体的点亮时间,则可实现256或更高级灰度显示,即可实现真彩色显示。

16×16 LED点阵设计-毕业设计.

16×16 LED点阵设计-毕业设计.

16×16 LED点阵设计学生:指导教师:内容摘要:LED点阵电子显示屏的发展越来越好广泛,它成为一个宣传信息的重要平台,已经得到了社会的普遍认同。

LED点阵显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。

它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。

该设计是一个16×16LED点阵电子显示屏显示数字的设计。

整块电子显示屏的控制核心是40引脚的单片机AT89S51,说明了LED点阵电子显示屏用AT89S51为控制系统的动态的设计和开发的具体过程。

通过该芯片控制两个列驱动器74HC595来驱动显示屏显示,本设计就是使用4块8×8点阵显示模块来组成16×16点阵显示屏,采用动态扫描显示,程序编写的实现是使用简单流通性强的C语言,该设计的结果证明,系统显示清晰,结构合理,误差小,扩展能力强,性能稳定。

关键词:AT89S51 LED点阵数字显示Design of 16*16 LED dot matrixAbstract:LED electronic display found the screen better and better.It has become an important platform of a promotional information,it has been widely accepted by the society,LED dot matrix display is the use of plane composition LED lattice module or pixel unit display screen ,It has the advantages of high light efficiency ,long.The designed is a digital design of a 16*16 LED dot matrix display ,control the core piece of electronic display is the 40 pin of the microcontroller AT89S51.Describes the specific process of the design and development of LED dot matrix display with AT89S51 as the control system dynamic.Through the control two columns drive chip 74HC595 are needed to drive the display shows that this design is to use 4 pieces of 8 x 8 dot matrix display module to form a 16 * 16 dot matrix display screen, a dynamic scans showed that the realization of the programming is simple to use strong liquidity of C language, and the design results show that the system shows clear, reasonable structure, little error and extension ability strong, stable performance.Keywords: AT89C51 dot matrix LED the digital display screen目录前言 (1)1 设计方案的论证与选择 (1)2 硬件电路设计 (3)2.1 系统的结构框图 (3)2.1.1 单片机控制模块 (3)2.1.2 时钟电路 (4)2.1.3 复位电路 (4)2.1.4 显示模块 (5)2.1.5 驱动模块 (7)2.2 单片机的最小系统图 (9)3 单片机系统 (10)3.1 8051引脚为40个的单片机芯片 (11)3.1.1 引脚为Vcc和Vss 的主电源 (11)3.1.2 外接晶体引脚XTAL1和XTAL2 (11)3.2 I/O口线的引脚排列及管脚的说明 (11)3.3 RST键 (13)3.4 PEROM阵列和锁定位 (13)4 系统软件设计 (13)4.1 主程序的设计及流程图 (13)4.2 显示程序的设计 (14)5 硬件的制作与调试 (15)5.1 系统的组装 (15)5.2 程序的调试 (16)6 结束语 (17)附录 (18)附录1:程序清单 (18)附录2:仿真结果图 (22)附录3:Protel原理图 (23)附录4:4个8*8LED组成的显示屏 (24)附录5:PCB图 (25)参考文献 (26)16×16 LED点阵电子显示屏的设计前言LED点阵电子显示屏的制作简单,并且便于安装,被广泛的应用于各个公共场合,但是LED 电子显示屏也只能用于单一的图像数字汉字的显示,如果要改变显示的内容,必须要在上位机上进行实现。

16×16点阵LED电子显示屏的设计

16×16点阵LED电子显示屏的设计

一.课程设计意义二.课程设计任务书三、课程设计进度计划及检查情况记录表四、成绩评定与评语目录一.课程设计意义 (1)二.课程设计任务书 (2)三、课程设计进度计划及检查情况记录表 (3)四、成绩评定与评语 (3)一、总体设计方案 (5)1.1 总体设计 (5)1.2 硬件设计 (6)1.3 软件设计 (13)二、设计内容 (15)2.1 系统硬件原理图与仿真 (15)2.2 程序清单 (17)三.结论、建议及课程设计体会 (21)四.参考文献 (21)一、总体设计方案1.1 总体设计1.1.1 工作原根据功能要求,应采用动态显示的设计方法,同时为简化设计,减少硬件数量,显示数据的传输采用串行传输方式。

(1)熟悉AT89S51单片机系统的使用方法。

(2)掌握动态显示原理及实现方法。

(3)初步掌握AT89S51单片机编程方法。

(4)掌握串行数据传输方式的应用。

(5)实现利用AT89S51单片机控制的LED图文屏正常工作。

1.1.2 硬件部分总体设计根据功能要求,采用AT89C51单片机,动态显示的设计方法,同时为简化设计,减少硬件数量,显示数据的传输采用串行传输方式,列扫描地址用P1口控制,总体结构框图如下:图1-1 系统总体结构框图1.2 硬件设计系统的组成,硬件的选用,芯片的特点1.2.1 8051系列的单片机AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。

图片见下图:图 1-2 89C51管脚图(1).管脚说明VCC:供电电压。

GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。

当P1口的管脚第一次写1时,被定义为高阻输入。

P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。

在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。

单片机课程设计--+16x16点阵LED电子显示屏的设计

单片机课程设计--+16x16点阵LED电子显示屏的设计

单片机课程设计-- 16x16点阵LED电子显示屏的设计第一章系统总体方案设计LED驱动显示采用动态扫描方法, 动态扫描方式是逐行轮流点亮, 这样扫描驱动电路就可以实现多行的同名列共用一套列驱动器。

以16×16点阵为例, 把所有同一行的发光管的阳极连在一起, 把所有同一列的发光管的阴极连在一起(共阳的接法), 先送出对应第1行发光管亮灭的数据并锁存, 然后选通第1行使其燃亮一定的时间, 然后熄灭;再送出第2行的数据并锁存, 然后选通第2行使其燃亮相同的时间, 然后熄灭;…第16行之后, 又重新燃亮第1行, 反复轮回。

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

该方法能驱动较多的LED, 控制方式较灵活, 而且节省单片机的资源。

显示数据传输采用串行传输的方法, 控制电路可以只用一根信号线, 将列数据一位一位传往列驱动器, 在硬件方面无疑是十分经济的。

但串行传输过程较长, 数据按顺序一位一位地输出给列驱动器, 只有当一行的各列数据都已传输到位之后, 这一行的各列才能并行地进行显示。

对于串行传输方式来说, 列数据准备时间可能相当长, 在行扫描周期确定的情况下, 留给行显示的时间就太少了, 以致影响到LED的亮度。

采用串行传输中列数据准备和列数据显示的时间矛盾, 可以采用重叠处理的方法。

即在显示本行各列数据的同时, 传送下一行的列数据。

为了达到重叠处理的目的, 列数据的显示就需要有锁存功能。

对于列数据准备来说, 它应能实现串入并出的移位功能。

这样, 本行已准备好的数据打入并行锁存器进行显示时, 串行移位寄存器就可以准备下一行的列数据, 而不会影响本行的显示。

系统框图如图一图一点阵显示器硬件系统框图第二章系统硬件电路的设计硬件电路大致上可以分为单片机系统及外围电路、列驱动电路和行驱动电路三部分。

一. 单片机系统及外围电路单片机采用89C51或更高频率的晶振, 以获得较高的刷新频率, 使得显示更稳定。

(完整版)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显示屏是八十年代后期在全球迅速发展起来的新型信息显示媒体,显示屏由几万……几十万个半导体发光二极管像素点均匀排列组成。

16x16点阵led电子显示屏设计[1]

16x16点阵led电子显示屏设计[1]

#include<reg51.h>#define uint unsigned int#define uchar unsigned char //宏定义sbit shcp=P0^0; // 74HC595芯片的引脚sbit ds1=P0^1;sbit ds2=P0^2;sbit stcp=P0^3;sbit oe=P0^4;sbit zdxh=P1^0; // 控制循环按钮(控制左右上下自动循环)sbit zdzy=P1^1; // 控制自动循环坐移sbit zdyy=P1^2; // 控制自动循环右移sbit zdsy=P1^3; // 控制自动循环上移sbit zdxy=P1^4; // 控制自动循环下移unsigned char t;//用于同步扫的数据uchar code sz[1][32]={{0xff,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xf7,0xff,0xef,0xff,0xdf,0xff,0xbf,0xff,0x7f,0xfe,0xff,0xfd,0xff,0xfb,0xff,0xf7,0xff,0xef,0xff,0xdf,0xff,0xbf,0xff,0x7f,0xff}};//要显示的汉字字码(高位在下,低位在上)uchar code hz[10][32]={{0x00,0x40,0x00,0x40,0x00,0x42,0x7F,0xCC,0x20,0x00,0x10,0x20,0x00,0x10,0xFF,0xFC,0x22,0x4B,0x22,0x48,0x22,0x4A,0x3F,0xFC,0x22,0x48,0x32,0x4C,0x20,0x08,0x00,0x00}, // 谁{0x00,0x04,0x00,0x04,0x00,0x04,0xFC,0xA4,0x44,0xA4,0x44,0xA4,0x44,0xA5,0x44,0xA6,0x44,0xA4,0x44,0xA4,0x44,0xB4,0xFE,0xA4,0x04,0x04,0x00,0x06,0x00,0x04,0x00,0x00}, // 言{0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x90,0x03,0x10,0x00,0x10,0x40,0x10,0x80,0x10,0x7F,0xFF,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x10,0x00,0x00}, // 寸{0x08,0x00,0x08,0x04,0x08,0x04,0x0B,0xE4,0x0A,0xAF,0x0A,0xA4,0x0A,0xA4,0xFE,0xA4,0x0A,0xA4,0x0A,0xA4,0x0A,0xAF,0x0B,0xF4,0x08,0x26,0x0C,0x04,0x08,0x00,0x00,0x00}, // 草{0x04,0x00,0x02,0x00,0x01,0xC0,0x00,0x00,0x3F,0xF0,0x40,0x00,0x40,0x01,0x40,0x02,0x40,0x1C,0x40,0x08,0x40,0x00,0x70,0x00,0x00,0x40,0x00,0x80,0x07,0x00,0x00,0x00},// 心{0x02,0x10,0x42,0x10,0x81,0x10,0x7F,0xFF,0x00,0x90,0x00,0x50,0x00,0x00,0xFF,0xFE,0x22,0x82,0x14,0x82,0x08,0x92,0x16,0xA2,0x21,0x9F,0x60,0x02,0x20,0x00,0x00,0x00}, // 报{0x04,0x40,0x02,0x20,0x01,0x10,0xFF,0x8C,0x04,0x63,0x04,0x80,0x0C,0xBE,0x34,0xAA,0x04,0xAA,0x44,0xAA,0x84,0xAA,0x7F,0xAA,0x04,0xBF,0x06,0x82,0x04,0x00,0x00,0x00}, // 得{0x20,0x00,0x20,0x04,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0xC4,0x20,0x86,0x30,0x04,0x20,0x00,0x00,0x00}, // 三{0x04,0x20,0x04,0x22,0x02,0x2A,0x01,0x2A,0xFF,0xAA,0x49,0x6A,0x49,0x3A,0x49,0x2F,0x49,0x2A,0x49,0x6A,0xFF,0xAA,0x01,0x2A,0x02,0x2A,0x06,0x22,0x02,0x20,0x00,0x00}, // 春{0x00,0x00,0x3F,0xFC,0x10,0x84,0x10,0x84,0x3F,0xFC,0x00,0x00,0x09,0x2E,0x09,0xA2,0x09,0x62,0x09,0x3A,0xFF,0xA2,0x09,0x22,0x09,0xA2,0x0D,0x2A,0x08,0x06,0x00,0x00} // 晖};uchar code m[10][32]={{0x00,0x00,0x3F,0xFC,0x10,0x84,0x10,0x84,0x3F,0xFC,0x00,0x00,0x09,0x2E,0x09,0xA2,0x09,0x62,0x09,0x3A,0xFF,0xA2,0x09,0x22,0x09,0xA2,0x0D,0x2A,0x08,0x06,0x00,0x00}, // 晖{0x04,0x20,0x04,0x22,0x02,0x2A,0x01,0x2A,0xFF,0xAA,0x49,0x6A,0x49,0x3A,0x49,0x2F,0x49,0x2A,0x49,0x6A,0xFF,0xAA,0x01,0x2A,0x02,0x2A,0x06,0x22,0x02,0x20,0x00,0x00}, // 春{0x20,0x00,0x20,0x04,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0x84,0x20,0xC4,0x20,0x86,0x30,0x04,0x20,0x00,0x00,0x00}, // 三{0x04,0x40,0x02,0x20,0x01,0x10,0xFF,0x8C,0x04,0x63,0x04,0x80,0x0C,0xBE,0x34,0xAA,0x04,0xAA,0x44,0xAA,0x84,0xAA,0x7F,0xAA,0x04,0xBF,0x06,0x82,0x04,0x00,0x00,0x00}, // 得{0x02,0x10,0x42,0x10,0x81,0x10,0x7F,0xFF,0x00,0x90,0x00,0x50,0x00,0x00,0xFF,0xFE,0x22,0x82,0x14,0x82,0x08,0x92,0x16,0xA2,0x21,0x9F,0x60,0x02,0x20,0x00,0x00,0x00}, // 报{0x04,0x00,0x02,0x00,0x01,0xC0,0x00,0x00,0x3F,0xF0,0x40,0x00,0x40,0x01,0x40,0x02,0x40,0x1C,0x40,0x08,0x40,0x00,0x70,0x00,0x00,0x40,0x00,0x80,0x07,0x00,0x00,0x00},// 心{0x08,0x00,0x08,0x04,0x08,0x04,0x0B,0xE4,0x0A,0xAF,0x0A,0xA4,0x0A,0xA4,0xFE,0xA4,0x0A,0xA4,0x0A,0xA4,0x0A,0xAF,0x0B,0xF4,0x08,0x26,0x0C,0x04,0x08,0x00,0x00,0x00}, // 草{0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x90,0x03,0x10,0x00,0x10,0x40,0x10,0x80,0x10,0x7F,0xFF,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x18,0x00,0x10,0x00,0x00}, // 寸{0x00,0x04,0x00,0x04,0x00,0x04,0xFC,0xA4,0x44,0xA4,0x44,0xA4,0x44,0xA5,0x44,0xA6,0x44,0xA4,0x44,0xA4,0x44,0xB4,0xFE,0xA4,0x04,0x04,0x00,0x06,0x00,0x04,0x00,0x00}, // 言{0x00,0x40,0x00,0x40,0x00,0x42,0x7F,0xCC,0x20,0x00,0x10,0x20,0x00,0x10,0xFF,0xFC,0x22,0x4B,0x22,0x48,0x22,0x4A,0x3F,0xFC,0x22,0x48,0x32,0x4C,0x20,0x08,0x00,0x00}, // 谁} ;//用于点阵的上移显示;void senddata1(uint k,uchar *str1) //k用于接收传入16位数据,str1接收用于列同步扫描的数据地址(即用于选通哪列,为0即选通){uint h;uchar i, j=0;for(i=0;i<16;i++) //将16位数据通过ds1(用于行选)串行输出(为1则选通该行){ h=k; //用于保存kif(((h=h<<i)&0x8000)==0) ds1=0; //取最高位else ds1=1;if(i<8) //每个数据有八位,通过串行口ds2逐位输入{if(((str1[j]=str1[j]<<i)&0x80)==0) ds2=0;else ds2=1;}if(i==8)j++; // 取下一数据if(i>=8) // 通过串行口输入{if(((str1[j]=str1[j]<<(i-8))&0x80)==0) ds2=0; //str1[][]的数据为8位(所以要i-8)else ds2=1;}shcp=0; //74hc595移位寄存器上升沿移入准备好的数据到寄存器shcp=1;}stcp=0; //存储寄存器上升沿,将移位后的数据放到输出到Q0—Q7并口stcp=1;}//行发送数据程序3:用于上移程序中void sendbanzi(uint g,uint k) //g用于调节上移速度,k为汉字数据在数组的行数;{uchar j,h,x,l;uint m,n;for(l=0;l<10;l++) //一个字扫10次,改变其数值可改变字的显示时间(即可以调节速度){for(j=0;j<32;j++,j++){h=hz[k][j]; //将前一个字的每两个数据组合,m=(uint)h;m=m<<8;x=hz[k][j+1];m=m|(uint)x;h=hz[k+1][j]; //将后一个字对应前一个字列的两个数据组合n=(uint)h;n=n<<8;x=hz[k+1][j+1];n=n|(uint)x;m=m>>g; //将前后两个字移位后的数据组合为新数据n=n<<(16-g);m=m|n;senddata1(m,&sz[0][j]);}}}//上移程序void sy(uchar m){uchar k,i; //k为汉字数据在数组的行数,即第k个数for(k=0;k<m;k++){//if(k+1==m) {sendbanzi(0,i); break;}for(i=0;i<16;i=i+4) //每次上移的行数为i;{sendbanzi(i, k);if(k+1==m) break;}if(k+1==m) break;}}//行发送数据程序4:用于下移程序中void xsendbanzi(uint g,uint k) //g用于调节上移速度,k为汉字数据在数组的行数; {uchar j,h,x,l;uint m,n;for(l=0;l<10;l++) //一个字扫10次,改变其数值可改变字的显示时间{for(j=0;j<32;j++,j++){h=hz[k][j]; //将前一个字的每两位数据组合m=(uint)h;m=m<<8;x=hz[k][j+1];m=m|(uint)x;h=hz[k+1][j]; //将后一个字对应前一个字列的两位数据组合n=(uint)h;n=n<<8;x=hz[k+1][j+1];n=n|(uint)x;m=m<<g; //将前后两个字移位后的数据组合为新数据n=n>>(16-g);m=m|n;senddata1(m,&sz[0][j]);}}}//下移程序void xy(uchar m){uchar k,i; //k为汉字数据在数组的行数for(k=0;k<m;k++){for(i=0;i<16;i=i+4) //上移的行数为i;{xsendbanzi(i, k);if(k+1==m) break;}if(k+1==m) break;}}//行发送数据程序2:str接收汉字数据存放地址,str1用于列同步扫描(用于左右移动)void senddata2(uchar*str,uchar *str1){uchar i, k,j=0,l,g;for(l=0;l<10;l++) //一个字扫10次,改变其数值可改变字的显示时间{for(g=0;g<16;g++) //扫描的列数{for(k=0;k<2;k++) //二维数组一行为32个数据,每两个数据转换为16二进制放在行线上,高位在下,低位在上{for(i=0;i<8;i++){if(((str[j]=str[j]<<i)&0x80)==0) //ROM数据不会改变,ds1=0;else ds1=1;if(((str1[j]=str1[j]<<i)&0x80)==0) ds2=0;else ds2=1;shcp=0;shcp=1;}j++;if(j==32) j=0;//防越界}stcp=0;stcp=1;}}}//左移程序void zy(uchar k) //k设置显示的字数{uchar i,j,e=0,z=0;for(i=0;i<k;i++){for(j=0;j<32;j=j+8) //每2位数据构成行线数据,j每次应加2的倍数,设置j自加的步数可调节每次移动的列数{senddata2(&hz[i][j],sz[0]);if(i==(k-1)) break;}}}//右移void yy(uchar n){ uchar i,j;for(i=0;i<n;i++){for(j=0;j<32;j=j+4){if(i==(n-1)){if(j==0)senddata2(&m[n-i-1][0],sz[0]);break;}else{if(j==0) senddata2(&m[n-1-i][0],sz[0]);else senddata2(&m[n-2-i][32-j],sz[0]);}}}}//void clear() //清屏//{// en//}//主程序void main(){oe=0;/*if (zdxh==0&&zdzy==1&&zdyy==1&&zdsy==1&&zdxy==1) t=1;if (zdxh==1&&zdzy==0&&zdyy==1&&zdsy==1&&zdxy==1) t=2;if (zdxh==1&&zdzy==1&&zdyy==0&&zdsy==1&&zdxy==1) t=3;if (zdxh==1&&zdzy==1&&zdyy==1&&zdsy==0&&zdxy==1) t=4;if (zdxh==1&&zdzy==1&&zdyy==1&&zdsy==1&&zdxy==0) t=5;switch(t){case 1: { zy(10); yy(10); sy(10);xy(10);} break;case 2: { zy(10);} break;case 3: { yy(10);} break;case 4: { sy(10);} break;case 5: { xy(10);} break;} */while(1){ if(zdxh==0)//while(1){zy(10);yy(10);sy(10);xy(10);}if(zdzy==0)//while(1)zy(10);if(zdyy==0)//while(1)yy(10);if(zdsy==0)//while(1)sy(10);if(zdxy==0) // while(1)xy(10);}}电路图:。

16×16点阵LED电子显示屏的设计_864

16×16点阵LED电子显示屏的设计_864

告宣传。

自20世纪八十年代开始,LED电子显示屏的应
用领域已经遍布了交通、电信、教育、广告宣传等
各方面。LED电子显示屏发展较快,其无论在成本
和产生的社会效益等方面都有其独特的优势。
功能介绍
本作品的功能:
可以显示静态的汉字
可以实现动态显示,显 示的内容有左移、右移、 上移、下移等
可以通过上位机(PC机) 更新显示的内容
作品设计介绍
1、点阵发光二极管:LED点阵显示屏通常是由若 干块LED点阵显示模块组成。8×8点阵是最基本 的单元模块,它由64个发光二极管组成,每个发 光二极管是放置在行线和列线的交叉点上。所以 由四块的8×8点阵就可构成一块16×16点阵模块。
2、图文显示原理: 控制相关位置的发光二极管的点亮
要性,培养了我们团结合作、吃苦耐劳
的精神,而且更让我们认识到一个团队
只有具备良好的团结协作精神才能做出
出色的作品!
谢 谢 大 家!
The end
祝电子设计大赛圆 满成功!!
16×16点阵LED电子显示屏的设计
16×16点阵LED电子 显示屏的设计
硬件设计: 软件设计: 报告设计:
背景介绍

LED电子显示屏是利用发光二极管点阵模块
组成的平面式显示屏幕。他具有发光效率高、使用
寿命长、组态灵活、色彩丰富以及对室内外环境适
应能力强等优点,并广泛用于公交汽车、码头、商
店、学校和银行等公共场合,用于信息的发布和广
或熄灭,即可产生文字或图案的效果。通常把要显示的 图形或文字转换成点阵,再按照显示控制的要求以一定 的格式形成显示数据。
3、硬件电路设计

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

16乘16点阵LED电子显示屏的设计
概述
本文将讨论16乘16点阵LED电子显示屏的设计。

这是一个可以显示图形和文字的电子屏幕,使用16列和16行LED灯来组成一个点阵,可以显示256个像素。

这样的屏幕可以广泛应用于科技展示、娱乐游戏和家庭电子设备等领域。

设计
硬件
LED灯
基本的LED操作和驱动电路在这里不再赘述。

需要注意的是,对于16行LED 灯和16列LED灯,需要使用合适的电流控制电路并且保证它们可以受到足够的电流。

此外,将需要16个NPN晶体管来控制16列LED灯,和16个PNP晶体管来控制16行LED灯。

控制器
在控制器的选择上推荐使用ATmega328p微控制器。

这个控制器也是Arduino Uno的基础。

软件
代码结构
代码文件应当按照以下结构进行组织:
Libraries/
SevSeg/
SevSeg.h
LedControl/
LedControl.h
LedControl.cpp
MAX7219.h
MAX7219.cpp
SPI.h
SPI.cpp
16x16LEDMatrix/
16x16LEDMatrix.ino
README.md
这里我们使用SevSeg和LedControl库。

打包
由于ATmega328p微控制器的内存限制,将需要对代码进行压缩,以减小程序的尺寸,使它适合在所预算的存储设备中运行。

可以通过使用压缩工具完成这个任务。

推荐使用zip或tar。

结论
在这篇文档中,我们讨论了16乘16点阵LED电子显示屏的设计。

我们详细介绍了硬件和软件方面的设计需求以及代码结构的组织。

通过对这些内容的了解,你可以开始创建你自己的16乘16点阵LED电子显示屏!。

相关文档
最新文档