汉字显示16X16点阵2
16×16点阵汉字设计-左移-右移-翻页-上移-下移-多种方式

一、设计依据16x16点阵需要32个驱动,分别为16个列驱动及16个行驱动。
每个行与每个列可以选中一个发光管,共有256个发光管,采用动态驱动方式。
每次显示一行后再显示下一行。
本设计是利用实验仪上的16×16 LED点阵显示器,编写显示英文、汉字字符程序并进行显示,最好能移动显示。
要求在本设计过程中,通过设计合适的硬件电路及对应的软件,实现上述的控制过程,同时写出合格的课程设计说明书。
二、要求及主要内容1.硬件电路设计(1)完成89C51应用系统设计(晶振电路,上电复位电路等)(2)利用单片机I/O口或以扩展锁存器的方式控制点阵显示。
掌握单片机与16×16点阵块之间接口电路的设计方法。
2.程序设计掌握单片机与16×16点阵块之间接口电路的设计方法及编程要求完成主程序的设计及对应的子程序设计。
3.选芯片, 元件按设计连线4.完成子程序调试5.完成总调试三、途径和方法综合运用单片机和电子电路相关知识,实现本次设计。
进行程序设计时先画流程图再进行程序设计。
子程序调试按以下步骤进行:(1)实验板与PC机联机。
(2)利用实验系统16×16点阵实验单元,以两种方式控制点阵显示。
要求编制程序实现汉字点阵循环显示。
点阵时钟摘要LED点阵显示屏是利用发光二极管点阵模块或像素单元组成的平面式显示屏幕。
它具有发光效率高、使用寿命长、组态灵活、色彩丰富以及对室内外环境适应能力强等优点。
并广泛的应用于公交汽车,码头,商店,学校和银行等公共场合的信息发布和广告宣传。
LED显示屏经历了从单色,双色图文显示屏到现在的全彩色视频显示屏的发展过程,自20世纪八十年代开始,LED显示屏的应用领域已经遍布交通、电信、教育、证券、广告宣传等各方面。
LED点阵显示屏可以显示数字或符号,通常用来显示时间、速度、系统状态等。
文章给出了一种基于MCS-51单片机的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)控制。
protues仿真16x16点阵动态显示文字

