STm32驱动74HC595引脚图时序图工作原理
来源:互联网 发布:网络安全法规定 编辑:程序博客网 时间:2024/04/30 13:41
74HC595和74hc164一样是在单片机系统中常用的芯片之一他的作用就是把串行的信号转为并行的信号,常用在各种数码管以及点阵屏的驱动芯片, 使用74HC595可以节约单片机mcu的io口资源,用3个io就可以控制8个数码管的引脚,他还具有一定的驱动能力,可以免掉三极管等放大电路,所以这块芯片是驱动数码管的神器.应用非常广泛,点这里可以下载完整的74HC595中文资料:http://www.51hei.com/f/74HC595中文资料.pdf
74HC595引脚图
74HC595管脚功能
下面我来介绍一下 74HC595工作原理:
74HC595的数据端:
QA--QH: 八位并行输出端,可以直接控制数码管的8个段。
QH': 级联输出端。我将它接下一个595的SI端。
SI: 串行数据输入端。
74hc595的控制端说明:
74HC595真值表
74hc595最高电压和最低电压
74HC595时序图
74HC595逻辑图
74HC595和74HC164的区别主要有:
1、74HC595有锁存器,所以在移位过程中输出可以保持不变;而74HC164没有锁存器,所以每产生一个移位时钟输出就改变一次。这是二者的最大区别
2、74HC595使用专门的Q7'引脚实现多片级联;74HC164直接使用输出引脚Q7级联
3、74HC595有使能OE,OE无效时输出引脚为高阻态;而74HC164没有使能引脚
4、74HC595的复位是针对移位寄存器的,想要复位LATCH寄存器还须ST_CP上升沿将移位寄存器内容加载到锁存寄存器;也就是说:74HC595的复位是同步的,74HC164的复位是异步的,所以74HC164的复位更简单
5、74HC164有对应的74HC165并转串芯片
74HC595.c------------------------------------------------------------------------------------------------------------------------------------------------------ #include "stm32f10x.h"#include "stm32f10x_rcc.h"#include "stm32f10x_gpio.h"#include "74HC595.h"/* 延时模块82615468 sp-320-12 * */static void delay(u32 t){u32 i;while(t--)for (i = 0; i < 1; i++);}void HC595Init(void){GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(HC595_CLK_GPIO_CLK | HC595_DATA_GPIO_CLK | HC595_CS_GPIO_CLK, ENABLE);GPIO_InitStructure.GPIO_Pin = HC595_CLK_PIN;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(HC595_CLK_GPIO, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = HC595_DATA_PIN;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(HC595_DATA_GPIO, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = HC595_CS_PIN;GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_Init(HC595_CS_GPIO, &GPIO_InitStructure);HC595_CLK_H();HC595_DATA_H();HC595_CS_H();}void HC595Send(u8 data){ u8 j; for (j = 8; j > 0; j--){ if(data & 0x80) HC595_DATA_H();elseHC595_DATA_L(); HC595_CLK_L(); //上升沿发生移位delay(1); data <<= 1; HC595_CLK_H();delay(1); }//HC595Load();}void HC595Load(void){HC595_CS_L();HC595_CS_H();}/*void LedRowOn(u8 Row7_0, u8 Row15_8, u8 Row16_23,u8 Row31_24){HC595Send(Row15_8);HC595Send(Row7_0);HC595Send(Row31_24);HC595Send(Row16_23);HC595Load();}*/void LedRowOut(u32 Data){HC595Send(Data >> 24);HC595Send(Data >> 16);HC595Send(Data >> 8);HC595Send(Data >> 0);HC595Load();}//end of file
74HC595.h
#ifndef __74HC595_H__ #define __74HC595_H__ #define HC595_CLK_PIN GPIO_Pin_6 #define HC595_CLK_GPIO GPIOA #define HC595_CLK_GPIO_CLK RCC_APB2Periph_GPIOA #define HC595_CLK_H() GPIOA->BSRR = HC595_CLK_PIN #define HC595_CLK_L() GPIOA->BRR = HC595_CLK_PIN #define HC595_CS_PIN GPIO_Pin_7 #define HC595_CS_GPIO GPIOA #define HC595_CS_GPIO_CLK RCC_APB2Periph_GPIOA #define HC595_CS_H() GPIOA->BSRR = HC595_CS_PIN #define HC595_CS_L() GPIOA->BRR = HC595_CS_PIN #define HC595_DATA_PIN GPIO_Pin_10 #define HC595_DATA_GPIO GPIOE #define HC595_DATA_GPIO_CLK RCC_APB2Periph_GPIOE #define HC595_DATA_H() GPIOE->BSRR = HC595_DATA_PIN #define HC595_DATA_L() GPIOE->BRR = HC595_DATA_PIN void HC595Send(u8 data); void HC595Init(void); void HC595Load(void); void LedRowOn(u8 Row7_0, u8 Row15_8, u8 Row16_23,u8 Row31_24); void LedRowOut(u32 Data); #endif
- STm32驱动74HC595引脚图时序图工作原理
- 74HC595引脚图时序图工作原理及pdf中文资料lsh
- 74HC595引脚图时序图工作原理及pdf中文资料
- STM32 控制74HC595 驱动点阵 文字能移动
- [转载]74HC595驱动
- 74HC595驱动数码管
- 74HC595 驱动代码
- 74ls192/74ls193中文资料介绍-引脚图-真值表-工作原理
- 单片机驱动74hc595使用方法
- LCD工作原理 驱动之LCD 上电时序
- 12位二进制异步计数器74HC4040引脚图,功能及时序图简介
- 74HC595 for STM32 源代码【worldsing笔记】
- tomcat工作流程时序图
- 74HC595单片机C51驱动(源程序)
- 基于s3c6410的74hc595驱动
- 51单片机利用74HC595驱动数码管
- linux驱动实例之74HC595
- STM32 软件模拟SPI时序驱动NRF24L01
- CentOS 无法识别NTFS格式U盘的解决方法
- 当共享单车遇上窄带物联网 开锁速度将提高3倍
- 如何解决H5中获取相机与图片,在苹果手机获取不了文件选择图片的问题
- python小技巧
- python错误处理记录完整的异常堆栈信息
- STm32驱动74HC595引脚图时序图工作原理
- Mybatis传入多个参数和${}与#{}的区别
- 蓝桥杯斐波拉切数列踩过的坑
- ngnix配置
- javascript定义个json对象
- 借工业物联网融合IT与OT 驱动制造服务化转型
- 在express 模板引擎的路由中加载socket.io
- 【Cocos2d-x游戏开发lua篇之基础】加载图片与设置按钮监听事件
- java的变量和常量以及常量池