7段數(shù)碼管由8個(gè)LED組成,其中7個(gè)細(xì)長(zhǎng)的LED可以顯示數(shù)字?jǐn)?shù)字0至9,和字母ABCDEF,另外一個(gè)圓形的發(fā)光二極管顯示小數(shù)點(diǎn)
類型可分為共陽(yáng)極和共陰極。
共陰極(Common Cathode):LED的所有陰極都連接在一起。 7SEG-MPX1-CC
共陽(yáng)極數(shù)碼管(Common Anode):LED的所有陰極都連接在一起 。 7SEG-MPX1-CA
共陰極數(shù)碼管顯示數(shù)字和字符
思路:
1.一個(gè)字節(jié)(Byte)是8位。 P2端口P2^0--P2^7也是8位,P2端口可以控制8個(gè)led燈的亮滅
利用工具軟件可以生成7段數(shù)碼管的的0-9,a-f的表值
//C語(yǔ)言一行過(guò)長(zhǎng)時(shí),使用 \\ 結(jié)尾作為換行標(biāo)記,并不會(huì)影響語(yǔ)句的編譯
u8 a[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,\\
0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};//0-9,A-F
2.利用for循環(huán)將數(shù)組中的值賦值給P2端口,延時(shí)一段時(shí)間,動(dòng)態(tài)地顯示出來(lái)
size = sizeof(a)/sizeof(a[0]);//計(jì)算數(shù)組有多少個(gè)元素
while(1){
for(num=0;num
4位7段共陽(yáng)極數(shù)碼管動(dòng)態(tài)顯示數(shù)字1-9999
思路:
1.1-9999本質(zhì)由0-9這10個(gè)數(shù)字組成。 4位數(shù)碼管分別顯示千位百位十位個(gè)位
2.利用PNP三極管開關(guān)來(lái)控制4個(gè)數(shù)碼管的顯示,只有高電平,數(shù)碼管才會(huì)工作
3.事實(shí)上同一時(shí)間只有一個(gè)數(shù)碼管是工作的,但是延時(shí)10毫秒左右,欺騙人的眼睛,讓人感覺(jué)4個(gè)數(shù)碼管同時(shí)亮
#include
#define u8 unsigned char
#define u16 unsigned int
#define led P0
sbit sw1 = P2^0;//控制開關(guān)
sbit sw2 = P2^1;
sbit sw3 = P2^2;
sbit sw4 = P2^3;
u8 a[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//0-9
void delay(u16 ms);//延時(shí)函數(shù)
void display(u16 number);//數(shù)碼管上顯示數(shù)字
void main()
{
u16 count=0;
while(1){
count++; //從1開始
display(count);
if(10000 ==count)
count = 0;//計(jì)數(shù)到10000時(shí)置0
}
}
void display(u16 number)
{
led = a[number/1000];//千位上的數(shù)字
sw1 = 1;
delay(9);
sw1 = 0;
led = a[(number/100)%10];//百位上的數(shù)字
sw2 = 1;
delay(9);
sw2 = 0;
led = a[(number/10)%10];//十位上的數(shù)字
sw3 = 1;
delay(9);
sw3 = 0;
led = a[number%10];//個(gè)位上的數(shù)字
sw4 = 1;
delay(9);
sw4 = 0;
}
void delay(u16 ms)
{
u16 x,y;
for(x=0;x
-
led
+關(guān)注
關(guān)注
242文章
23314瀏覽量
661693 -
發(fā)光二極管
+關(guān)注
關(guān)注
13文章
1201瀏覽量
66395 -
數(shù)碼管
+關(guān)注
關(guān)注
32文章
1883瀏覽量
91260 -
字符
+關(guān)注
關(guān)注
0文章
233瀏覽量
25228 -
編譯
+關(guān)注
關(guān)注
0文章
659瀏覽量
32914
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論