595级联16行16列显示单个字点阵屏

合集下载

16x16led点阵滚动汉字显示设计

16x16led点阵滚动汉字显示设计
0x42,0x40,0x7E,0x4C,0x42,0x70,0x7E,0x40,
0x42,0x44,0x42,0x46,0x4A,0x3C,0x44,0x00,/*"能"*/
0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,
0x08,0x10,0x0F,0xF0,0x00,0x00,0xFF,0xFE,
0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,
0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x04,/*"大"*/
0x08,0x20,0x08,0x20,0x08,0x20,0x4B,0xFE,
0x4A,0x22,0x4A,0x22,0x4A,0x22,0x4A,0x22,
if(k>112) k=0;
}
}
有什么问题可能联系版主,关注微博即可联系。本人新浪微博地址:/1858560312
0x4A,0x22,0x4A,0x22,0x4A,0x22,0x12,0x2E,
0x12,0x24,0x20,0x20,0x40,0x20,0x80,0x20,/*"帅"*/
0x00,0x00,0x7F,0xFC,0x00,0x10,0x1F,0x90,
0x10,0x90,0x1F,0x90,0x10,0x90,0x00,0x04,
下图是电路图连接图下面是74hc1544线16线译码器引脚说明以及地址全能输入对应的输出表
下面给大家介绍下我制作的16*16led点阵设计,希望与各位电子爱好者共同讨论,共同进步。
下图是电路图连接图
下面是74HC1544线-16线译码器引脚说明,以及地址/全能输入对应的输出表。

单片机课程设计---16×16点阵式汉字显示

单片机课程设计---16×16点阵式汉字显示

目录摘要 (1)Abstract (2)1设计原理 (3)1.1 MCS-51单片机的结构及编程方法 (3)1.2 16*16点阵LED原理 (5)1.3 3-8译码器原理 (6)2.设计方案介绍 (7)2.1 设计总体思路 (7)2.2 与题目相关的具体设计 (7)2.3程序设计流程图 (8)3.源程序,原理图和仿真图 (9)3.1程序清单(见附录) (9)3.2电路图 (9)3.2.1电路原理图 (9)3.2.2电路图分析 (9)3.3仿真图 (10)4性能分析 (11)5.总结和心得 (12)6.参考文献 (13)附录:程序代码 (14)摘要LED点阵显示屏作为一种新兴的显示器件,是由多个独立的LED发光二极管封装而成. LED点阵显示屏可以显示数字或符号, 通常用来显示时间、速度、系统状态等。

文章给出了一种基于MCS-51单片机的16×16 点阵LED显示屏的设计方案。

包括系统具体的硬件设计方案,软件流程图和部分汇编语言程序等方面。

在负载范围内, 只需通过简单的级联就可以对显示屏进行扩展,是一种成本低廉的图文显示方案。

关键词:MCS-51;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 paper introduces a kind of simple 16x16 LED display screen design process based on MCS-51 single chip minicomputer . The detail hardware scheme, software flow and assemble language programmer design and so on is followed. The display part can be cascaded to meet the need. The practice proves the design is low-cost and effective.Key words: MCS-51;LED;MCU1设计原理1.1 MCS-51单片机的结构及编程方法MCS-51单片机的组成: CPU(进行运算、控制)、RAM(数据存储器)、ROM(程序存储器)、I/O口(串口、并口)、内部总线和中断系统等。

16×16点阵汉字显示

16×16点阵汉字显示

16×16点阵汉字显示作者:吕宁钱璟来源:《教育界》2011年第04期点阵汉字显示以其组成方式灵活、显示稳定、功耗低、寿命长、技术成熟、成本低廉等特点,在车站、证券所、运动场馆、交通干道及各种室内外场合得到广泛的应用。

本文介绍一种16×16 点阵汉字的显示方法,使用了256 个高量度发光二极管,组成了16 行16 列的发光点阵。

该显示屏可以显示各种文字或单色图像,全屏能显示1 个汉字。

一、汉字显示的原理:国标汉字库中的每一个字均由16 行×16 列组成的256点阵来表示。

我们可以把每一个点理解为一个像素,把每一个字的字形理解为一幅图像。

选用8 位的STC89C52 单片机作为控制芯片。

由于单片机的口线为8 位,所以将一个汉字拆分为2 个部分,即上部和下部,上部由8 16 点阵组成,下部也由8 16 点阵组成。

下面我们来显示汉字“大”。

(见图1)图1" 汉字“大” 的点阵显示本系统选用STC89C52 单片机作为控制芯片。

它共有32 个I/O 口。

如果将16×16 组成的256 点阵用到的16 行、16 列,全部接入STC89C52 单片机的32 个I/O 口,这会造成I/O 资源的耗尽,系统再使用I/O 口就无余地。

为此,我们设计了用4-16 译码器74LS154 来完成16 列方向的扫描。

