设计与开发

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

小编 2024-11-26 设计与开发 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问答

这个要看液晶显示屏是否带字库,如果带字库,那你把娟字的两字节汉字代码发过...需要用单片机连接外设来显示汉子,LED还是LCD!你的问题没说明白,单片机是显示...

单片机 如何识别串口的数据是中文还是字母?

串口有两种通讯模式,一种是十六进制模式,一种是文本模式。选择文本模式就可以发送中文。其实文本模式发送的ASCII码,接收时再转换回相应字符(包括中文)。串口...

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

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

单片机 点阵式led显示屏显示 汉字 是镜像怎么处理-ZOL问答

显示部分需要编常用字字库,内部ram不够得扩展(显示缓冲,20个16*16的汉字最少要...如果你的单片机点阵LED显示屏显示汉字是镜像,首先检查数据传输方向是否正确...

单片机 初学者,指出下列各条指令中源操作数的寻址方式并注释...

[最佳回答]指出下列各条指令中源操作数的寻址方式并注释指令功能.MOV50H,@R0--寄存器间接寻址,片内数据传送MOVXA,@R1--寄存器间接寻址,片外RAM数据传送--...

初学 单片机 ,keil这个软件界面能设置成中文吗?

keiluvision3是外国公司的,像这类软件现在一般不支持中文!KeilSoftware公司推出的uVision3是一款可用于多种8051MCU的集成开发环境(IDE),该IDE同时也是PK51...

这是 单片机 4X4的键盘识别程序,请帮我解释,最好每句执行操作...

sfrkeyIO=0x90;//定义键盘IO口为P1unsignedcharkeyboad(){unsignedchar...写单片机C程序一定要活用标志位还有你好像都大四了,怎么...

chinese,除了中国人的意思以外,还有什么意思?

一般表示“中文”、“汉语”用“Chinese”就可以了。其余还有”Chinesecharacters”、”[计]Chineseideograph”(计算机术语用词)以及简化汉字:”simplif...

求PIC 单片机 英文介绍和中文翻译.PIC16F877A型号的更好. 汉字 3...

[最佳回答]我有些不错范文,采纳后发你.

单片机 12864液晶屏带字库和不带字库是什么意思-ZOL问答

5条回答:【推荐答案】12864液晶带字库和不带字库液晶屏的区别在于:带字库的液晶内置汉字字符库调用对应的代码就行。不带字库的得自行编译所要显示的内容字库...

猜你喜欢