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液晶带字库和不带字库液晶屏的区别在于:带字库的液晶内置汉字字符库调用对应的代码就行。不带字库的得自行编译所要显示的内容字库...