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

QQ登錄

只需一步,快速開始

帖子
查看: 3528|回復(fù): 5
收起左側(cè)

單片機(jī)多位數(shù)碼管高位為零時(shí)不顯示的程序該如何寫?求思路

[復(fù)制鏈接]
ID:45973 發(fā)表于 2020-12-9 09:24 | 顯示全部樓層 |閱讀模式
各位大神,請(qǐng)問(wèn)計(jì)數(shù)器程序,高位為零時(shí)不要顯示的程序怎么寫?謝謝!
回復(fù)

使用道具 舉報(bào)

ID:824490 發(fā)表于 2020-12-9 16:15 | 顯示全部樓層
以下是偽代碼。希望你能看懂

顯示函數(shù)()
{

//置首位0標(biāo)志
//第一位消隱
//送第一位位碼
//讀第一位段值
// 如要 段值 =0 且首位0標(biāo)志置位 則 跳過(guò)第一位
// 如要 段值 不等于0 則
   //讀第一位段碼
   //送第一位段碼
   //清首位0標(biāo)志
//第二位消隱
.
.
.
.
}

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:517466 發(fā)表于 2020-12-9 23:54 | 顯示全部樓層
通常不是在向顯示緩沖單元賦值的時(shí)候處理的嗎?你要顯示的數(shù)據(jù),個(gè)位在最后,十位在前。在設(shè)置的時(shí)候,先清除所有位為不顯示的段位碼。然后從個(gè)位依次向十位、百位賦值。顯示程序里,是不需要做任何判斷的,直接把各個(gè)位置的筆段數(shù)碼數(shù)據(jù)送出去,逐個(gè)顯示就行。編程的一個(gè)原則是,代碼越簡(jiǎn)單越好。搞的太復(fù)雜,不容易懂,維護(hù)起來(lái)也麻煩啊。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:716656 發(fā)表于 2020-12-9 15:46 | 顯示全部樓層
大概參考下,16為
  1. void main()
  2. {        while(1)
  3.         {
  4.         keyscan();
  5.         if(num<10)
  6.         {
  7.                 a0=num;b0=16;c0=16;d0=16;e0=16;f0=16;
  8.         }
  9.         else
  10.         {
  11.                 if(num<100)
  12.                 {a0=num/10;b0=num%10;c0=16;d0=16;e0=16;f0=16;}
  13.                 else
  14.                 {
  15.                         if(num<1000)
  16.                         {a0=num/100;b0=num%100/10;c0=num%10;d0=16;e0=16;f0=16;}
  17.                         else
  18.                         {
  19.                                 if(num<10000)
  20.                                 {a0=num/1000;b0=num%1000/100;c0=num%100/10;d0=num%10;e0=16;f0=16;}
  21.                                 else
  22.                                 {
  23.                                         if(num<100000)
  24.                                         {a0=num/10000;b0=num%10000/1000;c0=num%1000/100;d0=num%100/10;e0=num%10;f0=16;}
  25.                                         else
  26.                                         {
  27.                                                 if(num<1000000)
  28.                                                 {a0=num/100000;b0=num%100000/10000;c0=num%10000/1000;d0=num%1000/100;e0=num%100/10;f0=num%10;}
  29.                                         }
  30.                                 }
  31.                         }
  32.                 }
  33.         }
  34.         display(a0,b0,c0,d0,e0,f0);
  35.         }
  36. }
復(fù)制代碼
全滅

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

ID:716656 發(fā)表于 2020-12-9 15:47 | 顯示全部樓層
  1. unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
  2.                         0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
復(fù)制代碼
回復(fù)

使用道具 舉報(bào)

ID:213173 發(fā)表于 2020-12-10 11:22 | 顯示全部樓層
給你一個(gè)示例,有你需要的多位數(shù)碼管高位為零不顯示的代碼。
ds18b20溫度報(bào)警4位數(shù)碼管顯示 仿真.zip (153.36 KB, 下載次數(shù): 27)

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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