找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

不到100行代碼,51單片機32位數(shù)碼管動態(tài)掃描顯示

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:730135 發(fā)表于 2021-7-10 22:03 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
51單片機使用573鎖存器,32位數(shù)碼管動態(tài)顯示,時間仿真顯示
51單片機到底能帶動多少位數(shù)碼管呢?

本次演示proteus版本為8.6


單片機源程序如下:
  1. #include "AT89X52.H"

  2. /* */

  3. code unsigned char reg_code[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  4. code unsigned char reg_code1[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x40};   //陰碼  (共陰的數(shù)碼管的段碼)


  5. #define DELAY_N 1000


  6. unsigned char time[3] = {12,34,50};

  7. void show_time(void);
  8. void get_time(void);


  9. void main(void)
  10. {
  11.         unsigned short j;
  12.                
  13.         P2 = 0;
  14.         
  15.         P1_0 = 1;
  16.         P1_1 = 1;
  17.         P1_2 = 1;
  18.         
  19.         
  20.         P0 = reg_code1[1];
  21.         
  22.         
  23.         while(1)
  24.         {
  25.                 show_time();        

  26.                 get_time();    //獲取時間        
  27.         }
  28.         
  29. }


  30. void show_time(void)
  31. {
  32.         char i;
  33.         unsigned short j;
  34.         
  35.         unsigned char buf[8]={10,10,10,10,10,10,10,10};
  36.         unsigned char buf1[8]={1,2,3,4,5,6,7,8};
  37.         unsigned char buf2[8]={3,2,1,4,5,6,3,2};
  38.         
  39.         
  40.         
  41.         buf[0] = time[0]/10;
  42.         buf[1] = time[0]%10;   //除以10,得到余數(shù)
  43.         buf[3] = time[1]/10;
  44.         buf[4] = time[1]%10;
  45.         buf[6] = time[2]/10;
  46.         buf[7] = time[2]%10;
  47.         
  48.         for (i=0;i<8;i++)
  49.         {
  50.                 P2 = i<<2;
  51.         
  52.                 P1_0 = 1;   //讓P0的數(shù)據(jù)通過573
  53.                 P0 = reg_code1[buf[i]];
  54.                 P1_0 = 0;    //鎖住這個數(shù)據(jù),P0無法通過573

  55.                 //for(j=0;j<60000;j++);

  56.                
  57.                
  58.                 P1_1 = 1;
  59.                 P0 = reg_code1[buf1[i]];
  60.                 P1_1 = 0;    //鎖住這個數(shù)據(jù)

  61.         //        for(j=0;j<60000;j++);
  62.                
  63.                 P1_2 = 1;
  64.                 P0 = reg_code1[buf2[i]];
  65.                 P1_2 = 0;    //鎖住這個數(shù)據(jù)

  66.                
  67.                 for(j=0;j<200;j++);
  68.                 P0 = 0;   //熄滅所有的段
  69.                                 
  70.         }
  71. }



  72. //獲得時間
  73. void get_time(void)
  74. {
  75.         static unsigned char j;
  76.         
  77.         if(j++>50)
  78.         {
  79.                 j = 0;
  80.                 time[2]++;  //秒
  81.                 if(time[2] > 59)
  82.                 {
  83.                         time[2] = 0;
  84.                         time[1] ++;
  85.                         if(time[1] > 59)
  86.                         {
  87.                                 time[1] = 0;
  88.                                 time[0] ++;
  89.                                 if(time[0] > 23)
  90.                                 {
  91.                                         time[0] = 0;
  92.                                 }
  93.                         }
  94.                 }
  95.                
  96.         }
  97.         
  98. }
復制代碼

仿真代碼51hei下載地址:
5.32個數(shù)碼管顯示51-test.rar (99.17 KB, 下載次數(shù): 24)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:730135 發(fā)表于 2021-7-11 08:49 | 只看該作者
https://www.bilibili.com/video/BV1ph411Y7Hj?p=14,b站有全部的視頻講解,歡迎大家指教。
回復

使用道具 舉報

板凳
ID:57657 發(fā)表于 2021-7-11 10:54 | 只看該作者
能帶動多少個取決于功率,10000位都可以。
回復

使用道具 舉報

地板
ID:97554 發(fā)表于 2021-7-11 16:30 | 只看該作者
不用說51,上世紀90年代接觸的KTV包房設(shè)備的點歌器,Intel的8031處理器,配合373鎖存,顯示30個數(shù)碼管,20個按鍵,串口數(shù)據(jù)發(fā)送接收……
回復

使用道具 舉報

5#
ID:886808 發(fā)表于 2021-9-14 19:30 來自手機 | 只看該作者
npn 發(fā)表于 2021-7-11 10:54
能帶動多少個取決于功率,10000位都可以。

看到你說的點歌器,我聯(lián)想到當年用過的8031為主控芯片的程控電話。每天處理的電話無窮盡……。
同意你的觀點,支持!!
回復

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復 返回頂部 返回列表