在前几期视频介绍了使用 stc 三二单片机的 i o 口直接驱动一到八位数码管,随着数码管位数的增加,需要的 i o 口数量就越来越多。 i o 口只驱八位数码管时, a 到 d p 段需要八个 i o 口。 com 一到 com 八也需要八个 i o 口,这样的话驱动数码管就占用了十六个 i o 口。如果要驱动十六位数码管的话,就需要二十四个 i o 口。下面介绍使用七四 h c 五九五驱动数码管,只需要三个 i o 口就可以驱动八位数码管。 七四 hc 五九五是串形输入,并行输出,带锁存器的移位计算器,它有十六个银角 vcc gnd ds 串形输入, y 零到 y, 七是并行输出, y 七撇是串形输出, o, e 是输出使能低电瓶有效。 m, r 是复位引脚,低电瓶有效。 s h c p 是数据输入时钟, st c p 是输出 存储器所存时钟。一般的话, o 一输出只能接低电瓶,只能芯片输出 mr 接高电瓶不复位。 b 型输出 y 零到 y, c 接数码管 a 到 dp 段使用一片五九五十创新输出, q 七撇就不用接。接下来就剩下三个音角创新输入 ds 输入时钟 sh 以及输出所存时钟 st 这三个引脚接单片机 p 二点零到 p 二点二。其次, h c 五九五的使用并不复杂,比如我要把零 x a a 给五九五输出,零 x a a 对应的 r 进字就是幺零幺零幺零幺零。因为通过一个 io 口发送一个八位的数据,就需要每次发送一位,总共发送八次。先把最高位一输入 ds 输入十中 sh 产生一个上升岩,数据一就送入了一位计算器中的 y 零位,再把第七位的零输入 ds 输入十中, sh 再产生一个上升岩,之前的一就移位到了 y y 一位, y 零位就存入了零。再把第六位一输入 ds 输入时钟,再产生一个上升眼,之前的数据就会再移一位。总共经过八个时钟,数据幺零幺零幺零幺零就完整的存入了一位计存器, 这个时候幺零幺零幺零幺零这个数据并没有在 y 零到 y 七输出,需要输出存储器所存时中 st 产生一个上升延,以为计存器中的数据才会存入输出存储器中, y 零到 y 七才会有对应幺零幺零幺零幺零的输出。 下面看看代码是怎么把八位数据写入五九五的。使用一个零到八的负循环,先拉低输入时钟, sh 把数据和零 x 八零进行与操作, 除了最高位外,零到七位都变成了零。如果最高位是零的话,结果就是零,如果最高位是一的话,结果就是零 x 八零复制给 d s, d s 只要大于零。对于单个 i o 口来说,就是 在拉高输入时中 sh 这样就产生了一个上升延,最高位数据移入了一位计存器,接下来把数据左移一位,最高位被舍弃,原来的第七位成了最高位。 这个过程执行八次拉低输入时钟,取最高位复制给 ds, 拉高输入时钟产生上升,沿数据左移移位,整个移位操作完成后,拉低所存时钟 st, 再拉高所存时钟 st 数据存入输出存储器 y 零到 y 七输出数据。这就是像五九五写数据的过程, 知道了给五九五写数据的方法,接下来就可以用五九五来驱动数码管了。这里使用的是公英级数码管, a 到 dp 段接五九五, y 零到 y 七 公共端 com g a, p 零点零,五九五创新输入 d s g a, p 二点零,输出所存时钟 st g a, p 二点一,输入时钟 s h g a, p 二点二,五九五复位 m r g a 高电频 o 中医使人接低电频供应急断码数组定一个变量 number, 用于零到九的计数,零到两百的货循环,让每个数字在一秒内显示两百次,每次向五九五写当前计数值对应的断码,数码管公共端给低电频延时五毫秒。五九五写数据函数 定义了一个变量 decode, 用于取行餐对应的断码值。零到八的货循环,拉低输入时中取断码值最高,拉高输入时钟产生上升延。循环八次八位数据一路一位计存器拉低,在拉高所存时中产生上升延,数据存入输出存储器 y 零到 y 七,输出断码值。 那为什么数据要取最高位而不是最低位呢?因为我是把数码管 a 段接在了五九五的 y 零, b 段接在了五九五的 y 一, dp 接了五九五的 y 七,那么断码的最高位就需要在 y 七输出,最低位在 y 零输出。 如果这里每次取最低位的话,最先发送的数据就会移位到 y 七,最终得到的数据就会和断码正好相反,数码管就不能正常显示。 那如果把数码管 a 段接 y 七, p 段接 y 六, dp 接 y 零的话,这种情况就需要每次取最低位数据,所以取最低位还是最高位是取决于电路的接法。五九五只是把最先接收到的数据移位到 y 七,最后接收到的数据在 y 零视频用到的这块五九五模块是两片独立的,五九五 每片都可以单独使用,也可以使用透光线连接,即连使用。模块的原理图 p c、 b 和字版文件会和代码一起打包,代码可以在 stc 官方论坛下载,搜索布丁局长找到对应的代码即可下载。
粉丝1.3万获赞6.1万

