久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: 74hc595的單片機驅動程序 [打印本頁]

作者: jehu    時間: 2017-8-31 10:13
標題: 74hc595的單片機驅動程序
74hc595驅動數碼管

單片機源程序如下:
  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. //寫數據到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. 函數名稱:           void DelayUs(u8 t)
  44. 函數功能:           大致延時長度如下 t*2 + 5                          
  45. 入口參數:           t
  46. 出口參數:           無
  47. 備 注:
  48. ***********************************************************/
  49. void DelayUs(u8 t)
  50. {
  51.         while(--t);
  52. }

  53. /***********************************************************
  54. 函數名稱:           void DelayUs(u16 t)
  55. 函數功能:           大致延時長度如下 1ms                          
  56. 入口參數:           t
  57. 出口參數:           無
  58. 備 注:
  59. ***********************************************************/
  60. void DelayMs(u16 t)
  61. {
  62.         while(--t)
  63.         {
  64.                 DelayUs(245);
  65.                 DelayUs(245);
  66.         }
  67. }
  68. //發送數據到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輸出數據
  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發送數據到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輸出數據
  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. //刷新數碼管
  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. //定時器中斷服務
  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. ……………………

  159. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
74hc595驅動.zip (39.29 KB, 下載次數: 8)







歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品视频网 | 色性av | 欧美电影一区 | 日韩理论电影在线观看 | 国产一区二区精品自拍 | 国产精品成人一区二区三区 | 一级毛片中国 | 99久久亚洲 | 亚洲国产精品va在线看黑人 | 欧亚av在线| 伊人影院在线观看 | 国产馆| 成人午夜av | 久久久一区二区 | 97成人免费 | 99久久久久久99国产精品免 | 国产中文字幕网 | 国产专区在线 | 国产视频一区二区在线观看 | 一区二区三区精品视频 | 成人欧美一区二区三区视频xxx | 日韩欧美视频在线 | 无码一区二区三区视频 | 日韩一区二区在线视频 | 九色在线视频 | av天天干 | 亚洲区一区二 | 一区二区av| 日本精品免费 | 久久久精品一区二区三区四季av | 亚洲精品日韩一区二区电影 | 日韩一区二区在线视频 | 日日操夜夜操天天操 | 国产高清免费 | 免费看的av| 国产精品夜夜春夜夜爽久久电影 | 五月精品视频 | 理论片午午伦夜理片影院 | 亚洲成人一区 | 在线中文字幕亚洲 | 国产精品久久久久久妇女 |