Điều khiển hiển thị LED ma trận

Một phần của tài liệu Nghiên cứu chế tạo biển báo giao thông tự phát sáng (Trang 38 - 41)

Để tiện cho việc truy xuất dữ liệu ta có thể khai báo 1 mảng trong bộ nhớ Flash của Atmega16 (hoặc thẻ nhớ đi kèm) lƣu các dữ liệu này. Khi đó địa chỉ đầu của dữ liệu mã hóa 2 ký tự gần nhau thì cách nhau 6. Vì vậy khi biết đƣợc vị trí của 1 kí tự trong font thì ta có thể xác định địa chỉ của dữ liệu mã hóa kí tự đó. Trên cơ sở đó ta có thể dễ dàng xuất dữ liệu của kí tự cần hiển thị ra .

Sau khi xác định đƣợc các mức logic cần cấp cho ma trận led thì ta có thể tiến hành điều khiển quá trình cấp nguồn cho LED ma trận để có đƣợc hình ảnh nhƣ ý muốn. Việc cấp nguồn cho led ma trận phụ thuộc vào cách mã hóa dữ liệu (theo từng hàng hay theo từng cột của ma trận). Nếu dữ liệu mã hóa là các hàng trong 1 cột (hàng) thì tại một thời điểm ta chỉ cấp nguồn cho một cột (hàng). Quá trình điều khiển hiển thị led ma trận 8x8 theo từng cột (hàng) bao gồm các bƣớc sau:

- B1: Lấy mẫu dữ liệu: lấy các dữ liệu về mức logic cần cấp cho các cột (hàng) của ma trận

- B2: Bắt đầu với cột i=1 - B3: Cấp nguồn cho cột i

- B4: Xuất dữ liệu tƣơng ứng với cột đó ( đã đƣợc lấy mẫu từ trƣớc) để cấp nguồn cho các hàng của ma trận

- B5: i=i+1 ; quay lại bƣớc 2 nếu i>8 ,nếu không thì quay lại bƣớc 3 Nếu chỉ điều khiển 1 số lƣợng LED ma trận nhỏ thì ta có thể dùng trực tiếp các chân của vi điều khiển để điều khiển việc cấp nguồn cho led ma trận. Nếu ma trận lớn hơn thì ta phải dùng các bộ ghi dịch để cấp nguồn cho led ma trận.

Để hình ảnh trên led ma trận hiển thị rõ ràng không bị nháy ta cần phải điều khiển tần số quét LED ma trận. Có thể dùng các bộ định thời của vi điều khiển để điều khiển thời điểm cấp nguồn cho led ma trận tạo tần số quét.

Tóm lại để điều khiển LED ma trận ta đầu tiên ta cần phải xác định đƣợc phƣơng pháp cấp nguồn cho ma trận (cấp nguồn theo từng cột hay từng hàng). Sau khi đã xác định đƣợc phƣơng pháp cấp nguồn ta cần phải xây dựng font chữ cho phù hợp với cách cấp nguồn. Từ đây ta có thể tiến hành điều khiển việc cấp nguồn cho ma trận để dòng chữ trên ma trận hiển thị nhƣ mong muốn.

Bắt đầu

i>8 Lấy mẫu dữ liệu

i=1

Xuất dữ liệu của cả cột i ra 74HC595 i=i+1 F T Chốt dữ liệu cột i

Hình vẽ 2. 5: Lƣu đồ thuật toán điều khiển LED ma trận 2.3.2. Điều khiển lấy dữ liệu từ thẻ nhớ qua giao tiếp SPI

Bảng 2. 2: Các chân thẻ SD Card

Từ bảng 2, rõ ràng là nhiều chân của thẻ SD có mục đích kép. Thẻ SD hỗ trợ ba giao thức, mỗi hai trong ba loại đó đƣợc phân biệt với nhau. Những mô tả đƣợc liệt kê cho thấy các mỗi chân có chức năng cho hai chế độ chính, chế độ SD và chế độ SPI.

