找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 699|回复: 5
收起左侧

51单片机向2片74HC595送数,可不可以送0xFFFF,一串过16位

[复制链接]
ID:965189 发表于 2024-3-23 20:38 | 显示全部楼层 |阅读模式
谢谢大家
回复

使用道具 举报

ID:213173 发表于 2024-3-24 07:05 | 显示全部楼层
2片74HC595级联,连续送2个8位或一次送16位数据。
  1. /**************** 向HC595发送一个字节函数 ******************/
  2. void Send_595(unsigned char dat)
  3. {               
  4.         unsigned char i;
  5.         for(i=0;i<8;i++)
  6.         {
  7.                 dat <<= 1;
  8.                 P_HC595_SER  = CY; //溢出位赋值数据输出端
  9.                 P_HC595_SRCLK = 1; //移位时钟
  10.                 P_HC595_SRCLK = 0;
  11.         }
  12. //        P_HC595_RCLK = 1;//锁存输出数据
  13. //        P_HC595_RCLK = 0;
  14. }
  15. /**************** 向HC595连续发送2-N个字节 ******************/
  16. void DisplayScan(unsigned char x,y)
  17. {       
  18.         Send_595(x);
  19.         Send_595(y);
  20. //        Send_595(z);
  21.         P_HC595_RCLK = 1;//锁存输出数据
  22.         P_HC595_RCLK = 0;
  23. }

  24. /**************** 向HC595一次发送16位数据 ******************/
  25. void Send_595(unsigned int dat)
  26. {               
  27.         unsigned char i;
  28.         for(i=0;i<16;i++)
  29.         {
  30.                 dat <<= 1;
  31.                 P_HC595_SER  = CY; //溢出位赋值数据输出端
  32.                 P_HC595_SRCLK = 1; //移位时钟
  33.                 P_HC595_SRCLK = 0;
  34.         }
  35.         P_HC595_RCLK = 1;//锁存输出数据
  36.         P_HC595_RCLK = 0;
  37. }

复制代码
回复

使用道具 举报

ID:965189 发表于 2024-3-24 10:46 | 显示全部楼层
wulin 发表于 2024-3-24 07:05
2片74HC595级联,连续送2个8位或一次送16位数据。

非常感谢你的回复,及时、全面、详细。
回复

使用道具 举报

ID:1034262 发表于 2024-3-24 12:58 | 显示全部楼层
可以,比如有8个595串联,你可以将8个字节全部移出,再锁存,LED点阵屏我就只这样操作的。
回复

使用道具 举报

ID:883242 发表于 2024-3-24 17:16 | 显示全部楼层
2片595就应该一次发16位,你发别的位数反而不对。
回复

使用道具 举报

ID:57657 发表于 2024-3-24 20:14 | 显示全部楼层
1片8位2片16位3片24位以此类推 不能多也不能少
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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