Ứng dụng cho 5 chân
(Một điều cần lưu ý là mạch gốc led bị vẽ sai, hình này là đã chỉnh sửa lại, không hiểu sao Atmel lại có thể xuất bản mà sơ xuất đến thế)
Phân tích theo hình,
- Để quét digit 1 cần phải mức cao chân PB1, PB2,
- Digit 2 thì mức cao PB3, PB4, ứng dụng này không dùng mức cao PB5
- Đối chiếu các chân còn lại thấy có sự tương tự nhau ở hai digit, vậy chỉ cần xác lập một mảng đối chiếu là đủ cho cả hai.
- Nếu lưu tổ hợp từng đoạn cho cả hai digit, tổng thể lên tới 10 x 10 = 100 byte (thậm chí 16 x 16 =256, không khoa học
Bảng tổng hợp quan hệ chức năng sáng từng LED và từng chữ số
Với giải thuật sơ lược như vừa nêu, tôi có viết một đoạn chương trình nhận các số hàng chục và đơn vị (codex10, codex1) và các bit dấu chấm (dotx10, dotx1), xuất ra thành 2 LED-7seg với 2 dấu chấm. Mô phỏng thử trên AVRStudio thấy chạy được, chú ý đây chỉ là đoạn chương trình chính hiển thị số. Quá trình lấy dữ liệu không được đề cập, tuy nhiên có thể lấy dữ liệu dễ dàng bằng ngắt hoặc chuyển đoạn chương trình này thành chương trình phục vụ ngắt timer thay vì dùng hàm delay.
(Một điều cần lưu ý là mạch gốc led bị vẽ sai, hình này là đã chỉnh sửa lại, không hiểu sao Atmel lại có thể xuất bản mà sơ xuất đến thế)
Phân tích theo hình,
- Để quét digit 1 cần phải mức cao chân PB1, PB2,
- Digit 2 thì mức cao PB3, PB4, ứng dụng này không dùng mức cao PB5
- Đối chiếu các chân còn lại thấy có sự tương tự nhau ở hai digit, vậy chỉ cần xác lập một mảng đối chiếu là đủ cho cả hai.
- Nếu lưu tổ hợp từng đoạn cho cả hai digit, tổng thể lên tới 10 x 10 = 100 byte (thậm chí 16 x 16 =256, không khoa học
Bảng tổng hợp quan hệ chức năng sáng từng LED và từng chữ số
Với giải thuật sơ lược như vừa nêu, tôi có viết một đoạn chương trình nhận các số hàng chục và đơn vị (codex10, codex1) và các bit dấu chấm (dotx10, dotx1), xuất ra thành 2 LED-7seg với 2 dấu chấm. Mô phỏng thử trên AVRStudio thấy chạy được, chú ý đây chỉ là đoạn chương trình chính hiển thị số. Quá trình lấy dữ liệu không được đề cập, tuy nhiên có thể lấy dữ liệu dễ dàng bằng ngắt hoặc chuyển đoạn chương trình này thành chương trình phục vụ ngắt timer thay vì dùng hàm delay.
Comment