摩尔芯闻 > 行业新闻 > 半导体 > 74HC595在【8x8LED点阵】中的使用

74HC595在【8x8LED点阵】中的使用

eefocus ·2020-03-31 00:00·电子工程世界
阅读:1736

前几天学了点阵的显示,今天按自己的思路来总结一下。


首先介绍一下点阵的显示原理。点阵的电路图和之前学过的矩阵按键的电路图是相似的。


每个灯就相当于坐标图中的一个点,具有唯一独特的坐标位置,这样就可以通过引脚的信号来控制每个灯的关和开


col管脚连接的是P0的八个引脚,row管脚连接的是595的八位并行输出端。


实验中采取的是逐列显示,通过P0控制八列每列逐列显示,其间通过595位移缓存器控制每列要亮的led灯。

74HC595是串入并出带有锁存功能移位寄存器.如图:


形象来说,14引脚是搬运工,11是进厂守门员,12是出厂守门员,


11出现上升沿时,从14引脚输入一位数据,一共重复八次


12引脚上升沿时,将之前进来的八位数据分别从1到7引脚输出


OE为使能端,低电平时使输出有效,所以实验的时候接GND就行


10为主复位,低电平时有效,实验时让它为高

附74HC595真值表

用笔对着点阵描摹的爱心,然后一列一列转成二进制码


爱心点阵,亲测有效。

#include "reg51.h"

#include



typedef unsigned int u16;

typedef unsigned char u8;



sbit SRCLK=P3^6;

sbit RCLK=P3^5;

sbit SER=P3^4;



u8 ledduan[]={0x38,0x44,0x42,0x21,0x42,0x44,0x38,0x00};

u8 ledwei[]={0x7f

,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};


void delay(u16 i)

{

while(i--);

}



void Hc595SendByte(u8 dat)

{

u8 a;

SRCLK=0;

RCLK=0;

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

{

SER=dat>>7;

dat<<=1;



SRCLK=1;

_nop_();

_nop_();

SRCLK=0;

}



RCLK=1;

_nop_();

_nop_();

RCLK=0;

}


void main()

{

u8 i;

while(1)

{

P0=0x7f;

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

{

P0=ledwei[i]; //位选

Hc595SendByte(ledduan[i]); //发送段选数据

delay(100); //延时

Hc595SendByte(0x00);  //消隐

}

}

}

关键字: 74HC595 8x8LED点阵 坐标图 编辑:什么鱼 引用地址: http://news.eeworld.com.cn/mcu/ic492967.html 本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
分享到:
微信 新浪微博 QQ空间 LinkedIn

上一篇:零售商进货iPhone 9手机壳?廉价版iPhone 4月5号更新

下一篇:8*8LED点阵显示爱心的Arduino实现

打开摩尔直播,更多新闻内容
半导体大咖直播分享高清观看
立即下载