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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3898|回復: 6
打印 上一主題 下一主題
收起左側

51單片機數碼管和點陣分時顯示源程序

[復制鏈接]
跳轉到指定樓層
樓主
這幾天做了個學長交代的任務,讓數碼管顯示20190520,點陣顯示“電”字,
并且要用按鍵控制點陣的移動,想了幾天,終于想出來了,和大家分享一下,
希望對大家有幫助,話不多說,上圖,


新建文件夾 (3).rar (1.24 MB, 下載次數: 25) 代碼如下
我用的板子的原理圖在附件中

單片機源程序如下:
  1. #include <reg52.h>
  2. #include <intrins.h>
  3. sbit k1=P3^4;
  4. sbit k2=P3^5;
  5. sbit k3=P3^6;
  6. sbit k4=P3^7;
  7. sbit duan=P1^7;
  8. sbit wei=P1^6;
  9. sbit SER=P1^0;  //數據輸入端
  10. sbit SH=P1^2;  //收到上升沿鎖存數據
  11. sbit ST=P1^1; //收到上升沿,輸出數據
  12. int z1[]={0xef,0x83,0xab,0x83,0xab,0x83,0x6f,0x0f};//點陣橫向接收的數據
  13. int x[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; //點陣縱向接收的數據</div><div>  int j=0;
  14.   void delayms(int i)  //延時函數
  15. {
  16. int j,k;
  17. for(j=0;j<i;j++)
  18. for(k=0;k<40;k++);
  19. }</div><div> void shu(void)  //數碼管顯示20190520
  20. {
  21. int i=0;
  22. char d[]={0x3f,0x5b,0x6d,0x3f,0x6f,0x06,0x3f,0x5b};
  23. char w[]={0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
  24. while(1)
  25. {
  26.   for(i=0;i<8;i++)
  27.   {
  28.    duan=1;   //   *****
  29.    P0=0x00;   //  消
  30.   // delayms(1);//  ****
  31.    duan=0;  //    影
  32.    P0=0xff; //消影            
  33.    wei=1;
  34.    P0=w[i];
  35.    wei=0;
  36.    P0=0x00;    //消影
  37.   // delayms(1);
  38.    duan=1;
  39.    P0=d[i];
  40.    duan=0;
  41.    delayms(1);
  42.    P0=0x00;
  43.       //消影
  44.    
  45.   }
  46.   wei=1;   //***********
  47.   P0=0xff;  //*****
  48.   wei=0;    //解決點陣數碼管同時顯示有一個數更亮
  49.   duan=1;    //
  50.   P0=0x00;   //
  51.   duan=0;    //
  52.   break;
  53. }
  54. }
  55. void qidongdianzhen(int i)
  56. {
  57.   int Bit;
  58. SH=1;
  59. for(Bit=0;Bit<8;Bit++)
  60. {
  61.   
  62.   if(i&0x80)
  63.    SER=1;
  64.   else
  65.    SER=0;
  66.   i=i<<1;
  67.   SH=0;
  68.   _nop_();_nop_();
  69.   SH=1;

  70. }
  71.   ST=0;
  72.   _nop_();
  73.   _nop_();
  74.   ST=1;</div><div> }
  75. void shangyi()
  76. {
  77.    int temp,i;
  78.   temp=z1[0];
  79.   for(i=0;i<7;i++)
  80.   {
  81.    z1[i]=z1[i+1] ;    //調換數組內元素的順序來改變點陣顯示
  82.   }
  83.   z1[7]=temp;
  84. }
  85. void xiayi()
  86. {
  87.   int temp,i;
  88.   temp=z1[7];
  89. for(i=0;i<7;i++)
  90. {
  91.    z1[7-i]=z1[6-i];    //調換數組內元素的順序來改變點陣顯示
  92. }
  93. z1[0]=temp;</div><div>
  94. }
  95. void zuoyi()
  96. {
  97.   int i;
  98. for(i=0;i<8;i++)
  99. {
  100.   z1[i]=_cror_(z1[i],1); //將數組內每一個數的值按位右移
  101. } }
  102. void youyi()
  103. {
  104.   int i;
  105. for(i=0;i<8;i++)
  106. {
  107.   z1[i]=_crol_(z1[i],1); //將數組內每一個數的值按位左移
  108. }
  109. }
  110. void dian()
  111. {
  112.   int i;
  113.   for(i=0;i<8;i++)
  114. {
  115.   P0=z1[i];
  116.   qidongdianzhen(x[i]);
  117.   delayms(1);    //改變亮和滅的比列來提高亮度
  118.   qidongdianzhen(0x00); //點陣消影
  119.   
  120. }
  121. }


  122. void main()
  123. {
  124.      int i; //先關閉數碼管
  125.      duan=1;
  126.     P0=0x00;
  127.     duan=0;
  128.     wei=1;
  129.     P0=0xff;
  130.     wei=0;
  131.     while(1)
  132.     {
  133.       shu();
  134.     if (k3==0)
  135.     {
  136.       j=0;
  137.      shangyi();
  138.      while(j<10)   //主要起延時作用
  139.      {
  140.       for(i=0;i<8;i++)
  141.        {
  142.         P0=z1[i];
  143.         qidongdianzhen(x[i]);
  144.         delayms(1); //改變亮和滅的比列來提高亮度
  145.         qidongdianzhen(0x00);
  146.       
  147.       
  148.        }
  149.        shu();
  150.        j++;
  151.      }
  152.    
  153.     }
  154.     if (k4==0)
  155.     {
  156.       j=0;
  157.      xiayi();
  158.      while(j<10)  //主要起延時作用
  159.      {
  160.       for(i=0;i<8;i++)
  161.        {
  162.         P0=z1[i];
  163.         qidongdianzhen(x[i]);
  164.          delayms(1); //改變亮和滅的比列來提高亮度
  165.         qidongdianzhen(0x00);
  166.       
  167.       
  168.        }
  169.        shu();
  170.        j++;
  171.      }
  172.    
  173.     }
  174.      if (k1==0)
  175.     {
  176.       j=0;
  177.      zuoyi();
  178.      while(j<10)   //主要起延時作用
  179.      {
  180.       for(i=0;i<8;i++)
  181.        {
  182.         P0=z1[i];
  183.         qidongdianzhen(x[i]);
  184.          delayms(1); //改變亮和滅的比列來提高亮度
  185.         qidongdianzhen(0x00);
  186.       
  187.       
  188.        }
  189.        shu();
  190.        j++;
  191.      }
  192.    
  193.     }
  194.      if (k2==0)
  195.     {
  196.       j=0;
  197.      youyi();
  198.      while(j<10)   //主要起延時作用
  199.      {
  200.       for(i=0;i<8;i++)
  201.        {
  202.         P0=z1[i];
  203.         qidongdianzhen(x[i]);
  204.          delayms(1); //改變亮和滅的比列來提高亮度
  205.         qidongdianzhen(0x00);
  206.       
  207.       
  208.        }
  209.        shu();
  210.        j++;
  211.      }
  212.    
  213.     }    dian();  }

  214. }

復制代碼

評分

參與人數 2黑幣 +105 收起 理由
Jeff_BlindCat + 5 贊一個!+5分再接再厲。
admin + 100 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:588173 發表于 2019-7-26 20:21 | 只看該作者
可能我的注釋格式有點不對,導致顯示不對,所以可以把注釋刪了用
回復

使用道具 舉報

板凳
ID:588173 發表于 2019-7-27 16:09 | 只看該作者
改了幾次終于沒有亂碼了,開心
回復

使用道具 舉報

地板
ID:328014 發表于 2019-7-28 00:49 | 只看該作者
很不錯的思路
回復

使用道具 舉報

5#
ID:805457 發表于 2020-7-19 15:39 | 只看該作者
為什么我的代碼寫出來沒有效果
回復

使用道具 舉報

6#
ID:495287 發表于 2020-7-19 20:43 | 只看該作者
硬件互聯是基礎,
思路創新無界屬,
范例引得共鳴意,
你追我趕新征途。
回復

使用道具 舉報

7#
ID:856401 發表于 2021-3-27 07:58 來自手機 | 只看該作者
一路下來全是delay,沒有工程實用價值
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美性久久久 | 日本不卡在线观看 | 日韩一区二区在线播放 | 国产91精品久久久久久久网曝门 | 日本天堂视频在线观看 | 久久久久国产精品一区 | 国产成人精品一区二区在线 | 日韩一二区 | 国产综合第一页 | 日韩精品一区二区三区视频播放 | 黄a免费看 | 欧美国产日韩在线 | 国产91av视频在线观看 | 91av在线免费看 | 日韩免费网站 | 成人福利在线视频 | 亚洲精品日韩综合观看成人91 | 国产成人午夜电影网 | 免费久草 | 精品无码久久久久久国产 | 中文字幕一区二区三区精彩视频 | 黄色大片免费播放 | 精品国产乱码久久久久久闺蜜 | 国产免费观看久久黄av片涩av | 综合久久99| 久久国产精品-国产精品 | 久久成人在线视频 | 久久久久国产一区二区三区四区 | 日韩精品一区二区久久 | 国产96色在线 | 日韩高清一区 | 国内精品一区二区三区 | 国产情侣激情 | 免费在线视频一区二区 | 欧美日韩中文字幕在线 | 国内精品久久影院 | 日韩精品免费视频 | 亚洲高清网 | 成人免费在线 | 午夜免费影视 | 日韩av在线中文字幕 |