技术文档

单片机点阵显示汉字 51单片机 16X192点阵程序动态显示汉字 教程(附仿真文件+源代码)

小编 2024-11-24 技术文档 23 0

51单片机 16X192点阵程序动态显示汉字 教程(附仿真文件+源代码)

网友投稿

最近有小伙伴给我留言说希望我能写一篇汉子动态程序显示的文章,他想学习这方面的知识,我就抽空用仿真软件做了一个,鉴于项目比较简单,我就不过多的描述了,有问题请及时留言。

下面进入正题:

51单片机 16X192点阵程序动态显示任意汉字

程序参考源代码如下:

#include<AT89X52.H>

sbit ST=P3^5;

sbit E1=P3^4;

sbit MR=P3^7;

char cashe[12];

char code wd[12][16]={

{0xFF,0xC0,0xFE,0xFE,0xFE,0xFE,0x80,0xFE,0xFD,0xFD,0xFB,0xF7,0xEF,0xDF,0x3F,0xFF},

{0xFF,0x03,0xFF,0xFF,0xFF,0xFF,0x01,0x7F,0x7F,0x7F,0x7F,0x7F,0x7D,0x7D,0x81,0xFF},/*"无",0*/

/* (16 X 16 , 宋体 )*/

{0xDF,0xDF,0xDF,0xCF,0x57,0x58,0x5F,0xDF,0xDE,0xDE,0xDE,0xDD,0xDD,0xDB,0xDB,0xD7},

{0x7F,0x6F,0x73,0x77,0x7F,0x01,0x5F,0x5F,0xDF,0xDF,0xDF,0xDF,0xDD,0xDD,0xE1,0xFF},/*"忧",1*/

/* (16 X 16 , 宋体 )*/

{0xFE,0xFE,0xFE,0xC0,0xDE,0xDE,0xC0,0xDE,0xDE,0xDE,0xC0,0xDE,0xFE,0xFE,0xFF,0xFF},

{0xFF,0xFF,0xFF,0x07,0xF7,0xF7,0x07,0xF7,0xF7,0xF7,0x07,0xF7,0xFD,0xFD,0x01,0xFF},/*"电",2*/

/* (16 X 16 , 宋体 )*/

{0xFF,0xC0,0xFF,0xFF,0xFF,0xFE,0xFE,0xFE,0x00,0xFE,0xFE,0xFE,0xFE,0xFE,0xFA,0xFD},

{0xFF,0x0F,0xDF,0xBF,0x7F,0xFF,0xFF,0xFB,0x01,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF},/*"子",3*/

/* (16 X 16 , 宋体 )*/

{0xFF,0x83,0xBB,0xAB,0xAA,0xAA,0xA9,0xAB,0xAB,0xAA,0xEE,0xD7,0xDB,0xBB,0x7F,0xFF},

{0x7F,0x3F,0x7F,0x01,0xFD,0xFD,0xBD,0xBD,0x5D,0xED,0x05,0xED,0xFD,0xFD,0xEB,0xF7},/*"购",4*/

/* (16 X 16 , 宋体 )*/

{0xEF,0xEF,0xAF,0xAE,0x82,0xAD,0x6B,0xEB,0xE6,0xCD,0x2B,0xEF,0xEE,0xED,0xEB,0xFF},

{0x7F,0x7F,0x7F,0x03,0xAB,0xAB,0x6B,0x6B,0xDB,0xDB,0xBB,0x7B,0xFB,0xFB,0xD7,0xEF},/*"物",5*/

/* (16 X 16 , 宋体 )*/

};

void del(int i)//============================//延时程序

{while(i--);}

aline() ////=======================发送一行的显示程序

{

char i=0;

TI=0;

for(i=0;i<12;i++)

{SBUF=cashe[i];while(~TI);TI=0;} //将缓存中的信息转存入595的存储器中,到此不显示

}

main()

{

int m=0,n=0;

TI=0;

SM0=0;

SM1=0;

E1=0;

while(1)

for(m=0;m<16;m++) //共有16行 循环16次显示这16行 串行的595送出行的数据

{ //由74hc154选中要显示的行

for(n=0;n<12;n++) //这个for循环用来向缓存数组中装载要显示的内容

{cashe[11-n]=wd[n][m];} //将第m个字的第n行信息装载 ,因为595串接 数据第一个进去的会在最后一个595中,最后进去的会在第一个595中

aline(); //将缓存中的一行信息载入595缓存中

ST=0;ST=1; //595产生上升沿 输出595锁存的数据

P2=m; //选中要显示的行输出数据

del(100);//延时一段时间,以造成视觉暂存效应

}

}

