【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记

这篇具有很好参考价值的文章主要介绍了【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

纯小白写的文章,如有问题,欢迎评论区讨论,反驳,指正。
如果你只想了解74HC595如何使用,建议只看2.3。

1、控制显示LED点阵屏的思路

通过查看普中A2开发板的原理图(图1)可以知道,通过P0(P0_0、P0_1…P0_7)口和DPa、DPb…DPh来控制哪一颗LED点亮。我这个开发板上的点阵模块没有按照他给的原理图上的方向来放,根据我的测试,我的LED点阵模块应该是他给的模块逆时针旋转180°的方向,如图2所示。
举个例子:如果我想让第三行第四列的灯被点亮,那么我需要给DPc通高电平(1),给P0_4通低电平(0),即可让目标灯点亮。

图1 普中A2开发板中LED点阵原理图:【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记
图2 更改后的LED点阵原理图:
【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记
思路有了,那我们现在来看看怎么控制DPa、DPb…DPh和P0_0、P0_1…P0_7输入,P0口比较容易,这里就不做讲解。通过原理图可知,通过74HC595芯片来控制DPa、DPb…DPh的输入(图3),所以我们的问题就变成了如可去控制74HC595芯片,那下面就重点对74HC595芯片进行学习。

图3 74HC595(串转并)模块:
【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记

2、74HC595芯片的学习

2.1、74HC595芯片是什么?

我认为74HC595芯片是用三个输入端去控制N个输出端的芯片,同时让输出端一次性进行N个信号输出。我们这里只需要同时输出八个信号即可,如果想输出十六个、二十四个等等,那么就需要拓展74HC595(就是再接几块这样的芯片,一块能输出八个,需要多少个就外接多少个)。
如果理解困难的话,建议就把它认为成3个IO的输入去控制N个IO的输出即可。

2.2、74HC595芯片各引脚解释以及分析

