51单片机开发:通过74HC595控制LED点阵

这篇具有很好参考价值的文章主要介绍了51单片机开发:通过74HC595控制LED点阵。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、LED点阵介绍

74hc595驱动led灯,51/stm32单片机,51单片机,单片机,LED点阵,74HC595

(1)LED点阵就是多个LED发光二极管的集合,在单个LED的发光原理上没有任何区别;
(2)上面是16x16的LED点阵,总共有16x16=256个LED灯,由32个引脚来控制,其中16个引脚是正极(posn,n=1、2······、16),16个引脚是负极(NEGn,n=1、2······、16);
(3)LED点阵可以用坐标系的思想来理解,用横坐标和纵坐标来确定操作哪个LED等;比如要点亮L1,就给POS1引脚高电平,NEG1引脚低电平;点亮L18,就给POS2引脚高电平,NEG2引脚低电平;
(4)应用:简单一点就是商户门头上显示字幕的LED点阵,一般都是红色的LED等;复杂一点的就是大型的LED点阵屏幕,LED灯是有红黄蓝三种,三个LED灯组成一个像素点,可以像液晶屏目一样显示画面;
(5)原理:当32个引脚的状态确定,LED点阵中所有LED灯的状态也确定,也就是构成了一副画面,不停的改变32个引脚的状态,就会组成不同的画面,也就显示出了动态的画面;

2、74HC595介绍

2.1、引脚介绍

74hc595驱动led灯,51/stm32单片机,51单片机,单片机,LED点阵,74HC595

引脚 功能说明
SER 串行数据输入引脚,用于接收传给芯片的数据
RCK 存储寄存器的锁存引脚,当出现上升沿时,把移位寄存器的数据刷新到存储寄存器
SCK 移位寄存器的锁存引脚,当出现上升沿时,移位寄存器里的数据向前移位,并从SER引脚上读取新的一位数据存到移位寄存器里;如果移位寄存器已经存了8位的数据,则会把最开始存入的那一位数据给挤出去,把被挤出去的数据从QH’引脚发送出去
QA-QH 并行输出引脚,输出高电平或者低电平
Q’H 串行数据输出引脚;当串行输入的数据多于8位的时候,会把已有的位挤出去,也就是从QH’引脚发送出去

2.2、芯片的内部组成

74hc595驱动led灯,51/stm32单片机,51单片机,单片机,LED点阵,74HC595

(1)组成:74HC595内部有两个寄存器,分别是移位寄存器和存储寄存器;
(2)移位寄存器:负责从SER引脚去读取数据并保存;当SRCLK出现上升沿时,读取SER引脚的状态并保存到移位寄存器中;
(3)存储寄存器:决定8个并行输出引脚的输出电平,每个bit对应一个引脚;
(4)当RCLK引脚出现上升沿时,将移位寄存器中的值刷新到存储寄存器中,这样就可以改变8个并行输出口的状态;

2.3、级联时候的工作流程

74hc595驱动led灯,51/stm32单片机,51单片机,单片机,LED点阵,74HC595

(1)每个芯片的数据都是通过SER引脚输入,并保存到移位寄存器中;
(2)SRCLK引脚出现一次上升沿,就读取SER引脚状态,将数据保存到移位寄存器中;
(3)上一级的QH’引脚,作为下一级的SER引脚的输入;
(4)控制所以74HC595芯片的数据,都是由第一级芯片SER引脚输入,依次输入到后级的芯片,可以用"流觞曲水"的场景去理解;
(5)当需要传递的数据都保存到各级芯片的移位寄存器后,RCLK引脚出现一次上升沿,就将移位寄存器的值刷新到存储寄存器中,更新8个并行输出引脚的状态;
(6)假设需要给4个74HC595芯片传递的数据是:0x11、0x22、0x33、0x44;则依次往第一级的74HC595(A)芯片的SER引脚输入这四个数,当全部输入完成后,这四个数据就会被保存到4个芯片的移位寄存器中;

3、为什么要用74HC595芯片来控制LED点阵?

3.1、不使用74HC595芯片

如果不使用74HC595(串转并模块),则32个引脚需要直接用51单片机的IO口去控制,51单片机总共就32个IO口,意味着51单片的所有IO口都要用来控制LED点阵,那51单片机就不能控制其他的外设,这是不能接受的;

