news 2026/2/9 6:48:14

C51_74HC595串口转并口

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C51_74HC595串口转并口

文章目录

  • 一、74HC595
    • 1、芯片引脚
    • 2、内部框图
    • 3、时序操作
  • 二、单芯片工模式
    • 1、原理图
    • 2、驱动代码
      • 1)、74hc595.h
      • 2)、74hc595.c
      • 3)、mian.c
  • 三、级联工作模式
    • 1、原理图
    • 2、驱动代码
      • 1)、main.c

一、74HC595

74HC595 是一个8位串行输入、并行输出的位移缓存器,其中并行输出为三态输出(即高电平、低电平和高阻抗)。

1、芯片引脚


2、内部框图

74HC595是具有8位移位寄存器和一个存储器,三态输出功能。
移位寄存器和存储器是单独的时钟。

3、时序操作

工作时序由串行数据(DS)、移位时钟(SHCP)、存储时钟(STCP) 三个核心信号控制,部分型号还支持输出使能(OE) 和清零(MR) 信号。
74HC595 的时序分为 移位阶段 和 锁存阶段:
移位阶段:
数据DS在移位时钟SHCP的上升沿输入,在SHCP的上升沿进入到存储器中,(高位D7先入,低位D0后入)。
锁存阶段:
当 8 位数据全部移入后,一个 ST_CP 上升沿会将移位寄存器的数据锁存到输出寄存器,驱动并行引脚输出。
输出使能(OE):低电平有效,需在锁存前拉低,否则输出为高阻态;若保持低电平,锁存后数据会立即输出。
异步清零(MR):低电平有效,无需时钟触发,拉低时直接清空移位寄存器;正常工作时需接高电平或通过上拉电阻固定。

二、单芯片工模式

1、原理图

2、驱动代码

1)、74hc595.h

#ifndef_74HC585_H_#define_74HC585_H_#include<reg52.h>#include<intrins.h>// 引脚定义(可根据实际硬件修改)sbit HC595_DS=P3^4;// 串行数据输入sbit HC595_SH_CP=P3^6;// 移位时钟sbit HC595_ST_CP=P3^5;// 锁存时钟// 延时函数(简单延时,可根据主频调整)voidHC595_Delay(unsignedintt);/** * @brief 向74HC595发送一个字节数据(高位先行) * @param dat 要发送的8位数据 */voidHC595_Send_Byte(unsignedchardat);/** * @brief 锁存数据到输出寄存器(并行输出) */voidHC595_Latch(void);/** * @brief 发送多个字节数据(级联74HC595时使用) * @param pdat 数据数组指针 * @param len 数据长度(级联个数) */voidHC595_Send_Multi_Byte(unsignedchar*pdat,unsignedcharlen);/** * @brief 清空74HC595输出(输出全0) */voidHC595_Clear(void);#endif

2)、74hc595.c

#include<74hc595.h>// 延时函数(简单延时,可根据主频调整)voidHC595_Delay(unsignedintt){unsignedinti,j;for(i=t;i>0;i--)for(j=110;j>0;j--);}/** * @brief 向74HC595发送一个字节数据(高位先行) * @param dat 要发送的8位数据 */voidHC595_Send_Byte(unsignedchardat){unsignedchari;HC595_SH_CP=0;// 移位时钟初始低电平for(i=0;i<8;i++)// 逐位发送8位数据{HC595_DS=dat&0x80;// 取最高位dat<<=1;// 左移一位,准备下一位// 移位时钟上升沿,将DS数据移入移位寄存器HC595_SH_CP=1;_nop_();// 空操作,保证时钟宽度HC595_SH_CP=0;}}/** * @brief 锁存数据到输出寄存器(并行输出) */voidHC595_Latch(void){HC595_ST_CP=1;_nop_();// 保证锁存时钟宽度HC595_ST_CP=0;}/** * @brief 发送多个字节数据(级联74HC595时使用) * @param pdat 数据数组指针 * @param len 数据长度(级联个数) */voidHC595_Send_Multi_Byte(unsignedchar*pdat,unsignedcharlen){unsignedchari;// 从最后一个芯片开始发送(级联时高位在前)for(i=len;i>0;i--){HC595_Send_Byte(pdat[i-1]);}HC595_Latch();// 所有数据移位完成后统一锁存}/** * @brief 清空74HC595输出(输出全0) */voidHC595_Clear(void){HC595_Send_Byte(0x00);HC595_Latch();}

