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

標題: 學習一個單片機新知識點,74HC595驅動四位共陰數碼管 [打印本頁]

作者: likejian    時間: 2023-8-17 15:40
標題: 學習一個單片機新知識點,74HC595驅動四位共陰數碼管
最近學習輝芒微單片機,自己弄了一個驅動74HC595 四位共陰數碼管,還在不斷學習新知識。


  1. #include        "SYSCFG.h";
  2. #include         "FT62F21X.h";

  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. uchar LedChar[]={
  6.         0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8,
  7.         0x80, 0x90, 0x88, 0x83, 0xC6, 0xA1, 0x86, 0x8E
  8.         };   //共陰數碼管0-F真值表


  9. #define        Key1           PA2    //按鍵輸入
  10. #define        smg_wei1   PA0    //數碼管位選1
  11. #define        smg_wei2   PA1    //數碼管位選2
  12. #define SER        PA3    //串行數據輸入
  13. #define RCLK       PA4    //存儲寄存器時鐘
  14. #define SRCLK      PA5    //串行輸入時鐘

  15. uchar mode=0;
  16. //bit flags =0;
  17. uchar kk;

  18. void Hc595SendByte(uchar dat);
  19. //uint i;
  20. /*-------------------------------------------------
  21. * 函數名:DelayUs
  22. * 功能:  短延時函數 --16M-4T--大概快1%左右.
  23. * 輸入:  Time延時時間長度 延時時長Time*2Us
  24. * 輸出:  無
  25. -------------------------------------------------*/
  26. void DelayUs(unsigned char Time)
  27. {
  28.         unsigned char a;
  29.         for(a=0;a<Time;a++)
  30.         {
  31.                 NOP();
  32.         }
  33. }
  34. /*-------------------------------------------------
  35. * 函數名:DelayMs
  36. * 功能:  短延時函數 快1%
  37. * 輸入: Time延時時間長度 延時時長Time ms
  38. * 輸出: 無
  39. -------------------------------------------------*/
  40. void DelayMs(unsigned char Time)
  41. {
  42.         unsigned char a,b;
  43.         for(a=0;a<Time;a++)
  44.         {
  45.                 for(b=0;b<5;b++)
  46.                 {
  47.                          DelayUs(98);
  48.                 }
  49.         }
  50. }
  51. /*-------------------------------------------------
  52. * 函數名:DelayS
  53. * 功能:  短延時函數
  54. * 輸入:  Time 延時時間長度 延時時長Time S
  55. * 輸出:  無
  56. -------------------------------------------------*/
  57. void DelayS(unsigned char Time)
  58. {
  59.         unsigned char a,b;
  60.         for(a=0;a<Time;a++)
  61.         {
  62.                 for(b=0;b<10;b++)
  63.                 {
  64.                          DelayMs(100);
  65.                 }
  66.         }
  67. }

  68. /*******************************************************************************
  69. * 函數名         : Hc595SendByte(u8 dat)
  70. * 函數功能                   : 向74HC595發送一個字節的數據
  71. * 輸入           : 無
  72. * 輸出                  : 無
  73. *******************************************************************************/
  74. void Hc595SendByte(uchar dat)
  75. {
  76.         char a;
  77.         SRCLK=0;    //串行輸入時鐘
  78.         RCLK =0;    //存儲寄存器時鐘

  79.         for(a=0;a<8;a++)
  80.         {
  81.                 SER=dat>>7;
  82.                 dat<<=1;

  83.                 SRCLK=1;
  84.                 NOP();
  85.                 NOP();
  86.                 SRCLK=0;        
  87.         }

  88.         RCLK=1;
  89.         NOP();
  90.         NOP();
  91.         RCLK=0;
  92. }


  93. void POWER_INITIAL (void)
  94. {
  95.         OSCCON = 0B01110000;        //IRCF=111=16MHz/4T=4MHz,0.25us
  96.         INTCON = 0;                          //暫禁止所有中斷

  97.         OPTION = 0;              // /PAPU  INTEDG T0CS T0SE PSA PS2 PS1 PS0
  98.     //PSRCA = 0;                                //00:4mA        01/10:8mA        11:28mA        bit[3:2]控制PA5源電流        bit[1:0]控制PA4源電流
  99.     //PSINKA = 0;                                //bit[1:0]        控制PA5和PA4 0:灌電流最小 1:灌電流最大
  100.     TRISA = 0B00000100;         //1:輸入 0:輸出 PA2為輸入模式
  101.     PORTA = 0B00000100;         //1:PAx輸出高電平        0:PAx輸出低電平        PA2輸出低電平 ,PA3輸出高電平
  102.     WPUA =  0B00000100;         //1:使能PA口上拉        0:關閉PA口上拉  PA3 上拉

  103. }

  104. /*-------------------------------------------------
  105. * 函數名:main
  106. * 功能:  主函數
  107. * 輸入:  無
  108. * 輸出:  無
  109. --------------------------------------------------*/
  110. void main()
  111. {  
  112.      uchar i=0;
  113.          POWER_INITIAL();                //系統初始化
  114.      Hc595SendByte(LedChar[0]);                       
  115.         while(1)
  116.         {     

  117.         if(Key1==0)
  118.         {
  119.             DelayMs(10);
  120.             if(Key1==0)
  121.             {   
  122.                DelayMs(10);               
  123.                Hc595SendByte(LedChar[i]);
  124.                i++;              
  125.                if(i>=15)
  126.                {
  127.                   i=0;               
  128.                }                        
  129.             }
  130.             while(!Key1);               
  131.         }                     
  132.         }      
  133. }
復制代碼


作者: joyb    時間: 2023-8-25 10:56
輝芒微單片機,不常用,有原理圖最好




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 久久毛片 | 欧美精品一区在线 | 特黄特色大片免费视频观看 | 国产成人午夜电影网 | 久久久久久久久久一区 | 国产日韩精品视频 | 婷婷五月色综合香五月 | 欧美日韩亚洲在线 | 成人一区二区三区在线观看 | 性色网站| 久久精品成人 | 黄色在线免费网站 | 国产盗摄视频 | 欧美做暖暖视频 | 91精品久久久久久久久 | 四虎影院新地址 | 天天天操天天天干 | 亚洲区一区二区 | 少妇精品亚洲一区二区成人 | 一a级片 | 欧美在线视频一区 | 91av免费观看 | 亚洲精品久久久一区二区三区 | 超碰导航 | 久久久九九 | 男人天堂网av | 国产伦精品一区二区 | 免费一区二区三区 | 黄色一级视频 | 国产精品网址 | 日韩一区二区在线看 | 欧美一级黄| 国产亚洲高清视频 | 一片毛片 | 日韩av免费在线观看 | 麻豆91精品91久久久 | 婷婷综合激情 | 国产精品99久久久久 | 国产一区日韩在线 | av看看| www.日本在线播放 |