欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9662|回復(fù): 7
打印 上一主題 下一主題
收起左側(cè)

STC單片機(jī)74HC595驅(qū)動8個(gè)數(shù)碼管

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:187220 發(fā)表于 2017-4-7 18:25 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
74HC595驅(qū)動8個(gè)數(shù)碼管源程序:
  1. /*---------------------------------------------------------------------*/
  2. /* --- STC MCU International Limited ----------------------------------*/
  3. /* --- STC 1T Series MCU Demo Programme -------------------------------*/
  4. /* --- Mobile: (86)13922805190 ----------------------------------------*/
  5. /* --- Fax: 86-0513-55012956,55012947,55012969 ------------------------*/
  6. /* --- Tel: 86-0513-55012928,55012929,55012966 ------------------------*/
  7. /* --- QQ:  800003751 -------------------------------------------------*/
  8. /* 如果要在程序中使用此代碼,請?jiān)诔绦蛑凶⒚魇褂昧撕昃Э萍嫉馁Y料及程序   */
  9. /*---------------------------------------------------------------------*/


  10. /*************        本程序功能說明        **************

  11. 用STC的MCU的IO方式控制74HC595驅(qū)動8位數(shù)碼管。

  12. 顯示效果為: 數(shù)碼時(shí)鐘.

  13. 使用Timer0的16位自動重裝來產(chǎn)生1ms節(jié)拍,程序運(yùn)行于這個(gè)節(jié)拍下, 用戶修改MCU主時(shí)鐘頻率時(shí),自動定時(shí)于1ms.

  14. ******************************************/

  15. #define         MAIN_Fosc                22118400L        //定義主時(shí)鐘

  16. #include        "STC15Fxxxx.H"

  17. /****************************** 用戶定義宏 ***********************************/

  18. #define        Timer0_Reload        (65536UL -(MAIN_Fosc / 1000))                //Timer 0 中斷頻率, 1000次/秒

  19. /*****************************************************************************/


  20. #define DIS_DOT                0x20
  21. #define DIS_BLACK        0x10
  22. #define DIS_                0x11




  23. /*************        本地常量聲明        **************/
  24. u8 code t_display[]={                                                //標(biāo)準(zhǔn)字庫
  25. //         0    1    2    3    4    5    6    7    8    9    A    B    C    D    E    F
  26.         0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71,
  27. //black         -     H    J         K          L           N        o   P         U     t    G    Q    r   M    y
  28.         0x00,0x40,0x76,0x1E,0x70,0x38,0x37,0x5C,0x73,0x3E,0x78,0x3d,0x67,0x50,0x37,0x6e,
  29.         0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xEF,0x46};        //0. 1. 2. 3. 4. 5. 6. 7. 8. 9. -1

  30. u8 code T_COM[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};                //位碼


  31. /*************        IO口定義        **************/
  32. sbit        P_HC595_SER   = P4^0;        //pin 14        SER                data input
  33. sbit        P_HC595_RCLK  = P5^4;        //pin 12        RCLk        store (latch) clock
  34. sbit        P_HC595_SRCLK = P4^3;        //pin 11        SRCLK        Shift data clock

  35. /*************        本地變量聲明        **************/

  36. u8         LED8[8];                //顯示緩沖
  37. u8        display_index;        //顯示位索引
  38. bit        B_1ms;                        //1ms標(biāo)志

  39. u8        hour,minute,second;
  40. u16        msecond;

  41. /*************        本地函數(shù)聲明        **************/


  42. /****************  外部函數(shù)聲明和外部變量聲明 *****************/


  43. /********************** 顯示時(shí)鐘函數(shù) ************************/
  44. void        DisplayRTC(void)
  45. {
  46.         if(hour >= 10)        LED8[0] = hour / 10;
  47.         else                        LED8[0] = DIS_BLACK;
  48.         LED8[1] = hour % 10;
  49.         LED8[2] = DIS_;
  50.         LED8[3] = minute / 10;
  51.         LED8[4] = minute % 10;
  52.         LED8[5] = DIS_;
  53.         LED8[6] = second / 10;
  54.         LED8[7] = second % 10;
  55. }

  56. /********************** RTC演示函數(shù) ************************/
  57. void        RTC(void)
  58. {
  59.         if(++second >= 60)
  60.         {
  61.                 second = 0;
  62.                 if(++minute >= 60)
  63.                 {
  64.                         minute = 0;
  65.                         if(++hour >= 24)        hour = 0;
  66.                 }
  67.         }
  68. }


  69. /********************** 主函數(shù) ************************/
  70. void main(void)
  71. {
  72.         u8        i,k;
  73.        
  74.         P0M1 = 0;        P0M0 = 0;        //設(shè)置為準(zhǔn)雙向口
  75.         P1M1 = 0;        P1M0 = 0;        //設(shè)置為準(zhǔn)雙向口
  76.         P2M1 = 0;        P2M0 = 0;        //設(shè)置為準(zhǔn)雙向口
  77.         P3M1 = 0;        P3M0 = 0;        //設(shè)置為準(zhǔn)雙向口
  78.         P4M1 = 0;        P4M0 = 0;        //設(shè)置為準(zhǔn)雙向口
  79.         P5M1 = 0;        P5M0 = 0;        //設(shè)置為準(zhǔn)雙向口
  80.         P6M1 = 0;        P6M0 = 0;        //設(shè)置為準(zhǔn)雙向口
  81.         P7M1 = 0;        P7M0 = 0;        //設(shè)置為準(zhǔn)雙向口

  82.         AUXR = 0x80;        //Timer0 set as 1T, 16 bits timer auto-reload,
  83.         TH0 = (u8)(Timer0_Reload / 256);
  84.         TL0 = (u8)(Timer0_Reload % 256);
  85.         ET0 = 1;        //Timer0 interrupt enable
  86.         TR0 = 1;        //Tiner0 run
  87.         EA = 1;                //打開總中斷
  88.        
  89.         display_index = 0;
  90.         hour   = 11;        //初始化時(shí)間值
  91.         minute = 59;
  92.         second = 58;
  93.         RTC();
  94.         DisplayRTC();
  95.        
  96. //        for(i=0; i<8; i++)        LED8[i] = DIS_BLACK;        //上電消隱
  97.         for(i=0; i<8; i++)        LED8[i] = i;        //顯示01234567
  98.         k = 0;

  99.         while(1)
  100.         {
  101.                 if(B_1ms)        //1ms到
  102.                 {
  103.                         B_1ms = 0;
  104.                         if(++msecond >= 1000)        //1秒到
  105.                         {
  106.                                 msecond = 0;
  107.                                 RTC();
  108.                                 DisplayRTC();
  109.                         }

  110.                 }
  111.         }
  112. }
  113. /**********************************************/


  114. /**************** 向HC595發(fā)送一個(gè)字節(jié)函數(shù) ******************/
  115. void Send_595(u8 dat)
  116. {               
  117.         u8        i;
  118.         for(i=0; i<8; i++)
  119.         {
  120.                 dat <<= 1;
  121.                 P_HC595_SER   = CY;
  122.                 P_HC595_SRCLK = 1;
  123.                 P_HC595_SRCLK = 0;
  124.         }
  125. }

  126. /********************** 顯示掃描函數(shù) ************************/
  127. void DisplayScan(void)
  128. {       
  129.         Send_595(~T_COM[display_index]);                                //輸出位碼
  130.         Send_595(t_display[LED8[display_index]]);        //輸出段碼

  131.         P_HC595_RCLK = 1;
  132.         P_HC595_RCLK = 0;                                                        //鎖存輸出數(shù)據(jù)
  133.         if(++display_index >= 8)        display_index = 0;        //8位結(jié)束回0
  134. }


  135. /********************** Timer0 1ms中斷函數(shù) ************************/
  136. void timer0 (void) interrupt TIMER0_VECTOR
  137. {
  138.         DisplayScan();        //1ms掃描顯示一位
  139.         B_1ms = 1;                //1ms標(biāo)志

  140. }