等等…………….源程序#include<reg52.h> sbit lh8=P3^6;sbit ll8=P3^7;#define uint unsigned intunsigned char code table[]={/*-- 文字: 宇 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x00,0x80,0x3F,0xFE,0x20,0x04,0x40,0x08,0x1F,0xF0,0x00,0x80,0x00,0x 80,0x7F,0xFC,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x00,0x80,0x02,0x80,0x01,0x 00,/*-- 文字: 洋 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x22,0x10,0x11,0x10,0x11,0x20,0x07,0xFC,0x80,0x40,0x50,0x40,0x57,0xFC,0x10,0x 40,0x20,0x40,0x2F,0xFE,0xE0,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x40,0x20,0x 40,/*-- 文字: 张 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x80,0xF8,0x88,0x08,0x88,0x08,0x90,0x78,0xA0,0x40,0xC0,0x40,0x80,0x43,0x FE,0xF8,0xA0,0x48,0xA0,0x08,0x90,0x08,0x90,0x08,0x88,0x08,0xA4,0x29,0xC4,0x10,0 x80,/*-- 文字: 张 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x80,0xF8,0x88,0x08,0x8C,0x08,0x90,0x78,0xA0,0x40,0xC0,0x40,0x80,0x43,0x FE,0xF8,0xA0,0x48,0xA0,0x08,0x90,0x08,0x90,0x08,0x88,0x08,0xA6,0x29,0xC4,0x10,0 x80,/*-- 文字: 石 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0xFF,0xFE,0x02,0x00,0x02,0x00,0x04,0x00,0x04,0x00,0x07,0xF8,0x0C,0x 08,0x0C,0x08,0x14,0x08,0x24,0x08,0x44,0x08,0x84,0x08,0x07,0xF8,0x04,0x08,0x00,0x 00,/*-- 文字: 小 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x09,0x40,0x0D,0x20,0x19,0x10,0x11,0x 18,0x21,0x0C,0x41,0x06,0x81,0x04,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x 00,/*-- 文字: 你 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x09,0x00,0x09,0x80,0x11,0x04,0x13,0xFE,0x22,0x04,0x34,0x48,0x68,0x40,0xA2,0x 50,0x23,0x48,0x22,0x48,0x24,0x44,0x24,0x46,0x28,0x44,0x21,0x40,0x20,0x80,0x00,0x 00,/*-- 文字: 强 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x79,0xF8,0x09,0x08,0x09,0x08,0x79,0xF8,0x40,0x40,0x43,0xFC,0x42,0x 44,0x7A,0x44,0x0A,0x44,0x0B,0xFC,0x08,0x40,0x08,0x48,0x08,0x44,0x28,0x7E,0x13,0 xC4,/*-- 文字: 好 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x00,0x11,0xFC,0x10,0x08,0x10,0x10,0xFC,0x20,0x24,0x20,0x24,0x20,0x27,0x FE,0x44,0x20,0x64,0x20,0x18,0x20,0x08,0x20,0x14,0x20,0x26,0x20,0x44,0xA0,0x80,0x 40,//是0x00,0x00,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x08,0x10,0x0F,0xF0,0x00,0x00,0xFF,0x FE,0x01,0x00,0x09,0x00,0x09,0xF8,0x09,0x00,0x15,0x00,0x23,0x00,0x40,0xFE,0x00,0x 00,/*-- 文字: 快 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x20,0x80,0x20,0x80,0x20,0x80,0x37,0xF8,0xA8,0x88,0xA8,0x88,0xA0,0x88,0x2F,0x FE,0x20,0x80,0x21,0x40,0x21,0x40,0x21,0x20,0x22,0x10,0x22,0x18,0x24,0x0E,0x28,0x 04,/*-- 文字: 乐 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x30,0x01,0xF8,0x1F,0x00,0x10,0x80,0x10,0x80,0x10,0x80,0x3F,0xFC,0x10,0x 80,0x08,0x80,0x0C,0x90,0x18,0x88,0x30,0x8C,0x24,0x86,0x42,0x84,0x01,0x00,0x00,0x 00,/*-- 文字: 撒 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x25,0x10,0x25,0x18,0x2F,0xD0,0xF5,0x10,0x25,0x1E,0x2F,0xF4,0x20,0x24,0x37,0x E4,0x64,0x94,0xA7,0x94,0x24,0x88,0x27,0x88,0x24,0x94,0x24,0xA6,0xA5,0xC4,0x44,0 x80,/*-- 文字: 飞 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0xFF,0xC0,0x00,0x40,0x00,0x48,0x00,0x50,0x00,0x60,0x00,0x60,0x00,0x 50,0x00,0x48,0x00,0x40,0x00,0x20,0x00,0x22,0x00,0x12,0x00,0x0A,0x00,0x06,0x00,0x 00,/*-- 文字: 机 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x00,0x10,0xF8,0x10,0x88,0xFE,0x88,0x10,0x88,0x10,0x88,0x38,0x88,0x34,0x 88,0x54,0x88,0x50,0x88,0x91,0x08,0x11,0x0A,0x12,0x0A,0x12,0x0A,0x14,0x06,0x10,0x 00,/*-- 文字: 上 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0xF8,0x01,0x 00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x04,0x7F,0xFE,0x00,0x 00,/*-- 文字: 大 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x 80,0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x 04,/*-- 文字: 举 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x24,0x10,0x12,0x18,0x09,0x10,0x09,0x20,0xFF,0xFE,0x04,0x40,0x09,0x20,0x11,0x 10,0x2F,0xE8,0x41,0x06,0x81,0x00,0x3F,0xF8,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x 00,/*-- 文字: 发 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x02,0x00,0x22,0x40,0x22,0x30,0x22,0x10,0x7F,0xFE,0x24,0x00,0x04,0x00,0x07,0x E0,0x0C,0x20,0x0A,0x20,0x0A,0x20,0x11,0x40,0x20,0x80,0x41,0x60,0x86,0x1C,0x18,0 x08,/*-- 文字: 力 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x7F,0xFC,0x01,0x04,0x01,0x04,0x01,0x 04,0x01,0x04,0x02,0x04,0x02,0x04,0x04,0x04,0x04,0x04,0x08,0x04,0x10,0x28,0x20,0x 10,/*-- 文字: 开 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x7F,0xFE,0x04,0x20,0x04,0x20,0x04,0x20,0x04,0x20,0xFF,0xFE,0x04,0x 20,0x04,0x20,0x04,0x20,0x08,0x20,0x08,0x20,0x10,0x20,0x20,0x20,0x40,0x20,0x00,0x 00,/*-- 文字: 始 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x20,0x18,0x30,0x10,0x20,0x10,0x48,0xFC,0x84,0x25,0xFE,0x24,0x84,0x44,0x 00,0x44,0xFC,0x28,0x84,0x18,0x84,0x14,0x84,0x22,0x84,0x42,0xFC,0x80,0x84,0x00,0x 00,/*-- 文字: 了 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x7F,0xFC,0x00,0x18,0x00,0x60,0x01,0x80,0x01,0x00,0x01,0x00,0x01,0x 00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x05,0x00,0x02,0x 00,/*-- 文字: 大 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x 80,0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x 04,/*-- 文字: 解 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x20,0x00,0x21,0xFC,0x7C,0x44,0x88,0x44,0x7E,0x44,0x4A,0x9C,0x7F,0x08,0x4A,0 x90,0x4A,0xFE,0x7F,0x10,0x4A,0x10,0x4B,0xFE,0x4A,0x10,0x42,0x10,0x4A,0x10,0x84,0 x10,/*-- 文字: 放 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x40,0x08,0x60,0x08,0x40,0xFE,0xFE,0x20,0x84,0x20,0x84,0x3D,0x44,0x26,0x 48,0x24,0x28,0x24,0x30,0x24,0x10,0x24,0x30,0x44,0x48,0x44,0x8E,0x95,0x04,0x08,0x 00,/*-- 文字: 昆 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x20,0x40,0x20,0x 40,0x20,0x44,0x3E,0x4C,0x20,0x70,0x20,0x40,0x26,0x42,0x38,0x42,0x20,0x3E,0x00,0x 00,/*-- 文字: 仑 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x02,0x80,0x04,0x40,0x08,0x30,0x10,0x1C,0x68,0x08,0x08,0x 40,0x08,0xE0,0x09,0x80,0x0E,0x00,0x08,0x08,0x08,0x08,0x08,0x0C,0x07,0xF8,0x00,0x 00,/*-- 文字: 山 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x21,0x04,0x21,0x04,0x21,0x 04,0x21,0x04,0x21,0x04,0x21,0x04,0x21,0x04,0x21,0x04,0x7F,0xFC,0x20,0x04,0x00,0x 00,/*-- 文字: 搭 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x21,0x10,0x21,0x10,0x27,0xFE,0xF9,0x10,0x21,0x50,0x20,0x40,0x28,0xA0,0x31,0x 10,0xE3,0xEE,0x2C,0x00,0x23,0xF8,0x22,0x08,0x22,0x08,0x22,0x08,0xA3,0xF8,0x42,0x 08,/*-- 文字: 街 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x11,0x00,0x19,0x1E,0x21,0x00,0x47,0xC0,0x99,0x00,0x11,0x1E,0x2F,0xE8,0x60,0x 08,0xA1,0x08,0x27,0xC8,0x21,0x08,0x21,0x08,0x21,0xC8,0x27,0x28,0x20,0x10,0x00,0x 00,/*-- 文字: 坊 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x80,0x10,0x60,0x10,0x20,0x17,0xFE,0x10,0x80,0xFC,0x80,0x10,0x80,0x10,0x FC,0x10,0x84,0x16,0x84,0x18,0x84,0xE1,0x04,0x41,0x04,0x02,0x04,0x04,0x28,0x08,0x 10,/*-- 文字: 拉 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x80,0x10,0x60,0x10,0x20,0x11,0xFE,0xFC,0x00,0x10,0x08,0x15,0x0C,0x18,0x 88,0x30,0x88,0xD0,0x48,0x10,0x50,0x10,0x50,0x10,0x50,0x17,0xFE,0x50,0x00,0x20,0x 00,/*-- 文字: 萨 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x04,0x40,0x04,0x40,0xFF,0xFE,0x04,0x40,0x04,0x40,0x78,0x20,0x4B,0xFE,0x50,0x 88,0x60,0x50,0x53,0xFE,0x4A,0x00,0x6A,0x00,0x52,0x00,0x44,0x00,0x44,0x00,0x48,0x 00,/*-- 文字: 解 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x20,0x00,0x21,0xFC,0x7C,0x44,0x88,0x44,0x7E,0x44,0x4A,0x9C,0x7F,0x08,0x4A,0 x90,0x4A,0xFE,0x7F,0x10,0x4A,0x10,0x4B,0xFE,0x4A,0x10,0x42,0x10,0x4A,0x10,0x84,0 x10,/*-- 文字: 放 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x40,0x08,0x60,0x08,0x40,0xFE,0xFE,0x20,0x84,0x20,0x84,0x3D,0x44,0x26,0x 48,0x24,0x28,0x24,0x30,0x24,0x10,0x24,0x30,0x44,0x48,0x44,0x8E,0x95,0x04,0x08,0x 00,/*-- 文字: 路 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x80,0x78,0x80,0x48,0xFC,0x49,0x88,0x4A,0x48,0x7C,0x50,0x50,0x20,0x10,0x 58,0x5D,0x86,0x53,0xFC,0x51,0x08,0x51,0x08,0x5D,0x08,0xE1,0xF8,0x01,0x08,0x00,0 x00,/*-- 文字: s --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3E,0x00,0x60,0x00,0x60,0x 00,0x3C,0x00,0x06,0x00,0x06,0x00,0x7C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,/*-- 文字: a --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3C,0x00,0x06,0x00,0x06,0x 00,0x3E,0x00,0x66,0x00,0x66,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,/*-- 文字: d --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x06,0x00,0x3E,0x00,0x66,0x00,0x66,0x 00,0x66,0x00,0x66,0x00,0x66,0x00,0x3E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x 00,/*-- 文字: 豆 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0x7F,0xFE,0x00,0x00,0x00,0x00,0x1F,0xF0,0x10,0x10,0x10,0x10,0x10,0x 10,0x1F,0xF0,0x00,0x20,0x10,0x30,0x08,0x20,0x04,0x40,0xFF,0xFE,0x00,0x00,0x00,0x 00,/*-- 文字: 浆 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x08,0x80,0x48,0x80,0x28,0xFC,0x29,0x08,0x0A,0x90,0x28,0x60,0xC8,0x40,0x09,0x 80,0x01,0x18,0x7D,0xA0,0x05,0x40,0x09,0x20,0x11,0x18,0x61,0x0E,0x05,0x04,0x02,0 x00,/*-- 文字: 粉 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x10,0x10,0x98,0x94,0x90,0x54,0x90,0x59,0x08,0xFD,0x08,0x32,0x06,0x37,0x FC,0x58,0x88,0x54,0x88,0x50,0x88,0x90,0x88,0x11,0x08,0x11,0x08,0x12,0x50,0x14,0x 20,/*-- 文字: 蓝 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x08,0x40,0x08,0x40,0xFF,0xFE,0x08,0x40,0x04,0x80,0x24,0xFC,0x24,0xA0,0x25,0x 10,0x26,0x10,0x04,0x00,0x1F,0xF0,0x12,0x90,0x12,0x90,0x12,0x90,0xFF,0xFE,0x00,0x 00,/*-- 文字: 色 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x04,0x00,0x04,0x00,0x07,0xF0,0x08,0x20,0x10,0x40,0x3F,0xF0,0x51,0x10,0x11,0x 10,0x11,0x10,0x1F,0xF0,0x10,0x00,0x10,0x04,0x10,0x04,0x10,0x04,0x0F,0xFC,0x00,0x 00,/*-- 文字: 大 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x 80,0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x 04,/*-- 文字: 飞 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x00,0xFF,0xC0,0x00,0x40,0x00,0x48,0x00,0x50,0x00,0x60,0x00,0x60,0x00,0x 50,0x00,0x48,0x00,0x40,0x00,0x20,0x00,0x22,0x00,0x12,0x00,0x0A,0x00,0x06,0x00,0x 00,/*-- 文字: 机 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x00,0x10,0xF8,0x10,0x88,0xFE,0x88,0x10,0x88,0x10,0x88,0x38,0x88,0x34,0x 88,0x54,0x88,0x50,0x88,0x91,0x08,0x11,0x0A,0x12,0x0A,0x12,0x0A,0x14,0x06,0x10,0x 00,/*-- 文字: 数 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x08,0x20,0x49,0x30,0x2A,0x20,0x1C,0x20,0xFF,0x7E,0x1C,0x44,0x2B,0x44,0x48,0x C4,0x08,0x28,0xFF,0x28,0x12,0x10,0x34,0x10,0x0C,0x28,0x32,0x4E,0xC0,0x84,0x00,0x 00,/*-- 文字: 量 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x00,0x00,0xFF,0xFE,0x11,0x 10,0x1F,0xF0,0x11,0x10,0x1F,0xF0,0x01,0x00,0x1F,0xF8,0x01,0x00,0xFF,0xFE,0x00,0x 00,/*-- 文字: 大 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0xFF,0xFE,0x01,0x00,0x02,0x 80,0x02,0x80,0x02,0x40,0x04,0x40,0x04,0x20,0x08,0x10,0x10,0x18,0x20,0x0E,0x40,0x 04,/*-- 文字: 幅 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x20,0x00,0x23,0xFE,0x20,0x00,0xF9,0xFC,0xA9,0x04,0xA9,0x04,0xA9,0xFC,0xA8,0 x00,0xAB,0xFE,0xAA,0x22,0xAB,0xFE,0xBA,0x22,0x22,0x22,0x23,0xFE,0x22,0x02,0x20,0 x00,/*-- 文字: 反 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x00,0x78,0x3F,0x80,0x20,0x00,0x20,0x00,0x3F,0xF0,0x28,0x10,0x28,0x10,0x24,0x 20,0x24,0x20,0x22,0x40,0x21,0x80,0x21,0x80,0x42,0x60,0x4C,0x1C,0xB0,0x08,0x00,0x 00,/*-- 文字: 抗 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x40,0x10,0x20,0x10,0x20,0xFD,0xFE,0x10,0x00,0x10,0x00,0x14,0xF0,0x18,0x 90,0x30,0x90,0xD0,0x90,0x10,0x90,0x11,0x10,0x11,0x12,0x52,0x12,0x24,0x0E,0x00,0x 00,/*-- 文字: 拉 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x10,0x80,0x10,0x60,0x10,0x20,0x11,0xFE,0xFC,0x00,0x10,0x08,0x15,0x0C,0x18,0x 88,0x30,0x88,0xD0,0x48,0x10,0x50,0x10,0x50,0x10,0x50,0x17,0xFE,0x50,0x00,0x20,0x 00,/*-- 文字: 萨 --*//*-- Fixedsys12; 此字体下对应的点阵为:宽x高=16x16 --*/0x04,0x40,0x04,0x40,0xFF,0xFE,0x04,0x40,0x04,0x40,0x78,0x20,0x4B,0xFE,0x50,0x 88,0x60,0x50,0x53,0xFE,0x4A,0x00,0x6A,0x00,0x52,0x00,0x44,0x00,0x44,0x00,0x48,0x 00};void delay(uint);void main(){uint zz=0,j=0;while(1){uint i,m=50;ll8=1;lh8=1;while(m--){ for(i=0;i<16;i++){P1=i;P2=table[j];lh8=0;lh8=1;P2=table[++j];ll8=0;//#pragma asm//nop//#pragma endasmll8=1;j++;delay(2);} j=zz;}zz+=32;j=zz;if(j==1792){j=0;zz=0;}}}void delay(uint a){uint x,y;for(x=a;x>0;x--)for(y=60;y>0;y--); }。
16X16LED汉字点阵系统设计(8051单片机)

