设为首页收藏本站淘宝杂货铺

从F到0 - From F to 0

 找回密码
 注册已关闭
搜索
查看: 901|回复: 0
收起左侧

C51/STC单片机 使用3个I/O口实现驱动两片级联74HC164 串转并移位芯片 并将数组发送出

[复制链接]
发表于 2022-2-23 15:35:45 | 显示全部楼层 |阅读模式
1.png
  1. /*
  2. HC595与HC164区别:
  3.         前者有锁存器(16脚),所有移位完成后输出。
  4.         后者无锁存器(14脚),每移一位就输出一位。
  5. 级联方法:U1的Q7接U2的A与B、CLK与MR全部接在一起,以此类推。
  6. */
  7. #include "reg51.h"
  8. #define u8 unsigned char
  9. #define hc164_num 2                                //164级联数量
  10. u8 hc164_data[hc164_num];                //165数据容器 请将要发送的数据写入此数组
  11. sbit hc164_AB = P3 ^ 2;                        //数据输入 A与B经过与门用于片选 将其接在一起
  12. sbit hc164_CLK = P3 ^ 3;                //上升沿移位锁存 先左移Q1~Q7,并锁存数据进Q0
  13. sbit hc164_MR = P3 ^ 4;                        //低电平清零复位

  14. void hc164() {                //向74HC164发送数据 请将数据写入 hc164_data 数组,然后发送
  15.         u8 j,k = hc164_num - 1;
  16.         hc164_MR = 0;
  17.         hc164_MR = 1;
  18.         do {
  19.                 j = 7;
  20.                 do {
  21.                         hc164_AB = (1 << j) & hc164_data[k] ? 1 : 0;
  22.                         hc164_CLK = 0;
  23.                         hc164_CLK = 1;
  24.                 } while (j--);
  25.         } while (k--);
  26. }

  27. void main() {
  28.         hc164_data[0] = 0xF0;                //U1
  29.         hc164_data[1] = 0x0F;                //U2
  30.         hc164();
  31.         while (1);
  32. }
复制代码

相关帖子

您需要登录后才可以回帖 登录 | 注册已关闭

本版积分规则

QQ|手机版|Archiver|从F到0 ( 蒙ICP备17002595号-1 )
蒙公网安备15010402000325号

腾讯云安全认证

GMT+8, 2024-3-29 17:04 , Processed in 0.532030 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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