点阵显示屏成功点亮 原理图 程序

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

16×16点阵显示屏成功点亮!!

看到江同学的3216屏(),对于我来说,稍显复杂,所以决定做个1616的

屏看看效果,原理图就是以下了,注意做1616时,要去掉一个74LS154(当然这里也能换用

74HC154,虽然功耗大,但价格较低),经过两天的奋斗,终于完工了。简单的调试后,点亮

了!!编个流动显示的程序,哈哈,很炫啊。心动不如赶快行动啊!!

我是把点阵块焊到一块板子上,可方便检查有无虚焊,控制部分放到了另一张板上,做成

的实物图就是下面的了,视频在这里:(注:以下原理图均来自

/*********************************************************

程序名称:LED1616点阵流动显示汉字

简要说明:最大可显示16*16汉字

P0口接上行线,P2口接下行线,P3口接扫描线编写:

改编:springvirus

*********************************************************/

#include

#define hang1 P0 //上行线

#define hang2 P2 //下行线

#define lie P1 //列线

#define sum sizeof(hanzi)/32 //自动计算汉字字数

/*****参数设置*****/

#define ziti 16 //字体大小(宽度)

#define light 50 //显示亮度

#define move_speed 50 //移动速度

unsigned char code hanzi[]={

/*-- 文字: 自--*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/

0x00,0x00,0x00,0xF8,0x48,0x48,0x4C,0x4B,0x4A,0x48,0x48,0x48,0xF8,0x00,0x00,0x00 ,

0x00,0x00,0x00,0xFF,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0xFF,0x00,0x00,0x00,

/*-- 文字: 制--*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/

0x00,0x50,0x4F,0x4A,0x48,0xFF,0x48,0x48,0x48,0x00,0xFC,0x00,0x00,0xFF,0x00,0x00, 0x00,0x00,0x3F,0x01,0x01,0xFF,0x21,0x61,0x3F,0x00,0x0F,0x40,0x80,0x7F,0x00,0x00,

/*-- 文字: 小--*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/

0x00,0x00,0x00,0xC0,0x70,0x20,0x00,0xFF,0x00,0x10,0x20,0xC0,0x80,0x00,0x00,0x00, 0x04,0x02,0x01,0x00,0x00,0x40,0x80,0x7F,0x00,0x00,0x00,0x00,0x01,0x07,0x02,0x00,

/*-- 文字: 型--*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/

0x10,0x12,0x92,0x7E,0x12,0x12,0xFE,0x12,0x12,0x10,0xFC,0x00,0x00,0xFF,0x00,0x00 ,

0x40,0x42,0x49,0x48,0x48,0x48,0x49,0x7E,0x48,0x48,0x48,0x4A,0x4C,0x4B,0x40,0x00 ,

/*-- 文字: 点--*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/

0x00,0x00,0x00,0xE0,0x20,0x20,0x20,0x3F,0x24,0x24,0x24,0xF4,0x24,0x00,0x00,0x00, 0x00,0x40,0x30,0x07,0x12,0x62,0x02,0x0A,0x12,0x62,0x02,0x0F,0x10,0x60,0x00,0x00,

/*-- 文字: 阵--*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/

0xFE,0x02,0x12,0x2A,0xC6,0x88,0xC8,0xB8,0x8F,0xE8,0x88,0x88,0x88,0x88,0x00,0x0 0,

0xFF,0x00,0x02,0x04,0x03,0x04,0x04,0x04,0x04,0xFF,0x04,0x04,0x04,0x04,0x04,0x00, /*-- 文字: 显--*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/

0x00,0x00,0x00,0x3E,0x2A,0xEA,0x2A,0x2A,0x2A,0xEA,0x2A,0x3E,0x00,0x00,0x00,0x0 0,

0x20,0x21,0x22,0x2C,0x20,0x3F,0x20,0x20,0x20,0x3F,0x28,0x24,0x23,0x20,0x20,0x00,

/*-- 文字: 示--*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/

0x00,0x20,0x20,0x22,0x22,0x22,0x22,0xE2,0x22,0x22,0x22,0x22,0x22,0x20,0x20,0x00, 0x10,0x08,0x04,0x03,0x00,0x40,0x80,0x7F,0x00,0x00,0x01,0x02,0x0C,0x18,0x00,0x00,

/*-- 文字: 系--*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/

0x00,0x00,0x02,0x22,0xB2,0xAA,0x66,0x62,0x22,0x11,0x4D,0x81,0x01,0x01,0x00,0x00 ,

0x00,0x40,0x21,0x13,0x09,0x05,0x41,0x81,0x7F,0x01,0x05,0x09,0x13,0x62,0x00,0x00,

/*-- 文字: 统--*/

/*-- 宋体12; 此字体下对应的点阵为:宽x高=16x16 --*/

0x20,0x30,0x2C,0xA3,0x60,0x10,0x84,0xC4,0xA4,0x9D,0x86,0x84,0xA4,0xC4,0x84,0x0 0,

0x20,0x22,0x23,0x12,0x12,0x92,0x40,0x30,0x0F,0x00,0x00,0x3F,0x40,0x41,0x70,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,0x00

};

uint k=0,j; //移位变量,k:移位个数

uint a=0; //用于软件延时

ulong s=(sum+1)*ziti; //s为全部列数

uchar disbuf[16][2]; //定义显示缓冲区(16行两列的二维数组以开辟1个16*16汉字的空间)

bit move_st; //移动标志

/*****可变延时*****/

void delay(void)

{

uchar i;

for(i=0;i

}

/*****初始化子程序*****/

void init(void)

{

TMOD=0x1;

相关文档
最新文档