行方向的1-8 线接在P0.0———P0.7 口,9-16 线接在P2.0———P2.7 口。

列的方向由P1.0———P1.3 口输出到4—16 译码器74LS154 的4 线输入端,再经过译码,输出16 列,完成列扫描。

(见图2)图2" 16×16 点阵系统方框图单片机首先显示的是左上角第一列的上半部分,即第0 列的P0.0———P0.7 口。

方向为P0.0 到P0.7,显示汉字“大” 时,P0.5 点亮,由上往下排列,为P0.0 灭, P0.1= 灭, P0.2 灭P0.3 灭, P0.4 灭, P0.5 亮, P0.6 灭, P0.7= 灭。

16X16点阵(74HC595作列驱动)C源程序

16X16点阵(74HC595作列驱动)C源程序

#include<reg51.h>sbit SET=P3^5;sbit ADD=P3^6;sbit SUB=P3^7;sbit LOCK=P3^2;sbit DAT=P3^0;sbit CLK=P3^1;unsigned char cnt,cnt2,line,*p,*old;char speed;bit sec,key_mark;unsigned char code Matrix001[32]={/*------------------------------------------------------------------------------; 源文件 / 文字: 临; 宽×高(像素) : 16×16------------------------------------------------------------------------------*/0x08,0x80,0x08,0x80,0x08,0x80,0x49,0xFE,0x49,0x40,0x4A,0x20,0x4C,0x20 ,0x48,0x00,0x49,0xFC,0x49,0x24,0x49,0x24,0x49,0x24,0x49,0x24,0x09,0xFC,0x09,0x04 ,0x08,0x00};unsigned char code Matrix002[32]={/*------------------------------------------------------------------------------; 源文件 / 文字:沂; 宽×高(像素) : 16×16------------------------------------------------------------------------------*/0x00,0x08,0x20,0x3C,0x13,0xC0,0x12,0x00,0x82,0x00,0x42,0x00,0x43,0xFE ,0x12,0x10,0x12,0x10,0x22,0x10,0xE2,0x10,0x22,0x10,0x22,0x10,0x24,0x10,0x24,0x10 ,0x08,0x10};unsigned char code Matrix003[32]={/*------------------------------------------------------------------------------; 源文件 / 文字: 大; 宽×高(像素) : 16×16------------------------------------------------------------------------------*/0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00 ,0x01,0x00,0x02,0x80,0x02,0x80,0x04,0x40,0x04,0x40,0x08,0x20,0x10,0x10,0x20,0x08 ,0xC0,0x06};unsigned char code Matrix004[32]={/*------------------------------------------------------------------------------; 源文件 / 文字: 学; 宽×高(像素) : 16×16------------------------------------------------------------------------------*/0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04 ,0x1F,0xE0,0x00,0x40,0x01,0x80,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00 ,0x02,0x00};unsigned char code Matrix005[32]={/*------------------------------------------------------------------------------; 源文件 / 文字: 信; 宽×高(像素) : 16×16------------------------------------------------------------------------------*/0x08,0x40,0x08,0x20,0x0B,0xFE,0x10,0x00,0x10,0x00,0x31,0xFC,0x30,0x00 ,0x50,0x00,0x91,0xFC,0x10,0x00,0x10,0x00,0x11,0xFC,0x11,0x04,0x11,0x04,0x11,0xFC ,0x11,0x04};unsigned char code Matrix006[32]={/*------------------------------------------------------------------------------; 源文件 / 文字: 息; 宽×高(像素) : 16×16------------------------------------------------------------------------------*/0x01,0x00,0x02,0x00,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0 ,0x10,0x10,0x1F,0xF0,0x10,0x10,0x01,0x00,0x08,0x84,0x48,0x92,0x48,0x12,0x87,0xF0 ,0x00,0x00};unsigned char code Matrix007[32]={/*------------------------------------------------------------------------------; 源文件 / 文字: 学; 宽×高(像素) : 16×16------------------------------------------------------------------------------*/0x22,0x08,0x11,0x08,0x11,0x10,0x00,0x20,0x7F,0xFE,0x40,0x02,0x80,0x04 ,0x1F,0xE0,0x00,0x40,0x01,0x80,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00 ,0x02,0x00};unsigned char code Matrix008[32]={/*------------------------------------------------------------------------------; 源文件 / 文字: 院; 宽×高(像素) : 16×16------------------------------------------------------------------------------*/0x00,0x40,0x78,0x20,0x4B,0xFE,0x52,0x02,0x54,0x04,0x61,0xF8,0x50,0x00 ,0x48,0x00,0x4B,0xFE,0x48,0x90,0x68,0x90,0x50,0x90,0x41,0x12,0x41,0x12,0x42,0x0E ,0x44,0x00};unsigned char code Matrix009[32]={/*------------------------------------------------------------------------------; 源文件 / 文字: 0; 宽×高(像素) : 16×16------------------------------------------------------------------------------*/0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x1C,0x38,0x38,0x1C,0x38,0x1C ,0x78,0x1E,0x78,0x1E,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x1C,0x38,0x07,0xE0,0x00,0x00 ,0x00,0x00};unsigned char code Matrix010[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x0F,0xC0,0x01,0xC0,0x01,0xC0 ,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x1F,0xF8,0x00,0x00 ,0x00,0x00}; //1unsigned char code Matrix011[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x18,0x18,0x38,0x1C,0x38,0x1C ,0x00,0x38,0x00,0x70,0x01,0xC0,0x07,0x00,0x0C,0x04,0x3F,0xFC,0x3F,0xFC,0x00,0x00 ,0x00,0x00}; //2unsigned char code Matrix012[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x38,0x38,0x38,0x18,0x00,0x38 ,0x03,0xF0,0x03,0xF0,0x00,0x18,0x00,0x1C,0x38,0x1C,0x38,0x18,0x1F,0xF0,0x00,0x00,0x00,0x00}; //3unsigned char code Matrix013[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0xF0,0x01,0xF0,0x02,0x70 ,0x0C,0x70,0x18,0x70,0x30,0x70,0x3F,0xFE,0x00,0x70,0x00,0x70,0x03,0xFE,0x00,0x00 ,0x00,0x00}; //4unsigned char code Matrix014[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFC,0x18,0x00,0x18,0x00,0x18,0xC0 ,0x1F,0xF8,0x18,0x1C,0x00,0x1C,0x10,0x1C,0x38,0x1C,0x38,0x18,0x0F,0xF0,0x00,0x00 ,0x00,0x00}; //5unsigned char code Matrix015[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF8,0x0C,0x38,0x18,0x10,0x38,0x00 ,0x3F,0xF8,0x7C,0x1C,0x78,0x0C,0x38,0x0E,0x38,0x0C,0x1C,0x18,0x0F,0xF0,0x00,0x00 ,0x00,0x00}; //6unsigned char code Matrix016[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xFE,0x38,0x0C,0x30,0x10,0x00,0x30 ,0x00,0x60,0x00,0xC0,0x01,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00 ,0x00,0x00}; //7unsigned char code Matrix017[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x38,0x1C,0x30,0x0C,0x3C,0x1C ,0x1F,0xF0,0x0F,0xF0,0x38,0x78,0x70,0x1C,0x70,0x0C,0x38,0x18,0x0F,0xF0,0x00,0x00 ,0x00,0x00}; //8unsigned char code Matrix018[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x38,0x18,0x30,0x1C,0x70,0x1C ,0x70,0x1C,0x38,0x3C,0x1F,0xDC,0x00,0x1C,0x18,0x38,0x3C,0x70,0x1F,0xE0,0x00,0x00 ,0x00,0x00};//9unsigned char code Matrix019[32]={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,0x00,0x00,0x00 ,0x00,0x00};//kong geunsigned char code Matrix020[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x18,0x18,0x38,0x1C,0x38,0x1C ,0x00,0x38,0x00,0x70,0x01,0xC0,0x07,0x00,0x0C,0x04,0x3F,0xFC,0x3F,0xFC,0x00,0x00 ,0x00,0x00};//2unsigned char code Matrix021[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x1C,0x38,0x38,0x1C,0x38,0x1C ,0x78,0x1E,0x78,0x1E,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x1C,0x38,0x07,0xE0,0x00,0x00 ,0x00,0x00};//0unsigned char code Matrix022[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x0F,0xC0,0x01,0xC0,0x01,0xC0 ,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x1F,0xF8,0x00,0x00 ,0x00,0x00};//1unsigned char code Matrix023[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x0F,0xC0,0x01,0xC0,0x01,0xC0 ,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x1F,0xF8,0x00,0x00 ,0x00,0x00};//1unsigned char code Matrix024[32]={0x10,0x00,0x10,0x00,0x1F,0xFC,0x20,0x80,0x20,0x80,0x40,0x80,0x1F,0xF8 ,0x10,0x80,0x10,0x80,0x10,0x80,0xFF,0xFE,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80 ,0x00,0x80};//年unsigned char code Matrix025[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x38,0x1C,0x30,0x0C,0x3C,0x1C ,0x1F,0xF0,0x0F,0xF0,0x38,0x78,0x70,0x1C,0x70,0x0C,0x38,0x18,0x0F,0xF0,0x00,0x00 ,0x00,0x00};//8unsigned char code Matrix026[32]={0x00,0x00,0x1F,0xF8,0x10,0x08,0x10,0x08,0x10,0x08,0x1F,0xF8,0x10,0x08 ,0x10,0x08,0x10,0x08,0x1F,0xF8,0x10,0x08,0x10,0x08,0x20,0x08,0x20,0x08,0x40,0x28 ,0x80,0x10};//月unsigned char code Matrix027[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xC0,0x0F,0xC0,0x01,0xC0,0x01,0xC0 ,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x1F,0xF8,0x00,0x00 ,0x00,0x00};//1unsigned char code Matrix028[32]={0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10 ,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x1F,0xF0 ,0x10,0x10};//日unsigned char code Matrix029[32]={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,0x00,0x00,0x00 ,0x00,0x00};//kong geunsigned char code Matrix030[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF0,0x1C,0x38,0x38,0x1C,0x38,0x1C ,0x78,0x1E,0x78,0x1E,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x1C,0x38,0x07,0xE0,0x00,0x00 ,0x00,0x00};//0unsigned char code Matrix031[32]={0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x38,0x18,0x30,0x1C,0x70,0x1C ,0x70,0x1C,0x38,0x3C,0x1F,0xDC,0x00,0x1C,0x18,0x38,0x3C,0x70,0x1F,0xE0,0x00,0x00 ,0x00,0x00};//9unsigned char code Matrix032[32]={0x10,0x00,0x13,0xFC,0x20,0x84,0x20,0x88,0x48,0x88,0xF8,0x90,0x10,0x9C ,0x20,0x84,0x41,0x44,0xF9,0x44,0x41,0x28,0x01,0x28,0x1A,0x10,0xE2,0x28,0x44,0x44 ,0x01,0x82};//级unsigned char code Matrix033[32]={0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08 ,0x3F,0xF8,0x21,0x08,0x21,0x08,0x21,0x08,0x3F,0xF8,0x21,0x0A,0x01,0x02,0x01,0x02 ,0x00,0xFE};//电unsigned char code Matrix034[32]={0x00,0x00,0x7F,0xF8,0x00,0x10,0x00,0x20,0x00,0x40,0x01,0x80,0x01,0x00 ,0xFF,0xFE,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00 ,0x02,0x00};//子unsigned char code Matrix035[32]={0x08,0x40,0x08,0x20,0x0B,0xFE,0x10,0x00,0x10,0x00,0x31,0xFC,0x30,0x00 ,0x50,0x00,0x91,0xFC,0x10,0x00,0x10,0x00,0x11,0xFC,0x11,0x04,0x11,0x04,0x11,0xFC ,0x11,0x04};//x信unsigned char code Matrix036[32]={0x01,0x00,0x02,0x00,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0 ,0x10,0x10,0x1F,0xF0,0x10,0x10,0x01,0x00,0x08,0x84,0x48,0x92,0x48,0x12,0x87,0xF0 ,0x00,0x00};//息unsigned char code Matrix037[32]={0x00,0x00,0x00,0x00,0x7F,0xFC,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00 ,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x00,0x00 ,0x00,0x00unsigned char code Matrix038[32]={0x08,0x00,0x1D,0xFC,0xF1,0x04,0x11,0x04,0x11,0x04,0xFD,0xFC,0x10,0x00 ,0x30,0x00,0x39,0xFE,0x54,0x20,0x54,0x20,0x91,0xFC,0x10,0x20,0x10,0x20,0x13,0xFE ,0x10,0x00};//程unsigned char code end;void SendData(unsigned char*q){unsigned char i,t;t=*q;for(i=0;i<16;i++){if(i==8)t=*(q+1);if(t&1)DAT=1;elseDAT=0;CLK=0;CLK=1;t>>=1;}LOCK=0;LOCK=1;}void t0() interrupt 1{TH0=-50000>>8;TL0=-50000;if(++cnt2>1)cnt2=0;sec=1;}}void t1() interrupt 3{TH1=-1000>>8;TL1=-1000;if(++cnt>=speed){cnt=0;if(++line>15)line=0;P1=P2=0xff;SendData(p+(line<<1));if(line<8)P1=~(1<<line);elseP2=~(1<<(line-8));}}void delay(){unsigned char i,j;for(i=0;i<4;i++)for(j=0;j<100;j++);}void key(){if(!SET){}else if(!ADD){speed+=4;}else if(!SUB){speed-=4;if(speed<=1)speed=1;}}void init_t0(){TH0=-50000>>8;TL0=-50000;TMOD|=0X01;IE|=0X82;}void init_t1(){TH1=-1000>>8;TL1=-1000;TMOD|=0X10;IE|=0X88;}void delay500ms(){char n;IE=0X88; //DISABLE T0 INTERRUPT for(n=0;n<10;n++){TH0=-50000>>8;TL0=-50000;while(!TF0);TF0=0;}IE=0X8A;}main(){old=p=Matrix001;init_t0();init_t1();speed=0;TR0=TR1=1;while(1){if((!SET ||!ADD ||!SUB) &&!key_mark){delay();if(!SET ||!ADD ||!SUB){key();key_mark=1;}}else if(SET && ADD && SUB )key_mark=0;if(sec){sec=0;p+=2;if(p>=old+32){old=p;delay500ms();}if(p>=&end)p=Matrix001;}}。

