Led 7 đoạn được sử dụng khi các dãy số không đòi hỏi quá phức tạp, chỉ cần hiện thị số là đủ, chẳng hạn led 7 đoạn được dùng để hiển thị nhiệt độ phòng, trong các đồng hồ treo tường bằng điện tử, hiển thị số lượng sản phẩm được kiểm tra sau một công đoạn nào đó…
Cấu trúc và mã hiện thị dữ liệu của LED 7 thanh:
-Dạng form chuẩn:
-Dạng anot chung:
-Dạng cathode chung:
Điều khiển LED 7 thanh thật ra là ta điều khiển 8 led đơn cấu tạo nên nó( LED thứ 8 là dấu chấm), tạo thành các giá trị dữ liệu mà chúng ta mong muốn. Do vậy ta cần biết được mã hexa của từng kí tự để khi lập trình chúng ta được dễ dàng hơn.
Đối với dạng led anode chung, chân COM phải có mức logic là 1, vì vậy chân COM sẽ được nối lên nguồn, các LED sẽ sáng khi các chân a-f, dp ở mức logic là 0. Ta có bảng sau:
Chữ số
|
Mã Logic gfedcba
|
Mã hexa
|
0
|
1000000
|
0x40
|
1
|
1111001
|
0xF9
|
2
|
0100100
|
0x24
|
3
|
0110000
|
0x30
|
4
|
0011001
|
0x19
|
5
|
0010010
|
0x12
|
6
|
1000010
|
0x02
|
7
|
1111000
|
0xF8
|
8
|
0000000
|
0x00
|
9
|
0010000
|
0x10
|
Đối với dạng Cathode chung, chân COM sẽ có mức logic 0 nên được nối đất, các chân a-f, dp ở mức logic 1 thì LED sẽ sáng. Ta có bảng như sau:
Chữ số
|
Mã logic gfedcba
|
Mã hexa
|
0
|
0111111
|
0x3F
|
1
|
0000110
|
0x6
|
2
|
1011011
|
0x5B
|
3
|
1001111
|
0x4F
|
4
|
1100110
|
0x66
|
5
|
1101101
|
0x6D
|
6
|
1111100
|
0x7c
|
7
|
0000111
|
0x7
|
8
|
1111111
|
0x7F
|
9
|
1101111
|
0x6F
|
Để giao tiếp được với LED 7 thanh chúng ta cần làm những thao tác sau:
+ Tạo void delay()
+ Khai báo thư viện cho các chữ số 0-9.
+ Tạo ra một vòng lặp cho phép đưa ra một PORT nào đó giá trị của các chữ số.
Mạch nguyên lý sử dụng led 7 thanh dương chung như sau:
Code như sau:
#include <reg51.h>
#include <stdio.h>
delay(int time) // Ham delay
{
int i,j;
for(i=0;i<time;i++)
for(j=0;j<1275;j++);
}
void main()
{
char num[]={0x40,0xF9,0x24,0x30,0x19,0x12,0x02,0xF8,0x00,0x10}; // Gia tri hex tuong ung cua cac chu so tu 0-9
int c;
while(1)
{
for(c=0;c<10;c++) // cho c chay tu 0 den 9.
{
P2=num[c];
delay(200); // delay 0.2s
}
}
}
Mạch nguyên lý sử dụng led 7 thanh âm chung như sau:
Code như sau:
#include <reg51.h>
#include <stdio.h>
delay(int time) // Ham delay()
{
int i,j;
for(i=0;i<time;i++)
for(j=0;j<1275;j++);
}
void main()
{
char num[]={0x3F,0x6,0x5B,0x4F,0x66,0x6D,0x3D,0x7,0x7F,0x6F}; // Gia tri Hex tuong ung tu 0-9
int c;
while(1)
{
for(c=0;c<10;c++)
{
P2=num[c];
delay(200);
}
}
}
Như vậy chúng ta đã hình thành nên cơ sở để dụng LED 7 thanh cho nhiều mục đích khác như điều khiển LED 7 thanh bằng KEY, đồng hồ số, đo nhiệt độ.....
Bài tới mình xin hướng dẫn các bạn điều khiển LED 7 thanh bằng KEY, rất mong được các bạn theo dõi và ủng hộ!