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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2140|回復: 1
打印 上一主題 下一主題
收起左側(cè)

學習一個單片機新知識點,74HC595驅(qū)動四位共陰數(shù)碼管

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:224580 發(fā)表于 2023-8-17 15:40 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
最近學習輝芒微單片機,自己弄了一個驅(qū)動74HC595 四位共陰數(shù)碼管,還在不斷學習新知識。


  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.         };   //共陰數(shù)碼管0-F真值表


  9. #define        Key1           PA2    //按鍵輸入
  10. #define        smg_wei1   PA0    //數(shù)碼管位選1
  11. #define        smg_wei2   PA1    //數(shù)碼管位選2
  12. #define SER        PA3    //串行數(shù)據(jù)輸入
  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. * 函數(shù)名:DelayUs
  22. * 功能:  短延時函數(shù) --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. * 函數(shù)名:DelayMs
  36. * 功能:  短延時函數(shù) 快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. * 函數(shù)名:DelayS
  53. * 功能:  短延時函數(shù)
  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. * 函數(shù)名         : Hc595SendByte(u8 dat)
  70. * 函數(shù)功能                   : 向74HC595發(fā)送一個字節(jié)的數(shù)據(jù)
  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:關(guān)閉PA口上拉  PA3 上拉

  103. }

  104. /*-------------------------------------------------
  105. * 函數(shù)名:main
  106. * 功能:  主函數(shù)
  107. * 輸入:  無
  108. * 輸出:  無
  109. --------------------------------------------------*/
  110. void main()
  111. {  
  112.      uchar i=0;
  113.          POWER_INITIAL();                //系統(tǒng)初始化
  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. }
復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:1064915 發(fā)表于 2023-8-25 10:56 | 只看該作者
輝芒微單片機,不常用,有原理圖最好
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国内精品 | 中文字幕日本一区二区 | com.色.www在线观看 | 四虎影院在线观看av | 一级毛片免费完整视频 | 九九热在线观看 | 国产高清在线精品一区二区三区 | 91 久久 | 在线观看视频一区 | 99精品视频免费观看 | 国产91久久久久蜜臀青青天草二 | 精品一区二区三区免费视频 | 夜夜摸天天操 | 手机av在线| 日韩精品一区二区三区视频播放 | 免费亚洲成人 | 91精品国产综合久久久久蜜臀 | 夜夜爽99久久国产综合精品女不卡 | 国产精品美女久久久av超清 | 亚洲视频一区在线观看 | 国产精品一区二区不卡 | 成人免费视频在线观看 | www.日韩系列 | 在线成人精品视频 | 91在线视频观看免费 | 成年人在线观看 | 波多野结衣一区二区三区 | 久久噜噜噜精品国产亚洲综合 | 91视频大全 | 免费日韩av网站 | 成人一区二区电影 | 日本污视频 | 日本在线视频不卡 | 国产激情视频网址 | 天堂在线中文 | 久久久国产一区二区三区 | 国产综合久久 | 午夜网站视频 | 日韩欧美大片在线观看 | 91极品尤物在线播放国产 | 成人激情免费视频 |