汉字显示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汉字显示
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显示屏的设计方案。
16X16点阵显示实验

实验报告实验名称: [16X16点阵显示实验]姓名:学号:指导教师:实验时间: [2013年6月15日]信息与通信工程学院16X16点阵显示实验1、实验要求:理解并掌握点阵显示符号的原理,理解原有程序,会使用动态扫描的方式使点阵显示汉字,明白点阵滚动显示的原理。
根据原有程序,掌握LPM_ROM的应用,会应用LPM_ROM存储需要显示的内容。
参照液晶显示程序,编写16*16点阵显示程序。
任务一:实现点阵列扫描。
点亮点阵的一列,并让其不断的向右移动。
任务二:在点阵上循环滚动显示“嵌入式系统设计”。
2、实验原理:2.1点阵基本原理本实验对点阵的扫描使用列扫描的方式。
就是将要显示的数据分成16列,在某一时刻只选中一列,并向点阵传送该列需要显示的数据,那么如果从左往右依次循环选中所有列,并且循环的速度足够快,因为视觉停留效应,我们就能看到完整的显示了。
如果要显示大于16列的信息,比如要显示多个汉字,由于只能同时显示16列,那么就需要在一个比较慢的时钟的指挥下,不断更新要显示的连续的16列数据,使用这样的方法就能实现滚动显示。
2.2任务原理8*8LED点阵共由64个发光二极管组成,每个发光二极管放置在行线和列线的交叉点上,当对应的某一行高电平(置1),且某一列低电平(置0),则相应的发光二极管就亮;因此要用8*8LED点阵来显示一个字符或汉字,只需要根据字符或汉字图形中的线条或笔画,通过点亮多个发光二极管来勾勒出字符或汉字的线条或笔画就行了。
当要比较完美的显示一般的汉字,单个8*8LED点阵模块很难做到,因为LED的点数(也称为像素点)不够多,因此要显示汉字的话,需要多个8*8LED点阵拼合成一个显示屏。
假如用4个8*8LED点阵模块拼成16*16的点阵,即能满足一般汉字的显示。
16×16扫描LED点阵的工作原理同8位扫描数码管类似。
它有16个共阴极输出端口,每个共阴极对应有16个LED显示灯,所以其扫描译码地址需4位信号线(SEL0-SEL3),其汉字扫描码由16位段地址(0-15)输入。
16x16点阵显示汉字

6
测试哪个方向是行,哪个方向是列
ORG 0000H MAIN:MOV P0,#0CCH
MOV P2,#00H MOV P1,#01H AJMP $ END
7
是否可以完成一个汉字显示以及字模软件应用
8
ORG 0000H MAIN:MOV R6,#00H
MOV R7,#00H LOOP: MOV DPTR,#TAB
MOV A,R7
;列显示选择
MOV P1,A
12
INC R7
LCALL DELAY
;延时
MOV A,#00H
;清除显示数据消隐
MOV P0,A
MOV P2,A
DJNZ R1,MAIN
;判断是否完成一个汉字显示
DJNZ R5,LOOP
;显示一定的时间
MOV A,20H
ADD A,#02
MOV 20H,A
9
10
如何动态显示汉字
11
ORG 0000H
START:MOV A,#00H
;初始化设置
MOV P0,A
;关闭行低8位显示数据
MOV P2,A
;关闭行高8位显示数据
MOV 20H,#00
;行显示数据选择
MOV 22H,#128
;是否显示完成全部ห้องสมุดไป่ตู้字
LOOP2:MOV R5,#100H
;汉字显示时间
MOV A,R6 MOVC A,@A+DPTR MOV P0,A INC R6 MOV A,R6 MOVC A,@A+DPTR MOV P2,A INC R6 MOV A,R7 MOV P1,A INC R7 LCALL DELAY MOV A,#00H MOV P0,A MOV P2,A CJNE R7,#16,LOOP MOV R7,#00H MOV R6,#00H JMP LOOP
51单片机的16X16LED点阵式汉字电子显示屏的设计.

课程设计题目4个8x8点阵LED电子显示屏的设计学院物流学院专业物流工程班级物流ZY1001姓名宋金龙指导教师朱宏辉2013 年 6 月25 日摘要本设计是基于MCS-51的16x16点阵LED电子显示屏的设计,16x16的点阵共有256个发光二极管,我们采用动态扫描的显示方法,更节省锁存器也就节省了成本。
扫描驱动电路就可以实现多行(比如16行)的同名列共用一套驱动器。
具体就16x16的点阵来说,把所有同1行的发光管的阳极连在一起,把所有同1列的发光管的阴极连在一起(即我们采用共阳极的接法)。
采用扫描方式进行显示时,每一行和每一列都有一个行驱动器和列驱动器,各行的同名列和各列的同名行共用一个驱动器。
我们采用四个74LS273锁存器。
显示数据通常存储在单片机的存储器中,按8位一个字节的形式顺序排放。
编写点阵显示程序,利用proteus画出电路原理图并装入程序仿真调试,仿真成功后完成电路焊接并装入程序完成实物设计。
整个设计过程让我们学到许多实践知识!LED显示屏作为一种新型的显示器件,是由多个发光二极管按矩阵形式排列封装而成,通常用来显示时间、图文等信息,由点阵LED组成的汉字显示屏在工工程所应用非常广泛。
LED显示屏显示画面色彩鲜艳,立体感强,静如油画,动如电影,广泛应用于车站、码头、机场、商场、医院、宾馆、银行、证券市场、建筑市场、拍卖行、工业企业管理和其它公共场所。
在实际应用中的显示屏由于成本和可靠性的因素常采用一种称为动态扫描的显示方法。
本文设计的是一个室内用16x16的点阵LED图文显示屏,图形或文字显示有静止、移入移出等显示方式。
本设计是基于MCS-51单片机的16x16显示屏,其中包含了硬件、软件、调试等方案的设计。
此外、该设计只需简单的级联就能实现显示屏的扩展,但级联时要注意不要超过驱动负载范围。
关键字:LED,点阵式,显示屏,AT89C51武汉理工大学《单片机课程设计》报告目录摘要 (2)第一章:绪论 (1)1.1掌握单片机应用系统的一般过程和方法 (1)1.2:设计要求 (1)第二章:硬件电路的设计 (1)2.1设计思路 (1)2.2实验器材 (1)2.2.1 锁存器74LS273介绍 (2)2.3硬件电路设计框图 (2)2.4 16*16点阵LED显示器汉字显示的工作原理 (3)2.5 如何将4片8x8的LED拼接成一片16x16的LED显示屏(显示屏的扩展) (5)2.6 点阵LED显示器与单片机的接口 (6)第三章:系统软件设计 (8)第四章:系统程序设计 (9)ORG 0000H (10)总结: (24)参考文献: (26)附:元件清单及仿真图 (27)武汉理工大学《单片机课程设计》实验报告第一章:绪论1.1掌握单片机应用系统的一般过程和方法综合运用单片机原理与接口技术课程和其它有关先修课程的理论及方法,分析和解决单片机应用系统的设计、分析和实验开发等相关问题,进一步巩固和加深对所学知识的理解。
16×16点阵LED显示汉字

