找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2393|回復(fù): 6
收起左側(cè)

51普中單片機(jī)數(shù)碼管滾動(dòng)顯示

[復(fù)制鏈接]
ID:1055060 發(fā)表于 2023-1-10 21:54 來自觸屏版 | 顯示全部樓層 |閱讀模式
如何讓數(shù)碼管像廣告牌一樣滾動(dòng)顯示0-8這個(gè)數(shù)字串
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2023-1-11 14:18 | 顯示全部樓層
開一個(gè)緩存數(shù)組
數(shù)碼管顯示緩存數(shù)組的內(nèi)容
緩存數(shù)組想放什么就放什么
回復(fù)

使用道具 舉報(bào)

ID:629502 發(fā)表于 2023-1-11 15:33 | 顯示全部樓層
把0-8這些要顯示的數(shù)字對(duì)應(yīng)的存起來,然后調(diào)用。
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2023-1-11 17:30 | 顯示全部樓層
你試試
  1. #include <reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar table[]={        //0~F數(shù)組
  5.         0x3f,0x06,0x5b,0x4f,
  6.         0x66,0x6d,0x7d,0x07,
  7.         0x7f,0x6f,0x77,0x7c,
  8.         0x39,0x5e,0x79,0x71};
  9. uchar data dis_buf[8];//緩存
  10. uchar temp;

  11. void delayms(uint k)
  12. {
  13.         uint i,j;  
  14.         for(i=k;i>0;i--)
  15.                 for(j=110;j>0;j--);
  16. }

  17. void main(void)
  18. {
  19.         uint t;
  20.         uchar i,j;
  21.         for(i=0;i<8;i++)
  22.                 dis_buf[i]=table[i];//初始化緩存
  23.         while(1)
  24.         {
  25.                 if(++t>=500)
  26.                 {
  27.                         t=0;
  28.                         temp=table[0];
  29.                         for(i=0;i<15;i++)                               
  30.                                 table[i]=table[i+1];//循環(huán)移動(dòng)字符
  31.                         table[15]=temp;
  32.                         for(i=0;i<8;i++)
  33.                                 dis_buf[i]=table[i];//更新緩存
  34.                 }
  35.                 P0=0x00;                        //段消隱
  36.                 P2&=0xe3;                //清位碼
  37.                 P2|=(j*4);                //送位碼
  38.                 P0=dis_buf[j];        //送段碼
  39.                 j=++j%8;
  40.                 delayms(1);//延時(shí)控制循環(huán)周期
  41.         }
  42. }
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:634587 發(fā)表于 2023-1-11 21:23 | 顯示全部樓層
學(xué)了Arduino,才知道原來C51里面很難搞的程序隨便下個(gè)庫(kù)就有了。
回復(fù)

使用道具 舉報(bào)

ID:1061002 發(fā)表于 2023-1-12 10:43 | 顯示全部樓層
table數(shù)表對(duì)應(yīng)數(shù)碼管編碼
回復(fù)

使用道具 舉報(bào)

ID:963677 發(fā)表于 2023-1-12 15:31 | 顯示全部樓層
可以用數(shù)組放置數(shù)字串的信息,在數(shù)碼管中用for循環(huán)循環(huán)顯示數(shù)據(jù)中的信息,然后不斷左右移動(dòng)就行,左右移動(dòng)可以用原本顯示的位置循環(huán)加上位移距離即可
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表