哈喽,大家好,这里是 ac 创客,今天我们来讲七四 hc 五九五芯片,它可以非常高效的帮助我们扩充单片机的脚位, 它的中文名称叫做一位寄存器,也叫一位缓存器,它同样可以通过三只眼角来控制八只眼角,这样一说,好多同学可能会把它和三八一马戏搞混, 其实完全不一样的。三八一码器是三只眼角有八种输出状态,而五九五芯片可以让八只眼角输出任意状态,他广泛应用于数码管驱动电路上。好了,我们还是先看一下他的眼角,第十六 倒影角和第八影角是他的正极和负极,挨着芯片负极的一排,一号影角到七号影角以及挨着芯片正极的十五号影角 就是他的八个信号输出脚输入眼角。我们先不着急介绍现在芯片的正负极还有两个小跟班没有说,第十号眼角 m 二是电源 vcc 的小跟班,第十三号眼角 oe 是电源 gnd 的小跟班,也就是负极。 使用的时候,如果这两个眼角没有接或者接错的情况下,计存器是不工作的。在芯片的第九角有一个空角位, 这个平时是用不到的,现在我们来介绍起着关键性作用的三个控制音角。首先我们先来看第十四号角位 ds 给它起一个名字叫做数据。 接着我们来看第十二号角位,给他起一个名字叫做大平台。最后我们来看第十一号角位,给他起一个名字叫做活塞。这时有朋友 可能会说,都起的什么破名字,不要着急,这可是关键,一定要记住他们,他们非常重要,每个名字都反映的是他们各自的功能,我们从电路中验证为什么给他们起这种名字。我先准备了一个数码管的针织表,我们先来点亮一个数字二, 我使用的数码管是供阳级数码管,所以只有低电瓶才可以点亮。如果使用供应急数码管,将这个针织表上的数值反过来看就可以了。首先我们装填数据,可以看到它的第一个数据是零,将数据角位放在低电位, 接着用活塞将它推入寄存器,后面的数据通过这个方法依次装入寄存器。 现在数据装填完毕,我们启动计存器的大平台按钮,将数据集体推入数码管,现在数码管上就显示着数字二,是不是非常神奇,我们再来装填一个数字一,试一下 推入,现在数码管上就成功的显示了数字一。 看完了这一番操作,大家学会了吗?今天关于七四 hc 五九五一位计算器的讲解就到这里了,大家有什么问题可以在评论区留言,谢谢大家观看,我们下期再见!

小伙伴们大家好,我们在不断点灯的过程中会发现,当我们需要控制大量 led 时,通常会占用我们大量的 io 口。 我们需要有一种更为便捷的方式来减少板子银角占用的同时,又不会使 led 完全失去控制。移位寄存器可以帮助我们扩展 io 口数量。常见的移位寄存器有两种基本类型,串型输入、并行输出。常见的有七四 hc 五九五。当我们需要控制大量输出时,就可以选择这种类型,比如我们下面就会利用它完成 led 的控制。 并行输入。串型输出典型的是七四 h c 幺六五,这种类型适合收集大量的输入,比如按钮状态。这个我们后面有时间单独开一期视频进行介绍。接下来我们看到这一块七四 h c 五九五寄存器,首先还是以半圆缺口进行参照,左下角为起始位置,延逆时针方向依次为一至十六号影角, 其中十六号银角用于五福特电源,八号银角用于负极连接。一号银角至七号银角以及十五号银角是并行数据输出角位,使用时应该连接到需要控制的 led 上面。 九号银角串型输出银角可以将这个银角连接到下一块七四 hc 五九五的串型输入银角上,进行局链拓展,从而控制更多的 led。 十四号银角串型数据输入角位在部分资料上标注为 ds, 这里参照新版的数据手册标注为 cr。 后续角位标注名称不同也是如此。 十三号银角输出使能主要用于开启或关闭输出,当银角为低电瓶时,可以开启寄存器输出串型输出银角工作,输出数据到下一块寄存器高电瓶时,关闭寄存器输出。十二号银角存储寄存器时钟信号,或者可以理解为锁存器。当高电瓶时, 一位寄存器的数据会复制到锁存寄存器中,并将最终结果推送到并行数据输出角位。十一号银角,一位寄存器时钟上升眼,有效数据将移入一位寄存器。十号银角用于重置寄存器,将整个一位寄存器重置为零,低电评为复位。 七四 h c 五九五的内部是由八位移位寄存器、八位数据锁存器和八位三太门这三部分组成。一组完整的八位串型数据会首先进入一位寄存器,然后通过锁存器将最终结果推送到三太门中, 而三太门是指逻辑、零逻辑和高阻太的三太输出电路。假设一组八位的串型数据需要输入到一位寄存器时,首先我们的串型数据输出角位会以高低电瓶的方式将一和零进行输出,同时我们将 一个高电瓶信号输入给 srclk 银角。当时中脉冲处于上升岩,一位寄存气味灵的位置会移入一位串型数据。数据移入完成后,需要将一位寄存器时钟置于低电瓶状态,以便下一位数据的移入。再次输入高电瓶时,一位寄存器中现有的数据位置将会向后移动。一位 完整的一组数据输入完成后,将 rclk 引角。至于高电瓶,就可以将一位寄存器中的数据复制到锁存器当中,并推到三泰门中进行输出控制。以下附上完整持续图,感兴趣的小伙伴可以暂停观看。 现在我们已经对七四 h c 五九五的基本工作原理有所了解,那就准备进入我们的实际操作阶段。首先将寄存器和 led 固定到面包板上,固定的过程中需要注意区分寄存器的银角位置, led 则需要正确区分正负极。为了避免负载过大影响 led 寿命,建议加上限流电阻。在本次连接中,我使用的为二百二十欧姆的电阻。关于 led 限流电阻的计算可以进入我的主页查看,往期视频在 rgb led 中有做介绍。 接下来我们将寄存器的输出 a 到 h 一次连接到 led 的正极。 led 与寄存器连接完成后,现在将寄存器的八号银角和十三号银角并连到负极,接着将十号银角和十六号银角接到正极。隋唐提问一下,为什么在这里将十号银角接到正极,知道的小伙伴可以在弹幕或者评论走一波。 在电源的两端,我加了一个一百微法的去藕电容,用于降低原件藕和到电源端的噪声,提供一个相对稳定的电源。小伙伴们可以根据实际情况进行添加。特别提醒,部分电容需要区分正负极,短接可能会造成电路损毁的危险,如果不清楚如何区分,可以省略,暂时不添加电容。 现在我们将 r doing no 版的电源和负极引到面包板上,然后将板子的二号端口连接到寄存器的十四号银角,三号端口连接到寄存器的十一号银角,四号端口与寄存器的十二号银角连接。当一切都连接完毕时,记得再次确认银角连接是否正确,避免一些奇怪的问题产生。 在程序的编写中,我们有多种方法将数据发送给寄存器,比如利用 spi 库,或者通过创建时钟信号来完成与寄存器的数据交换。又比如我们可以利用 r doing no 提供的 shift out 方法来快速发送数据。 待会让我们主要利用第二种和第三种方式来进行程序的编写。首先我们还是先声明影角,然后将三个端口设置为输出。接下来我们创建了一个 update shift register 方法,这个方法主要用到了 r doino 内置的 shift 方法,在这个里面需要传入四个参数数据影角,一位寄存 系,时钟为顺序以及值为顺序。我用的是 msb first, 大家可以将这里修改成 lsb first, 查看会产生什么其他变化。 put data 方法里面就是通过调整时钟信号来进行数据的传递, 而 clear led 主要是给计层器里推零,从而使控制的 led 关闭。在这里我加了一个休眠时间,这样就可以控制每一个灯珠的关闭间隔时间。 loop 方法里面可以填充你们编写的各种灯珠效果方法,这里因为代码太长了,我就没有贴上来,大家可以根据以上的基础代码自由发挥。 下面附上本次作品的效果展示,我做的效果相对比较粗糙一点,大家有兴趣可以尝试一下更多的效果,甚至于加上更多的 led 进行控制。 以上就是本期视频的全部内容,感谢大家的点赞、评论、转发、关注,我们下期再见!