基于单片机的16×16LED点阵显示屏设计

基于单片机的16×16LED点阵显示屏设计

编号毕业设计(论文)题目基于单片机的16×16LED点阵显示屏设计二级学院电子信息与自动化学院专业测控技术与仪器班级测控一班学生姓名丁徽徽学号 11107030106指导教师米曾真职称副教授时间 2015年6月6日目录摘要 .................................................................................................................................................... Abstract . (I)第一章绪论 01.1 单片机的发展阶段 01.2 单片机的发展趋势 01.3 单片机的特点 (2)1.4 LED简介 (3)1.5 LED的特点 (4)第二章功能要求及方案论证 (5)2.1 功能要求 (5)2.2 显示模块方案论证 (5)第三章系统电路的硬件设计 (8)3.1 设计框图 (8)3.2 单片机的选择 (8)3.3 AT89C51芯片简介 (9)3.4 系统硬件电路的设计 (12)第四章系统的程序设计 (21)4.1程序的编写过程 (21)4.2 程序设计流程图 (23)第五章软件调试及硬件制作 (24)5.1 软件调试及仿真 (24)5.2 硬件制作 (27)结束语 (28)致谢 (29)附录 (36)附录A:16*16点阵显示屏设计程序 (36)附录B:proteus ISIS 软件仿真图 (47)附录C:供电以后16*16点阵实物效果图 (48)附录D:元器件清单列表 (49)摘要本设计是基于单片机AT89C51为核心的由4个8×8的点阵显示屏形成的16×16点阵显示屏设计。