Giao thức SD 1-bit là một giao thức nối tiếp đồng bộ với một dòng dữ liệu, đƣợc sử dụng để truyền dữ liệu số lƣợng lớn, một đƣờng xung để đồng bộ hóa, và một dòng lệnh, đƣợc sử dụng để gửi các khung truyền. Giao thức SD 1-bit hỗ trợ một cách rõ ràng chia sẻ bus. Mô hình phản ứng máy chủ - đơn lẻ đơn giản cho phép nhiều thẻ SD chia sẻ chung một xung đơn và đƣờng DA T0.

Giao thức SD 4-bit là gần giống với giao thức SD 1-bit. Sự khác biệt chính là chiều rộng bus - truyền dữ liệu số lƣợng lớn xảy ra trên một 4-bit bus song song thay vì một dây duy nhất. Với thiết kế phù hợp, điều này có khả năng tăng gấp bốn lần thông lƣợng để truyền dữ liệu số lƣợng lớn. Cả giao thức SD 1-bit và 4-bit mặc định cần CRC bảo vệ số lƣợng lớn dữ liệu truyền. Một CRC, hoặc Cyclic Redundancy Check, là một phƣơng pháp đơn giản để phát hiện sự hiện diện của các lỗi bit-đảo ngƣợc đơn giản trong một khối truyền dữ liệu.

Trong chế độ SD 4-bit, dữ liệu đầu vào đƣợc ghép trên đƣờng truyền bốn bus (DAT) và CRC 16-bit đƣợc tính độc lập cho mỗi bốn dòng. Trong việc thực hiện ở tất cả các phần mềm, tính toán CRC dƣới những điều kiện có thể rất phức tạp dẫn tới tổng phí tính toán có thể giảm thiểu lợi ích từ việc mở rộng bus 4-bit. Một CRC 4-bit song song là đủ để thực hiện trong phần cứng, tuy nhiên, giải pháp tùy chỉnh ASIC hoặc lập trình logic có nhiều khả năng tận dụng đƣợc lợi ích từ việc mở rộng bus 4-bit.

Giao thức thứ ba đƣợc hỗ trợ là các chế độ SPI của giao thức thẻ SD. Nó khác với các giao thức 1-bit và 4-bit trong đó các giao thức hoạt động trên một giao diện bus thông dụng và nổi tiếng, Serial Peripheral Interface (SPI). SPI là một giao thức nối tiếp đồng bộ cực kỳ phổ biến cho các thiết bị ngoại vi giao tiếp với vi điều khiển. Hầu hết các vi điều khiển hiện đại, bao gồm cả AVR, hỗ trợ SPI nguyên bản ở mức dữ liệu tƣơng đối cao. Chế độ thông tin liên lạc SPI chỉ hỗ trợ một tập hợp con của giao thức đầy đủ thẻ SD. Tuy nhiên, hầu hết các bộ lệnh không đƣợc hỗ trợ chỉ đơn giản là không cần thiết trong chế độ SPI. Một chức năng đầy đủ của thẻ SD có thể đƣợc thực hiện chỉ sử dụng SPI.

Hình vẽ 2.27 biểu diễn giao diện điện của thẻ SD cho chế đố SPI. Giao thức SD cần các điện trở phụ bên ngoài và phải luôn sử dụng chúng ngay cả khi các chân chƣa sử dụng. Lƣu ý rằng chân SS phải luôn đƣợc chọn trong khoảng thời gian nhiều octet gửi qua SPI, và nhƣ vậy, không thể sử dụng với chức năng tự động chọn chân slave bởi vi điều khiển và đòi hỏi phải xử lý thủ công trong phần mềm.

Hình vẽ 2. 13: Mạch kết nối thẻ SD Card với vi điều khiển

Một phần của tài liệu Nghiên cứu chế tạo biển báo giao thông tự phát sáng (Trang 38 - 41)

Tải bản đầy đủ (PDF)

(98 trang)