STm32驱动74HC595引脚图时序图工作原理
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引脚图时序图工作原理相关推荐
- STM32——驱动7引脚OLED
STM32驱动7引脚的OLED 寒假在家里无聊又不能出门,开学可能还延迟了(新型肺炎最近比较猖狂)武汉加油!陕西加油!全国一起加油!一定要减少出门啊!!! 放假前带了一个OLED屏幕,想着刚好没有接触 ...
- UML之顺序图(时序图)
UML学习之顺序图(时序图绘制) 1. 什么是时序图 时序图(Sequence Diagram),又名顺序图.序列图.循序图,是一种UML交互图.它通过描述对象之间发送消息的时间顺序显示多个对象之间的 ...
- UML 类图-时序图-用例图
文章目录 1. UML类图 1.1 泛化(Generalization) 1.2 实现(Realization) 1.3 关联(Association) 1.4 聚合(Aggregation) 1.5 ...
- 机械动作时序图怎么画_快速学习时序图:时序图简介、画法及实例
原标题:快速学习时序图:时序图简介.画法及实例 时序图作为常用的UML交互图,可以直观的传达系统内外之间的交互过程,经常用在详细设计文档中.下面本文综合参考了多篇时序图的教程,根据作者的思路将时序图做 ...
- UML 建模步骤 用例图 类图 对象图 包图 顺序图/时序图 状态图 活动图 协作图
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明.可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言. UML是面向对象设计的建 ...
- UML顺序图/序列图/时序图
UML顺序图/序列图/时序图 UML时序图 什么是顺序图 基本元素 参与者 对象 生命线 激活框 消息 绘制工具 visio 亿图 UML时序图 什么是顺序图 为了实现系统功能,若干个对象之间需要交互 ...
- 火车购票系统服务器端uml活动图,火车购票完整系统UML类图时序图状态图协作图活动图对象图用例图.doc...
火车购票完整系统UML类图时序图状态图协作图活动图对象图用例图 <UML面向对象分析>课程 实践项目报告 项目名称: 网上订购火车票系统 项目组成员: 学 号: 班 级: 指导 教师: 2 ...
- ecg 幅度_心电图 (ECG) 与光电容积图 (PPG) 基本工作原理,如何测量?
ECG/PPG量测解决方案 摘要 本应用文件介绍了心电图 (ECG) 与光电容积图 (PPG) 的基本工作原理,讨论了ECG与PPG生理信号的量测,以及提高可靠性.实现高精度电气特性的难点.一般高精准 ...
- 什么是序列图/时序图?
前言 UML Sequence Diagrams是交互图,详细说明了如何执行操作. 它们捕获协作环境中对象之间的交互. 序列图是时间焦点,它们通过使用图表的垂直轴来直观地显示交互的顺序,以表示消息的发 ...
- UML 顺序图(时序图) sequence diagram
1. 什么是顺序图 是强调消息时间顺序的交互图.时序图描述类系统中类和类之间的交互,它将这些交互建模成消息交换.时序图是一个模型,用于描述对象间如何随着时间在某些行为方面进行协作.(强调的是消息的时间 ...
最新文章
- “芯片大脑“是什么?科学家提出了“忆阻性神经混合芯片“这一概念
- 【文本描述增强】标准屏幕字段文本描述更改增强
- .sln from VS2005 convert to VS2008
- 请简要说明一下CyclicBarrier和CountDownLatch的区别?
- 两种驱动系统运行的方式--分时的方式
- 使用代码创建Hybris storefront订单时遇到错误No result for the given example [TitleModel (
- 四、spring boot 1.5.4 日志管理
- poj 2096 , zoj 3329 , hdu 4035 —— 期望DP
- 如何批量查问PR值、百度权重、百度快照及收录量,用BlueCatTools批量网站查询工具
- NYOJ273 - 字母小游戏
- 你这几天因为 YYYY-MM-dd 被提 BUG 了吗??
- 下城投 × 奇点云 |「数智城投驾驶舱」,打造转型示范新样板
- 使用自定义注解实现接口参数校验
- 透透彻彻IoC(你没有理由不懂!)
- 5G网络时钟:ePRTC
- python skimage 填补图像孔洞
- 手动实现最简单的Android热修复(最新最全详细小白教程)
- 四川大学考研真题 || 信息资源管理导论(二)
- 数据分析必备|你不得不知道的11款数据分析工具
- 双象空间前方交会代码_基于联觉效应的VR交互式图形与图像混合建模