7段數碼管由8個LED組成,其中7個細長的LED可以顯示數字數字0至9,和字母ABCDEF,另外一個圓形的發光二極管顯示小數點
類型可分為共陽極和共陰極。
共陰極(Common Cathode):LED的所有陰極都連接在一起。 7SEG-MPX1-CC
共陽極數碼管(Common Anode):LED的所有陰極都連接在一起 。 7SEG-MPX1-CA
共陰極數碼管顯示數字和字符
思路:
1.一個字節(Byte)是8位。 P2端口P2^0--P2^7也是8位,P2端口可以控制8個led燈的亮滅
利用工具軟件可以生成7段數碼管的的0-9,a-f的表值
//C語言一行過長時,使用 \\ 結尾作為換行標記,并不會影響語句的編譯
u8 a[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,\\
0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71};//0-9,A-F
2.利用for循環將數組中的值賦值給P2端口,延時一段時間,動態地顯示出來
size = sizeof(a)/sizeof(a[0]);//計算數組有多少個元素
while(1){
for(num=0;num
4位7段共陽極數碼管動態顯示數字1-9999
思路:
1.1-9999本質由0-9這10個數字組成。 4位數碼管分別顯示千位百位十位個位
2.利用PNP三極管開關來控制4個數碼管的顯示,只有高電平,數碼管才會工作
3.事實上同一時間只有一個數碼管是工作的,但是延時10毫秒左右,欺騙人的眼睛,讓人感覺4個數碼管同時亮
#include
#define u8 unsigned char
#define u16 unsigned int
#define led P0
sbit sw1 = P2^0;//控制開關
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);//延時函數
void display(u16 number);//數碼管上顯示數字
void main()
{
u16 count=0;
while(1){
count++; //從1開始
display(count);
if(10000 ==count)
count = 0;//計數到10000時置0
}
}
void display(u16 number)
{
led = a[number/1000];//千位上的數字
sw1 = 1;
delay(9);
sw1 = 0;
led = a[(number/100)%10];//百位上的數字
sw2 = 1;
delay(9);
sw2 = 0;
led = a[(number/10)%10];//十位上的數字
sw3 = 1;
delay(9);
sw3 = 0;
led = a[number%10];//個位上的數字
sw4 = 1;
delay(9);
sw4 = 0;
}
void delay(u16 ms)
{
u16 x,y;
for(x=0;x
-
led
+關注
關注
242文章
23703瀏覽量
670932 -
發光二極管
+關注
關注
13文章
1213瀏覽量
67272 -
數碼管
+關注
關注
32文章
1889瀏覽量
92223 -
字符
+關注
關注
0文章
234瀏覽量
25481 -
編譯
+關注
關注
0文章
676瀏覽量
33747
發布評論請先 登錄
評論