Ox Head
旅行日志

四位数码管_四位数码管原理图一篇读懂

2025-04-21Aix XinLe

Hello,大家好,今天我们来讨论一下老掉牙但应用广泛的MAX7219,它是一款可以驱动多位LED的芯片,已出版图书《显示器件应用分析精粹:从芯片架构到驱动程序设计》中也有详细介绍,本文主要结合仿真工具以另一种图文方式展现其工作效果,这样即

四位数码管_四位数码管原理图一篇读懂

 

Hello,大家好,今天我们来讨论一下老掉牙但应用广泛的MAX7219(咱已然立誓,不是老掉牙的芯片坚决不讨论,哈哈,不要打我),它是一款可以驱动多位LED的芯片,已出版图书《显示器件应用分析精粹:从芯片架构到驱动程序设计》(以下简称“显示器件”)中也有详细介绍,本文主要结合仿真工具以另一种图文方式展现其工作效果,这样即便你并没有购买《显示器件》一书,也有机会窥探其工作原理。

当然,图书的组织更讲究体系的完整,涉及的知识面相对较广而深,文章则以形象易读为要,所以图片相对会更多另外,本文不涉及具体控制时序及代码相关的话题,我想也很少有人会在手机上看那么大段的代码,有兴趣可参考《显示器件》一书。

MAX7219的硬件连接比较简单,除用于驱动LED的16个引脚外,ISET引脚可以设置LED的驱动电流值(因为MAX7219是恒流驱动形式)也就是说,你只需要额外添加一个外围电阻即可使MAX7219正常工作,《显示器件》给出的电路类似如下图所示。

需要特别注意的是,MAX7219只能驱动共阴(common-cathode)类型的数码管。

那怎么样才能让MAX7219驱动数码管显示想要的数据呢?几乎所有LED驱动芯片是相似的,我们肯定需要往芯片的某个存储区域写入一些数据首先我们来明确单片机是如何控制MAX7219的,它是由时钟(CLK)、数据(DIN)、载入(LOAD)这3个引脚完成的串行通信来实现,每次传输16位数据(高位先行),相应的格式如下图所示。

可以看到,给MAX7219发送的16位数据中,低8位是具体的数据(DATA),而高8位为相应的地址(ADDRESS,仅低4位有效),所以其有效的寄存器最多只有16个(8位寄存器),所以我们接下来需要明确这16个寄存器各自的功能是什么。

MAX7219内部存在14个寄存器(2个地址无效),总体来说可以分为数据寄存器与控制寄存器,前者决定LED数码管可以显示的内容(简单地说,你往里面写什么,LED数码管就会显示什么),后者则决定LED如何显示内容,具体如下图所示。

Digit0~~Digit7(地址为0x1~0x8,写成0xX1~0xX8是因为仅低4位有效)这8个寄存器分别对应多位数码管的每一位数字,在上面的仿真电路图中,Digit0对应最左侧位,Digit1对应左侧第二位,其它依此类推,下面为显示数字0~7的仿真效果。

现在的问题是:怎么样才能显示出这样的效果呢?往数据寄存器中写入BCD码还是字型码(代表每个段亮灭的数据)呢?这取决于译码模式(Decode Mode)寄存器,它的每一位(共8位)可以控制相应数据寄存器的译码模式,具体如下表所示。

例如,当设置译码模式寄存器的D0位为1时,表示Digit0数据寄存器中的数据会经过译码后驱动LED数码管(而不是直接输出),这样如果你需要最左侧显示“0”,则只需要往Digit0数据寄存器中写入0的BCD码即可(也就是0)

,具体的译码表如下所示。

如果你选择不译码,数据寄存器中的数据会直接输出以驱动LED数码管的每个段,那么同样显示数字“0”就得往相应的数据寄存器中写入0b1111110(0x7E)也就是说,译码模式对于LED数码管非常方便,但是只能显示约定好的某些特定字符,对于需要驱动LED点阵模块的场合,通常还是会选择。

不译码当然,上面这个译码表成立的前提条件是,你必须按照预定义的连接方式将MAX7219与LED数码管连接,MAX7219约定的段与数据位的对应关系如下图所示,前面的仿真电路图也遵从此约定,这样可以避免将简单的问题复杂化。

需要注意的是,当你使用译码模式时,数据寄存器仅使用到了低4位,而最高位对应小数点控制位(1为亮,0为灭),下图是已经往Digit3与Digit4数据寄存器的最高位写入的1后的显示效果。

MAX7219还可以控制扫描的数码管位数,这是由扫描限制(Scan-Limit)寄存器完成的与译码模式控制寄存器有限不同的是,你需要往其中输入限制位数的BCD码(而并非每一位数据寄存器对应控制扫描与否,这也就意味着,扫描位数只能是连续的,你不能异想天开地只企图扫描第1、3、5位)。