3.2、使用74HC595芯片

(1)上面是用4片74HC595芯片级联的方式来控制16*16的点阵,每个74HC595有8个并行输出引脚,4片刚好32个输出引脚;
(2)采用74HC595芯片,只需要3个引脚就能控制LED点阵,减少了引脚的使用数目;
(3)补充:控制更大的LED点阵,还是使用3个引脚,只是要增加级联的74HC595芯片数量;

3.3、使用74HC595芯片的优缺点

(1)优点:节省了控制LED点阵需要的IO口数量;
(2)使用74HC595芯片增加成本,也增加了编程控制的难度;

4、通过74HC595芯片控制LED点阵的代码

#include <reg51.h>


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;

	SCLK = 0;
	RCLK = 0;

	//1、发送数据顺序:先发送最后一级595的数据,最后发送第一级595的数据
	//2、每个bit数据,先发送高位再发送低位
	//3、先通过第一级的SER引脚将4片595芯片的数据发送出去,最后再给RCLK制造上升沿,将移位寄存器的值刷新到存储寄存器

	for (i=0; i<8; i++)
	{	
		SER = d1 >> 7;	 		// 将最高bit取出来给SER	
		SCLK = 0;	
		SCLK = 1;  				// 制造了一个SCLK的上升沿,把数据报错到移位寄存器中
		d1 = d1 << 1;		  	// 将已经发送出去的数据丢弃
	}

	for (i=0; i<8; i++)
	{
		SER = d2 >> 7;	 		// 将d2的最高bit取出来给SER
		SCLK = 0;
		SCLK = 1;  				// 2步制造了一个SCLK的上升沿
		d2 = d2 << 1;
	}


	for (i=0; i<8; i++)
	{
		SER = d3 >> 7;	 		// 将d3的最高bit取出来给SER
		SCLK = 0;
		SCLK = 1;  				// 2步制造了一个SCLK的上升沿
		d3 = d3 << 1;
	}

	for (i=0; i<8; i++)
	{
		SER = d4 >> 7;	 		// 将d4的最高bit取出来给SER
		SCLK = 0;
		SCLK = 1;  				// 2步制造了一个SCLK的上升沿
		d4 = d4 << 1;
	}

	//截止到现在,数据情况:第一级5095(d4)、第一级5095(d3)、第一级5095(d2)、第一级5095(d1)
	//数据还保存在移位寄存器中

	// 给RCLK引脚一个上升沿,4片595芯片都将移位寄存器中的数据刷新到存储寄存器中
	//每片595芯片的8个并行输出口状态被改变
	RCLK = 0;
	RCLK = 1;

}

5、用点阵显示汉字

74hc595驱动led灯,51/stm32单片机,51单片机,单片机,LED点阵,74HC595

(1)显示汉字有专门的字模提取软件,输入点阵的规格和显示的汉字,软件会生成显示汉字需要的数据;
(2)取模分为横向取模和纵向取模,具体采用哪种取模方式和点阵显示函数相关;
(3)如果要实现商店门头上点阵的汉字移动效果,则需要对每一帧图像都进行汉字取模,然后依次在点阵上显示;文章来源地址https://www.toymoban.com/news/detail-531392.html

