74LS595 74HC595使用方法以及驱动数码管显示(附:使用代码)

这篇具有很好参考价值的文章主要介绍了74LS595 74HC595使用方法以及驱动数码管显示(附:使用代码)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

74LS595 74HC595使用方法以及驱动数码管显示(附:使用代码)

由于74HC595与74LS595功能是一样的没有区别。LS和HC代表不同工作速度,HC代表CMOS芯片电路中工作速度最高的产品,LS表示普及、通用型产品。其驱动方法也是一样的。

器件功能

74LS595是串行输入并行输出的器件,可以串联使用,达到引脚拓展的目的。主要引用在数码管的驱动,点阵的驱动等需要多个引脚的地方。

内部结构和控制时序

74ls595,MCU外设 常用器件分享,单片机,stm32,嵌入式硬件
74LS595有三部分组成,包括:一个8位移位寄存器、一个8位数据存储器、一个8位三态输出控制器(高电平 低电平 高阻态)。
74ls595,MCU外设 常用器件分享,单片机,stm32,嵌入式硬件
SHCP为串行数据输入时钟,在器上升沿,移位寄存器发生位移;DS为串行数据输入引脚,在SHCP为上升沿时数据写入移位寄存器;STOP为数据存储器存储信号线,在其上升沿将移位寄存器的8位数据存入存储寄存器;MR为D触发器正常工作引脚,所以芯片正常工作时,此引脚要一直置于高电平;OE为数据并行输出引脚,其为低电平时,数据寄存器的数据并行输出,其为高电平时,引脚表现出高阻态。具体引脚功能如下图所示。74ls595,MCU外设 常用器件分享,单片机,stm32,嵌入式硬件

使用代码讲解

以下为3片74LS595串联驱动3个8段数码管的代码讲解,驱动其他外设与其类似可以在其基础上修改。

	//以下为HAL库引脚初始化代码,使用库函数可以在此基础上修改,所需引脚设置为推挽输出即可,寄存器版本控制CHR、CHL、BSRR、BRR等寄存器即可。
void LCD_CtrlLinesConfig(void)
{
    GPIO_InitTypeDef GPIO_InitStruct = {0};//定义尹伽婆初始化结构体
    __HAL_RCC_GPIOA_CLK_ENABLE(); //使能时钟线A
    GPIO_InitStruct.Pin = GPIO_PIN_1 | GPIO_PIN_2 | GPIO_PIN_3;  //选择所需初始化引脚
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;//选择推挽输出模式
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;//输出速度为高
    GPIO_InitStruct.Pull = GPIO_NOPULL; //既不上拉也不下拉
    HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); //进行初始化
    GPIOA->BSRR |= 0x000E; //设置A1 A2 A3	输出为高
}
//以下为串行输入引脚、移位寄存器控制引脚、时钟引脚宏定义
#define STOP(i) if(i) GPIOA->ODR= GPIOA->ODR&~0X00000004 |(1<<2); else GPIOA->ODR= GPIOA->ODR&~0X00000004 |(0<<2); //对A2输出电平进行宏定义
#define SHCP(i) if(i) GPIOA->ODR= GPIOA->ODR&~0X00000008 |(1<<3); else GPIOA->ODR= GPIOA->ODR&~0X00000008 |(0<<3); //对A3输出电平进行宏定义
#define DS(i)  if(i) GPIOA->ODR= GPIOA->ODR&~0X00000002 |(1<<1); else GPIOA->ODR= GPIOA->ODR&~0X00000002 |(0<<1); //对A1输出电平进行宏定义

以下是调用函数,实现数码管显示不同的字形,可以在此函数上进行拓展实现不同的显示功能

void Disp_Smg(uint8_t Bit1,uint8_t Bit2,uint8_t Bit3) //数码管显示
{
	static uint8_t Seg7[17] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71, 0x00}; //数码管字形存储数组
	static uint8_t i=0; //循环所用变量
	static uint32_t code_temp=0; //数据存储变量
	code_temp= (Seg7[Bit3]<<16) + (Seg7[Bit2]<<8) + Seg7[Bit1]; //将数据存入暂存变量
	for(i=0;i<24;i++) //三个数码管共24位所以上限设置为24
	{
		if(code_temp & 0X800000) //先传送最高位
			DS(1)  //最高位为1
		else
			DS(0) //最高位为0
		code_temp=code_temp<<1; //数组左移,次高位进入最高位
		SHCP(0) //为上升沿做准备
		SHCP(1)//出现上升沿进行移位存储
	}
	STOP(0); //为上升沿做准备
	STOP(1); //出现上升沿进行数据存储
}

//由于此代码直接对数据进行显示,所以OE引脚一直连接的低电平,需要暂存显示的可以附加对OE引脚发控制。文章来源地址https://www.toymoban.com/news/detail-740870.html

到了这里,关于74LS595 74HC595使用方法以及驱动数码管显示(附:使用代码)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • STM32 4位数码管和74HC595

            在使用一位数码管的时候,会用到8个IO口,那如果使用4位数码管,难道要使用32个IO口吗?肯定是不行的,太浪费了IO口了。把四个数码管全部接一起共用8个IO口,然后分别给他们一个片选。所以4位数码管共有12个IO口。         当选择数码管1显示的时候,这可以

    2024年04月17日
    浏览(99)
  • 【基础知识】【模块介绍】8位8段数码管(74HC595)【硬件部分】

    数码管实际上是 多个LED按照一定顺序排列,并加上遮罩所构成的元件。 八段一般会引出9个引脚,其中7个引脚显示数字(或某些字母),1个显示小数点,1个作为片选端。 根据连接方式的不同,数码管分为共阳和共阴。 共阳在这端输出低电平时点亮,高电平时会熄灭,共阴

    2023年04月17日
    浏览(81)
  • 【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)
  • STM32 HAL库实现三位数码管显示(74HC595+按键+蜂鸣器)

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

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

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

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

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

    2024年02月13日
    浏览(52)
  • 【Multisim仿真】74LS47译码器驱动共阳数码管显示(0-8)数字显示

    🎬Multisim仿真演示 📑74ls47引脚功能 LT: 试灯输入,是为了检查数码管各段是否能正常发光而设置的。当LT=0时,无论输入A3,A2,A1,A0 为何种状态,译码器输出均为低电平,也就是七段将全亮,若驱动的数码管正常,是显示8。 BI: 灭灯输入,是为控制多位数码显示的灭灯所

    2024年02月17日
    浏览(277)
  • 51单片机---编程实现流水灯----键盘控制数码管显示--利用74LS164扩展并行输出口---定时中断方式驱动一个数码管

    目录 基于51单片机,用c语言编程实现流水灯 代码: 使用C语言编写的基于51单片机的键盘控制数码管显示 代码: 基于51单片机,用c语言编程实现利用74LS164扩展并行输出口 代码: 基于51单片机,用c语言编程实现定时中断方式驱动一个数码管  代码:  1- 2- 上述代码中,使用

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

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

    2024年02月06日
    浏览(55)
  • STM32实现74HC595控制

            本文主要是实出74HC595的简单控制功能实现(学习笔记整理)。 (一)74HC595简述           74HC595是一个8位串行输入、平行输出的位移缓存器:平台行输出为三态输出 。         在SCHCP的上升沿输入,在STCP的上升沿进入存储寄存器中去,如果两个时钟连在

    2024年02月14日
    浏览(42)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包