標(biāo)題: 16LED流水燈 74HC595驅(qū)動的 帶仿真和程序 [打印本頁]

作者: 51黑ff    時間: 2016-9-8 22:49
標(biāo)題: 16LED流水燈 74HC595驅(qū)動的 帶仿真和程序
使用51單片機和2個74hc595做的16led流水燈程序,仿真原理圖詳見下圖:
16led流水燈的源程序:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int


  5. sbit Sh_cp=P2^0;
  6. sbit Ds=P2^1;
  7. sbit St=P2^2;

  8. sbit Sh_cp1=P1^0;
  9. sbit Ds1   =P1^1;
  10. sbit St1   =P1^2;

  11. uchar temp;
  12. uchar temp1;
  13. void In_Data(void)
  14. {
  15.          unsigned char i;
  16.          for(i=0;i<8;i++)
  17.          {
  18.           Sh_cp=0;
  19.           _nop_();_nop_();
  20.           temp<<=1;Ds=CY;
  21.           Sh_cp=1;
  22.           _nop_();_nop_();
  23.           Sh_cp=0;
  24.           _nop_();_nop_();
  25.          }
  26. }

  27. void Out_Data(void)
  28. {
  29.          St=0;
  30.          _nop_();_nop_();
  31.          St=1;                          //上升沿送到鎖存器
  32.          _nop_();_nop_();
  33.          St=0;            //鎖存顯示
  34. }
  35. void In_Data1(void)
  36. {
  37.          unsigned char i;
  38.          for(i=0;i<8;i++)
  39.          {
  40.           Sh_cp1=0;
  41.           _nop_();_nop_();
  42.           temp1<<=1;Ds1=CY;
  43.           Sh_cp1=1;
  44.           _nop_();_nop_();
  45.           Sh_cp1=0;
  46.           _nop_();_nop_();
  47.          }
  48. }

  49. void Out_Data1(void)
  50. {
  51.          St1=0;
  52.          _nop_();_nop_();
  53.          St1=1;                          //上升沿送到鎖存器
  54.          _nop_();_nop_();
  55.          St1=0;            //鎖存顯示
  56. }

  57. void DelayMS(unsigned int ms)
  58. {
  59.         unsigned char i;
  60.         while(ms--)
  61.         for(i=0;i<120;i++);
  62. }

  63. void main()
  64. {
  65.    uchar i,j;
  66.         while(1)
  67.         {

  68.                 for(j=2;j>0;j--)
  69.                 {       temp1=j;
  70.                                  In_Data1();
  71.                             Out_Data1();
  72.                         for(i=0;i<8;i++)
  73.                         {
  74.                                 temp=1<<i;
  75.                                  In_Data();
  76.                             Out_Data();
  77.                             DelayMS(1000);
  78.                         }

  79.                         //        DelayMS(2000);
  80.                    }
  81.         }
  82. }
復(fù)制代碼




下載地址:
74HC595流水燈.rar (40.69 KB, 下載次數(shù): 451)


作者: 東北那誰    時間: 2016-9-11 08:26
51黑有你更精彩
作者: lids    時間: 2016-9-26 12:25
很好的學(xué)習(xí)資料
作者: xxhei    時間: 2017-4-20 11:34
好像很不錯的樣子
作者: lxa0    時間: 2017-4-20 22:14
為什么要用 595呢?
s51/s52單片機可以直接驅(qū)動led的
作者: kawenlomg    時間: 2017-5-17 05:52
好的學(xué)習(xí)資料
作者: xxhei    時間: 2017-6-3 11:10
lxa0 發(fā)表于 2017-4-20 22:14
為什么要用 595呢?
s51/s52單片機可以直接驅(qū)動led的

595控制更加簡單方便
作者: cjhahang    時間: 2017-6-3 21:25
595應(yīng)用的好例子
作者: 落葉無痕23    時間: 2017-6-6 00:06
有用定時器方式控制的程序圖嗎
作者: jsjsjs97    時間: 2017-12-22 12:35
請問要加入開關(guān)K1、K2讓流水燈轉(zhuǎn)換時間由1s變?yōu)?.5s應(yīng)該怎么設(shè)計
作者: xichandoujigu    時間: 2018-4-2 22:23
學(xué)習(xí)了
作者: bgswqy    時間: 2018-5-19 05:10

595應(yīng)用的好例子
作者: 本來無一物    時間: 2018-6-15 15:28
感覺好難吶
作者: 科比科比    時間: 2018-6-17 21:29
謝謝樓主啊
作者: 何大    時間: 2018-12-20 09:21
有其他鏈接嗎
作者: msmn    時間: 2018-12-20 12:52
怎么沒有見到仿真程序呢?
作者: SDDK    時間: 2018-12-31 15:29
請問要加入開關(guān)K1、K2讓流水燈轉(zhuǎn)換時間由1s變?yōu)?.5s應(yīng)該怎么設(shè)計

作者: sq8422779    時間: 2019-9-16 09:32
這個可以有,,支持 但是還不是很明確
作者: leilei373    時間: 2019-11-29 09:54
不是級聯(lián)方式的 有點坑了
作者: srfj    時間: 2020-1-23 17:16

51黑有你更精彩
作者: zhang923    時間: 2020-5-17 17:38
感謝分享
作者: zjwhsm    時間: 2020-5-19 13:14
樓主可以私嗎,,,,想做個關(guān)于595的應(yīng)用

作者: 465448    時間: 2020-6-5 18:12
lxa0 發(fā)表于 2017-4-20 22:14
為什么要用 595呢?
s51/s52單片機可以直接驅(qū)動led的

不用驅(qū)動芯片  只用單片機 你能驅(qū)動多少led
作者: 熊喬中    時間: 2023-1-25 22:42
請問:要讓某一個LED輸出點亮怎么編程?比如只要第15個LED亮
作者: 405616736    時間: 2023-1-26 03:17
jsjsjs97 發(fā)表于 2017-12-22 12:35
請問要加入開關(guān)K1、K2讓流水燈轉(zhuǎn)換時間由1s變?yōu)?.5s應(yīng)該怎么設(shè)計

設(shè)置一個變量代入延時函數(shù) void DelayMS(unsigned int ms),按鍵按下就改變變量
作者: 無名氏1957    時間: 2023-1-26 11:41
感覺74HC595浪費了
才用級聯(lián)方式,兩個就好.
比如:P20/A8-----595-1---11(SH_CP)
     P21/A9-----595-1---14(DS)
     P22/A10----595-1---12(ST_CP)



作者: 無名氏1957    時間: 2023-1-26 12:55
16LED流水燈 74HC595驅(qū)動的 帶仿真和程序(清理)




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