电子技术综合设计总结报告姓名:专业与班级:设计题目:16*16 LED汉字点阵系统设计起始时间: 2010 ~ 2011 学年第(1)学期第14 周~第 19 周指导教师:成绩:日期:一、系统的基本理论概述⏹1.1前言当今世界,电子技术迅猛发展,点阵式显示器件作为现代信息显示的重要媒体,在金融证券、体育、机场、交通、商业、广告宣传、邮电电信、指挥调度、国防军事等许多领域中得到了广泛应用。
因此点阵式显示器件的研制、生产也的到了迅速的发展,并逐步形成产业,成为光电子行业的新兴产业领域。
由于LED电子显示屏具有所显内容信息量大,外形美观大方,操作使用方便灵活.适用于火车,汽车站,码头,金融证券市场,文化中心,信息中心体育设施等公共场所。
该项目广泛涉及了计算机及电子技术中的电源技术、单片机技术、数据通讯技术、显示技术、存储技术、系统软件技术、接口及驱动等技术。
⏹1.2课题设计内容该电路系统是采用AT89C51单片机为控制器,控制点阵LED显示器进行显示,左移显示“百年矿大盛世华章”的内容。
⏹1.3设计目的1.使学生更深入地理解和掌握该课程中的有关基本概念,程序设计思想和方法。
2.培养学生勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质。
3.提高学生对工作认真负责、一丝不苟,对同学团结友爱,协作攻关的基本素质。
4.培养学生从资料文献、科学实验中获得知识的能力。
5. 对学生掌握知识的深度、运用理论去处理问题的能力、实验能力、课程设计能力、书面及口头表达能力进行考核。
⏹1.4方案比较与选择:对于扫描LED点阵的方法有以下三种:(1)点扫描;(2)行扫描;(3)列扫描。
对于8*8的LED点阵而言:若使用第一种方式,其扫描频率必须大于16×64=1024Hz,周期小于1ms即可。
若使用第二和第三种方式,则频率必须大于16×8=128Hz,周期小于7.8ms即可符合视觉暂留要求。
基于51单片机的16乘16点阵汉字显示设计

