標(biāo)題: 51單片機(jī)向2片74HC595送數(shù),可不可以送0xFFFF,一串過16位 [打印本頁]

作者: 君工創(chuàng)    時間: 2024-3-23 20:38
標(biāo)題: 51單片機(jī)向2片74HC595送數(shù),可不可以送0xFFFF,一串過16位
謝謝大家
作者: wulin    時間: 2024-3-24 07:05
2片74HC595級聯(lián),連續(xù)送2個8位或一次送16位數(shù)據(jù)。
  1. /**************** 向HC595發(fā)送一個字節(jié)函數(shù) ******************/
  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; //溢出位賦值數(shù)據(jù)輸出端
  9.                 P_HC595_SRCLK = 1; //移位時鐘
  10.                 P_HC595_SRCLK = 0;
  11.         }
  12. //        P_HC595_RCLK = 1;//鎖存輸出數(shù)據(jù)
  13. //        P_HC595_RCLK = 0;
  14. }
  15. /**************** 向HC595連續(xù)發(fā)送2-N個字節(jié) ******************/
  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;//鎖存輸出數(shù)據(jù)
  22.         P_HC595_RCLK = 0;
  23. }

  24. /**************** 向HC595一次發(fā)送16位數(shù)據(jù) ******************/
  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; //溢出位賦值數(shù)據(jù)輸出端
  32.                 P_HC595_SRCLK = 1; //移位時鐘
  33.                 P_HC595_SRCLK = 0;
  34.         }
  35.         P_HC595_RCLK = 1;//鎖存輸出數(shù)據(jù)
  36.         P_HC595_RCLK = 0;
  37. }

復(fù)制代碼

作者: 君工創(chuàng)    時間: 2024-3-24 10:46
wulin 發(fā)表于 2024-3-24 07:05
2片74HC595級聯(lián),連續(xù)送2個8位或一次送16位數(shù)據(jù)。

非常感謝你的回復(fù),及時、全面、詳細(xì)。
作者: coody_sz    時間: 2024-3-24 12:58
可以,比如有8個595串聯(lián),你可以將8個字節(jié)全部移出,再鎖存,LED點陣屏我就只這樣操作的。
作者: Hephaestus    時間: 2024-3-24 17:16
2片595就應(yīng)該一次發(fā)16位,你發(fā)別的位數(shù)反而不對。
作者: npn    時間: 2024-3-24 20:14
1片8位2片16位3片24位以此類推 不能多也不能少




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1