在原理图中可以看到有带上划线的OE(不会打那个符号,下文简称为-OE-),RCLK,带上划线的SRCLR(下文简称-SRCLR-) ,SRCLK,SER,GND,VCC,QA,QB…QH,QH`。

-OE-:较为正式的叫法是“输出使能控制脚”,也就是使能按键。我理解的使能是,如字面意思,“使”谁“能”干什么,这里就可以理解为使74HC595能工作。因为带了个上划线,所以当给这个引脚通低电位的时候,那就是可以开始工作。
RCLK:较为正式的叫法是“锁存寄存器时钟”。其我理解的意思就是将要输出的数据给锁定起来,并且从实际功能上可以发现,当这里给到1后,会将数据输出出去,输出给QA,QB…QH。一般简写为”RCK“。
-SRCLR-:较为正式的叫法是“移位寄存器清零管脚”。我的理解是当给这里输入低电平时,它会将移位寄存器进行清零,因为原理图上给它直接通了高电位,我不知道怎么改,所以并没有测试出它的具体效果。
SRCLK:较为正式的叫法是”移位寄存器时钟,上升沿移位”。我的理解是将已经输入的数据进行移位,给即将准备输入的数据腾位置,让新的数据能够放进来。一般简写为”SCK“。
SER:较为正式的叫法是“串行输出端”。我的理解是就是即将要输入的数据,也就是要被储存起来的0或1。
GND:这个都肯定知道,逻辑地。
VCC:这个就是逻辑电源。
QA,QB…QH:较为正式的叫法是“并行数据输出端”,这个就是对应的输出,就是一次性将8位数据并行输出的。
QH’:可通过这里去拓展输出,需要输出多少位就外接8的倍数个。比如我需要输出24位,那我这一块本来就能输出8位,只需要再外接两块,加起来就是输出24位,具体怎么外扩,我没有工具,没有测试过,但从网上收集到的资料来看,只要将它们的RCLK、SRCLK、SER接起来即可。

单看以上这么多参数不是很好理解,那就举个例子,让上面这些数据能够连起来去理解。
我们用霰弹枪来举例,如果我们一把霰弹枪能够一次性打出八颗子弹(这里不是指一次性打出来八颗弹珠,而是一梭子就是八颗子弹,在不重新装弹的情况能够一次性打出八颗子弹),我们使用这把霰弹枪之前,需要先将保险丝打开,也就是将使能-OE-接地,使它能够被使用;接着就是给枪里装子弹,我们需要给霰弹枪弹舱一次装入一颗子弹,也就是对应的SER=0或1,然后再装下一颗,在装下一颗的时候,我们需要将上一颗子弹压入,这个压入的动作其实就对应我们的SCK,装载够八颗的时候,我们就可以发射了,按下扳机(就是RCK=1),枪响,子弹出膛,第一次射出也就是对应的QH,第二次就是QF,第三次…,八次射击完成,也就是数据发送完毕。如果一杆枪不够用的话,就是用工具将两杆枪连到一起,这里的工具就是QH‘,由于我没用过,所以下面不再举例。
这个例子是从别人的文章里学的,我给他完善了一下,又加入了我的理解,感觉还可以,原例子来自:https://blog.csdn.net/weixin_41445387/article/details/80500046

2.3、74HC595芯片工作原理

我感觉工作原理还是得配图来理解才可以,所以我们下面直接用图来看吧,见图4。
图4 74HC595芯片工作原理流程图:
【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记
其实我感觉上面这张图讲的挺详细的。

2.4、74HC595模块接线

通过图3可知,如果想让74HC595工作,那么就需要将OE接地,那么对应J24就应该如图5连接:
图5
【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记

2.5、74HC595对应的代码:

#include <REGX52.H>
#include <intrins.h>

sbit SCK = P3^6;	//移位
sbit RCK = P3^5;	//输出
sbit SER = P3^4;	//输入

/**
  *@effect: 这个方法一次将给到的Byte输出给被控制端
  *@Byte: 要传出的8位数据
  *@return: 无
**/
void send74HC595Byte(char Byte) 
{
	char i ;
	for (i = 0;i < 8;i++)
	{
		SER = Byte>>7;	//输入给74HC595
		Byte = Byte<<1; //这两行代码可以从左向右去拿数据。如果输入的是1001 0110,那么第一次循环就会
						//拿到1,第二次就会拿到0,第三次0,第四次1...
		SCK = 1; //移位
		_nop_();
		_nop_(); //两个振荡(机器)周期,等下移位这个动作
		SCK = 0; //结束移位
	}
	RCK = 1; //将数据输出
	_nop_();
	_nop_(); //两个振荡(机器)周期,等下输出这个动作
	RCK = 0; //结束数据输出
}

3、51单片机上使用LED点阵屏

到此我们已经能够控制点阵屏上任意一盏灯的亮灭了,那么就简单的在单片机上显示个字母R吧。

根据图(图6)可知,亮标点的灯即可,那么程序如下:
图6
【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记
对应程序:

//LED点阵屏显示图形

//在LED点阵屏上显示字母R
//这里的具体知识我写在了博客上,见链接:
//

#include <REGX52.H>
#include <intrins.h>
#include <DELAY.H>

sbit SCK = P3^6;	//移位
sbit RCK = P3^5;	//输出
sbit SER = P3^4;	//输入

/**
  *@effect: 这个方法一次将给到的Byte输出给被控制端
  *@Byte: 要传出的8位数据
  *@return: 无
**/
void send74HC595Byte(char Byte) 
{
	char i ;
	for (i = 0;i < 8;i++)
	{
		SER = Byte>>7;	//输入给74HC595
		Byte = Byte<<1; //这两行代码可以从左向右去拿数据。如果输入的是1001 0110,那么第一次循环就会拿到1,第二
										//次就会拿到0,第三次0,第四次1...
		SCK = 1; //移位
		_nop_();
		_nop_(); //两个振荡(机器)周期,等下移位这个动作
		SCK = 0; //结束移位
	}
	RCK = 1; //将数据输出
	_nop_();
	_nop_(); //两个振荡(机器)周期,等下输出这个动作
	RCK = 0; //结束数据输出
	P0 = 0xff; //将P0口置为0,防止下次操作时,点亮整排灯
}

void main()
{	
	while(2>1)
	{
		send74HC595Byte(0xff);
		P0_5 = 0;
		send74HC595Byte(0x98);
		P0_4 = 0;
		send74HC595Byte(0x94);
		P0_3 = 0;
		send74HC595Byte(0x92);
		P0_2 = 0;
		send74HC595Byte(0x61);
		P0_1 = 0;
	}
}

效果见图7。
图7:

【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记

4、遇到问题(正在更新)

5、参考文章

CSDN:
①https://blog.csdn.net/weixin_41445387/article/details/80500046
②https://blog.csdn.net/qq_51523386/article/details/114282584
③https://blog.csdn.net/qlexcel/article/details/117159467
B站:
①https://www.bilibili.com/video/BV1Mb411e7re?p=21 (这个老师讲的特别好,强烈建议看一看他讲的这块,链接粘贴进去就是那个视频(9-1,9-2))

6、第一次写博客杂感

大早上起来在翻74HC595的使用方法的时候,脑子一热,不如我自己总结个,再写一篇,虽知道这一写就是一整天,从早上弄到吃晚饭,甚至遇到问题的模块还没写(遇到的问题有点迷糊,还不能完美解决,所以没写出来)。
我看好多文章都谈到了“时序”,因为我是刚开始接触这些东西,所以时序图我并不懂(以前是纯机械的,所以数电模电,信号没学过),我就没往上加,哪位大神如果知道时序图怎么看,怎么学的话,我希望能私信我,给我些建议,要是大神太忙就算了,毕竟一个人的时间、精力就那么多嘛,哈哈。
码了一天,码了4500字,这比写论文还累啊,就为了把74HC595模块为了搞的比较明白,花了三四天的时间,有点小痛苦,哈哈,但回过头来看还是挺值的。文章来源地址https://www.toymoban.com/news/detail-449386.html

到了这里,关于【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 51单片机——IO拓展(串转并)-74HC595 小白详解

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

    2024年02月04日
    浏览(39)
  • 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日
    浏览(43)
  • 使用74HC595完成16*16led矩阵广告牌(51单片机软件仿真)

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

    2024年02月06日
    浏览(45)
  • 51单片机LED点阵控制原理、74HC595工作原理和字母和滚动显示实验代码

    目录 1. 74HC595工作原理图解  2.LED点阵控制原理 3.点阵LED实验 3.1 配置74HC595代码 3.2 D点阵LED显示H   3.3 滚动LED  (1) 滚动扫描图示  (2)程序代码 4.遇到奇怪的bug    :        输出使能,输入低电平允许输出,因此需要用接线帽j24让oe和地短接。 (但是我普中A2的板子,不

    2024年02月04日
    浏览(54)
  • 【51单片机】STC-ISP软件保姆级烧录教程(以普中A2开发板为例)

            本章节实验到此已经完毕,考虑到大家的基础差异较大,刚接触51单片机的小伙伴可能对烧录过程有些困惑,作者便在篇末给大家提供保姆级烧录教程,帮助大家快速掌握单片机程序烧录技巧,希望对大家有所帮助! 本教程所需软件下载(win系统)         

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

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

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

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

    2024年02月10日
    浏览(46)
  • 51单片机(普中HC6800-EM3 V3.0)实验例程软件分析概览

    引言:本专栏将对历程中的关键代码进行分析与拓展,再学习一遍51,记录与各位一起进步。 下面是文件列表:

    2024年02月14日
    浏览(43)
  • 基于普中51单片机开发板的温控风扇

    自学单片机也不算很久,刚好遇上了这一门的课程设计,查找了好多的资料发现都不算合适,合适的又要收费,那么最后呢才找到了一个有关我使用的开发板的温控风扇程序,也就是普中单片机开发板,该程序来自--黑51论坛的作者yrx0203,论坛ID号:684871,在此特别鸣谢。话不

    2024年02月11日
    浏览(44)
  • 普中51单片机学习(十四)

    中断的概念 CPU在处理某一事件A时,发生了另一事件B请求CPU迅速去处理(中断发生),CPU暂时中断当前的工作,转去处理事件B(中断响应和中断服务),待CPU将事件B处理完毕后,再回到原来事件A被中断的地方继续处理事件A(中断返回),这一过程称为中断 。 中断系统结构

    2024年02月22日
    浏览(30)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包