系统的介绍了由AT89C51为控制系统的点阵显示屏动态设计过程。

通过该芯片AT89C51控制一个行驱动器4-16线74HC154译码器和两个列驱动器74HC595级联成串行输入并行输出的移位寄存器来驱动显示屏,该显示屏能显示汉子、字符和图形等。

16-16点阵LED显示汉字总汇编语言

16-16点阵LED显示汉字总汇编语言

LED16X16点阵显示课程设计报告学院专业班级学生姓名指导老师二0一0年十二月一、设计目的本次课程设计目的剖析试验箱,利用微机接口芯片8255,并行控制LED点阵显示;其次就是掌握8088微机系统与LED点阵显示模块之间接口电路设计及编程,了解LED点阵显示的基本原理和如何来实现汉字的的循环左移显示。

二、设计内容利用598H试验系统扩展接口CZ7座,在控制板MC1上以并行通信的方式控制LED 点阵显示。

要求自建字库,编制程序实现点阵循环左移显示汉字,并要求通过protues仿真软件画出电路图,运行程序。

三、硬件电路设计整个电路由8088CPU,两片8255,1个74ls373,1个74LS138,1个16×16的LED,5个7407。

该电路可静态显示1个16*16位的汉字,也可循环显示。

1、8255Intel8255A是一种通用的可编程序并行I/O接口芯片,又称“可编程外设接口芯片”,是为Intel8080/8085系列微处理据设计的,也可用于其它系列的微机系统。

