求16*16LED点阵显示汉字程序

求16*16LED点阵显示汉字程序,第1张

我也不怎么会,还在学习中

下面有一个1616的C程序

参考一下。。。

字模软件你要的话我可以给你

共同学习。。。

#include<reg51h>

sbit P20=P2^0;

sbit P22=P2^2;

unsigned char code text[]={

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,0x80,0x00,0x80,0xFC,0x80,0x05,0xFE,0x85,0x04,0x4A,0x48,0x28,0x40,0x10,0x40,

0x18,0x40,0x18,0x60,0x24,0xA0,0x24,0x90,0x41,0x18,0x86,0x0E,0x38,0x04,0x00,0x00,/"欢",0/

0x40,0x00,0x21,0x80,0x36,0x7C,0x24,0x44,0x04,0x44,0x04,0x44,0xE4,0x44,0x24,0x44,

0x25,0x44,0x26,0x54,0x24,0x48,0x20,0x40,0x20,0x40,0x50,0x00,0x8F,0xFE,0x00,0x00,/"迎",1/

0x01,0x00,0x21,0x10,0x19,0x18,0x0D,0x10,0x09,0x20,0x01,0x04,0x7F,0xFE,0x04,0x40,

0x04,0x40,0x04,0x40,0x04,0x40,0x08,0x42,0x08,0x42,0x10,0x42,0x20,0x3E,0x40,0x00,/"光",2/

0x01,0x00,0x09,0x80,0x09,0x00,0x49,0xFE,0x4A,0x20,0x4A,0x10,0x4C,0x10,0x49,0x04,

0x49,0xFE,0x49,0x24,0x49,0x24,0x49,0x24,0x49,0x24,0x09,0xFC,0x09,0x04,0x00,0x00,/"临",3/

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,

};

void Delay(unsigned char i)

{

unsigned char j;

for(;i>0;i--)

for(j=0;j<80;j++)

{;}

}

void main()

{

unsigned int a,e;

unsigned char b,c,d=0;

SCON=0;

while(1)

{

for(e=0;e<160;e=e+32)

{

for(a=0;a<8;a++)

{

for(b=0;b<8;b++)

{

for(c=0;c<32;c++)

{

SBUF=~(text[e+c+32]>>(8-a)|text[e+c+1]<<a);

while(TI==0);

TI=0;

SBUF=~(text[e+c+1]>>(8-a)|text[e+c]<<a);

while(TI==0);

TI=0;

c++;

P20=1;

P1=d;

P22=0;

Delay(3);

P20=0;

P22=1;

d++;

if(d==16)d=0;

}

}

}

for(a=0;a<8;a++)

{

for(b=0;b<8;b++)

{

for(c=0;c<32;c++)

{

SBUF=~(text[e+c+1+32]>>(8-a)|text[e+c+32]<<a);

while(TI==0);

TI=0;

SBUF=~(text[e+c+32]>>(8-a)|text[e+c+1]<<a);

while(TI==0);

TI=0;

c++;

P20=1;

P1=d;

P22=0;

Delay(3);

P20=0;

P22=1;

d++;

if(d==16)d=0;

}

}

}

}

for(a=0;a<160;a=a+2)

{

for(b=0;b<8;b++)

{

for(c=1;c<32;c++)

{

if(a+c<160){

SBUF=~text[a+c];

while(TI==0);

TI=0;

SBUF=~text[a+c-1];

while(TI==0);

TI=0;}

else {

SBUF=~text[a+c-160];

while(TI==0);

TI=0;

SBUF=~text[a+c-1-160];

while(TI==0);

TI=0;}

P1=c/2;

c++;

P20=1;

P22=0;

Delay(3);

P22=1;

P20=0;

}

}

}

}

}

首先调出一个8×8点阵,在点阵的管脚上接上VCC,另一端的管脚就接GND,运行仿真,看看点阵是不是能亮,亮了哪几个点,如果不亮就调换VCC和GND,这样测出点阵的行和列,共阴或共阳等引脚信息。

然后接上网络标识,行和行接同一个网络标志,列和列接在一起。多个8×8拼在一起就好了。

这基本是一个不可能看成的任务,按照变成的思路,你应该为每一个单独的汉子进行编写一个相应的函数,然后读入txt文档之后,进行每个字的对应比对。简单一点你可以按照五笔的想法把汉字进行分解,但是你读入的汉字就需要结构辨识,这也是很麻烦的。

以上就是关于求16*16LED点阵显示汉字程序全部的内容,包括:求16*16LED点阵显示汉字程序、Proteus电路控制16X16点阵显示屏的程序问题、求用C语言编写一个能把txt文档中的所有汉字采用点阵输出的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9520050.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存