实验平台:普中A2开发板,STC89C51RC芯片,11.0592M晶振。

文章目录

  • 前言
  • 一、代码
    • 1.main.c
    • 2.HC595.c
    • 2.HC595.h
  • 总结

前言

74HC595是一个8位串行输入、并行输出的位移缓存器:并行输出为三态输出。在SCK 的上升沿,串行数据由SDL输入到内部的8位位移缓存器,并由Q7’输出,而并行输出则是在LCK的上升沿将在8位位移缓存器的数据存入到8位并行输出缓存器。当串行数据输入端OE的控制信号为低使能时,并行输出端的输出值等于并行输出缓存器所存储的值。。


引脚说明:

  • QA–QH(15脚、1-7脚): 八位并行输出端,可以直接控制数码管的 8 个段。
  • GND(8脚)
  • QH’(9 脚): 级联输出端。我将它接下一个 595 的 SER 端。
  • SCLR(10 脚): 低点平时将移位寄存器的数据清零。通常我将它接 Vcc。
  • SCK(11 脚):即SHCP,上升沿时数据寄存器的数据移位;(脉冲宽度:5V 时,大于几十纳秒就行了。)
  • RCK(12 脚):即STCP,上升沿时移位寄存器的数据进入数据存储寄存器,通常我将RCK 置为低点平,当移位结束后,在 RCK 端产生一个正脉冲(5V 时,大于几十纳秒就行了。我通常都选微秒级),更新显示数据。
  • /G(13 脚): 高电平时禁止输出(高阻态)。如果单片机的引脚不紧张,用一个引脚控制它,可以方便地产生闪烁和熄灭效果。比通过数据端移位控制要省时省力。
  • SER(14 脚): 串行数据输入端。
    VCC(16脚)

管脚图

时序图

引脚说明

级联图

一、代码

1.main.c

代码如下(示例):

/**************************************************************************************
实验平台:普中A2开发板(STC89C51RC芯片)74HC595模块
试验现象:
***************************************************************************************/#include "reg52.h"             //此文件中定义了单片机的一些特殊功能寄存器
#include <intrins.h>
#include <SelfDef.h>
#include <HC595.h>void Delay1ms()     //@11.0592MHz
{unsigned char i, j;_nop_();i = 2;j = 199;do{while (--j);} while (--i);
}/*******************************************************************************
* 函 数 名       : main
* 函数功能       : 主函数
* 输    入       : 无
* 输    出         : 无
*******************************************************************************/
void main()
{   SHCP=0;STCP=0;SDA=0;Delay1ms();HC595_Send_One_Byte(0xf2);}

2.HC595.c

代码如下(示例):

#include <HC595.h>
#include <SelfDef.h>void Delay10us()      //@11.0592MHz
{unsigned char i;i = 2;while (--i);
}/****74HC595 发送一个字节 *即往74HC595的DS引脚发送一个字节
*/
void HC595_Send_Byte(u8 byte)
{u8 i;for (i = 0; i < 8; i ++)  //一个字节8位,传输8次,一次一位,循环8次,刚好移完8位{/****  步骤1:将数据传到DS引脚    ****/if (byte & 0x80)        //先传输高位,通过与运算判断第八是否为1SDA=1;    //如果第八位是1,则与 595 DS连接的引脚输出高电平else                    //否则输出低电平SDA=0;/*** 步骤2:SHCP每产生一个上升沿,当前的bit就被送入移位寄存器 ***/SHCP=0;   // SHCP拉低Delay10us();           // 适当延时SHCP=1;  // SHCP拉高, SHCP产生上升沿Delay10us();byte <<= 1;       // 左移一位,将低位往高位移,通过    if (byte & 0x80)判断低位是否为1}
}/***74HC595输出锁存 使能
**/
void HC595_CS(void)
{/**  步骤3:STCP产生一个上升沿,移位寄存器的数据移入存储寄存器  **/STCP=0;   // 将STCP拉低Delay10us();          // 适当延时STCP=1;  // 再将STCP拉高,STCP即可产生一个上升沿Delay10us();
}/***发送多个字节*便于级联时数据的发送*级联N级,就需要发送N个字节控制HC595
***/
void HC595_Send_Multi_Byte(u8 *dat,u16 len)
{u8 i;for (i = 0; i < len; i ++ ) // len 个字节{HC595_Send_Byte(dat[i]);}HC595_CS(); //先把所有字节发送完,再使能输出
}/***发送1个字节,无级联
***/
void HC595_Send_One_Byte(u8 byte)
{u8 i;for (i = 0; i < 8; i ++)  //一个字节8位,传输8次,一次一位,循环8次,刚好移完8位{/****  步骤1:将数据传到DS引脚    ****/if (byte & 0x80)        //先传输高位,通过与运算判断第八是否为1SDA=1;    //如果第八位是1,则与 595 DS连接的引脚输出高电平else                    //否则输出低电平SDA=0;/*** 步骤2:SHCP每产生一个上升沿,当前的bit就被送入移位寄存器 ***/SHCP=0;   // SHCP拉低Delay10us();           // 适当延时SHCP=1;  // SHCP拉高, SHCP产生上升沿Delay10us();byte <<= 1;       // 右移一位,将低位往高位移,通过    if (byte & 0x80)判断低位是否为1}HC595_CS();
}

2.HC595.h

#ifndef __HC595_H_
#define __HC595_H_#include <reg52.h>
#include <SelfDef.h>sbit SHCP=P1^0;
sbit STCP=P1^1;
sbit SDA=P1^2;void HC595_Send_Multi_Byte(u8 *dat, u16 len);
void HC595_Send_One_Byte(u8 byte);#endif

