Hiển thị nhiều led 7 đoạn dùng vi điều khiển:

Một phần của tài liệu Giáo trình hợp ngữ - Lập trình PIC 16F877A (Trang 52 - 53)

Trong thực tế, ta phải dùng nhiều led 7 đoạn để hiển thị. Vậy giải quyết việc hiển thị nhiều led như thế nào?

Ví dụ: để hiển thị số 35 bằng 2 led 7 đoạn.

Đối chiếu với cách hiển thị 1 led 7 đoạn, ta nghĩ đơn giản chỉ là dùng 1 cổng hiển thị số 3, 1 cổng khác hiển thị số 5.

Như vậy ta mất 2 cổng. Hiển thị 4 led thì mất 4 cổng => toàn bộ chân trên vi điều khiển dùng cho việc hiển thị led…Khơng cịn chân để giao tiếp với các thiết bị khác như bàn phím, đầu vào số khác v.v Khơng khả thi!

Ta có phương pháp tiết kiệm chân hơn để giải quyết:

Hình 2.5: Hiển thị 2 led 7 đoạn

Các chân dữ liệu (chân sẽ nhận mã led từ vi điều khiển) được nối tương ứng với nhau và nối vào 1 cổng của vi điều khiển, chẳng hạn như cổng B

Chân nguồn của 2 led được điều khiển bởi 2 chân trên vi điều khiển, chằng hạn chân RA4 và RA5 như trên hình, thơng qua cực B của 2 transistor pnp.

Quá trình hiển thị con số 35 trên 2 led sẽ như sau:

- Cho chân RA4 (chân nối với led hàng chục) xuống mức thấp, transistor thứ nhất mở do tiếp giáp BE thuận, chân RA5 lên mức cao (chân nối với led hàng đơn vị), transistor thứ hai không mở. Vậy chỉ có led hàng chục được cấp nguồn.

- Cho cổng B xuất dữ liệu mã led của số 3. Chỉ có led hàng chục được cấp nguồn nên chỉ có led này sáng

- Tạo thời gian trễ 10-20ms

- Điều khiển tương tự cho led hàng đơn vị được cấp nguồn, led hàng chục không cấp nguồn, xuất dữ liệu mã led số 5 ra cổng B. Led đơn vị hiển thị số 5.

- Tạo thời gian trễ 10-20ms - Quay lại bước thứ nhất

Như vậy, số 3 hiển thị 10ms, số 5 hiển thị 10ms và quay vòng như vậy. Thời gian này rất nhanh, do hiệu ứng của mắt, ta cảm giác như số 35 hiển thị cùng lúc. Bài tốn được giải quyết, ta chỉ mất có 10 chân để điều khiển 2 led.

Cách hiển thị nhiều led cũng tương tự như vậy.

Cũng giải thích thêm lí do dùng transistor nối vào RA4, RA5. Do chân vi điều khiển có dịng khoảng vài chục mA, đây là chân cấp nguồn cho led 7 đoạn, mỗi led đơn trong Led 7 đoạn mất 20mA vây cả led 7 đoạn mất trên 100mA. Vì vậy ta phải dùng transistor để khuếch đại dịng.

Một phần của tài liệu Giáo trình hợp ngữ - Lập trình PIC 16F877A (Trang 52 - 53)