朋友们大家好,今天给大家分享一下如何自己制作一个简易的流水灯,通过上面的定位器也可以对速度进行调节。搭建电路,我们可以使用 pcb 板,也可以使用洞洞板。 准备一个 bc 五十七三极管,这是一个 npn 型的三极管,这个三极管是用来给流水灯主控芯片提供数据信号。 准备一个十六拼的插座,用来安装主控芯片。在三极管的积极,需要安装十 k 电阻进行限流八拼的 ic 插座方便。我们用来安装 n 一五五五芯片。 准备一个一 k 电阻,这个电阻是 n 一五五芯片七角放电管的限流电阻。准备一个四点七微法五十伏的电解电容,这个电解电容是用来给 n 一五五芯片二角提供触发电压的。在 三极管的集电机还需要串联一个十 k 电阻,用来限制三极管的 ice 电流。准备一个十 k 至一百 k 的电位器,这个电位器可以调节流水灯的速度,为了避免电位器的阻值调零,所以需要在电位器上还要串联一个一 k 电阻进行限制。 准备十六个发光二极管,颜色任选。制作的这个流水灯电路最多可以驱动八组发光二极管,每组我们并连两个发光二极管,所以总共是用十六个。 同时我们需要准备十六个一百 o 的电阻,分别串联在这十六个发光二极管上,用来给发光二极管限流,避免这些发光二极管过流损坏。 n 一五五芯片在电路中是用来产生防波信号,产生的 脉冲信号用来提供给主控芯片。主控芯片使用的是七四 hc 五九五,这个芯片可以把串行信号转变为并行信号,通常配合单片机用来驱动数码管。 这个电路的供电使用的是五伏直流电,接上电源之后,上面的发光二极管就会呈现流水灯的效果,通过调整电位器就可以改变流水灯的频率。这个是流水灯的制作电路图,感兴趣的朋友也可以自己动手 diy 一个。

这是七四 h c 五九五一位寄存器 i c。 所以让我们看一下这个移位寄存器的功能和工作方式。七四 h c 五九五作为一个移位寄存器工作在串形输入并行输出协议上。他从未控制器接收到严肃的数据,然后通过并行引脚发送出这些数据。 我们可以使用单个芯片来增加八个输出引脚。让我们看看这个 i c 的引脚布局。 它有 vcc 盒的银角 以及八个输出引角,用于引出或任何其他物品。让我们看看这个 i c 的数据输入引角 即时中 r, c, l, k 和数据输入 data in 数据输入。数据通过高低电压的脉冲病与时钟信号同步发送到 i c。 这意味着五伏特表示数字值为一,而零伏特表示数字值为零。 这是一个具有固定频率的一致高低信号。它作为寄存器的数据移位器工作。 即使在数据发送到 i c 之后,他仍会刷新 i c 的输出,直到此信号被制高为止。 什么是计存器处理器?计存器是计算机处理器可以快速访问的位置。计存 器通常有少量快速存储器组成。尽管一些寄存器具有特定的硬件功能,可能是止读或止写的。为了测试七十四 h c 五九十五,我们将使用引线, 这是引线的 d 和正几角。让我们将引线连接到七十四 h c 五百九十五上。 我们可以通过串联 s s 的数量来增加输出数量。 通过将输出期划线连接为下一个 i c 的数据信号。输出期破折号不是输出期,它是在从数据引脚接收输入后传递的数据信号 需要多少一位寄存器才能制造出与八零 maga 三二八相同的三十四千比特内存?这是三十四乘十的二十四次方,等于三万四千八百一十六。是的,这是一个很大的数字, 因此你需要三万四千八百一十六个 asses。

