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);//延时一段时间,以造成视觉暂存效应
}
}
最后,如果有什么意见或者建议欢迎您留言给我,让我们共同学习一起进步,如果需要 程序完整源代码,请在下方留言或者私信我,看到后会第一时间回复。
如果喜欢我的文章请点赞转发加关注啊,谢谢!
OLED炫酷新玩法:实时显示中文汉字 单片机无需预定义字模
哈喽~ 上一篇给大家讲了如何用oled显示天气信息. 今天再发一个炫酷的玩法 (本文所有工具及源码都在结尾)
是不是oled 或 lcd 取字模很烦 ? 而且只有固定内容 没有变化.字模数组庞大?
小编打算做一个从网络获取中文字模 然后发送到esp8266上在oled屏幕显示出中文. 这样就脱离了预编译的字模数组.
当然我并没有做出来.而是打算先做串口输出.oled显示. 这样比较好调试
esp8266的ram很大 足够驾驭一个汉字的字模数组.甚至几个字模数组一起发送都没有问题.
当然为了稳定性我并没有这么做 ,还是一个字模一个字模的发送 发送间隔200ms 给esp8266足够的处理时间
200ms是底线 我试过150ms间隔 但是esp8266会丢字. 200ms既1秒显示5个汉字.这个速度可以接受
不多bb 先看视频 串口工具逐个发送字模数组 esp8266串口接收 然后逐个显示内容是李白的 <行路难> 片选
视频加载中...
效果怎么样? .是不是还可以
代码及软件及材料及环境
串口字模软件 -易语言编写的....
arduino IDE 编译的esp8266程序
OLED 0.92寸 128x64 spi接口
esp8266-12e
接线及定义 代码都有写
注意事项
临时搞的,解决了上一版本中文残缺的问题.因为我的目标不是串口通讯 是网络获取字模 所以不管是代码还是工具 都写的很糙 .
倒置取模需要注意下 ,我的oled有问题,取模是右向左取模 ,别人家的一般都左到右.
既 别人正常的oled 取到的是00001111 八位 我必须要倒转一下 既 11110000 才能正常显示
如果你的oled正常 请不要选中此项.其他的一目了然 不多解释
我跟你们说个事儿 : 你真不考虑关注我一下吗?
下载工具及源码下载地址
pan.baidu.com/s/1c2GWyQG
相关问答
怎样用C语言编写出能够 显示汉字 的程序,给举个例子好吗?-ZOL问答用单片机驱动点阵液晶很简单的哦哈哈不过想在TurboC下可以这样在许多C程序...如何编制能显示汉字的C程序呢?下面的方法可以帮你在西文环境下显示汉字。这...
51单片机 如何测试串口连接正常[回答]直接传就行了,把中文放在一个数组中如a[]="无线传输";传的时候就取数组的首地址,再依次累加直到传完就行了。收到的东西还放在一个数组中就还原了,...
51单片机 编写程序时如何将两个不同功能的程序连在一起以达到...我用51单片机做的智能小车有遥控,循迹,避障三个功能,用什么样的程序能够达到功能切换你确定这三个功能的代码是你自己写的?代码放在一起,在main处按条件进...
单片机 12864液晶屏带字库和不带字库是什么意思?-ZOL问答5条回答:【推荐答案】就是显示汉字的问题。显示一个汉字,是需要显示好多小点的。这就是汉字点阵。如果不带字库,为了显示一个汉字,就需要传送一大批点阵数据。...
求一篇 单片机 方面的外文文献和中文翻译,谢谢大侠们了!_作业帮[最佳回答]我的百度文库里有很多单片机方面的英文文献带翻译的的大多符合你的要求,你可以去挑选下!
单片机 ,字库文件是怎么调用的?单片机中的字库文件调用方式可以根据具体的单片机型号和开发环境而有所不同。一般来说,字库文件可以通过以下几种方式进行调用:预定义数组:将字库文件的数据...
单片机 中文编程有用吗?单片机中文编程使用相对常见。但是,无论使用什么语言进行编程,关键是要理解编程的基本概念和算法,并且能够正确地应用它们来解决问题。因此,使用中文或其他...
rcc 单片机 中文是什么意思?单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中...
为什么在 51单片机 里面数据存储器高128个字节里存放的是特殊...一、判断题()1.MCS—51单片机是高档16位单片机。()2.MCS—51的产品8051与8031的区别是:8031片内无ROM。()3.单片机的CPU从功能上可分为运算器和...
单机片led 汉字显示 是怎样- 一起装修网一起装修网问答平台为您提供单机片led汉字显示是怎样的相关答案,并为您推荐了关于单机片led汉字显示是怎样的相关问题,一起装修网问答平台:装修问题,因我而止。