设计与开发

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

小编 2024-10-22 设计与开发 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);//延时一段时间,以造成视觉暂存效应

}

}

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

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

自主开发编程语言被指Python套壳 中科院开发者道歉

中科院计算所团队“完全自主设计、开发和实现”的“木兰”编程语言是Python语言的套壳产品?针对近日这一网络质疑,1月17日,项目负责人、中科院计算所编译实验室员工刘雷在科学网上发表回应称,木兰语言在8位单片机上的编译器是本团队开发的,在32位单片机上的编译器是基于Python开源编译器进行的二次开发,但在接受采访中将木兰编程语言和编译器夸大为完全自主开发。

团队负责人刘雷 资料图 图片来源:中新网

刘雷关于“木兰”编程语言的情况说明全文如下:

本人系中科院计算所编译实验室员工。基于我在编译技术上的科研积累创办了中科智芯(北京)科技有限公司,该公司围绕青少年编程教育,设计开发编程语言、编译器和集成开发环境等产品。

为了更好地在中小学中普及计算思维,本人带领团队开发了一种称为“木兰“的编程语言。它包含三个组成部分:一、在语言规范上借鉴了Lua语言的特性并进行了扩展,增加数据表达方法等新的特性;二、开发了支持少儿编程教育的可视化编程环境;三、针对8位AVR单片机,实现了相应的编译器和运行时系统,开发了能模拟多任务执行的虚拟机。以上产品已经在数百所中小学中,开展了10万人次的编程科普活动。

针对STM32单片机,我们是基于Python开源编译器进行的二次开发,也就是先将木兰语言的源程序转换为Python的中间表示(AST),再在Python虚拟机上运行。这就是在开发和运行环境中会包含Python系统的原因。

在1月15日接受媒体采访时,本人在对木兰编程语言的介绍中,犯了以下错误:

1. 木兰编程语言主要是用于中小学教育,在介绍中将它扩大到智能物联领域。

2. 木兰语言在8位单片机上的编译器是本团队开发的,在32位单片机上的编译器是基于Python开源编译器进行的二次开发,但在接受采访中将木兰编程语言和编译器夸大为完全自主开发。

对于此次在网络上造成的不良影响,本人郑重道歉,对给中科院、中科院计算所带来的不良后果表示诚挚的歉意。本人感谢大家的监督与批评,并深刻反省,保证不再出现类似问题。

此前,据中国新闻网等多家媒体报道,中国科学院计算技术研究所(以下简称中科院计算所)1月15日正式对外发布该所计算机体系结构国家重点实验室编译技术团队自主研发、面向新一代人工智能和物联网应用的“木兰”编程语言体系,并推出“木兰”开源软件包,供全球用户免费下载获取。

但随后网络上争议四起,知乎网友@沉迷单车就指出,从网络下载的“木兰”语言编辑器程序图标来看,与用著名编程语言Python生成的应用程序图标完全一致。“都不换个图标吗?”他问道。

澎湃新闻记者并未在中科院计算所或计算机体系结构国家重点实验室官方网站上找到“木兰”的发布信息,亦无下载链接。

“木兰”的下载渠道在一家名为“中科智芯”的公司网站上。据企业主页介绍,中科智芯(北京)科技有限公司是中国科学院计算技术研究所孵化企业,源中科院计算所计算机体系结构国家重点实验室而成立。

“木兰”编程语言是该公司的重点产品,企业介绍称,“木兰”是“专为人工智能教育而生的中国自主知识产权编程语言,由中科智芯自主研发。语言设计上屏蔽了其他任何一种针对成人设计的编程语言特性,如编程环境调试复杂等,让学生在编程语言学习之初不为细节所牵绊,具有更易理解、易于学习、易于阅读、易于维护等特性;且支持跨平台,对Android、UNIX、Windows都可以很好的兼容。”

有计算机业内人士对澎湃新闻记者表示,从目前能掌握的情况来看,“木兰”语言更像是Python语言的“套壳”产物。 “这个软件就是在Python语言外边套了一层壳,还是比较简单的那种,相当于一个接口,连图标都没有改。”

“木兰”图标

使用Python制作的文件图标