大家晚上好,今天我们讲一下第八章的内容。七四 s c 五九五, 第八张七十二十四,五九五是个是个什么元气键呢?其实他是一个啊八位的创新输入,他就相当于,其实怎么我们直接看这个,他这个芯片的元气键吗? 他是他是一个八位创新的一个输出, 以后我们直接因为这个延续键。为什么我要单独讲一下呢?因为到时候你们可能用到了启动一些 led 啊,或者一些其他,假如你 骗机饮酒不多啊,你可以用来控制一些 led 啊,扩展一些 led, 还有 三极管啊,啊机,呃,蜂鸣器啊等等啊这些的控制扩扩展, 因为毕竟我们的五幺大面积,他只有三十二个饮酒,对不对?有时候我们需要用的饮酒比较多,但我们就可以 用一些人气电来扩展一些这些单片机的 io 口,比如你 ledled 其实就是控制一个高低电瓶,那我们就可以用一个简单的五九五 用来扩展,因为五九五其实只需要用到三个饮酒来控制就可以控就可以,呃,基本上可以 扩扩着好多个 l 口,因为他这边可以再创一个他呢,那么他的继续还是只用需要三个银角控制而已。 所以说五九五对于我们比如点赞这些人用还是我们还是有必要来讲一下这一张的五九五的芯片的应用, 然后一般用什么地方?我们刚才已经说啊,用于扩展,当面积不够的时候, 那我们他是一个什么样的呃,一个通信方式呢?你我们也知道他是这里,我们看他的芯片,其实我们看芯片好,我看到没有, 这里只有一个八位零 q 零到 q 七,这个 q 七点,他是下一位的输出到下一个时钟,下一个的五九五的那个呃时时钟, 所以我们我们刚刚看芯片的呃芯片这个就直接,我们就看到这些,其实它是一个呃低屎囊, 高屎囊这些,其实我们只需要看这三个饮酒就就行啊,所以同样 我们还是五九五。少,就说你用上的东西啊,芯片手册里面能看到的东西我就少讲,所以其实你具体要有 解的话,其实你可以看一下芯片手册,我们这一期的内容只要是针对于一些芯片怎么用驱动为控制,其实我们就现在就控制这三个饮酒就行了。好,我们来看一下, 先看一下我这里有一个解说目的,看到没有?第一步,第一步是什么呢?目的 就是要将输入的胃四季移入五九五的四季端,然后再送到五九五,然后再 保存,然后方法,这些方法目的都是要放看到没有什么上山岩也要下山岩。其实我们呐, 我们就不必要去了解那么多,因为因为假如我们做一个出来后完全就可以后面学习,直接就就套用我们今天用的东西啊, 我们直接结合详细上说吧,详细上其实是是没有多大内容的,只是不过他现在是自己定义的这个三个饮酒,好,三五三六三七,我们看看都是定义了什么呢? 三五三六三七,好,我们再一个一个看 三五 shcp 是什么呢?好,这个是不是就是说你要达到一个上山眼,他下 一位世纪才会送入计船器,因为他是只有一个啊,创新的输入,对不对?八位,一个字结,八位刚好对应他的七,哎,五九五的那个八个还有口,对不对? 我们来直接看程序吧,他是怎么应用的? 那在看程序之之前,我感觉有必要再跟他们跟同学们讲一下, 因为他是创新八位的,对不对?好,假如我说假如,假如我们有一个世纪零 saa, 对不对?那他是等于什么?幺零幺 幺零幺零幺零,对不对?八位对不对?因为他是一位,一位送进去的,那么我们刚开始的时候肯定是 先输出一个储储储存器手,哎,那个手传着时钟对不对?那就是 stst, 因为要死难他,对不对?然后我们在干嘛?我们刚刚看了一下, 是上山岩才是把四季传进去,所以我们先拉低拉低。好,这里看,因为这里是一个八位,看到没?我们先看四季,这里是个八位。 哎,话都有点不清楚啊,我们撤销一下啊,看到没有?这是一个八位,因为,因为我们现在用了两个五九五,所以这里是定义五九五 啊。再再说之前,我再讲一下他那个四季是怎么传输的吧,对不对?他是这样的,假如你传了一位进去,对不对?以后再接着下来再一位的话,他会把这一一位 明白不?他是会把这一位再往往上移, 明白不?他是这样子。呃,怎么画呢?我们刚刚看到有 q 零 q 一五九,五五九五,有七个,还八个口,对不对啊?一直到 q 七, 他是怎么传的呢?好,假如我们这里是传一位,对不对啊?假如那个世纪是高的话,他那个就传一啊,对不对?好,假如你看到没有,我们这边是 先发高一位,就是说我们先发这一位世纪,对不对?一头七,我们先发这一位啊,这一位是发到哪里去的呢?刚开始他是发到这里来的 啊?发到这里来,对不对?明白不?他是先发到这里来,然后 我们再兴旺一次,我们现在就起什么?因为这边看到没有往右移一位,对不对?往右移一位,那沿 那,那现在的司机就变成什么啊?现在这个就变长,就等于零幺零幺零幺零零,对不对?还是往后往往这边又移了一位, 对不对?然后现在他又传了一个零,下一次第二次进来呀?那就传个零进来,那么他这边的世纪就会往下移一位,而现在的这一位就是在这里啊,对不对?他一共循环八次,最后那就说你刚 开始的那个比特七是不是最后会移到这里来?最后不就幺零幺零幺零,对不对?他是先送高位,一定要记住他是先送高位, 好,送完后我们再把它这个设计锁传起来,就是说把它输出出去。明白我意思不? 就说把整一个锁传起来就保存了,现在当前他输入就按照这一位输入到啊五九五的那个储存器那里,锁传起来,那他就输出啊, 你写一他就输出,一写零他就输出低,写一输又高,对不对?所以他这个就是这么写,就是说好,我们再看一下 他是怎么写呢?我们再看一下他是怎么来的,嗯, 就是说他刚开始是这里,这个是放比特七的, 就是第第第八位的世纪,对不对啊?必得七,假如啊,这里放个必得七,然后再来一位,他这一位会往下移,整体会往下移。 明白?我意思不是这里,这里全部的设计会往下移一位,然后笔筒又进来,那就放在零那边,原来 q 零就等于 q 一, q 一就等于 q 二,明白不?然后 q 七是等于什么呢? q 七就输出到这里来呀, 明白不? q 七是输出到你这里来呀。所以为什么说我们先传什么?先传最后一个五九五, 并且是从高位开始传,所以,所以要记住这个方式,五九五或者创新都芯片所有创起来的设计一般都是这么控制。就说我先传第最后一个,最后一个五九五,并且是从高位传,因为 因为他是一个一个像,像这装头那样也加似的,比如你,你你这一个进来啊,对不对? 就比如那那床,那床一样,那那床条一样啊?他这样子对不对?但是 先先插进一个,对不对?以后假如我又进来了一个,那人来了就往下移啊,人来了就往下移啊, 看到没有?对不对?就是像内存条,我们看储存器一样插进一个,后面的往下移,就是这个意思,所以这个就是五九五的一些。呃,这三个饮酒的一些控制方法,他的眼里就是这样, 就是说我先打开手传始中,然后,然后再高高电瓶,然后再再来一个上山眼的时候, 他就写入啊,这个是低,对不对?低马上变成高,那他就是写入司机啊,对不对?因为你这 判断倒点水,高电瓶还是低电瓶,然后最后水完就把它锁传起来,所以五九五的大啊,具体的一些控制启动就是这样。好,我们,我,我们怎么去比较系统的控制五九五呢? 我这里讲一下,你看到没有?我是怎么做的呢?这个定义肯定这个是没关系啊,以后你看到没有?五九五,我现在是画 画两个,对不对?那我就定义了两个,就这个,为什么我要这这里定义呢?就方便后面你加三个、四个、五个都比较容易,我就改一下这里啊二, 那他这个世纪也是二啊,假如是三,那他也是三啊,对不对?那我就把他一个,呃,看到没有?这个是一个制服创, 这个是驷马馆上一间,我上一节课我们已经讲了驷马馆的一些制服创 啊,那编码一二三四五六所代表的是什么?所以我现在是做一个实验,所以我就直接打一,第一个是一,第二个是二,就对不对?一二二,好,这个就是说这个五九五,我要发数据,都五九五的数据是什么? 你看发完然后再写,怎么写,对不对?刚刚已经说啊,一味一味的写,对不对? 所以我们可以看一下,运行一下,对不对?是不是一和二?好,我们再改一下其他数, 假如六额五, 看一下,编译一下,假如是六和五,那我们看显示什么,对不对?是不是六和五啊?对不对?所以 这个五九五,其实我们知道他是先从最后的四季,还是说低位还是高位,我们只要明白这两点,我们去看这个驱动就很简单了,明白不?就 这些的话,这一些的话啊,这些比如 st 为什么先要复位呢?是不是干净人家的芯片所测啊?一些说明都来的,而我们不必要去纠结这么多,其实最重要的是这句话 自己啊,小一二,从开始。为什么说是佳佳呢?对不对?因为佳佳比较好给你们看计算以后我们就转成从高位开始算 啊,高高高,数据就说一二三,第三个世纪,第二个世纪,然后从高位开始 以后这一句也很重要,因为我们是从高位开始。那我们发完了一位肯定要向右移,对不对?右移一位是把原来的比特 七第六,哎,第六位变成第比特七,对不对?所以要有一个右移。 嗯,这一张的五九五就讲到这里,希望你们能不能听听都明白一点。

