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的点阵来表示汉字...