“对这个exe文件进行反向编译后可以发现,整个结构就是Python环境,比如其中有一个‘lib2to3’文件夹,就是只有python才会有的,是转换python2到python3的lib。”上述业内人士对记者表示。

“木兰”反向编译结果

不过,上述业内人士也对记者表示,“还是要看‘木兰’的源代码,才能确定这个语言到底有多少自主研发成分 ,以及多少是来自Python语言。现在从公司网页上无法看到源代码,也就是说还没做到完全开源。”

据此前报道,刘雷介绍称,“木兰”是中科院计算所团队完全自主设计、开发和实现的编程语言,与之配套的编译器与集成开发工具也完全由团队自主实现,“是我们真正掌握核心技术的编程语言”。

其介绍称,“木兰”定位为下一代重要应用——物联网应用开发语言,打造物联网智能执行平台,其采用最新的编程语言设计理念和编译技术,在考虑性能的设备处理层,它提供面向轻量级物联网设备和领域特定专用加速器的编程特性;在应用层面,它提供面向通用计算设备的编程语言并支持多种领域的定制化元编程。

据了解,以“木兰”为基础延伸的自主研发编程软件、人工智能教材、教学装备现已投入中小学、幼儿园使用,截至目前,“木兰”应用范围已涵盖中国18个省市共700所中小学。

工商信息显示,中科智芯(北京)科技有限公司持股70%的大股东是中科编易(北京)科技有限公司,而后者的大股东正是刘雷。

中科院计算所计算机体系结构国家重点实验室网站显示,刘雷,博士,工程师一级,在编程语言和并行编译技术方向上具有丰富的科研和工程经验,先后承担过国家863项目、核高基重大专项项目的子课题,所研发的技术成果达到世界先进水平,在多个顶尖的国际会议和权威期刊上都发表论文10余篇。其开发的自动并行化编译器的加速效果要明显好于世界上最好商用编译器Intel编译器。

Python在1991年由荷兰人Guido van Rossum发明,是一种跨平台的计算机程序设计语言,近几年因机器学习大热而受到关注。

(来源:澎湃新闻)

相关问答

单片机 控制的16*16点阵显示 汉字 ,不知道为什么会出现字体镜像?

16X16点阵是双字节数据。(1)显示程序不变,把点阵字符数据镜像:把D15与D0、D14与D1、D13与D2、D12与D3。。。对调。如:12E8H=00010...

单片机 中8*8点阵中 汉字 的编码是怎么获得的?

8*8造汉字很困难的,你可以找一个8*8的汉字库(如果有的话),用字模提取软件(网上很多的)获取点阵字库数据,之后写入这个8*8点阵就OK了。8*8造汉字很困难的,你可...

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

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

16*16点阵只用51 单片机 的4个IO口肿么显示 汉字 ?-ZOL问答

3条回答:【推荐答案】74hc164或者74hc595扩展IO口即可

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

我写个给你吧,我这个程序是检测按键,然后通过运算直接输出0-15的值。原理就是通过检测按键处于第几行和第几列来计算,输出=列+行*4,例如第0行,第三个按键就是...

单片机 控制步进电机正反转,步进电机42步进电机驱动tb6560?

[回答]用TPC8-8TD可以直接输出信号到步进电机驱动器,实现步进电机的自动控制。采用表格设置汉字显示方式设置需要的运行功能。下图是接线原理图:这个控制...

串口显示 汉字 找不到是为啥?

串口显示汉字时未找到的原因可能是:串口发送数据的速度过快,导致显示设备无法跟上接收的速度。这可能导致接收方无法正确解析接收到的数据,从而无法找到指定...

如何让尽量少的 单片机 引脚控制多个LED

[最佳回答]建议楼主找找LED汉字显示屏的电路,你的问题就解决了。

在线等:少儿编程教育有哪些?

[回答]单片机机器人:单片机就是一台微型计算机,它内部集成了处理器,存储区FLASH等东西,主要应用在工业控制场合。机器人需要大脑啊,通过对单片机编程就可...

c语言中怎么表示开根号? - 嚯吼哈嘿 的回答 - 懂得

math.h里sqrt()函数。程序源码及运行结果如下所示(系统会自动去掉句首空格,排版较乱请见谅):#include#includeintmain(void){inta,b;printf(&...

猜你喜欢