大家好,上期我们介绍了数码管显示的原理图设计,今天我们来开始编写第一个数码管程序,这个是七四 h c 五九五的中文芯片手册,我们拿到一个芯片手册,我们主要看一下这个引脚说明, 我们可以根据这个引脚说明设计自己的电路。 q a dog 式并行输出,接到数码管的八个段 吉,连接到一个五百九十五输入。我们主要看下程序说明,每当一位计存器上升到来时,这个数据左移一位, 在下一个上升严的时候,将这个所有位左移一位,即连内也会串形输出一位寄存器的最高位, 连续八次就可以把数据的八位送到一位寄存器存取。寄存器上升沿到来的时候,一位寄存器的内容将会被锁存到存取器里,并且从 q 零到 q 七输出。 我们根据这个程序说明,我们可以写出这个程序,首先是定义这个接口定义再循环八次,首先判断这个高位是不是零, 如果高位为零,它这个输入零,如果不等零输入一,因为计存器上升严,这个数据左移一位。 接下来我们将这个程序复制到 q 软件, 我们这个后面就可以用这个 oc 替换这个无符号字符, 这个数据已经移位到这个移位寄存器,现在我们需要将这个存取器来一个上升年,这个数据就可以输出这个存取器寄存器来一个上升年。 首先我们要送数码馆那个 喂马,我们先点亮第一个数码管,它这个喂马是零 x, 这个显示的断码是多少呢?我们如果要让字幕上显示零,就是 o、 b、 c、 d 与 f, 低电频 g f, 高电频 g r 二,净值就是零,零一一一一 十六净值就是零乘三 f 这个断码值,我们可以通过这软件升程序, 我们这里写零乘三 f, 如果要改变数码管的内容的话,我们就改变这个纸,我们编一下,我们将生成的文件下载到单片机, 下载成功,我们来看一下学习版现象,我们使用这个杜邦线将单片机和七四 h c 五九五连机,然后打开电源开关,第一个数码管成功显示零。本期的内容就到这,我们下期见。

