STM32实现74HC595控制

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

一、前言

        本文主要是实出74HC595的简单控制功能实现(学习笔记整理)。

二、概述

(一)74HC595简述

         74HC595是一个8位串行输入、平行输出的位移缓存器:平台行输出为三态输出

        在SCHCP的上升沿输入,在STCP的上升沿进入存储寄存器中去,如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7‘),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE时(低电平),存储寄存器的数据输出到总线。

        74HC595支持级联,当多个74HC595级联一起时,通过数据线发送一个数据最终会移位给最后一个74HC595。因为级联数据会被挤到下一级的ic中,所以先发送的数据是到最后一级的74HC595.。

        每次向74HC595发送一个字节,74HC595最先发到的是高位数据,也就是最先收到的数据到达Q7脚,当我们输出数据高位时,最高位的8个脉冲会到Q7脚(数据脚的最高位),如下图: 

74hc595 stm32,stm32,stm32,74HC595

(二)引脚功能

   74hc595 stm32,stm32,stm32,74HC595

(三)真值表

74hc595 stm32,stm32,stm32,74HC595

三、硬件连接

74hc595 stm32,stm32,stm32,74HC595

四、程序例程

1、头文件

#ifndef _74HC595_H_
#define _74HC595_H_

#include "stm32f10x.h"
#include "io_bit.h"
#include "delay.h"

#define SRCLK PAout(14)
#define RCLK PAout(13)
#define SER PAout(12)

void HC595_Pin_Init(void);
void HC595_Send_Data(u8 data);
void HC595_Send_Byte(u8 dat1,u8 dat2,u8 dat3,u8 dat4);

#endif

2、源文件

#include "74HC595.h"

void HC595_Pin_Init(void)
{
	 GPIO_InitTypeDef GPIO_InitStructure;

	//打开时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	// 改变指定管脚的映射 GPIO_Remap_SWJ_Disable SWJ 完全禁用(JTAG+SW-DP)
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable , ENABLE);
	// 改变指定管脚的映射 GPIO_Remap_SWJ_JTAGDisable ,JTAG-DP 禁用 + SW-DP 使能
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);

	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	GPIO_ResetBits(GPIOA, GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14);
}


void HC595_Send_Data(u8 data)
{
	u8 i = 0;
	
	for (i = 0; i < 8; i++)
	{
		if (data & 0x80)        //先传输高位,通过与运算判断第八是否为1
			SER = 1;    //如果第八位是1,则与 595 DS连接的引脚输出高电平
		else                    //否则输出低电平
			SER = 0;

		SRCLK = 0;
		delay_us(20);
		SRCLK = 1;
		data <<= 1;
	}
}

void HC595_Send_Byte(u8 dat1,u8 dat2,u8 dat3,u8 dat4)
{
	SRCLK = 1;
	RCLK = 1;
	
	HC595_Send_Data(dat1);
	HC595_Send_Data(dat2);
	HC595_Send_Data(dat3);
	HC595_Send_Data(dat4);

	RCLK = 0;
	delay_us(2);
	RCLK = 1;
	delay_us(2);
	RCLK = 0;
	
}

注:

        STM32F103C8T6主控中PA13和PA14默认不是GPIO口模式,需要配置成GPIO口模式 

74hc595 stm32,stm32,stm32,74HC595

 相关资料链接,有需要自行下载,谢谢!

        链接:https://pan.baidu.com/s/1Tl-AHndfCAuOs3ykptsV2A 
        提取码:q7ks文章来源地址https://www.toymoban.com/news/detail-630213.html

到了这里,关于STM32实现74HC595控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STM32 HAL库实现三位数码管显示(74HC595+按键+蜂鸣器)

    1、加强数码管学习,实现数码显示变量数据(三位数的显示); 2、3位数码+2个按键+蜂鸣器实现模拟电磁炉功率调节及显示; 关于74HC595的STM32F103的驱动以及数码的显示等请查阅我写的上一篇博客:https://blog.csdn.net/luojuan198780/article/details/136653377 实验效果参考下面网址视频:

    2024年03月17日
    浏览(86)
  • HC595级联原理及实例 - STM32

            74HC595的最重要的功能就是:串行输入,并行输出。其次,74HC595里面有2个8位寄存器:移位寄存器、存储寄存器。74HC595的数据来源只有一个口,一次只能输入一个位,那么连续输入8次,就可以积攒为一个字节了。 引脚图 14脚:DIN(SER),串行数据输入引脚 13脚:

    2024年03月28日
    浏览(46)
  • 51单片机开发:通过74HC595控制LED点阵

    (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点阵可以用坐标系的思想来理解,

    2024年02月12日
    浏览(53)
  • 三、51单片机用74HC595控制LED点阵

    (1)外观 (2)作用 LED点阵通过LED(发光二极管)组成,以灯珠亮灭来显示文字、图片等,LED点阵显示被广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等。 以8*8LED点阵为例。 (1)单片机端口直接驱动。驱动8*8的点阵需要2个IO端口(16个IO口)。 (2)使用串转并移位锁存器驱

    2024年02月03日
    浏览(73)
  • 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日
    浏览(61)
  • 74HC595D介绍与实现(C语言与verilog实现)

    8位串行输入 8位可串行或并行输出 具有3种状态输出的存储寄存器 具有复位功能的移位寄存器 具有串行输入(DS)和串行输出(Q7S)来级联的功能。 移位寄存器和存储寄存器的时钟可分开控制。 引脚名 引脚号 说明 Q0、Q1、Q2、Q3、Q4、Q5、Q6、Q7 15,1,2,3,4,5,6,7 并行数据输出 Q7

    2024年02月17日
    浏览(31)
  • 74HC595工作原理及FPGA实现数码管驱动方法

     74HC595,移位寄存器,串行输入,8位并行输出,一般用于数码管电路以减少使用的IO口数量。 管脚介绍: Q0~Q7 :八位并行输出位 Q7\\\'       :  级联位,若输入位数大于8位,先进入的位会从此口连续输出,用于多片之间的级联 VCC GND 不多介绍 Ds        :  串行数据输入位

    2023年04月08日
    浏览(46)
  • 【74HC595】51单片机(普中A2开发板)LED点阵屏点亮以及74HC595芯片的使用笔记

    纯小白写的文章,如有问题,欢迎评论区讨论,反驳,指正。 如果你只想了解74HC595如何使用,建议只看2.3。 通过查看普中A2开发板的原理图(图1)可以知道,通过P0(P0_0、P0_1…P0_7)口和DPa、DPb…DPh来控制哪一颗LED点亮。我这个开发板上的点阵模块没有按照他给的原理图上

    2024年02月05日
    浏览(86)
  • 74LS595 74HC595使用方法以及驱动数码管显示(附:使用代码)

    由于74HC595与74LS595功能是一样的没有区别。LS和HC代表不同工作速度,HC代表CMOS芯片电路中工作速度最高的产品,LS表示普及、通用型产品。其驱动方法也是一样的。 74LS595是串行输入并行输出的器件,可以串联使用,达到引脚拓展的目的。主要引用在数码管的驱动,点阵的驱动

    2024年02月06日
    浏览(183)
  • 【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日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包