可由程序来改变其功能,通用性强、使用灵活。

通过8255A,CPU可直接同外设相连接,是应用最广的并行I/O接口芯片。

其中含3个独立的8位并行输入/输出端口,各端口均具有数据的控制和锁存能力。

可通过编程设置各端口的工作方式和数据传送方向(入/出/双向)。

2、138译码器译码器是组合逻辑电路的一个重要的器件,74LS138的输出是低电平有效,故实现逻辑功能时,输出端不可接或门及或非门,74LS138与前面不同,其有使能端,故使能端必须加以处理,否则无法实现需要的逻辑功能。

发光二极管点亮只须使其正向导通即可,根据LED的公共极是阳极还是阴极分为两类译码器,即针对共阳极的低电平有效的译码器;针对共阴极LED的高电平输出有效的译码器。

3、373锁存器74LS373是低功耗肖特基TTL8D锁存器,内有8个相同的D型(三态同相)锁存器,由两个控制端(11脚G或EN;1脚OUT、CONT、OE)控制。

16×16点阵LED电子显示屏设计报告.

16×16点阵LED电子显示屏设计报告.
2.2数据传输和显示方案
采用扫描方式进行显示时,每行一个行驱动器,各行的同名列共用一个列驱动器。显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。显示时要把一行中各列的数据都传送到相应的列驱动器上,这就存在着一个显示数据传输的问题。从控制电路到列驱动器的数据传输可以采用并行方式或串行方式。显然,采用并行方式时,从控制电路到列驱动器的线路数量大,相应的硬件数目多。当列数很多时,并行传输的方案不可取。
3.3列驱动电路
列驱动器由集成电路74HC595构成。它具有一个8位串入并出的移位寄存器和一个8位输出锁存器的结构,而且移位寄存器和输出锁存器的控制是各自独立的,可以实现在显示本行各列数据的同时,传送下一行的列数据,即达到重叠处理的目的。
引脚SI为串行数据输入端,与单片机串口RXD(P3.0)相连,用来传送数据;引脚SCK为移位寄存器的移位时钟脉冲,与单片机串口TXD(P3.1)相连;引脚SCLR信号是移位寄存器的清0输入端,低电平有效,接与单片机P1.5口;RCLK是输出寄存器的打入信号,与单片机P1.6口相接;
静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定,占用很少的CPU时间。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。
如果用静态显示的方法,16×16的点阵共有256个发光二极管,单片机没有那么多的端口,如果用锁存器来扩展端口,按8位锁存器来计算,也需要32个锁存器。两位显示就需要64个锁存器。因此在实际应用中的显示屏几乎都不采用静态显示,而是采用动态扫描的显示方法。