大家好,我们开始今天的视频。呃,今天的视频呢,还接着介绍我们的这个气短数码管啊,我们现在能够显示两位了,那么当我们要实现更多位数的显示的时候,应该怎么做 啊?呃,是不是还是按照两位钱那个思路,我们一个端口用一个数码管那种方式来做。 那么我写了这么段话啊,当系统需要更多位数大于等于三位的时候,这个数码管显示的时候,采用前面讲过的静态方案已经不是最佳方案了, 主要体现在比较浪费单片机的口型资源。你想想,我们五幺单片机一共 p 零、 p 一、 p 二、 p 三,一共就四个端口,我们真正在一个系统当中呢,这些端口都是要 外边寄很多东西的,你现在单独就为了这么一个显示,你比如说你需要四维显示的话,那你就把四个档口都占了, 那其他东西怎么接啊?所以说呢,这种方案就是对于静态方案,对于少的位数的时候,比如说一位两位的时候,你可以考虑使用啊,但是对于多位的时候不建议考虑使用了。 所以说当然你的系统当中如果只有一位数码管显示时,可以考虑使用静态方式,毕竟这种方式下控制程序简单啊。那么 我们应该怎么来实现更多位数位数的显示呢?那么在今天呢,我们要插讲一个一部分内容,这个内容呢就是主要介绍讲一个芯片,这个芯片呢叫做七四 hc 五九五,注意这个芯片啊,七四 hc 五九五, 呃,有的时候简称他为五九五,这个芯片能够干什么用呢?他呢?他将来做好了之后,他可以帮助我们实现类似于静态显示的效果,那也就意味着他实现出来的显示不存在闪烁,所以说呢,显示很稳定,那这应该是最好的一种效果了啊。 那么这个芯片的银角图呢?我这里边画了一张给给大家找了一张图贴在这了,这一看我们就知道了,这个芯片是有十六个银角的, 然后他的输出有 q 零、 q 一一直到 q 七,一共有八个输出,同时还有个 q 七一撇,算起来输出一共有有有九个啊,有九个。然后呢,这个芯片有这么几个主要的引角需要大家掌握一下,我这里说一下, q 零到 q 七是并行数据输入端,也就是说 你将来要输出的那个数据,通过这八个金角一起输出去啊,而 q 七一撇是什么呢?是串形数据移位输出端。那么这个移位输出端呢?一会我在后面介绍的时候会再次提到他啊,你记得有这么一个引脚,他在 q 七后面啊, 然后呢,这里边还有个引脚,就是这个十四角,大家看是 ds 引脚,这个引脚是什么呢?这个引脚是二禁止数据的输入引脚,也就说这个引脚上你要往上放高低电瓶,但是呢,他是用来给五九五输入数据的, 记住这一点啊,然后呢, sh 杠 cp 就是这个 c 角是一位时钟输入引角,这个引角对于五九五也是个输入引角,但是呢,他这个引角输入的信号,我们当中时钟脉冲来用,是什么叫时钟脉冲?就是高电瓶低电瓶,非常有规律的这种啊,时钟脉冲来用, 而且他告诉你,进一步告诉你,这个引脚上真正使用的是时钟脉冲的上乘沿,上乘沿啊,这个是一位脉冲,其实这个名字啊,他是有能破解的, s h 是 shift, s h i f t 这个单词的 那个缩写, shift 的汉语意思就可以认为是一位的意思啊,在键盘上 shift 键就是那个上档键啊。 然后呢,这个 cp 实际上是 clock pouse, clock pouse 啥意思呢?失重脉冲,所以说呢,都都这两个银角都是 cp, 所以说这两个银角都是什么呢?都是失重脉冲, 那么这个是用来移位的,那么真正在移位的时候,就是这个引脚上来一个上升牙,我们的五角尾就会到地矮上抓一个数进来,来一个上升牙就会抓一个数进来,抓一个数进来,至于这个数怎么利用以后后面会说啊,所以 说呢,你再往这个五九五输,输入输出去的时候要配合这个俩,就相当于有个人往这上放东西,有个人给他敲鼓,敲一下鼓进来一个,敲一下鼓进来一下一个啊,这个意思,然后呢,还有一个 st st 杠 cp, 这个是什么呢?是 q 七到 q 零银角上数据更新输入始终脉冲,这是我给他,我给我给加的一句话啊, 就是什么意思呢?我们这个数据都进到五九五内部之后,这个数据是在五九五内部进行进行各种操作的,那么在五九五内部操作,就意味着你这个输出引脚 q 零到 q 七上并没有体现出这些数据, 那我们怎么样把五九五内部的这些数据给他更新到这些银角上呢?那你更新到银角上,银角外边接的东西上就能搜到这个数据了呗,那么就使用这个 st, 呃,时钟同样是利用他的上升压, 他要来一个上层沿,那么五九五内部这个跟 q 零到 q 七对应的那个里边的数据就都会更新到对应的引角上去,大家注意这一点啊,所以说呢,基本的操作逻辑就是什么呢?就是这个 sh 和 ds 配合,把这数据哐当哐当哐当一位一位的给他弄到这五九五里边 都弄完了之后,然后呢用这个 st 一个上上沿把这数据更新到引脚上去,嗯,我不知道 看我视频的人之前是不是有过这,有过这个类似于芯片的学习的这个那个经验啊, 我这么讲我不知道你是不是能听得清楚,我已经是尽量用白话来说这个事了啊,就是抛开里边具体的细节,我们就从事上看,就这么点事啊。好了,那么关于这个芯片呢,我们有用的银角就这些银角啊,那么你记住这个芯片的名字,今天, 今天我介绍了叫七四 hc 五九五,那为什么讲他呢?这里边你看啊,他有 q 零到 q 七八个输出端,而且是病情输出,所以说呢,我们就可以在 q 零到 q 七上接一个数码管啊, 对吧?接完数码管之后,然后呢你,你通过这个引奖把数据送过来之后,他这个一更新到引奖上,数码管上不就收到断码了吗?啊,就这个意思啊。好了,我们接着往下来, 那么这个就讲的是五九五的工作过程,七四 h c, 五九五工作的时候,在 h h 这个时钟的上升沿儿的作用下,二进制速度,二进制数据, 那么这个二进制数据就按照这个顺序走啊,你 d s 进来的数据会进到 q 零里边,而 q 零与原来的数据会串到 q 一, 那么 q 一的数据会串到 q 二,就这么一直往前串,而那么最终原来 q 七上的数据会串到哪呢?会串到 q 七一撇上, 记住啊,也就是说你 s h 每来一个时钟,每来一个时钟信号,我的数据就按这个方式来走, d s 到 q 零到 q 一,这么依次往下走,那你要连续来的话,那个这个这个数据就会连续的往前窜,连续往前窜啊, 那么这个顺序进行移位,每个上升沿一位一位二进制数,那么在每个 stcp 失踪的上升沿 说的是 st 了,是这个了啊,那么七 ss 七五九五就会将芯片内部一位计存器当中的数据输出到对应的 q 零到 q 七阴角上,并且锁存住,这就是这个芯片的作用啊,这个芯片的作用。 那么现在我们再介绍一下我这个开发板上,单面积开发板上实际上是有这个五九五的啊, 我这个单方板,单开发板上一共有两组灯,第一组灯是 p 二口直接控制的这组灯,那么还有一组灯就是这个什么呢?通过五九五控制的这组灯的位置在这红色的这个位置啊,红色的这个位置, 那么我们看这个电路图啊,这个图看的有点别扭吧,我们看这个图啊,这个是我的开发版 所带的原理图,大家看这个原理图上就能看出来,我这八个灯是通过五九五出来的,他分别接到了 qa 到 q h, 那么在这里边呢,要注意这个,我这这个图里边 q 零就是 q a, q h 就是 q 七,也就是 q q 零, q 一是这么往下排的啊,虽然名字不一样啊。然后呢这个图当中什么呢?这个 ser 就是我那个图当中那个 ds, 也就是数据,我们往 p 三点四层送,就等于送到了五九五的这个这个 d s 引脚上,然后呢这两个时钟,一个叫 s r c k, 一个叫 r c l k, 这 c l k 就是 clock 的意思啊,这个 p 三点六,这个时钟,就是我我这个 p p t 当中 s h 这个时钟, s h 这个时钟啊,然后呢 p 三点五,这个 p 三点五,这个时钟,就是我这里边 s 是踢这个时钟,大家注意这点啊。然后呢我们,我们通过,我们通过这个图就可能看出来,我,我通过控制,我就能控制这么一个灯的亮,而且这这里边大家注意我这个灯的连接方法,这是 vcc 直接连过来,你哪个灯 哪个 q 的输出上有低电瓶,哪个灯就会亮,有高电瓶灯就会灭。那么我在我的这个呃,开发板上,他是这样一种硬件基础啊, 那么大家记住,我今天给大家介绍了这个七四 sc 五九五这个芯片,然后呢介绍了一下我开发板上的这个呃,连接情况,还有什么啊?这个情况,那么在下一个视频里边呢,我会领着大家做一个实操, 这个实操呢我们就什么呢?练习练习这个五九五芯片的使用啊,好,我们这个视频到这里再见。


