登录  | 立即注册

游客您好!登录后享受更多精彩

扫一扫,访问微社区

QQ登录

只需一步,快速开始

开启左侧

[寒假笔记] 74HC 595-02及继电器

[复制链接]
发表于 2023-1-7 13:51:39 | 显示全部楼层 |阅读模式
学习笔记
学习科目: 51单片机
学习安排: 学完就发
开始时间: 2023-01-07
结束时间: 2023-01-07
74HC 595-02及继电器

一:首先给595输入一字节数据,再给三个输入引脚位定义。

      sbit DATA_A_595=P1^0; //串行输入

      sbit SHIFT_CLOCK_595=P1^4;  //移位寄存器时钟信号

       sbit LATCH_CLOCK_595=P2^3;  //锁存器时钟信号

一位一位写进去,写8次,可以用for循环

用子函数写程序

void write_74HC595(unsigned char data)

{

    unsigned char i;

    for(i=0;i<8;i++)

       {

           DATA_A_595=(data<<i)&0x80;//74HC595串行输入

           SHIFT_CLOCK_595=0;

           SHIFT_CLOCK_595=1;//移位寄存器上升沿信号

        }

    LATCH_CLOCK_595=0;

    LATCH_CLOCK_595-1;//锁存器上升沿信号

}

其中DATA_A_595=(data<<i)&0x80;是关键,实现了一字节数据分八次输入,这个小算法先是左移再与0x80相与,数据是十六进制,假设要输入的数据先看二进制为1101 0010,0x80为1000 0000,第一次i为0,左移0次还是原数据,与运算(全一为一,其他为0),之后为0X80,也就是第一次给IO口输入0X80,那么为什么能实现原数据输出的效果呢?是因为利用了IO口的特性:data的范围是0~255,则除0以外,其他数据都和1一样,输出高电平,以此类推,高低电平完全符合1101 0010。现在会发现数据没有逆序,这是因为使用了左移,左移从数据最高位取数,又通过移位寄存器的颠倒,“负负得正”,就和原数据一样了。

二:74HC595芯片的级联扩展应用

这时用到了之前没有讲过的SQH引脚(SERIAL DATA OUPUT)

66CD8CCABF2261F768C2AE79762DC696.jpg

如图连接,当然从图中网络标号可以看出,本着方便且节约IO口的原则,时钟信号引脚一一对应并联,并且为了后续清零的便利,可以把复位引脚也接在IO口上。

以两张芯片为例:则可以看作是一个大的16位的595芯片,也就是for循环要16次,输入两个字节数据,最后再加上锁存器时钟信号上升沿信号,最后输出数据。可以看到和一张芯片的程序相差不大,只是在for循环上有所改变。以此类推,三芯片,四芯片,五芯片......其实直观分析,没有左移和与运算时,第一个输入的数据都会跑到最后一个芯片的最后一位,也就是逆序,这说明底层逻辑还是没变。

三:继电器:是一种电控制器件,用小电流控制大电流大电压设备的运作,具有隔离功能的自动开关元件。核心是开关。

      首先要了解他的电气特性:额定功作电流71ma,接在电磁铁俩触点之间的。驱动电流和驱动电压在元器件包装上有印刷。

242223FE266D26CDE9C51120AF546054.jpg

继电器电路图,触点已标出。

9C5081DBE4BF86E4CE6D163937944A81.jpg

选择合适的区间,经常保持连通的选常闭区,偶尔连通选常开区

至于使用衔铁是因为衔铁不会因为接触带磁性的东西而自身带有磁性,之后就是正常的用单片机IO口控制继电器,当然不会直接连在IO口上,单片机虽然电压够但驱动电流不够,也不宜用灌电流,有烧坏单片机的风险,所以可以用三极管驱动。

四:继电器模块的扩展应用

454299176CFAE10C7D6D653AB674AB29.jpg

可以看到在电路中增加了光耦

光耦的作用是光耦隔离,低压和高压间加光耦,防止击穿,保护芯片。


好懒~~不想说~~~
发表于 2023-1-12 17:10:38 | 显示全部楼层
有点看不太懂,有点看不太懂
好懒~~不想说~~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表