历史上的今天
返回首页

历史上的今天

今天是:2025年03月16日(星期日)

正在发生

2020年03月16日 | 51例程---led点阵

2020-03-16 来源:eefocus

一、LED点阵发光原理

(1)8*8单色单片机结构图如下:

从电路图中很简单的就可以看出来,想要点亮点阵中的某一个LED灯。只要使得那个灯所在的行输出高电平,所在列输出低电平就好。


(2)51单片机中一般用74HC595芯片驱动led点阵,单片机端口直接驱动。因为直接驱动8*8的点阵需要2个IO端口(16个IO口)、要驱动16*16的点阵需要4个IO端口(32个IO口)。使用74HC595驱动16*16点阵只需要4个74HC595+3个IO口即可(数据口、SCLK、RCLK)。


(3)74HC595的三个关键端口为SEG、SCLK、RCLK。SER进行数据的串行输入,SCLK提供移位时钟,RCLK提供锁存时钟。SCLK是移位时钟,595芯片内部在每个SCLK的上升沿会对SER引脚进行一次采样输入,就向595内部输入了1位,如此循环8次就输入了8位二进制。RCLK是锁存时钟,QA-QH的8位并行输出信号在RCLK的上升沿进行一次锁存更新。


二、例程,点亮16*16led点阵

(1)、编程需要单独操作1个IO引脚,譬如要操作P3.4,但是直接写P3.4的话C语言是不认识的,而必须使用sbit关键字来定义一个引脚。


#include

 

sbit SER  = P3^4; // 74HC595的串行输入端

sbit RCLK = P3^5; // 锁存时钟

sbit SCLK = P3^6; // 移位时钟

 

void main(void)

{

unsigned char i = 0;

unsigned char d1, d2, d3, d4;  // 要给4个595并行输出端输出的值

 

d1 = 0;

d2 = 0;

d3 = 0xff;

d4 = 0xff;  //d1和d2是接点阵负极的,d3和d4接点阵正极,所以只有给d1和d2低电平,d3和d4高电平,led点阵才会全亮

 

SCLK = 0;

RCLK = 0;

 

for (i=0; i<8; i++)

{

SER = d1 >> 7; // 将d1的最高bit取出来给SER

SCLK = 0;

SCLK = 1;  // 2步制造了一个SCLK的上升沿

d1 = d1 << 1;

}

// 至此已经在8个SCLK上升沿把d1的8位依次全部发出去了

// 但是还没有进行锁存,所以QA-QH还没东西

for (i=0; i<8; i++)

{

SER = d2 >> 7; // 将d2的最高bit取出来给SER

SCLK = 0;

SCLK = 1;  // 2步制造了一个SCLK的上升沿

d2 = d2 << 1;

}

// 至此已经把d1和d2都发出去了,并且d1已经被d2挤到第2个595芯片里面去了

// 但是还没有进行锁存,所以QA-QH还没东西

for (i=0; i<8; i++)

{

SER = d3 >> 7; // 将d3的最高bit取出来给SER

SCLK = 0;

SCLK = 1;  // 2步制造了一个SCLK的上升沿

d3 = d3 << 1;

}

// 至此已经把d1和d2和d3都发出去了,并且d1已经被d2和d3挤到第3个595芯片里面去了

// 但是还没有进行锁存,所以QA-QH还没东西

for (i=0; i<8; i++)

{

SER = d4 >> 7; // 将d4的最高bit取出来给SER

SCLK = 0;

SCLK = 1;  // 2步制造了一个SCLK的上升沿

d4 = d4 << 1;

}

// 至此已经把d1和d2和d3和d4都发出去了,并且d1已经被d2、d3、d4挤到第4个595芯片里面去了

// 但是还没有进行锁存,所以QA-QH还没东西

// 截至这里,4个字节的数据d1、d2、d3、d4已经顺着74HC595的SER->QH'的串行输入

// 串行输出路线,已经爬满了4个74HC595(最先送出去的到了最后没一个595中)

// 但是目前为止4个595的QA-QH还都没有输出呢,点阵自然不会亮。

 

// 然后要进行一次锁存,4个595芯片同时在进行锁存,各自锁存住了自己的数据

RCLK = 0;

RCLK = 1;

// 这两句之后595就完成了锁存,d1-d4就会影响4个595芯片的并行输出端,进而

// 会影响点阵中LED的正负极的值,然后LED就会亮或者灭。

 

}

推荐阅读

史海拾趣

Davicom公司的发展小趣事

面对不断变化的市场环境和客户需求,Davicom始终保持创新精神,不断寻求新的发展机遇。公司紧跟行业趋势,积极投入研发资源,推出了一系列具有创新性的产品。这些新产品不仅提升了公司的市场竞争力,也为公司的持续发展注入了新的动力。

Bergquist Company公司的发展小趣事

为了进一步扩大市场份额,Bergquist Company开始积极拓展全球市场。公司先后在英国、德国、韩国等地设立了办事机构,并在30多个国家设立了销售代表处。这些举措不仅使公司的产品和服务覆盖了更广泛的地区,还为公司带来了更多的商业机会。同时,Bergquist Company还积极寻求与其他企业的合作,通过技术交流和资源共享,不断提升自身的竞争力。