16x16点阵显示

16x16点阵显示

第二十四组第二阶段总结报告16*16点阵屏实现汉字跑马成员:李爽郝冠郭剑楠———————————————————————————基于单片机的16位点阵LED控制摘要:显示设备在设计中必不可少,点阵LED是显示设备中比较重要的一种。

本文的设计是基于单片机系统的基本模块的一部分。

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

它以其色彩鲜艳,动态范围广,亮度高,寿命长,工作稳定可靠等优点而成为众多显示媒体以及户外作业显示的理想选择。

同时也可广泛应用到军事、车站、宾馆、体育、新闻、金融、证券、广告以及交通运输等许多行业。

本次设计的点阵显示屏主要是通过单片机直接控制行扫描,然后用74LS138来控制列扫描。

这个设计的软硬件都成功通过了PROTEUS的仿真调试。

关键词:单片机;点阵;滚动显示1.系统方案设计与比较方案一:用两片74hc373和一片74hc154,如下图所示,其中74hc154控制列,两个锁存器控制行。

这样可以实现汉字跑马,但是,电路图过于复杂,有十六个三极管,增加了实验的难度方案二:使用四片74hc138,其中两片74HC138三八译码器实现点阵控制,用另外两个138控制点阵的行(列),用两个单片机I/O口控制点阵的列(行)实现扫描显示。

扫描点阵共用I/O口21个,并却只能实现上下跑马(138控制行),或左右跑马(138控制列)。

综上所述:从方便好用,功能实现上考虑采用第而种方案。