SendLeft(chinese[i+k]);
SendRight(chinese[num*16+i+k+15]);
ChooseColumn(i+1);
//
ChooseColumn(16-i);
DelayMs_12M(1); } } } }
//不需修改代码 只需前后加空格代码 //流动显示 需补充代码 //speed200 大概是 4 秒 一般取 4 //num<2000 void FlowDisplayBetter(uchar chinese[],uchar num,uchar speed) {
sbit upa=P2^1; sbit upb=P2^2; sbit upc=P2^3; sbit upg=P2^0;
sbit downa=P0^6; sbit downb=P0^7; sbit downc=P2^7; sbit downg=P1^0;
uchar code chinese1[]; uchar code chinese2[]; uchar code chinese3[]; uchar code title[]; uchar code collectiveShow1[]; uchar code testCode[];
main() {
Init(); while(1) {
//
SendLed(0x00);
DisplayChinese(chinese2,3,60);
FlowDisplay(title,14,3);
FlowDisplayBetter(testCode,3,3);
DelayMs_12M(10);
//
SendLed(0xff);
16X16LED点阵显示项目案例教学

L595
BIT
P1.1;列显示,低有效
P1.2;移位时钟,0-1-0 P1.3;输出允许,低电平有效
CLK595 BIT OE595 BIT
STR595 BIT
P1.4;存储到输出寄存器,脉冲信号, 0-1-0
串行显示一个字符的完整时序
移位输出第1列点阵数据和列扫描数据
点阵数据:
列扫描数据:11111111 1111 1110B 移位时钟:
74HC595时序图
16×16LED点阵驱动原理
74HC595驱动16× 16LED点阵驱动原理图 显示方式:动态扫描
显示一个字符需要哪些数据?
第1列点阵数据? 第2列点阵数据? …… 第N列点阵数据?
除了点阵数据, 还需要什么?
如何输出这些数据?
点阵数据
并行
串行 移位输出:高位/低位 谁在前? 移位时钟:谁提供?
……
项目支持网站
ftp://202.113.116.114/计算机硬件技术基础 /16X16LED点阵显示项目案例
硬件平台
DP-51ProC 16X16LED点阵模块 LED点阵原理
外观与封装
列共阴型原理 行共阴型原理
行列驱动电路
74HC595 带输出锁存的8bit移位寄存器
如何不停地执行(动态扫描)上述程序?
使用循环?
还有其他方式?
怎样的结构更通用?
显示的特殊效果如何实现?
显示缓冲区结构 水平左右滚动显示 垂直上下滚动显示 字符闪烁显示 还有…
16X16LED点阵显 示项目案例教学
河北工业大学计算机科 学与软件学院 陈冀川 cjc@
16X16显示“汉字”

这是我玩LED点阵屏的第一块电路板,也是学习单片机入门的第一个实验器材。
它由4片30mm×30mm的8×8红色高亮点阵模块与两片74HC595、两片74HC138、16只8550晶体管、一片74HC244集装在一块宽高65mm×210mm的双面PCB板上,它应该是一组级联安装的LED屏的一个单元模块,拿到它时,我正在学习《无线电》杂志2007/11期刊上杜洋的一组文章,刚刚做好了ISP下载线,只做了“一个发光二极管的控制实验”,面对这个既好玩又陌生的玩意,真是无从下手,通过上网学习,解析研究,前后弄了两个多月,最后在《无线电》杂志2005/12期的配文程序的帮助下,终于踏进了点阵控制的门槛,两年过去了,我又玩了许多单片机控制器件,但这块屏却一直摆在我的桌案上,每当遇到难题时,看看它那稳定清晰的显示,我都能找到许多灵感;最近、在摆弄一块并行驱动的16×64点阵屏时(前几篇文章介绍了)时,因为用的还是这段程序,就又想起了它,虽然程序已经详解过了,但是,为了留记一段经历、一段回忆,决定还是“貂续狗尾”写在这里,留着自己欣赏吧。
一.原理图:二.汉字左右移动驱动程序/**************************************************************************************16×16LED点阵屏原理图及C源汉字左右移动显示驱动程序————wannenggong单片机:AT89S52引脚说明:P0.0/P0.1/P0.2/P0.3控制由两片74HC138组成的行驱动控制4-16译码器的A/B/C/D端P1.0/P1.1控制列驱动控制74HC595的OE/ST端***************************************************************************************/#include <AT89x51.H>#define uchar unsigned char#define uint unsigned int#define K 5 //移动速度控制变量。
16X16点阵汉字显示

设计思路: 运用单片机的P0和P2口以及4—16译码 器,构成16*16的LED点阵,由P0和P2口控 制点阵的行方向,译码器控制点阵的列方 向,有程序控制扫描,实现汉子的显示 (设计程序扫描完成所需时间=延时+扫描 <<200ms(人眼正常识别时间))。 每次译码器(控制列)的输出端子只 有一个为低电平,由单片机的P0,P2口 (控制行)控制相应输出为高电平,即按 列进行不停扫描。 选用器材:见电路图
目前存在的主要问题
只能实现单列灯发光,不能按 照预先想象的实现相应功能,问题 应该出现在P1口的程序控制上。 接下来会进一步对程序和电路 进行相应的修改。
谢谢!
单片机实现16*16汉字显示
总体电路图:
单片机实现16*16汉字显示
AT89C51单片机
单片机实现16*16汉字显示
74LS154译码器(功能表见下页)
单片机实现16*16汉字显示
74LS154译码器功能表
单片机实现16*16汉字显示ຫໍສະໝຸດ 目前进展(下图绿色为灯亮)
单片机实现16*16汉字显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
16X16点阵汉字显示89C51(测试OK)
1汉字显示的原理:
我们以UCDOS中文宋体字库为例,每一个字由16行16列的点阵组成显示。
即国标汉字库中的每一个字均由256点阵来表示。
我们可以把每一个点理解为一个像素,而把每一个字的字形理解为一幅图像。
事实上这个汉字屏不仅可以显示
汉字,也可以显示在256像素
我们以显示汉字“大”为例,来说明其扫描原理:
在UCDOS中文宋体字库中,每一个字由16行16列的点阵组成显示。
如果用
8位的AT89C51单片机控制,由于单片机的总线为8位,一个字需要拆分为2个部分。
一般我们把它拆分为上部和下部,上部由8*16点阵组成,下部也由8*16点阵组成。
在本例中单片机首先显示的是左上角的第一列的上半部分,即第0列的p00---p 07口。
方向为p00到p07 ,显示汉字“大”时,p05点亮,由上往下排列,为p0.
0 灭,p0.1 灭, p0.2 灭p0.3 灭, p0.4 灭, p0.5 亮,p0.6 灭,p0.7 灭。
即二进制00000100,转换为16进制为 04h.。
上半部第一列完成后,继续扫描下半部的第一列,为了接线的方便,我们仍设计成由上往下扫描,即从p27向p20方向扫描,从上图可以看到,这一列全部为不亮,即为00000000,16进制则为00h。
然后单片机转向上半部第二列,仍为p05点亮,为00000100,即16进制04 h.
这一列完成后继续进行下半部分的扫描,p21点亮,为二进制00000010,即16进制02h.
依照这个方法,继续进行下面的扫描,一共扫描32个8位,可以得出汉字“大”
的扫描代码为:
04H,00H,04H,02H,04H,02H,04H,04H
04H,08H,04H,30H,05H,0C0H,0FEH,00H
05H,80H,04H,60H,04H,10H,04H,08H
04H,04H,0CH,06H,04H,04H,00H,00H
由这个原理可以看出,无论显示何种字体或图像,都可以用这个方法来分析出它的扫描代码从而显示在屏幕上。
不过现在有很多现成的汉字字模生成软件,我们就不必自己去画表格算代码了。
汉字提取软件:
temp_08051714583540.zip
;*****************16*16 LED点阵显示程序*****************
;*MCU: AT89C51
;*MCU-crystal: 12M
;*Version: 1.0
;*Last Updata: 2005-1-1
;*Author:
;*Description: FOR-16*16 LED点阵显示程序
显示"欢迎光临"字符,字符可同时显示两个汉字并且
可上下,左右移动显示.
;********************************************************** ORG 00H
START: MOV A,#00H ;清除屏幕
MOV P0,A
MOV P2,A
ACALL DISP ;调用显示子程序
ACALL MOVE ;调用左移子程序
AJMP START
;********************************************************* DISP: MOV R2,#02H ;每个画面2个字,4个字分2次显示 MOV 20H,#00H ;取码指针暂存地址20H初值为00H D4: MOV R4,#00H ;74154扫描指针初值
MOV R1,#0FFH ;每幕停留的时间
D5: MOV R6,#32 ;每幕2个字,32个数据
MOV R0,20H ;取码指针存入R0
D2: ACALL READ1 ;调用取码子程序
INC R4 ;扫描下一列
DJNZ R6,D2 ;显示1幕?
MOV R4,#00 ;清除74154扫描指针为00 DJNZ R1,D5 ;每幕停留时间到了?
MOV 20H,R0 ;保留取码指针存入20H地址 DJNZ R2,D4 ;2幕显示完毕了?
RET
;******************************************************** READ1: MOV A,R4 ;扫描指针载入A MOV P1,A ;输出至P1扫描列
MOV A,R0 ;取码指针载入A
MOV DPTR,#TAB ;数据指针指到TAB
MOVC A,@A+DPTR ;到TAB取上半部的数据码 MOV P0,A ;输出至P0显示
INC R0 ;取下一个码
MOV A,R0 ;取码指针载入A
MOV DPTR,#TAB ;数据指针指到TAB
MOVC A,@A+DPTR ;到TAB取下半部的数据码 MOV P2,A ;输出至P2显示
INC R0 ;取码值加1
MOV R3,#25 ;延时
DJNZ R3,$
MOV A,#00H ;清除屏幕
MOV P0,A
MOV P2,A
DELAY: MOV R3,#01 ;延时
D7: MOV R5,#50
DJNZ R5,$
DJNZ R3,D7
RET
;*************************************************
MOVE:
MOV 20H,#00 ;取码指针暂存地址20H初值为00H MOV R4,#00H ;74154扫描指针初值
M1: MOV R1,#1FH ;每幕停留的时间
M2: MOV R6,#32 ;每幕2个字,32个数据
MOV R0,20H ;取码指针存入R0
M3: ACALL READ1 ;调用取码子程序
INC R4 ;扫描下一列
DJNZ R6,M3 ;显示1幕?
MOV R4,#00 ;清除74154扫描指针为00
DJNZ R1,M2 ;每幕停留时间到了?
MOV A,20H ;取码指针载入A
ADD A,#02 ;加2
MOV 20H,A ;再存入20H地址取码指针
XRL A,#66 ;4个字是否都左移完毕了?
JNZ M1 ;循环
RET
;*************************************************
DL5S: MOV R6,40H ;delay program
DL1: MOV R5,#200
DL2: MOV R4,#125
DL3: DJNZ R4,$
DJNZ R5,DL2
DJNZ R6,DL1
RET
;************************************************
;"欢迎光临"显示用ROM数据表
TAB: ;欢
DB 00H,20H,3CH,10H
DB 44H,08H,84H,04H
DB 04H,03H,04H,03H
DB 84H,04H,44H,08H
DB 3CH,10H,00H,20H
DB 00H,00H,07H,20H
DB 04H,10H,0F4H,0FH
DB 04H,10H,1CH,20H
;迎
DB 00H,00H,49H,20H
DB 6AH,10H,0DCH,0FH
DB 08H,10H,00H,20H
DB 0FEH,27H,02H,22H DB 02H,21H,81H,20H DB 00H,20H,02H,20H DB 0FEH,2FH,02H,22H DB 02H,22H,0FEH,21H ;光
DB 00H,00H,00H,20H DB 22H,20H,24H,20H DB 28H,10H,30H,08H DB 0E0H,07H,3FH,00H DB 20H,00H,0F0H,3FH DB 28H,20H,24H,20H DB 22H,20H,20H,20H DB 00H,38H,00H,00H ;临
DB 00H,00H,0F0H,03H DB 00H,00H,00H,00H DB 0FFH,3FH,00H,00H DB 40H,00H,20H,3FH DB 10H,21H,0FH,21H DB 14H,21H,24H,3FH DB 44H,21H,04H,21H DB 04H,21H,04H,3FH DB 00H,00H,00H,00H
END ;程序结束。