數碼管顯示任意數字

2021-10-05 16:09:17 字數 1737 閱讀 5350

數碼管顯示任意數字,例如:1、 69、 888 、 6666、 11111類似的數字,只顯示應該亮的數碼管。

**:

```c

#include

#define led_choose p2

#define led_value p0

sbit le = p1^0;

sbit la = p2^2;

sbit lb = p2^3;

sbit lc = p2^4;

typedef unsigned char u8;

u8 value_array=

; //0x00為無顯示,0x80為小數點

void delay(int i)

void index_choose(u8 index)

}u8 cal_num_bit(int num)

if(0 != num / 1000)

if(0 != num / 100)

if(0 != num / 10)

if(0 != num / 1)

return 0;}/*

在數碼管上顯示數字,最多顯示兩位小數, 顯示數字最大不超過:655.35

類似:50.1 40 66.66 72.1

*///#define float_support (1)

#if defined(float_support)

void nixue_tube_show_num(float num)

#else

void show_num_case1(int num)

void show_num_case2(int num)

; array[0]

= low;

array[1]

= high;

for(i=0; i); i++)

}void show_num_case3(int num)

; array[0]

= low;

array[1]

= high;

array[2]

= hundred;

for(i=0; i); i++)

}void show_num_case4(int num)

; array[0]

= low;

array[1]

= high;

array[2]

= hundred;

array[3]

= thousand;

for(i=0; i); i++)

}void show_num_case5(int num)

; array[0]

= low;

array[1]

= high;

array[2]

= hundred;

array[3]

= thousand;

array[4]

= ten_thousand;

for(i=0; i); i++)}/*

顯示整數:最大不超過65535

*/void nixue_tube_show_num(int num)}}

#endif

int main(void)

nixue_tube_show_num(i)

; ++i;

delay(3000);}

return 0;

}

數碼管顯示

數碼管顯示 最近因為對突然對電子感興趣,前幾天在路過電子 時買了乙個數碼管。因為以前總是紙上談兵,根本沒實驗過,連數碼見都沒見過,所以開始覺得將這塊數碼管顯示出來是非常具有挑戰性的工作。今天正好有空,拿來了我的數碼管,並在網上看了一些資料,才發現並不是想象中的那麼難,其實更準確的說是太簡單了。不到半...

數碼管顯示

一 區分數碼管的類別 共陰數碼管 即所有數碼管的陰極接在一起。要使某個數碼管點亮,只需置上高電平,中該位置 1 共陽數碼管 即所有數碼管的陽極接在一起。要使某個數碼管點亮,只需置上低電平,中該位置 0 二 單個數碼管顯示 a h 表示單個數碼管上面的8個led。根據共陰共陽的特性,點亮相應的led,...

數碼管顯示

數碼管由8個led組成,對應乙個i o口的輸出.根據連線方式不同分為共陽和共陰數碼管 可以看到,由於結構不同,共陽和共陰使led亮起的輸出電平也不同,如下是兩種連線方式對應的16進製製碼 當我們要對多個數碼管進行控制的時候,不僅需要控制顯示內容 段碼 還要控制顯示的位置 位碼 簡單一點的方法可以用另...