Chào tháng 10
Cầu Long Biên
Slide 3
Hà Nội

Điều khiển LED 7 thanh phần 2: Phương pháp Quét LED

Phương pháp Quét LED tối ưu hóa việc hiển thị LED 7 thanh

Chúng ta đã biết qua phần 1, để hiển thị 1 LED 7 thanh cần 7 đường dữ liệu (8 đường nếu sử dụng cả dấu chấm). Vậy để điều khiển 2, 3 hay 4 LED thì sao. Ngay lập tức ta sẽ nghĩ đến dùng thêm các cổng dữ liệu, nối cho mỗi con LED 7 thanh 7 đường dữ liệu. Nhưng khi bắt tay vào vẽ mạch bạn sẽ thấy hoài nghi và đặt nhiều câu hỏi cho phương pháp này. Quả thật vậy, mỗi con chip AT89C51 của chùng ta có 4 cồng dữ liệu (P0,P1,P2,P3) nếu dùng phương pháp này mỗi con chip chỉ có thể điều khiển hiện thị được 4 LED 7 thanh. Trong khi đó trên thực tế có những hệ thống có hàng chục LED 7 thanh như lịch vạn niên, bảng giá vàng, …

Trên thực tế để điều khiển hiển thị LED 7 thanh chúng ta phải dùng phương pháp Quét LED. Phương pháp này được tóm gọn như sau: Tất cả cả các LED 7 thanh chung 1 đường dữ liệu, trong 1 thời điểm chỉ có 1 LED sáng”. Vậy nó hoạt động như thế nào chúng ta cùng xem nhé.

 

 

Trong ví dụ trên - đầu tiên:  công tắc 1 bật,  các công tắc khác tắt, cổng P2 chuyển dữ liệu hiển thị số 2, đèn 1 hiển thị số 2, các đèn khác tắt.

Thời điểm sau: công tắc 2 bật,  các công tắc khác tắt, cổng P2 chuyển dữ liệu hiển thị số 0, đèn 2 hiển thị số 0, các đèn khác tắt

Thời điểm tiếp theo: công tắc 3 bật,  các công tắc khác tắt, cổng P2 chuyển dữ liệu hiển thị số 1, đèn 3 hiển thị số 1, các đèn khác tắt

Cuối cùng: công tắc 4 bật,  các công tắc khác tắt, cổng P2 chuyển dữ liệu hiển thị số 7, đèn 4 hiển thị số 7, các đèn khác tắt

Như vậy mỗi đèn hiển thị 1 số khác nhau, nếu quá trình trên diễn ra với tốc độ đủ nhanh, mắt chúng ta không còn phân biệt được đèn có tắt hay không (hiện tượng lưu ảnh trên võng mạc) thì ta sẽ thấy số 2017 sáng liên tục không gián đoạn (mặc dù trong thực tế trong 1 thời điểm chỉ có 1 đèn sáng.

Để hiểu rõ hơn phương pháp này ta làm 1 ví dụ như sau.

 

 

Việc nối dây rất phức tạp nếu các con LED riêng rẽ, rất may cho chúng ta các nhà sản xuất đã thiết kế sẵn các bộ LED 7 thanh gồm 1,2,3,4,6, 8 LED đi với nhau, việc nối nây giữa chúng được nối bên trong, còn lại chỉ đưa ra ngoài 8 chân dữ liệu và các chân nguồn  cho mỗi đèn.

 

 

Việc đóng cắt nguồn cho các đèn với tốc độ nhanh thì các công tắc thông thường không thể đáp ứng được. ở đay trong chương trình mô phòng ta dùng cổng P3 đề cấp nguồn cho LED, nếu chân của P3 mang mức logic 1, nguồn điện 5V sẽ được cấp cho LED.

Chương trình như sau:

#include

unsigned char led[10]= {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};

void TRE(unsigned int n)

            {

                        unsigned int i,j;

                        for(i=n;i>0;i--)

                        {

                                    for(j=200;j>0;j--);

                        }

            }

 void main()

            {

                        while(1)

                                    {

                                                P3=0x01;                     //bat den 1

                                                P2=led[2];                   // Chuyen du lieu hien thi so 2 ra cong P2

                                                TRE(2);

                                                P3=0x02;                     //bat den 2

                                                P2=led[0];                   // Chuyen du lieu hien thi so 0 ra cong P2

                                                TRE(2);

                                                P3=0x04;                     //bat den 3

                                                P2=led[1];                   // Chuyen du lieu hien thi so 1 ra cong P2

                                                TRE(2);                                                                        

                                                P3=0x08;                     //bat den 4                              

                                                P2=led[7];                   // Chuyen du lieu hien thi so 7 ra cong P2

                                                TRE(2);

                                    }

            }

Đây là ví dụ để các bạn hiểu về phương pháp Quét LED, trong thực tế lập trình có thêm các thuật toán để tối ưu việc hiển thị, phần này sẽ có trong phần 3

 

Hướng dẫn mô phỏng Vi điều khiển họ 8051 bằng phần mềm Proteus

Hướng dẫn mô phỏng Vi điều khiển họ 8051 bằng phần mềm Proteus

: 01/01/1970
Phần mềm Proteus là một phần mềm rất mạnh và được sử dụng phổ biến ở Việt Nam để mô phỏng mạch điện tử, trong đó có mạch vi điều khiển. Read More
Phần mềm lập trình Vi điều khiển Keil C 8051

Phần mềm lập trình Vi điều khiển Keil C 8051

: 01/01/1970
Phần mềm Lập trình cho họ Vi điều khiển 8051 sử dụng ngôn ngữ C Read More
Điều khiển LED 7 thanh phần 3: Điều khiển hiện thị số bất kỳ

Điều khiển LED 7 thanh phần 3: Điều khiển hiện thị số bất kỳ

: 01/01/1970
Điều khiển hiển thị số bất kỳ lên LED 7 thanh Read More
Điều khiển LED 7 thanh phần 4: Hiển thị từ 0 đến 9999

Điều khiển LED 7 thanh phần 4: Hiển thị từ 0 đến 9999

: 01/01/1970
Điều khiển LED 7 thanh phần 4: Điều khiển hiển thị từ 0 đến 9999 Read More