到了这里,关于51单片机开发:通过74HC595控制LED点阵的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【51单片机】IO 扩展(串转并)--74HC595

    参考: 普中 51 单片机开发攻略 第12章 【51单片机入门教程-2020版 程序全程纯手打 从零开始入门】 https://www.bilibili.com/video/BV1Mb411e7re/?p=21share_source=copy_webvd_source=77e36f24add8dc77c362748ffb980148 nop ()是什么语句? and 位运算操作符 【51单片机入门教程-2020版 程序全程纯手打 从零开始入

    2024年01月22日
    浏览(51)
  • 51单片机——IO拓展(串转并)-74HC595 小白详解

    74HC595 芯片介绍 74HC595 是一个 8 位串行输入、并行输出的位移缓存器,其中并行输出为三 态输出(即高电平、低电平和高阻抗)。芯片管脚及功能说明如下:图1 上面两张都是 74HC595 芯片管脚图,细心的朋友就会发现左侧的 1 脚是 QB, 而右侧芯片的 1 脚是 Q1,左侧芯片的 11

    2024年02月04日
    浏览(52)
  • 51单片机驱动8位数码管(74HC595驱动)滚动显示

    原文链接:https://www.yourcee.com/newsinfo/2929591.html 点击图片购买 主要关注下供电电压是3.0-5.0v(建议5V),请在规定范围内供电。 模块上芯片引出5个引脚,芯片引脚与模块引脚对应关系是:VCC-VCC SCK-SCLK, RCK-RCLK,SER-DIO,GND-GND 可以对比程序学习时序图,便于理解。 1.显示异常可排除

    2024年02月15日
    浏览(58)
  • 51单片机通过两片74HC595级联,用8位LED数码管,分别显示当前日期,如:“2”、“0”、“-”、“0”、“5”、“-”、“2”、“6”,用Proteus仿真实现。

    1.先上仿真图,但这么连仿真图是不太正确的,要注意。展示的话能用就行。 2.从上到下依次放上数据手册上的引脚解释和逻辑功能和时序图    3.贴上代码:写了发送一字节数据函数,发送全部字节函数,加上一些写了很久的解释(求赞)。

    2024年02月08日
    浏览(61)
  • 使用74HC595完成16*16led矩阵广告牌(51单片机软件仿真)

    目录 74HC595简介(个人理解)与模块代码 软件仿真和代码  SHCP是写入595芯片数据的配置 STCP是发送595芯片内信息的配置 DS是数据配置的区域 595芯片有9个输出引脚,最后一个是供给下一块串联的595使用的,下一块串联的595stcp和shcp与上一块连接的引脚一致,下一块的DS与上一块

    2024年02月06日
    浏览(54)
  • 单片机(二):3个IO扩展n*8个IO,基于74hc595与74hc165的8x8矩阵键盘

    3个IO通过一片74hc595扩展8个输出IO,3个IO通过一片74hc1655扩展8个输入IO,最终成为8X8的矩阵键盘。对于普通的矩阵键盘,再加入防止鬼键、消抖和按下与松开识别。 74HC595是一个8位串行输入、并行输出的移位缓存器。通俗的来讲就是在输入时钟的上升沿数据输入端的数据可以位

    2024年02月10日
    浏览(59)
  • 蓝牙模块(HC-05)与手机连接,蓝牙与蓝牙互联,电脑通过蓝牙控制单片机

    HC-05蓝牙模块,USB TO TTL手机APP为SPP蓝牙串口 第一章:蓝牙模块配置 一:HC-05与USB TO TTL连接 EN:为使能引脚,一般不接 VCC:接USB TO TTL模块的5v脚(3.3v不亮) GND:接USB TO TTL模块的GND脚 TXD:接USB TO TTL模块的RXD脚 RXD:接USB TO TTL模块的TXD脚 STATE:状态引脚,一般不接 二:进入

    2024年02月12日
    浏览(72)
  • 电脑通过串口控制51单片机的LED

    在电脑端的串口助手通过串口对51单片机发送一个字节的16进制数控制LED的亮灭 单片机通过串口将接收到的数据发送回电脑 51 单片机内部自带 UART ( Universal Asynchronous Receiver Transmitter ,通用异步收发器),可实现单片机的串口通信 STC89C52有 1 个 UART,有四种通信模式: 模式

    2024年02月09日
    浏览(50)
  • HC-05(ZS-040)蓝牙模块使用详情(蓝牙模块配置、手机蓝牙控制单片机、蓝牙与蓝牙之间的通信)含51、32程序

    HC-05是一款主从一体化的蓝牙模块,因此其使用起来比较方便,只需要进行简单的配置即可。 本文就 手把手的介绍小白入手模块后如何使用 。 对于模块使用:1、蓝牙配置→2、手机与蓝牙的传输→3、手机通过蓝牙模块控制单片机→4、一对蓝牙之间主—从传输数据,这是一个

    2023年04月09日
    浏览(173)
  • 51单片机通过两个按键控制流水灯方向

    按键一接单片机P3_1,按键2接P3_0 8个流水灯接P2口 以下是代码:

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包