復(fù)制代碼

下載:
C語言.rar (19.47 KB, 下載次數(shù): 103)
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏6 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:69536 發(fā)表于 2017-8-14 11:43 | 只看該作者
如果 配SCH 比較只管了。
回復(fù)

使用道具 舉報(bào)

板凳
ID:36359 發(fā)表于 2018-4-9 20:43 | 只看該作者
謝謝分享 下載研究一下
回復(fù)

使用道具 舉報(bào)

地板
ID:140183 發(fā)表于 2019-2-1 19:17 | 只看該作者
很好!下載學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報(bào)

5#
ID:337487 發(fā)表于 2020-1-29 14:04 | 只看該作者
不錯(cuò)的學(xué)習(xí)程序,學(xué)習(xí)一下,謝謝!
回復(fù)

使用道具 舉報(bào)

6#
ID:372579 發(fā)表于 2020-3-12 10:43 | 只看該作者
這個(gè)可以學(xué)習(xí)下,帶上原理圖就好了,不過也值得點(diǎn)贊
回復(fù)

使用道具 舉報(bào)

7#
ID:1011444 發(fā)表于 2022-6-10 20:15 | 只看該作者
終于找到595時(shí)鐘程序了,有電路圖就更好了,不過還是要謝謝樓主的分享!
回復(fù)

使用道具 舉報(bào)

8#
ID:1037083 發(fā)表于 2022-7-29 12:22 | 只看該作者
是不是需要兩片595才行?
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表