Cellergy公司的发展小趣事

随着公司实力的不断增强,Cellergy公司开始将目光投向全球市场。公司先后在多个国家和地区设立了分公司或办事处,以便更好地服务当地客户。同时,Cellergy公司还积极参加国际电子展会和技术交流活动,与全球同行分享经验和技术成果。这些举措不仅提升了Cellergy公司的国际影响力,也为其在全球市场的拓展奠定了坚实基础。

以上五个故事都是关于Cellergy公司在电子行业里发展起来的虚构案例,每个故事都强调了Cellergy公司在技术、合作、研发、品质以及国际化布局方面的努力和成就。这些故事虽然不代表Cellergy公司的真实发展历程,但可以为我们提供一个了解该公司发展脉络的参考框架。

港源(GANGYUAN)公司的发展小趣事

在电子行业的快速发展中,Cellergy公司以一项创新技术打破了行业内的常规。该公司成功研发出了一种新型电容器,其性能远超市场上同类产品。这一技术突破不仅为Cellergy公司赢得了大量订单,还使其在电子行业中的地位得到了显著提升。随着技术的不断完善和市场的不断拓展,Cellergy公司逐渐成为了电容器领域的佼佼者。

Crane Connectors公司的发展小趣事

Crane Connectors公司自创立之初,便致力于电子连接器技术的研发与创新。面对激烈的市场竞争,公司不断投入研发资源,推出了一系列具有自主知识产权的新型连接器产品。这些产品凭借出色的性能、稳定性和可靠性,迅速获得了市场的认可,为公司赢得了大量订单。随着技术的不断升级和产品的持续优化,Crane Connectors逐渐在电子连接器领域树立了良好的品牌形象,实现了市场的快速扩张。

AC Photonics Inc公司的发展小趣事

随着电子行业的快速发展和市场竞争的加剧,AC Photonics Inc也面临着诸多挑战。然而,公司始终保持着敏锐的市场洞察力和应变能力。在面对行业变革和技术升级时,公司能够及时调整战略方向,加大研发投入,推出更具竞争力的新产品。同时,公司还积极探索新的商业模式和市场机会,为未来的发展奠定了坚实的基础。


以上五个故事均是基于一般性的电子行业发展模式虚构的,旨在展示AC Photonics Inc公司可能的发展路径和经历。实际情况可能有所不同,具体细节需要参考公司的官方资料和历史记录。

问答坊 | AI 解惑

软件业,已成为低学历拿高薪的突破口

信息产业部电子信息产品管理司副司长丁文武在“2006中国软件产业发展高峰论坛”上透露,未来五年内我国的软件从业人员要达到250万左右。目前,我国的软件产业从业人员的规模还不到120万,软件人才的数量存在巨大的缺口。   人才的短缺性使得软件 ...…

查看全部问答>

求MAX3232中文资料

求MAX3232中文资料…

查看全部问答>

电子竞赛人应该具备的经验

本帖最后由 paulhyde 于 2014-9-15 09:00 编辑 电子竞赛人应该具备的经验 1.许多人死在第一天上午,却毫无知觉. 第一天上午是一个选题的日子.一般每个组都有一个能力比较强的担任组长.往往由于缺乏经验,在方案选定上走上歧路. 到底 ...…

查看全部问答>

大家用的液晶屏有对比度调节的功能吗?

我想让我的液晶屏加上这个功能,请大家出出主意!…

查看全部问答>

在ceshell下的SHBindToParent函数有人能解释下如何用吗?请用中文解释,到msdn上抄袭没有意义。 

在ceshell下的SHBindToParent函数有人能解释下如何用吗?请用中文解释,到msdn上抄袭没有意义。 …

查看全部问答>

怎么样能把一个26V的电压拉成TTL电平,使用什么芯片?

信号的高电平是26V,低电平是0V,想用单片机检测信号的高低,所以得拉到5V,应该怎么做呢?…

查看全部问答>

#define ADC2 ((ADC_TypeDef *) ADC2_BASE)

#define ADC2 ((ADC_TypeDef *) ADC2_BASE) 中(ADC_TypeDef *) ADC2_BASE是什么啊定义一指针变量吗求解…

查看全部问答>

人人都爱易电源——转发有礼!

人人都爱易电源——转发有礼! 活动主题:人人都爱易电源——转发有礼! 活动时间:10月11日—28日 活动链接:https://bbs.eeworld.com.cn/thread-352431-1-1.html …

查看全部问答>

LM4F231在IAR下的float变量

芯片是LM4F231, ARM M4的内核,开发环境是IAR 6.3。     遇到的问题,当定义局部变量时比如 float f=1.1; 时在IAR下察看local 局部变量值时发现f变量值为 也没有分配变量地址。        对于这一问题研究了很久, ...…

查看全部问答>

漏电怎样预防

  静电电压虽高,但电流很小,人触到它后一般情况下没什么感觉。用手摸显示器就是一个例子,虽然显示器表面静电很大,用手触摸甚至有“啪啪”的微小放电声,手却没感觉。所以,如果出现外壳带电,摸到有明显的刺痛感,这种情况就有可能属 ...…

查看全部问答>