例如,当你往其中写入0时,表示仅扫描第0位对应的数码管(其它数码管不会亮,即便你已经往其中写入了数据),当你往其中写入4时,则表示第0、1、2、3、4位都会扫描,而5、6、7位不扫描(不会亮),相应的表格如图所示:。

下图是限制扫描位数为4的显示效果。

当然,想要让MAX7219正常显示,显示测试(Display Test)与关闭(Shutdown)寄存器也必须得进行合理设置显示测试寄存器主要用于测试,当其最低位为1时,表示进入测试模式,此时所有数码管都会亮起来(即显示8.8.8.8.8.8.8.8.),这样你就可以判断芯片驱动是否正常,数码管是否存在无法点亮的段等情况。

在正常工作(Normal Operation)时,应该将其最低位置0,如下表所示:

关闭寄存器可以控制是否输出在关闭模式下,MAX7219内部时钟源处于挂起状态,所有段驱动引脚(Seg A,B,C,…)都下拉到地,所有位选通引脚(DIG0~7)都上拉到电源,此时所有数码管都不会显示,具体如下表所示。

下图为限制低4位扫描时依次发送的数据首先发送“F00”表示往显示测试寄存器(地址为0xF)中写入0,将最低位清零也就进入了正常工作模式然后往译码模式寄存器(地址为0x9)中写入“9FF”,表示进行全8位译码,因为我们驱动的是LED数码管。

接下来的“B03”表示限制扫描位数为0、1、2、3,所以最右侧4位是不会显示的。

“A0F”通过往亮度(Intensity)寄存器中写入数据以达到控制LED显示亮度的目的,本质上是通过控制PWM来实现的,受限于篇幅不再讨论,因为即便你不往其中写入数据,MAX7219也存在一个默认的亮度,有兴趣的读者可参考《显示器件》一书。

紧接着往关闭寄存器(地址为0xC)中发送“C01”,将最低位置1即可进入正常工作模式,此后,数据寄存器中的数据将会被显示出来当然,到目前为止,我们还没有往数据寄存器中写入任何内容,本例中依次往地址0x1~0x8中写入0~7的BDC码即可,值得一提的是,Digit3与Digit4数据寄存器的最高位被置1,表示显示小数点,但由于前面已经限制了扫描位数,所以你只看得到一个小数点。

旅游攻略四位数码管_四位数码管原理图一篇读懂

2025-04-21Aix XinLe112

四位数码管_四位数码管原理图一篇读懂Hello,大家好,今天我们来讨论一下老掉牙但应用广泛的MAX7219,它是一款可以驱动多位LED的芯片,已出版图书《显示器件应用分析精粹:从芯片架构到驱动程序设计》中也有详细介绍,本文主要结合仿真工具以另一种图文方式展现其工作效果,这样即…

自由行翱捷科技_翱捷科技在芯片领域什么地位

2025-04-21Aix XinLe99

翱捷科技_翱捷科技在芯片领域什么地位截至2025年4月18日收盘,翱捷科技-U(688220)报收于87.65元,较上周的87.84元下跌0.22%。本周,翱捷科技-U4月16日盘中最高价报95.9元。4月18日盘中最低价报86.44元。翱捷科技-U当前最新总市值366.…

旅游攻略四位数码管引脚图_四位数码管引脚图及功能深度揭秘

2025-04-21Aix XinLe60

四位数码管引脚图_四位数码管引脚图及功能深度揭秘简单设计了一个单片机驱动数码管的电路,该设计中只使用了4位数码管,占用了单片机3个IO口,如果驱动芯片全用满可以驱动8位数码管。仅供初学者分享学习。1.…

旅游攻略松下数码相机_松下数码相机型号大全全程干货

2025-04-21Aix XinLe62

松下数码相机_松下数码相机型号大全全程干货Hi,我是溢图科技。在Photokina2008上,佳能推出5D Mark II数码单反、索尼推出A900全幅数码单反、徕卡推出M8.2数码旁轴和50/0.95镜头。而松下则推出了首款微单/无反相机:DMC-G1。…

旅游攻略搜狐数码_搜狐数码下载越早知道越好

2025-04-21Aix XinLe46

搜狐数码_搜狐数码下载越早知道越好要闻推荐据国外网站消息,国外网站Imaging Resource公布了本年度他们认为最优秀的变焦及定焦镜头,如果近期有想买镜头的朋友不妨参考一下这个榜单...阅读全文>>乐视超级手机2代此前泄露过相关配置,并据称是骁龙820处理…