八位数据一次性转移到存储继承器,此时存储继承器里面已经有八位数据。第四步,给勾一角送低电瓶 存储计程器,所有数据一次性体现在定能输出。眼角上腮红输入了八位数据, 然后并行的八位数据体现在眼角上,说出来了,如果超过了八位数据,也就说人八位数据是还在输入。数据 搭配怎么办?这个芯片搭配从这个第九角按照你的侧方形式又输出来,输出可以即连到下一块的芯片的 ds 输入银角区, 这样的话就可以做到很多块芯片积点起来。刚才有一个口误啊, 就是这个地方就是 sshcp 角产生一个上层岩,这句话是不对的啊,刚才是产生考过了,应该是在给这个角上送一个上层岩的信号,送一个上层岩的信号,这个也是送一个上层岩的信号,这个角不能产生上层岩啊,这里讲出来跟这一下 哦,把刚才的那个口误改成过来了,这里是给 shcp 九一个上市人员的信号,这里是给 stpc cp 银角一个上线信号,不是产生的信号,是给这个角一个信号给这样给这个角上面一个上线的信号。我再梳理一遍,首先将第二次 脚上准备数据。第一步,第二步,给 shcp 脚上一个上乘员的信号,这样一来的话,这个数据就每一个上乘员信号数据位就移位到这个移位计程器里面去,移满八位之后, 然后把这个 sstcp 角上给他一个上传演员信号,所有以于计算器里面的数据一次性就全部移到了,全部进入了这个存储计算器,这是第三步,第三步,第四步 这个乘坐计算器的数据刚好八倍,满了之后就是进有了数据之后,然后把这个欧一角送低电瓶,乘坐计算器的数据就全部送到这个银角上去了,银角上去 体现出来这个数据用高低电瓶来就是高电瓶,就是一低电瓶是零,这样的话,这我们现在打个比喻,现在是一一零一一零一一零一零的数据,这个这个上面就可以有数据了, 下面我准备了一个仿真电路,我们来仿真一下,这样会更深刻的理解啊。仿真电路现在打开了,我们还是按照刚才的步骤,一步一步的来模拟这个控制单稿上面的信号, 这个电的读呢,我用了一个技巧,把这把这几个控制单口上面引出来,控制单 引线引出来之后接到一个一头二的开关上,也就是说这个开关可以选择是高电瓶,也可以选择低电瓶,这样来的话就是分别可以达到我们的来这些控制档口上面的电瓶的变化, 我们按照刚才讲解的一步一步来模拟好,我们现在正式来仿真,稍等一个 好房子软件正式在房子呢,我们现在要所有的这个数据是幺幺幺幺零零零零。 第一步将数据为准备好,就四零二十一,就是我们已经准备好,现在刚开始,现在我们准备的就是在这个 ds 脚上准备的一个数据,就是限制高利门,就是一准备的十一 好。第二步是 shgcp 这个脚上面长就是送一个上升原信号,然后我们的这个数据位就有一位进入了这个移位继承器,进入了移位继承器, 一个算是元信号,两个算是元信号,三个算是元信号,四个算是元信号。我们给 shcb 角算送了四个算是元信号, 然后我们的数据角上面这四个四四次这个上升员的时候,他的都是高定不变,所以我们送入里面的刚开始的话应该就是这四个高电瓶, 我们现在后面的要送四个低电瓶,那我们就先把这个数据位数据啊改成低电瓶, 等第一名之后再来四个上级员,就把四个第一列名又送进去了,第一个上级员,两个上级员,三个上级员,四个上级员。 大家想想看,刚才我是在高电瓶的时候,这个 shcp 角产生了四个上升员,也就说有四位高电瓶进入了一位继承器, 然后我把这个数据位改成低电瓶之后,又产生了四个上升员,应该有四位低电瓶进入了这个一位计程器,现在一位计程器里面应该是幺幺幺幺幺哦,幺幺幺幺零零零零。 此刻我们要输入的数据就是进到了这个里面,进到这个这一步,进到这一步,然后我们下一步的话要让他进 到这个存储继承器里面去,要使数据由移位继承器进入到存储继承器的话,我们要将 stcp 这个眼角给一个上升原信号, stcp 银角给一个算是原相,也就这个要给一个算是原相,我现在给一个算是原信号。我们到了这一步的话,数据就已经进入了,数据就已经进入了这一步了,数据 数字已经进入了这个成组计程器,成组计程器了,下面我们要由成组计程器把它输入到银角上面来,并行输入到银角上面来,也就是说要将这个拨一角,拨一角 送低电瓶这样,所以这个这程度计程器里面数据就进入了,这个就是送到这个银角上面表现出来了。我们现在找到欧一角, 找到欧一角,欧一角在这里,欧一角在这里啊,欧一角对应的这个切粉开关在这里,欧一角他说欧一角给低电瓶,欧一角给低电瓶的时候,所有的数据就由程度计程器送到眼角上面去了,我们来试一下, 我一脚给低电瓶,使人说出低电瓶,好了,大家看这个,我们刚才送的这个一一一一零零零零就全部体现出来了。