具体电路图如图:2.程序设计如下:#include <reg52.h>#define int8 unsigned char #define int16 unsigned int int8 n;int8 code table[][32]={{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00},/*显示一个空屏*/{/*大 CB4F3 */0x01,0x04,0x01,0x04,0x02,0x04,0x04,0x04,0x08,0x04,0x30,0x04,0xC0,0x04,0x00,0xFF,0xC0,0x04,0x30,0x04,0x08,0x04,0x04,0x04,0x02,0x04,0x01,0x04,0x01,0x04,0x00,0x00},{/*航 CBABD */0x01,0x01,0xFE,0x3F,0x40,0x69,0x32,0xA7,0x01,0x21,0xFE,0x3F,0x01,0x00,0x06,0x10,0xF8,0x13,0x00,0x92,0x00,0x52,0xFC,0x13,0x02,0x10,0x02,0x10,0x1E,0x00,0x00,0x00},{/*院 CD4BA */0x00,0x00,0xFF,0x7F,0x20,0x44,0x10,0x5A,0xE0,0x61,0x01,0x08,0x82,0x30,0x8C,0x24,0xF0,0x24,0x80,0xA4,0x80,0x64,0xFC,0x24,0x82,0x24,0x82,0x28,0x8E,0x30,0x00,0x00},{/*李 CC0EE */0x10,0x01,0x10,0x21,0x10,0x23,0x10,0x22,0x90,0x26,0x92,0x2C,0x91,0x38,0x9F,0xFF,0x10,0x22,0x10,0x23,0x10,0x21,0x10,0x01},{/*爽 CCBAC */0x01,0x00,0x01,0x20,0xA3,0x2A,0x42,0x24, 0xE6,0x2E,0x8C,0x2A,0x38,0x20,0xF0,0xFF, 0xF0,0xFF,0x08,0x20,0xAC,0x2A,0x46,0x24, 0xE2,0x2E,0xA3,0x2A,0x01,0x20,0x01,0x00},{/*郝 CBAC2 */0x11,0x02,0x73,0x22,0x0E,0x22,0xFC,0x23, 0xF2,0xFF,0x01,0xFE,0xFF,0x23,0x40,0x22, 0x70,0x22,0x00,0x00,0xFF,0x7F,0xFF,0x7F, 0x18,0x44,0x18,0x5F,0xF0,0x7B,0xE0,0x60},{/*冠 CB9DA */0x01,0x10,0x03,0x71,0x0E,0x69,0xFC,0x49, 0x00,0x49,0xFC,0x49,0xFE,0x49,0x02,0x49, 0x02,0x42,0x82,0x42,0xD2,0x42,0x0A,0x42, 0xFA,0x4F,0xF2,0x5F,0x1E,0x72,0x1E,0x62},{/*郭 CB9F9 */0x08,0x20,0x88,0x2E,0x8A,0x2E,0x89,0xAA, 0xBF,0xEA,0xFE,0x6A,0xD0,0x2E,0x90,0x2E, 0x00,0x00,0xFF,0x7F,0xFF,0x7F,0x18,0x44, 0x18,0x5F,0xF0,0x7B,0xE0,0x60,0x00,0x00},{/*剑 CBDA3 */0x00,0x02,0x22,0x04,0x3B,0x0E,0x9B,0x3A,0xE4,0x0C,0x04,0x00,0xF0,0x1F,0xF2,0x1F,0x01,0x00,0xFF,0xFF,0xFE,0xFF,0x00,0x00},{/*楠 CE9AA */0x20,0x08,0xE0,0x08,0x00,0x0B,0xFF,0xFF,0xFF,0xFF,0x80,0x09,0xFF,0x2F,0xFF,0x27,0x90,0x26,0x90,0x27,0xFE,0xFD,0xFE,0xFD,0x92,0x27,0x01,0x26,0xFF,0x27,0xFE,0x27},{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0 0,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,0x00,0x00,0x00,0x00,0x0 0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ,0x00,0x00,0x00},//显示两个空屏};void delay(void);int16 offset;void main(void){int8 i;int8 *p;n=0;TMOD=0x01;TH0=0xc5;TL0=0x68;//10ms定时 ET0=1;EA=1;TR0=1;p=&table[0][0];while (1){for (i=0;i<8;i++) //显示左半屏{P0=*(p+offset+2*i);P2=i|0x08; //P2.4=0,P2.3=1 选中U2, 输出扫描码给U6 delay();P0=*(p+offset+2*i+1);P2=i|0x10; //P2.4=1,P2.3=0 选中U3, 输出扫描码给U7 delay();}for (i=8;i<16;i++) //显示右半边屏幕{P0=*(p+offset+2*i);P2=(i-8)|0x20; //P2.5=1 P2.4=0, P2.3=0 选中U4,输出扫描码U8 delay();P0=*(p+offset+2*i+1);P2=(i-8)|0x40; //P2.6=1 P2.5=0, P2.4=0 选中U5,输出扫描码U9 delay();} } }void delay(void){int16 i;for (i=0;i<50;i++);}void timer0() interrupt 1 using 3 {TH0=0xd8;TL0=0xf0;if (n<10){n++;}else{offset+=2;if (offset>360)offset=0;n=0;} }。

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

#include<reg52.h>#include<intrins.h>//第13脚接地,第10脚接高。