最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步,如果需要 程序完整源代码,请在下方留言或者私信我,看到后会第一时间回复。

如果喜欢我的文章请点赞转发加关注啊,谢谢!

单片机初学者轻松入门之(十九):8乘8点阵显示汉字

字模提取软件

1、打开软件,单击选择 "参数设置"

2、单击"文字输入区字体选择"

设置完成单击"确定"

3、单击"其它选项"

如果是点阵显示,则选择"横向取模",字节倒序;

如果是12864显示,则选择"纵向取模",字节倒序。

4、 在文字输入区输入要取模的文字,按下Ctrl+Enter结束文字输入

5、单击"取模方式"

双击"C51格式"进行字模生成

如下图所示在点阵生成区生成了字库代码

1、 电路图

2、 程序设计

#include<reg51.h>

#include<intrins.h>

unsigned char code a[]={0x10,0x10,0xFF,0x10,0x28,0x44,0x82,0x01};

void delay(unsigned int m)

{

unsigned char i;

while(m--)

for(i=0;i<120;i++);

}

void main()

{

unsigned char m,k=0;

m=0xfe;

while(1)

{

P0=m; //行0有效

m=_crol_(m,1);

P2=a[k++]; //列1有效

if(k==8)k=0;

delay(1);

}

}

3、下载程序并设计

相关问答

求51 单片机 怎么 显示汉字 ,可不可以给我发个现成的程序-ZOL问答

3条回答:【推荐答案】这个要看液晶显示屏是否带字库,如果带字库,那你把娟字的两字节汉字代码发过去就能显示如果不带字库,那就需要汉字取模软件把娟字的点阵数据...

如何用 单片机 小精灵生成 汉字 ,用16*16的LED 点阵显示 ?

通过撰写代码来实现。Proteus中只有5×7和8×8等LED点阵,并没有16×16LED点阵,而在实际应用中,要良好地显示一个汉字,则至少需要16×16点阵。下面我们就首先...

51 单片机 如何实现 汉字显示 ,如“龙”字,能否给程序和电路图?

方案一:含字库的液晶,单片机给出相应指令即可显示。效果最好,成本较高,程序量小,难度适中。方案二:点阵液晶或LED点阵,以16*16分辨率,用汉字取模软件取...方...

lcd如何 显示汉字 ?

1.想想一下一个汉字占据的屏幕面积由100X100个点阵形成2.每一个汉字需可以由其中某些点点亮后连线而成.3.液晶显示就是通过TFT控制而让100X100的某些点...

怎样手机屏幕出字?

手机必须是触摸屏的智能手机,然后需要在手机上安装一款输入法软件,大部分手机系统都会内置输入法软件。2.打开手机上的浏览器或者备忘录等,点击输入框进入输...

汉字 显示 和打印输出时,是以 汉字 字形信息表示的,即以 点阵 的...

[最佳回答]是汉字字形信息表示的,即以点阵的...有可能.但是,也不一定就是点阵.关键是,题目描述不清.显示,是在什么地方显示?电视机?手机?冰箱?……是汉字字形...

汉字 的输出码可以用 点阵 方式来表示,如目前 汉字 显示器 上显...

[最佳回答]点阵方式是将汉字分解成若干个“点”组成的点阵的字形,每个点用1个二进制位表示.由于计算机存储器的每个字节为8个二进制位,因此,48*48点阵的一个汉...

点阵 字体和矢量字体的区别是什么?

点阵字体是把每一个字符都分成16×16或24×24个点,然后用每个点的虚实来表示字符的轮廓。点阵字体优点是显示速度快,不像矢量字体需要计算;其最大的缺点是...

采用24*24 点阵 编码,一个 汉字 占用几个字符? - 罢天下双子 的...

采纳完了记得评价和点赞不然买彩票不会中的。点阵字体是把每一个字符都分成16×16或24×24个点,然后用每个点的虚实来表示字符的轮廓。点阵字体也叫...

在24×24的 点阵 字库中存储一个 汉字 的字形信息需要多少字节为什么?

24*24的意思是用24*24的点阵来表示汉字,每个点用1bit(位),所以大小是24*24bit(位),即24*24/8=72Byte(字节).完毕。24*24的意思是用24*24的点阵来表示汉字...

猜你喜欢