总结

提示:这里对文章进行总结:
例如:

【芯片使用】74HCHC595相关推荐

  1. 2022-2028年中国SIP芯片行业市场前景预测及投资战略研究报告

    [报告类型]产业研究 [报告价格]4500起 [出版时间]即时更新(交付时间约3个工作日) [发布机构]智研瞻产业研究院 [报告格式]PDF版 本报告介绍了中国SIP芯片行业市场行业相关概述.中国SI ...

  2. 人工智能3d建模算法_打破国外垄断,全国产3D芯片为机器人“点睛”

    ◎ 科技日报记者 崔爽 传统机器人只有"手",只能在固定好的点位上完成既定操作,而新一轮人工智能技术大大推动了机器和人的协作,这也对机器人的灵活性有了更高要求. 要想像人一样测量. ...

  3. GPU、AI芯片技术市场分析

    GPU.AI芯片技术市场分析 市场将高速增长,GPU曙光初现,预计到2024年,国内人工智能技术市场规模将达到172亿美元:全球占比将从2020年12.5%上升到15.6%,是全球市场增长的主要驱动力 ...

  4. 2002年3月英伟达发布核弹GPU与大算力自动驾驶芯片

    2002年3月英伟达发布核弹GPU与大算力自动驾驶芯片 英伟达核弹级GPU:800亿晶体管,20块承载全球互联网流量 2022年3 月 22 日,在英伟达 GTC2022 上,英伟达介绍了 Hoppe ...

  5. 2022年AI芯片场景

    2022年AI芯片场景 随着技术成熟化,AI芯片的应用场景除了在云端及大数据中心,也会随着算力逐渐向边缘端移动,部署于智能家居.智能制造.智慧金融等领 域:同时还将随着智能产品种类日渐丰富,部署于智能 ...

  6. 芯片初创公司一亿融资可以烧多久

    芯片初创公司一亿融资可以烧多久 一个亿融资可以烧多久? 这个问题我分别问了几个芯片公司的创始人. 有说2年的(某中等规模电路,成熟制程的MCU芯片公司):有说1年的(某AI算力芯片公司):有说半年的( ...

  7. 一站式智能芯片定制技术

    一站式智能芯片定制技术 从55nm到5nm先进工艺,拥有创纪录(> 200次流片)和年10万片FinFET晶圆授权量产的骄人业绩,并且成功率高达100%.15年以来,先进工艺产品交付纪录持续行业 ...

  8. 内存接口芯片,服务器平台,PCIe 芯片

    内存接口芯片,服务器平台,PCIe 芯片 澜起科技成立于2004年,是国际领先的数据处理及互连芯片设计公司,致力于为云计算和人工智能领域提供高性能,低功耗的芯片解决方案,目前公司拥有互连类芯片和津逮® ...

  9. LED芯片,应用品,蓝宝石衬底,集成电路,UV

    LED芯片,应用品,蓝宝石衬底,集成电路,UV 三安主要从事全色系超高亮度LED芯片的研发,生产与销售,产品性能稳定,品质优异. 产品覆盖 三安能够提供全波长范围的LED,产品可覆盖全部可见光和不可见 ...

最新文章

  1. 多视图立体匹配论文分享 | Fast-MVSNet (CVPR2020)
  2. 【转载】Python常用模块之sys
  3. 【Zookeeper】Zookeeper部署笔记
  4. jQuery分页插件(jquery.page.js)的使用
  5. 阿里mysql锁_【mysql】mysql中的锁机制
  6. atitit js 开发工具 ide的代码结构显示(func list) outline总结
  7. Python语音基础操作--2.4语音信号生成
  8. JDK动态代理过程中报错interface ** is not visible from class loader
  9. ctf writeup之程序员密码
  10. Python——库docx(四)12.25
  11. 关于计算机游戏的英语读法,[计算机游戏用英语怎么说]电脑游戏用英语怎么说...
  12. 冰峰王座完整的语音英文+中文解释!(修订版)
  13. 甲骨文CEO拉里-埃里森鲜为人知的11个特性
  14. 刺激战场android闪退,《绝地求生刺激战场》老是闪退怎么办 老是闪退解决方法介绍...
  15. 驰骋BPM系统-表单引擎-流程引擎 2020年大换装
  16. Fabric v2.2源码分析 Broadcast广播交易服务(二)
  17. 资源网站合集 五个值得你收藏的网站
  18. android微信风格,微信主题太过简单?教你一键设置,多种风格自由切换
  19. Witt向量简介 论文的参考文献
  20. 分享 :如何成为一个合格的数据架构师?

热门文章

  1. 机器人动力学 拉格朗日乘子法求解动力学方程
  2. 常用激活函数--小白角度 TensorFlow 机器学习 神经网络 选取
  3. 计算机用户接入广域网的技术,第五章广域网接入技术全解.ppt
  4. 不同应用选择荧光染料 -CY7 ALK脂溶性Sulfo-Cyanine7 alkyne 结构式应用
  5. Python爬取新浪微博评论数据,写入csv文件中
  6. MySQL基础期末考试试题
  7. 有没有讲python模块的书_python - 模块,包
  8. 修改软件的系统默认(C盘)安装路径方法
  9. 设备维护管理的内容是什么?这四点你必须知道
  10. JZOJ5426. 【NOIP2017提高A组集训10.25】摘Galo