3)、mian.c

#include<reg52.h>#include"74hc595.h"voidmain(){unsignedchartest_dat=0x01;HC595_Clear();// 初始化为全0while(1){HC595_Send_Byte(test_dat);// 发送数据HC595_Latch();// 锁存输出HC595_Delay(500);// 延时test_dat<<=1;// 左移一位,流水灯效果if(test_dat==0)test_dat=0x01;// 复位,重新开始}}

三、级联工作模式

1、原理图

2、驱动代码

1)、main.c

#include<reg52.h>#include"74hc595.h"voidmain(){unsignedchartest_dat[2]={0xAA,0x55};// 低8位0x55,高8位0xAAHC595_Clear();// 初始化为全0HC595_Send_Multi_Byte(test_dat,2);// 发送2字节,自动锁存HC595_Latch();// 锁存输出while(1){}}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/7 0:30:10

Parquet Reading 加速

参考链接 https://zhuanlan.zhihu.com/p/675905983

作者头像 李华
网站建设 2026/2/6 14:23:49

从“写代码”到“定义问题”——AI 时代程序员的生存宣言

本文原创公开首发于 CSDN 如需转载&#xff0c;请在文首注明出处与作者&#xff1a;yu779 从“写代码”到“定义问题”——AI 时代程序员的生存宣言 > “AI 一天写的代码&#xff0c;比我一周都多&#xff0c;那我还有存在的意义吗&#xff1f;” > 带着这个灵魂拷问&am…

作者头像 李华
网站建设 2026/2/8 1:42:51

iPhone运行Android完整指南:Project Sandcastle终极教程

iPhone运行Android完整指南&#xff1a;Project Sandcastle终极教程 【免费下载链接】projectsandcastle Supporting tools for Android/Linux on the iPhone 项目地址: https://gitcode.com/gh_mirrors/pr/projectsandcastle 在iPhone上运行Android系统&#xff0c;这听…

作者头像 李华
网站建设 2026/2/8 2:28:37

微信遥控Mac:WeChatPlugin远程控制终极指南

微信遥控Mac&#xff1a;WeChatPlugin远程控制终极指南 【免费下载链接】WeChatPlugin-MacOS 微信小助手 项目地址: https://gitcode.com/gh_mirrors/we/WeChatPlugin-MacOS 你是否曾经想过&#xff0c;躺在沙发上就能控制远在书房里的Mac电脑&#xff1f;或者在外出时突…

作者头像 李华
网站建设 2026/2/7 15:26:16

【Anthropic分享博客】Anthropic 内部的 Agentic Workflow 工程实践

摘要 随着 AI 辅助编程从单纯的 “Chat” 向 “Agentic”(代理式)演进, Claude Code 一直都是代表一种全新的工程交互范式。本文基于 Anthropic 最新分享看Claude Code的落地案例,尝试解析 Claude Code 的技术架构逻辑、上下文管理策略(Context Management)、以及基于 M…

作者头像 李华
网站建设 2026/2/7 21:06:53

ControlNet OpenPose SDXL:AI绘图的姿势控制终极指南

ControlNet OpenPose SDXL&#xff1a;AI绘图的姿势控制终极指南 【免费下载链接】controlnet-openpose-sdxl-1.0 项目地址: https://ai.gitcode.com/hf_mirrors/thibaud/controlnet-openpose-sdxl-1.0 在AI绘图领域&#xff0c;如何精确控制生成图像中人物的姿势一直是…

作者头像 李华