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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7786|回復(fù): 2
收起左側(cè)

74hc595驅(qū)動共陽數(shù)碼管原理圖+源程序

[復(fù)制鏈接]
ID:140725 發(fā)表于 2016-10-20 22:43 | 顯示全部樓層 |閱讀模式
原理圖:
0.png

0.png
單片機(jī)源程序:
  1. #include<reg52.h>
  2. #include<intrins.h>
  3. typedef unsigned char u8;
  4. typedef unsigned int  u16;
  5. #define HIGH                1
  6. #define LOW                        0
  7. #define TH0_VALUE        0xDC
  8. #define TL0_VALUE        0x00
  9. #define CNT_VOICE_TIME 60

  10. //對芯片74hc164管腳定義
  11. sbit IO_74HC595_DATA = P1^7;
  12. sbit IO_74HC595_CLK = P1^6;
  13. sbit IO_74HC595_LATCH_CLK = P1^5;
  14. sbit IO_74HC595_DATA1 = P1^4;
  15. sbit IO_74HC595_CLK1 = P1^3;
  16. sbit IO_74HC595_LATCH_CLK1 = P1^2;
  17. sbit IO_BEEP = P1^4;

  18. //寫數(shù)據(jù)到74hc595
  19. u8 code LedData[]=
  20. {
  21.         0xC0,  //"0"
  22.         0xF9,  //"1"
  23.         0xA4,  //"2"
  24.         0xB0,  //"3"
  25.         0x99,  //"4"
  26.         0x92,  //"5"
  27.         0x82,  //"6"
  28.         0xF8,  //"7"
  29.         0x80,  //"8"
  30.         0x90,  //"9"
  31. };
  32. //變量定義
  33. u8 u8SystemTime;           //全部變量前面要注明類型
  34. u8 BeepTime;
  35. u8 u8Voice_Time_Cnt;
  36. u8 Count;
  37. u8 DspBuf[2]=0;           //存儲變量定義

  38. //時間變量定義
  39. u8 Second = 0;
  40. u8 Minute = 0;
  41. u8 Hour = 0;

  42. /***********************************************************
  43. 函數(shù)名稱:           void DelayUs(u8 t)
  44. 函數(shù)功能:           大致延時長度如下 t*2 + 5                           
  45. 入口參數(shù):           t
  46. 出口參數(shù):           無
  47. 備 注:
  48. ***********************************************************/
  49. void DelayUs(u8 t)
  50. {
  51.         while(--t);
  52. }

  53. /***********************************************************
  54. 函數(shù)名稱:           void DelayUs(u16 t)
  55. 函數(shù)功能:           大致延時長度如下 1ms                           
  56. 入口參數(shù):           t
  57. 出口參數(shù):           無
  58. 備 注:
  59. ***********************************************************/
  60. void DelayMs(u16 t)
  61. {
  62.         while(--t)
  63.         {
  64.                 DelayUs(245);
  65.                 DelayUs(245);
  66.         }
  67. }
  68. //發(fā)送數(shù)據(jù)到74hc595
  69. void HC595_SendByte(u8 Byte)
  70. {
  71.         u8 i;
  72.         for(i = 0; i < 8; i++)
  73.         {        
  74.                 IO_74HC595_DATA = Byte & 0x80;
  75.                 IO_74HC595_CLK = HIGH;
  76.                 IO_74HC595_CLK = LOW;
  77.                 Byte <<= 1;                                
  78.         }
  79. }
  80. //74hc595輸出數(shù)據(jù)
  81. void HC595_OutData(void)
  82. {
  83.         IO_74HC595_LATCH_CLK = LOW;
  84.         _nop_();
  85.         _nop_();
  86.         _nop_();
  87.         IO_74HC595_LATCH_CLK = HIGH;
  88.         _nop_();
  89.         _nop_();
  90.         _nop_();
  91.         IO_74HC595_LATCH_CLK = LOW;
  92.         _nop_();
  93.         _nop_();
  94.         _nop_();
  95.                
  96. }
  97. //2222發(fā)送數(shù)據(jù)到74hc595
  98. void HC595_Send2Byte(u8 Byte)
  99. {
  100.         u8 i;
  101.         for(i = 0; i < 8; i++)
  102.         {        
  103.                 IO_74HC595_DATA1 = Byte & 0x80;                 //先送高位
  104.                 IO_74HC595_CLK1 = HIGH;
  105.                 IO_74HC595_CLK1 = LOW;
  106.                 Byte <<= 1;                                
  107.         }
  108. }
  109. //2222 74hc595輸出數(shù)據(jù)
  110. void HC595_Out2Data(void)
  111. {
  112.         IO_74HC595_LATCH_CLK1 = LOW;
  113.         _nop_();
  114.         _nop_();
  115.         _nop_();
  116.         IO_74HC595_LATCH_CLK1 = HIGH;
  117.         _nop_();
  118.         _nop_();
  119.         _nop_();
  120.         IO_74HC595_LATCH_CLK1 = LOW;
  121.         _nop_();
  122.         _nop_();
  123.         _nop_();
  124.                
  125. }
  126. //刷新數(shù)碼管
  127. void HC595_Refresh(void)
  128. {
  129.         HC595_SendByte(DspBuf[0]);
  130.         HC595_OutData();
  131.         
  132.         HC595_Send2Byte(DspBuf[1]);
  133.         HC595_Out2Data();        
  134. }

  135. //定時器初始化
  136. void T0_Init(void)
  137. {
  138.         TMOD |= 0x01;
  139.         TH0 = TH0_VALUE;
  140.         TL0 = TL0_VALUE;
  141.         EA  = 1;                //打開總中斷
  142.         ET0 = 1;                //打開中斷使能
  143.         TR0 = 1;                //開啟中斷
  144. }
  145. //定時器中斷服務(wù)
  146. void Time0_ISR(void) interrupt 1
  147. {
  148.         TH0 = TH0_VALUE;
  149.         TL0 = TL0_VALUE;
  150.         u8SystemTime++;
  151.         if(u8SystemTime == 100)
  152.         {
  153.                 u8SystemTime = 0;
  154.                 Second++;
  155.                 if(Second == 10)
  156.                 {
  157.                         Second = 0;
  158.                         Minute++;
  159.                         if(Minute == 6)
  160.                         {
  161.                                 Minute = 0;
  162.                                 Second = 0;               
  163.                         }
  164.                 }
  165.         }
  166.         DspBuf[0] = LedData[Second %10];
  167.         DspBuf[1] = LedData[Minute %10];
  168. }
  169. void main(void)
  170. {
  171.         u8 i = 0;
  172.         T0_Init();
  173.         while(1)
  174.         {        
  175.                 HC595_Refresh();                                                
  176.         }
  177. }
復(fù)制代碼




74hc595驅(qū)動.zip

39.29 KB, 下載次數(shù): 65, 下載積分: 黑幣 -5

相關(guān)帖子

回復(fù)

使用道具 舉報

ID:62340 發(fā)表于 2016-11-22 16:05 來自觸屏版 | 顯示全部樓層
太好了 學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報

ID:80618 發(fā)表于 2018-12-15 21:32 | 顯示全部樓層
謝謝分享
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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