2021年 02月 26日 星期五
您的位置: 威廉希尔主页 > 单片机技术 >

16X16点阵编写技巧的思

来源:未知     作者:威廉希尔     发布时间:2021-02-26 17:32         

  来说一下16X16点阵的编写技巧,主要讲一下思,因为在写16X16点阵驱动时,很多人一上来大脑一片空白啊,根本无从下手,我这里举一个例子讲下思,以后大家可以按照我下面的思来写程序。

  首先要看一下16X16点阵的驱动电,以这个电为例我写一下自己编写16X16点阵驱动时的小经验,勿喷勿喷哈,O(∩_∩)O,上电图:

  (注:图中我加了一些注释,可能有的人不喜欢,所以想看原图的人可以去找我在单片机贴吧发的帖子里找,有PDF文件,很清晰!)

  从图片中我们可以看出74HC138芯片控制列,74HC595芯片控制行,我们都知道在同一时间内74HC138芯片只能有一个引脚输出有效(不知道74HC138和后面要提到的74HC595的人也不要着急,文章后面也会讲74HC138和74HC595),也就是说同一时间内只能选中一行,而74HC595是“串入并出”,八个引脚可以同时有效,这样就会导致16X16点阵驱动编写时的第一个易错点:扫描方式。

  这个16X16点阵的驱动扫描方式是由电图决定的(我仅仅指这个16X16点阵),不像8X8点阵,8X8点阵的扫描方式是任意的。

  说了,74HC138只能一个引脚有效,且74HC138控制行,所以此次驱动编写只能用行扫描,列送入数据。行扫描的原理上一篇已经说了,这里就不重复了,免得大家嫌我啰嗦......~(≧▽≦)/~喵

  上次我说思一代码实现简单,思好实现,当时写学习笔记的我还仅仅只是编过一些小程序,数据量不大,但是今天写16X16点阵驱动的时候,用了比较多的数据,发现思一在数据很多的时候根本实现不了(我仅仅指容量很小的51系列里面),51单片机的容量太小,根本无法同时处理这么多数据,所以这里纠正一下哈。

  刚才说了,数据比较多时,我们就不能用改变数据的方式实现滚动效果了,只能通过修改扫描函数读取数据的起始来实现滚动效果。(如果您有更好的思,请务必告诉小弟一下,先谢谢啦^_^)下面我说一下我的代码编写思:

  用一个for循环就可以实现修改每次的数据读取,for循环里面不是有一个变量嘛(一般都叫i),将这个变量i加到读取数据时的数据数组下标里就行了。我只写文字的话你们一般不明白什么意思,所以就....上图:

  for循环里我之所以写两个i++的原因是:16X16点阵嘛,一次要传输两个字节,所以每移动一个LED位,扫描的起始就要移动两个字节,所以要写两个;另外不用i=i+2是因为i++的运行速度快;还有就是i之所以取385,是因为我用了386个字节的数据,0开头嘛,所以就写385啦!扯远了哈,让我们再回归正题。

  从图中可以看出,我把i加在了83、88、93等行的数组StreamData的下标里面,这样每次扫描时读取数据的就会后移两个字节,这样就不用再写数据处理函数了。

  再来就该说一下16X16点阵的数据了:8X8点阵好说,就算自己算也不难啊,但是16X16点阵呢?难道还要自己一行一行得算吗?

  第一步:(此用法仅仅针对于16X16点阵的汉字取模,其实这个软件还有其他很多功能,这个以后用到的时候再说)

  这样,我们就可以很快获取想要显示的汉字的字模了。对于这个软件在使用前还要进行适当的设置,在:参数设置—>

  其他选项里面,软件自身也有相当详细的说明,自己看就行了。

  下面是我自己用AltiumDesigner画的一个74HC138元件图(AltiumDesigner我刚学完,才过了一个周,不怎么会用),一共有16个引脚。

  1.整体功能:138(后面都简称138)主要功能是用一个三位的二进制数控制八位输出引脚中的一个引脚,经常用于动态显示。

  4.E1、E2、E3用于控制当前的138是否工作,当要控制多个138的时候就要用到这三个引脚了。

  再详细的包括真值表啊、具体电接法啊什么的我就不说了,我这里只是讲技巧的嘛,最基本的基础知识还是靠自己学才能记得最扎实!

  下面我自己用“画图”画了一张74HC595的工作原理图:(画一张这么简单的图花了我近一个小时,不想活了....╯﹏╰)

  74HC595芯片具体的编程还要涉及到时序,不是一句两句就能说完的,所以这些基本知识我就不说了,我说一下我对4HC595的理解:

  74HC595的组成:74HC595呢就好像是一个水库,有一个进水口(图中的DS引脚,就是第一列)、一个存水箱(图中的数据保存区,就是第二列)、一个放水闸门(图中的OE引脚,第三列),八个出水口(也是第三列)。

  74HC595的工作原理:当接到进水命令时(SH_CP引脚),开始进水,水进多了就会漏出来(下面的Q7引脚),接到存水命令时(ST_CP引脚),进来的水就会进入存水箱,最后当接到放水命令时(OE引脚)就会放水,8个出水口同时放水。

  这样74HC595就讲完了(再说一下哈,基础知识这里不讲,哎呀,不要怪我嘛,我主要是分享经验和技巧,基础知识可以百度百科嘛,那讲的更好更详细!)

  用一个for循环控制移动的时间间隔,for里面用两个74HC138依次选中每一行,再用两个74HC595送入每一行的数据,这样直至扫描完一个屏幕(不是8行了,这次是16行);之后外面再嵌套一个for循环用来变更数据读取的(后移两个字节),这样就实现了16X16点阵的驱动编写。

  注意细节不要忽略,这也是LED类的,要进行微延时和消隐操作,当然作为一个有理想的开发者,规范的代码格式也是必须滴!

  在上一篇文章的评论里面大家在讨论我用的编程软件,我这里说一下,我用的是TKStudio,挺好用的,我最喜欢的是它的代码提示功能,这个很厉害,KeilC51是没有代码提示的,但是KeilMDKforARM是有代码提示功能的,但是初学者最开始都是在写C51的,所以写C51代码时TKStudio还是不错的,新手的啊。本来想说一下这个软件的,可是好晚了,该睡觉了,明天还要上课呢,那么就在下一篇文章的时候我再说一下TKStudio这个软件吧,到时候会主要说说怎么改字体和语法高亮,我也会把我的编辑风格文件分享出来,大家直接引用就可以了,不喜欢我的那个风格就自己再改一下就行。

  文章出处:【微信号:mcu168,微信号:玩转单片机】欢迎添加关注!文章转载请注明出处。

  μC/OS-II 操作系统是建立在微内核基础上的实时操作系统,抢占式多任务、微内核、移植性好等特点,使其在诸多领域都有较好...

  同样是5V,为什么单片机输出的电流只有几毫安? 为了让大家彻底搞懂这个问题,首先我们需要知道单片机引脚的构成。 ...

  例: 让该端口输出高电平的语句是: SETB P1.0 让该端口输出低电平的语句是: CLR P1.....

  HOLTEK新推出BP45F4NB、BP45FH4NB移动电源MCUHoltek新推出移动电源Fla....

  便携式农药残留检测仪【莱】的操作步骤。农业领域作物的稳产增收离不开农药的作用,但是农药一方面在稳....

  针对采集精度低、主控芯片资源占用大,采集速度慢等问题设计了一种多数据采集系统。系统采用AT8...

  在实际的工作中,经常出现因为RD人员的设计“疏忽”导致试产失败,这个疏忽要加上引号,是因为这并不是真正的粗心造成的,而是...

  【适用范围】 多功能电子织物强力机可采用不同的夹具辅具实现不同的能,主要用于各种纺织品的断裂拉伸、撕....

  数据采集系统的硬件结构一般由信号调理电、多切换电、采样保持电、A/D转换器以及单片机等组成。

  我们在进行pcb布线时总会面临一块板上有两种、三种地的情况,傻瓜式的做法当然是不管三七二十一,只要是....

  项目有些久远,前年的机器人上需要的功能,当时是需要将STM32上的数据上传到服务器,比如机器人的速度....

  在本文中,我们将研究这些极受欢迎的IC的定义特征,然后研究内部架构。 如果我必须选择一种技能,这将是....

  MCU,微控制器,又称为微控制单元或者单片机。 在实现方式上,MCU是将CPU的频率与规格做适当缩减....

  本文档的主要内容详细介绍的是Proteus单片机仿真实例大全免费下载包括了:2io5键盘模拟音量数码....

  本文档的主要内容详细介绍的是使用单片机实现串并转换器74HC164驱动多只数码管显示的实例免费下载。

  【适用范围】: 织物透湿量仪用于测定纺织品的透湿性。 【符合标准】: GB/T12704  ASTM....

  89C51/2单片机有两种节电运行模式:待机运行模式和掉电运行模式。89C51/2单片机进入掉电模式....

  此电源管理仪器主要用于中小型变电站的操作电源以及备用电源的监测和管理,为了更好的节约备用电池的能源,....

  本文档的主要内容详细介绍的是使用单片机实现家用燃气报警器的设计资料合集包括了AD版本电原理图和PC....

  使用STM32单片机实现数字示波器的设计资料合集免费下载包括了:原理图、源程序等资料合集免费下载

  最近有部分刚接触MM32 MCU的用户朋友们碰到了MCU无法进行下载的情况,然后跟我们反馈芯片有问题....

  1.准备好万用板和IC插座-40P,2.开始焊接,注意焊点焊锡不要太多。3.焊接完成,注意单个焊点焊....

  织物电子织物强力机 多功能电子织物强力机可采用不同的夹具辅具实现不同的能,主要用于各种纺织品的断裂拉....

  STC89C52是STC系列单片机里应用比较广泛的一款,在自动控制领域里享有很高的价值,以其易用性和....

  本文档的主要内容详细介绍的是使用单片机C语言实现步进电机转动原理的实例程序和工程文件免费下载。

  之前一直使用ST的STM32F031单片机,但是由于疫情还是啥啥原因,ST的芯片价格涨得没法看,因为....

  在这里不敢以”资深”工程师自居,因为学历和技术水平确实一般。为什么说“老”呢?因为工作时间确实够长,....

  现实生活中, 我们总是要与人打交道,互通有无。单片机也一样,需要跟各种设备交互。例如汽车的显示仪表需....

  本文档的主要内容详细介绍的是单片机C语言程序设计实例之74HC138译码器与反向缓冲器控制数码管显示....

  本文档的主要内容详细介绍的是单片机C语言程序设计实例之使用串入并出芯片74HC595控制数码管显示四....

  本文档的主要内容详细介绍的是单片机C语言程序设计实例之带日历时钟及温度显示的电子万年历程序和工程文件....

  本文档的主要内容详细介绍的是单片机C语言程序设计实例之闪烁的LED程序和工程文件免费下载。

  在日常生产与生活中,大量电动机都以的速度和功率去拖动各种机械。而在军事上,很多应用往往要求旋转天....

  教室电器智能节能系统主要由人体检测、亮度检测、温度检测、单片机模块、电力线载波通信模块、上位机控制软....

  汽油的标号是由其辛烷值确定的。辛烷值是测定汽油抗震性能的一种指标,辛烷值越大,汽油的抗震性能越好。由....

  一般32位单片机的内部FALSH是不支持字节操作的,有的可以按字节读取,但是不能按字节写入。 而且,....

  红外气体传感器和电化学传感器分别对氧气、一氧化碳、二氧化碳、硫化氢和甲烷五种气体进行检测。其中,二氧....

  每项新应用设计都需要一个单片机或微处理器。当在两者之间选择其一时,需要考虑一些因素。考虑选择微处理器....

  STC8 系列单片机是不需要外部晶振和外部复位的单片机,是以超强抗干扰/超低价/高速/低功耗为目标的....

  本文档的主要内容详细介绍的是使用STC8A8K64S4A12单片机掉电定时器应用的实例。

  基于单片机的LED点阵滚动显示系统功能: (1)能根据汉字和英文的内码不同显示不同的汉字和英文字符,....

  主要功能: 1、采用4位数码管设计。 2、下排按键一一对应八位选手。 3、上排四个按键,从左到右依次....

  该DIY设计是基于STM32F103C8T6单片机最小系统作为主控,矩阵键盘作为输入单元,LCD12....

  随着社会的不断发展,标识技术在各行各业得到了广泛的应用。食品、饮料、烟酒、药品及化妆品等包装印刷企业....

  PWM(Pulse Width Modulation),一般指脉冲宽度调节,是利用微处理器的数字输出....

  单片机如何控制以太网网卡进行传输数据,如何加载TCP/IP协议连接到互联网,这些都是一些令人感兴趣的....

      威廉希尔