以下程序在16×16点阵LED上依次显示“梅川酷子”四个字,分别用正向显示和反向显示,间隔两秒钟变换一次,电路图和效果图下图所示。
AT89 c52晶振频率为24MHz,用T0定时,改变变量flag值,从而让程序确定显示哪个汉字和显示方式(正向or反向)。
#include <atmel\regx52.h>或者#include <reg51.h>#define int8 unsigned char#define int16 unsigned int#define int32 unsigned longint8 flag;/*flag变量MSB 7 6 5 4 3 2 1 0 LSB× ××Bit5=1,Bit4=0 时,负向显示Bit5=0,Bit4=1 时,负向显示Bit[2..0]74HC138的片选信号*/int8 n;int8 code table[][32]={{0x88,0x00,0x88,0x00,0x88,0x7F,0x48,0x00,0xDF,0x1F,0xA8,0x10,0x9C,0x1 2,0xAC,0x14,0xEA,0x7F,0x8A,0x12,0x89,0x14,0x88,0x10,0x88,0x7F,0x08,0x 10,0x08,0x14,0x08,0x08},/*"梅",0*/{0x08,0x20,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x2 1,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x08,0x21,0x04,0x 21,0x04,0x20,0x02,0x00},/*"川",1*/{0x00,0x08,0xFE,0x08,0x28,0x0A,0x28,0x7E,0xFE,0x0A,0xAA,0x09,0xAA,0xF F,0xEA,0x00,0x86,0x00,0x82,0x7E,0xFE,0x42,0x82,0x42,0x82,0x42,0xFE,0x 7E,0x82,0x42,0x00,0x00},/*"酷",2*/{0x00,0x00,0xF8,0x1F,0x00,0x08,0x00,0x04,0x00,0x02,0x00,0x01,0x00,0x0 1,0x00,0x41,0xFE,0xFF,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x01,0x00,0x 01,0x40,0x01,0x80,0x00}/*"子",3*/};void delay(void);void main(void){int8 i;int8 j;int8 index;flag=0x10;n=0;//定时器T0初始化TMOD=0x01;TH0=0xb1;TL0=0xe0;ET0=1;EA=1;TR0=1;while(1){index=flag&0x03;if((flag&0x30)==0x10){ //正向显示for(i=0;i<8;i++){ //显示上半屏P0=table[index][2*i];//左上P2=i|0x08;delay();P0=table[index][2*i+1];//右上P2=i|0x10;delay();}for(i=8;i<16;i++){ //显示下半屏P0=table[index][2*i];//左下P2=(i-8)|0x20;delay();P0=table[index][2*i+1];//右下P2=(i-8)|0x40;delay();}}if((flag&0x30)==0x20){ //反向显示for(i=0;i<8;i++){P0=~(table[index][2*i]);//左上P2=i|0x08;delay();P0=~(table[index][2*i+1]);//右上P2=i|0x10;delay();}for(i=8;i<16;i++){P0=~(table[index][2*i]);//左下P2=(i-8)|0x20;delay();P0=~(table[index][2*i+1]);//右下P2=(i-8)|0x40;delay();}}}}void delay(void){int16 i;for(i=0;i<50;i++);}void timer0() interrupt 1 using 3{TF0=0;TH0=0xb1;TL0=0xe0;//10ms中断一次if(n<200){n++;}else{ //2秒改变一次switch(flag){case 0x10:{flag=0x11;//下次显示正向“川”break;}case 0x11:{flag=0x12;//下次显示正向“酷”break;}case 0x12:{flag=0x13;//下次显示正向“子”break;}case 0x13:{flag=0x20;//下次显示负向“川”break;}case 0x20:{flag=0x21;//下次显示负向“梅”break;}case 0x21:{flag=0x22;//下次显示负向“酷”break;}case 0x22:{flag=0x23;//下次显示负向“子”break;}case 0x23:{flag=0x10;//下次显示正向“梅”break;}}n=0;}}。
单片机课程设计_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口(串口、并口)、内部总线和中断系统等。
- 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 ;程序结束。