#define uchar unsigned char#define uint unsigned int//Hang(行)低电平有效,Lie(列)高电平有效sbit LSer=P1^3;//595串行数据输入,第14脚sbit LSck=P1^4;//595移位时钟,高电平有效,11脚sbit LRck=P1^5;//595锁存时钟,高电平有效,12脚sbit HSer=P1^0;//595串行数据输入,第14脚.sbit HSck=P1^1;//595移位时钟,高电平有效,11脚sbit HRck=P1^2;//595锁存时钟,高电平有效,12脚unsigned char code table[];unsigned char temp[32];void LieHC595(uchar SendV al2,uchar SendVal){uchar i;for(i=0;i<8;i++){if((SendVal<<i)&0x80)LSer=1;else LSer=0;LSck=0;_nop_(); LSck=1;}for(i=0;i<8;i++){if((SendVal2<<i)&0x80)LSer=1;else LSer=0;LSck=0;_nop_();LSck=1;}LRck=0;_nop_();LRck=1;//0到1:锁存器输出_nop_();LRck=0;//1到0:锁存器锁存}uint length()//计算有多少个数组{uint num=0;while(table[num]!=0xff)//0xff结束标志位,在table中设定num=num+32;//32个算一个字return num/32;//}void display(){uchar i;HSer=0;for(i=0;i<16;i++){LieHC595(0,0);////清屏HSck=0;_nop_();HSck=1;HRck=0;_nop_();HRck=1;//0到1:锁存器输出_nop_();HRck=0;//1到0:锁存器锁存HSer=1;//列转换LieHC595(temp[i*2],temp[i*2+1]);}}void adjust()//调节{unsigned char temp2[32];uchar j,k,a;static uchar i=0;for(j=0;j<32;j++)//给temp赋前一个字的值{temp[j]=table[j+i*32];}i++;if(i>=length())//计算长度i=0;for(j=0;j<32;j++)//给temp2赋后一个字的值{temp2[j]=table[j+i*32];}for(k=0;k<16;k++)//移动16次正好是一个字{a=5;//这里可以调节显示的速度while(a--)//循环延时display();//显示for(j=0;j<16;j++)//在移动一个字时,每个字有16行需要移动{temp[j*2]=(temp[j*2]<<1);//每一行有两个字节,把高8位右移if(temp[j*2+1]&0x80)//如果低8位中的最高位为1temp[j*2]=temp[j*2]|0x01;//高8位的最低位补1,否则自动补0temp[j*2+1]=temp[j*2+1]<<1;//同上,但这里是下一个字的,注意移位与判断就行if(temp2[j*2]&0x80)temp[j*2+1]=temp[j*2+1]|0x01;temp2[j*2]=(temp2[j*2]<<1);//同上if(temp2[j*2+1]&0x80)temp2[j*2]=temp2[j*2]|0x01;temp2[j*2+1]=(temp2[j*2+1]<<1);//这里以后就是下下一个字了,所以下面不用判断}}}void Init(){uchar j,a;for(j=0;j<32;j++)//给temp赋第一个字的值{temp[j]=table[j];}a=50;while(a--)display();}void main(){Init();//显示第一个字while(1){adjust();//循环显示}}unsigned char code table[]={//存放文字的数组/*-- 文字: 努--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x00,0x10,0x00,0xFE,0xFC,0x22,0x84,0x44,0x88,0x28,0x50,0x10,0x20,0x28,0x58,0xC5,0x86,0x02,0x00,0x02,0x00,0x7F,0xF8,0x04,0x08,0x08,0x08,0x10,0x50,0x60,0x20,/*-- 文字: 力--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x02,0x00,0x02,0x00,0x02,0x00,0x02,0x00,0x7F,0xF8,0x02,0x08,0x02,0x08,0x02,0x08,0x02,0x08,0x04,0x08,0x04,0x08,0x08,0x08,0x08,0x08,0x10,0x88,0x20,0x50,0x40,0x20,/*-- 文字: 奋--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x7F,0xFC,0x02,0x80,0x04,0x40,0x08,0x20,0x30,0x18,0xC0,0x06, 0x1F,0xF0,0x11,0x10,0x11,0x10,0x1F,0xF0,0x11,0x10,0x11,0x10,0x1F,0xF0,0x10,0x10,/*-- 文字: 斗--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x40,0x04,0x40,0x02,0x40,0x02,0x40,0x10,0x40,0x08,0x40,0x08,0x40,0x00,0x40, 0x00,0xFE,0x7F,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,0x00,0x40,/*-- 文字: !--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, 0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,/*-- 文字: 创--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x08,0x04,0x08,0x04,0x14,0x04,0x12,0x24,0x21,0x24,0x40,0xA4,0xBE,0x24,0x22,0x24, 0x22,0x24,0x22,0x24,0x2A,0x24,0x24,0x24,0x20,0x84,0x20,0x84,0x1F,0x94,0x00,0x08,/*-- 文字: 造--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x40,0x22,0x40,0x13,0xF8,0x14,0x40,0x00,0x40,0x07,0xFC,0xF0,0x00,0x10,0x00, 0x13,0xF8,0x12,0x08,0x12,0x08,0x13,0xF8,0x12,0x08,0x28,0x00,0x47,0xFE,0x00,0x00,/*-- 文字: 美--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x08,0x20,0x04,0x40,0x7F,0xFC,0x01,0x00,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00, 0xFF,0xFE,0x01,0x00,0x01,0x00,0x7F,0xFC,0x02,0x80,0x04,0x40,0x18,0x30,0xE0,0x0E,/*-- 文字: 好--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x00,0x10,0xFC,0x10,0x04,0x10,0x08,0xFC,0x10,0x24,0x20,0x24,0x20,0x25,0xFE, 0x24,0x20,0x48,0x20,0x28,0x20,0x10,0x20,0x28,0x20,0x44,0x20,0x84,0xA0,0x00,0x40,/*-- 文字: 未--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x01,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE, 0x03,0x80,0x05,0x40,0x09,0x20,0x11,0x10,0x21,0x08,0xC1,0x06,0x01,0x00,0x01,0x00,/*-- 文字: 来--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFC,0x01,0x00,0x11,0x10,0x09,0x10,0x09,0x20, 0xFF,0xFE,0x03,0x80,0x05,0x40,0x09,0x20,0x31,0x18,0xC1,0x06,0x01,0x00,0x01,0x00,/*-- 文字: !--*//*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00,0x10,0x00, 0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0xff};//0xff结束标志位(汉字中没有这个)。

相关文档
最新文档