在前面两期视频介绍了使用一片七四 h c 五九五来驱动一到八位数码管,当驱动多位数码管时,仍然使用了较多的 i o 口, 下面介绍使用两片五九五吉联只需要三个 io 口就可以驱动四位、八位甚至更多位的数码管。先看一下五九五吉联驱动八位数码管的原理图,两片五九五的输入是中 sh 相连后接单片机 p 二点二, 输出所存时钟。 st 相连后接 p 二点一,第一片五九五串形输入 ds 接单片机 p 二点零,第二片五九五串形输入 ds 接第一片五九五的串形输出 q 七撇 两片五九五的 oe 使能接低电频,复位 mr 接高电频,这就是两片五九五集联的接法。两片五九五共用输入时钟, sh 共用输出时钟 st 一个八位的数据经过八个输入时钟输 数据一路第一片五九五。在经过八个输入时中,数据就通过第一片五九五的串形输出一路第二片五九五。比如先发送数据零 x 零一,零 x 零一对应八位的二键值,每一个时钟发送一位,经过八个时钟零 x 零一就一路了。第一片五九五 再发送数据零 x 零二。从第九个时钟开始,零 x 零一就会一位一位的通过第一片五九五的串形输出移入第二片五九五, 同时零 x 零二也一位一位的移入第一片五九五。经过八个词中零 x 零一就完整的移入了第二片五九五, 零 x 零二就移入了第一片五九五。这个时候第二片五九五的数据就是零 x 零一,第一片五九五的数据就是零 x 零二,输出时中 st 再产生一个上升延,两片五九五的 q 零到 q 七,就会输出对应的数据,也就是说最先发送的数据会在第二片五九五, 最后发送的数据会在第一片五九五。下面看看数码管怎么接。数码管的八段和八位分别接两片五九五的变形输出 q 零到 q 七,这里的话就有两种接法,第一种数码管的八段接第一片五九五,数码管八个公共端接第二片五九五。 这种接法因为数码管公共端接在第二篇五九五,就需要先发送数码管的喂码,再发送断码。 第二种接法,数码管公共端接第一片五九五,八段接第二片五九五。这种情况就需要先发送断码,再发送位码。这两种接法都是比较常见的,像这个侍卫的数码管模块采用的是第二种接法,需要先发送断码,再发送位码。 和这个八位数码管模块采用的是第一种接法,需要先发送位码,再发送断码。这两个是两片五九五,即连驱动四位和八位数码管模块 采用的都是共阳级数码管。先看看这个四位数码管模块,数码管八段接在第二片五九五,四个公共端接在第一片五九五,数码管左边,第一位接在 q 三,第二位 q 二,第三位 q 一,第四位 q 零。 因为是共阳级数码管,那么要点亮数码管左边第一位卫码值就是 d x 零八,点亮第二位就是 d x 零四,第三位 d x 零二,第四位 d x 零一。下面用这个四位数码管模块显示二零二三 串形输入 ds gap 二点零,输出所存时钟 stgap 二点一。串形输入时钟 sh gap 二点二。延时函数五九五写数据函数五九五输出函数。数码管显示函数声明, 供羊及断码数组、喂码数组。断码数组一般比较固定,而喂码数组一般需要根据数码管和五九五的 实际连接情况来确定。这里的微码数组是和这个四位数码管模块相对应的。数码管左边第一位显示数字二,第二位显示零,第三位显示二,第四位显示三写五九五函数使用零到八的负循环,将一个八位的数据一位一位的复制给 ds 五九五输出函数拉低,在拉高输出所存时中 st 产生上升延,控制五九五数据输出。数码管显示函数采用了两个形成,第一个是需要显示的数字, 第二个是数码关显示的位置,取十进制行参对应的断码和未码值,先发送断码,再发送未码。五九五输出显示 代码的效果就是显示数字二零二三。接下来是这个八位数码管模块,它采用的是两个四位数码管组合成八位,两个数码管的八段连接在 一起以后,接第一片五九五 q 零到 q 七。数码管左边第一位接第二片五九五的 q 零,第二位接 q 一,第三位 q 二,第八位 q 七五九五创新输入 ds 接 p 二点二,输入时钟 sh 接 p 二点一,输出所存时钟 st 接 p 二点零,共扬其断码数组。喂码数组。 数码管左边第一位显示数字二,第二位显示零,第三位二、第四位三八位依次显示二零二三零幺二零。 在数码管显示函数中,这个八位数码管模块是先发未码,再发断码代码可以在 stc 官方论坛下载搜索布丁局长找到对应的代码即可下载。