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

从F到0 - From F to 0

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

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

[复制链接]
发表于 2022-2-26 10:47:53 | 显示全部楼层 |阅读模式
1.png
  1. /*
  2. 单片机型号:STC任意 74HC595 级联方法:
  3. U1的Q7`接U2的DS,SHCP、STCP、OE全部接在一起,MR接VCC,以此类推。
  4. 74HC系列IC所有输入引脚严禁悬空,否则会受到干扰而出错。
  5. */
  6. #include "STC15.h"
  7. #define u8 unsigned char
  8. #define u16 unsigned int
  9. #define u32 unsigned long
  10. sbit hc595_shcp = P3 ^ 2;         //上升沿移位锁存一位数据到595内部
  11. sbit hc595_ds = P3 ^ 3;         //595数据输入
  12. sbit hc595_stcp = P3 ^ 4;         //上升沿输出595内部锁存的数据
  13. sbit hc595_oe = P3 ^ 5;                //高电平595输出高阻 (低电平打开输出,防止上电瞬间乱码)
  14. #define hc595_num 2                        //595级联数量
  15. u8 hc595_data[hc595_num];                //595数据容器

  16. void hc595(bit open) {                //请将数据写入 hc595_data 数组 然后发送 参数:1打开输出 0高阻输出
  17.         u8 j, k = hc595_num - 1;
  18.         do {
  19.                 j = 7;
  20.                 do {
  21.                         hc595_ds = hc595_data[k] & (1 << j) ? 1 : 0;
  22.                         hc595_shcp = 0;
  23.                         hc595_shcp = 1;
  24.                 } while (j--);
  25.         } while (k--);
  26.         hc595_stcp = 0;
  27.         hc595_stcp = 1;
  28.         hc595_oe = !open;
  29. }

  30. void main() {
  31.         hc595_data[0] = 0xF0;                //U1
  32.         hc595_data[1] = 0x0F;                //U2
  33.         hc595(1);
  34.         while (1);
  35. }
复制代码

相关帖子

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

本版积分规则

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

腾讯云安全认证

GMT+8, 2024-4-19 15:45 , Processed in 0.407023 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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