stm32 74hc595级联编程

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

原理图如下

74hc595级联驱动程序,单片机,嵌入式硬件,stm32

 代码如下"xl74hc595.c"

#include "xl74hc595.h"
#include "gpio.h"

#include "FreeRTOS.h"
#include "task.h"
#include "cmsis_os.h"


void HC595_CS(void) 
{
	/**  步骤3:STCP产生一个上升沿,移位寄存器的数据移入存储寄存器  **/
	HC595_STCP_Low();   // 将STCP拉低
	osDelay(1);           // 适当延时
	HC595_STCP_High();  // 再将STCP拉高,STCP即可产生一个上升沿
	osDelay(1);
}

void HC595_SendByte(uint8_t byte)
{
	uint8_t i;
	for (i = 0; i < 8; i ++)  //一个字节8位,传输8次,一次一位,循环8次,刚好移完8位
	{
	  /****  步骤1:将数据传到DS引脚    ****/
		if (byte & 0x80)        //先传输高位,通过与运算判断第八是否为1
			HC595_Data_High();    //如果第八位是1,则与 595 DS连接的引脚输出高电平
		else                    //否则输出低电平
			HC595_Data_Low();
		
		/*** 步骤2:SHCP每产生一个上升沿,当前的bit就被送入移位寄存器 ***/
		HC595_SHCP_Low();   // SHCP拉低
		osDelay(1);           // 适当延时
		HC595_SHCP_High();  // SHCP拉高, SHCP产生上升沿
		osDelay(1);
		
		byte <<= 1;		// 左移一位,将低位往高位移,通过	if (byte & 0x80)判断低位是否为1
	}
}






void XL74HC595_MultiWrite(uint8_t *data, uint8_t Length)//混合写数据
{
	uint8_t i;
	for (i = 0; i < Length; i ++ ) // len 个字节
	{
		HC595_SendByte(data[i]);
	}
	
	HC595_CS(); //先把所有字节发送完,再使能输出
}

"xl74hc595.h" 代码如下

#ifndef XL74HC595_H
#define XL74HC595_H
#include "main.h"
#include "gpio.h"


#define HC595_SHCP_Low()   	   HAL_GPIO_WritePin(HC595_SCK_GPIO_Port,HC595_SCK_Pin,0)
#define HC595_SHCP_High()      HAL_GPIO_WritePin(HC595_SCK_GPIO_Port,HC595_SCK_Pin,1)
#define HC595_STCP_Low() 			 HAL_GPIO_WritePin(HC595_RCK_GPIO_Port,HC595_RCK_Pin,0)
#define HC595_STCP_High() 		 HAL_GPIO_WritePin(HC595_RCK_GPIO_Port,HC595_RCK_Pin,1)
#define HC595_Data_Low()   	   HAL_GPIO_WritePin(HC595_SI_GPIO_Port,HC595_SI_Pin,0)
#define HC595_Data_High()      HAL_GPIO_WritePin(HC595_SI_GPIO_Port,HC595_SI_Pin,1)


extern XL74HC595 hc595Data;

void HC595_SendByte(uint8_t byte);
void XL74HC595_MultiWrite(uint8_t *data, uint8_t Length);//混合写数据;

#endif

GPIO初始化

74hc595级联驱动程序,单片机,嵌入式硬件,stm32

具体IO口根据实际需求进行修改

支持任意长度的的595芯片级联

 文章来源地址https://www.toymoban.com/news/detail-735025.html

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

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

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

相关文章

  • 【物联网】超详细的74HC595应用指南(以stm32控制点阵屏为例子)

    74HC595是一款常用的串行输入/并行输出(Serial-in/Parallel-out)移位寄存器芯片,在数字电子领域有着广泛的应用。它具有简单的接口和高效的扩展能力,成为了许多电子爱好者和工程师们的首选之一。本文将深入介绍74HC595芯片的功能、应用场景以及工作原理。 平时我们需要实

    2024年02月14日
    浏览(43)
  • STM32 HAL库实现三位数码管显示(74HC595+按键+蜂鸣器)

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

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

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

    2024年02月06日
    浏览(183)
  • 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日
    浏览(59)
  • 74HC595工作原理及FPGA实现数码管驱动方法

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

    2023年04月08日
    浏览(46)
  • FPGA学习日志——74hc595驱动的数码管静态显示seg_595_static

    数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数一般分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管(多一个小数点显示)。 八段数码管是一个八字型数码管,分为八段:a、b、c、d、e、f、g、dp,其中dp为小数点,每一段即

    2024年02月08日
    浏览(126)
  • 【FPGA零基础学习之旅#12】三线制数码管驱动(74HC595)串行移位寄存器驱动

    🎉欢迎来到FPGA专栏~三线制数码管驱动 ☆* o(≧▽≦)o *☆ 嗨 ~我是 小夏与酒 🍹 ✨ 博客主页: 小夏与酒的博客 🎈该系列 文章专栏: FPGA学习之旅 文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏 📜 欢迎大家关注! ❤️ 🥝 ISSP调试演示: 程序配置完成:

    2024年02月09日
    浏览(50)
  • 74HC595驱动7x11点阵屏(LED-7X11-JHM)DEMO

    由于我之前做了一个点阵时钟 ,但是无奈LED点阵屏价格比较贵,所以想找一个价格较为便宜的点阵来做便宜一点的点阵方案,再淘宝上看到有那种五毛钱一个的7x11的LED点阵,所以就想着试试搞一下这种点阵屏,这个由于是7x11的点阵,没有比较好的驱动芯片,只能自己想办法

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

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

    2024年02月08日
    浏览(61)
  • 【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)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包