Sử dụng LCD với AVR ATmega8 với thư viện Header rút gọn

Màn hình LCD đuợc sử dụng rộng rãi vì giá thành rẻ và có thể hiển thị nhiều thông tin hơn LED bảy đoạn hoặc ma trận. Hiện nay đã có mạch giao tiếp chuyển sang I2C nhưng học cách làm việc trực tiếp với LCD giúp chúng ta có thể hiểu rõ cách thức điều khiển. Ngoài ra, chúng ta có thể tự xây dựng thư viện cho riêng mình.

Continue reading “Sử dụng LCD với AVR ATmega8 với thư viện Header rút gọn”

Sử dụng bàn phím ma trận với AVR ATmega8

Bàn phím ma trận (matrix keypad) bao gồm một lưới các nút với dây tương ứng có thể được đọc bởi một vi điều khiển. Như hình bên dưới cho thấy, số lượng chân cần thiết của bộ vi điều khiển được xác định bởi số hàng và cột. Trong đó một dây là cần thiết cho mỗi hàng và mỗi cột. Khi một nút được nhấn, kết nối giữa hàng và cột tương ứng được tạo. Kết nối này cho phép bàn phím được đọc bởi vi điều khiển.

Bàn phím 4×4
Continue reading “Sử dụng bàn phím ma trận với AVR ATmega8”

Sử dụng LED ma trận với AVR ATmega8

LED matrix hay ma trận điểm là một loại thiết bị rất phổ biến trong hiển thị thông báo và quảng cáo. Hiện nay, các chip hỗ trợ và thư viện phần mềm khá nhiều nên mọi người thường bỏ qua tìm hiểu nguyên tắc hoạt động của LED ma trận. Tuy nhiên, dưới góc độ người học lập trình thì làm việc với LED ma trận giúp chúng ta học được một số điều.

Continue reading “Sử dụng LED ma trận với AVR ATmega8”

Nạp chương trình cho AVR Atmega với mạch nạp USBISP

Sau khi viết chương trình cho vi điều khiển, mô phỏng chỉ là bước đệm nhằm kiểm tra tính năng của chương trình. Hiện nay có rất nhiều loại mạch nạp, từ đơn giản rẻ tiền đến phức tạp với giá thành cao. Cụ thể với trường hợp sử dụng Atmel Studio, người ta có thể sử dụng mạch nạp AVRisp mkII, Dragon hay JTAGICE. Chúng hỗ trợ nhiều tính năng và kiểu nạp khác nhau như ISP, PDI cho linh kiện mới. Tuy nhiên những mạch nạp này khá đắt tiền. Trong loạt ví dụ này, chúng ta sử dụng Atmeg8 là loại vi điều khiển phổ thông nên có thể sử dụng những mạch nạp khác để tiết kiệm kinh phí. Điển hình nhất là mạch nạp USBISP cho AVR.

Continue reading “Nạp chương trình cho AVR Atmega với mạch nạp USBISP”

Bài tập ví dụ cho Vi điều khiển Atmega8 (P2)

Trong phần này tiếp tục là tập hợp các bài tập ví dụ cho Vi điều khiển Atmega8.  Chúng ta sẽ làm quen với việc sử dụng ngôn ngữ C để thực hiện một số ví dụ minh họa. Các bài tập gồm có việc sử dụng cổng cửa có sẵn để bật tắt đèn LED; vòng lặp và điều kiện; sử dụng mảng; ngắt phần cứng ngoài INT0; sử dụng bộ định thời Timer, biến đổi ADC, truyền thông chuẩn USART…

Continue reading “Bài tập ví dụ cho Vi điều khiển Atmega8 (P2)”

Bài tập ví dụ cho Vi điều khiển Atmega8 (P1)

Tập hợp một số bài tập ví dụ cho Vi điều khiển Atmega8. Trong phần này chúng ta sử dụng ngôn ngữ Hợp ngữ (Assembly) để thực hiện một số ví dụ minh họa. Các bài tập gồm có việc sử dụng cổng cửa có sẵn để bật tắt đèn LED; tạo hàm trễ; vòng lặp; tạo bảng và sử dụng bảng; ngắt phần cứng ngoài INT0; sử dụng bộ định thời Timer, biến đổi ADC, truyền thông chuẩn USART

Continue reading “Bài tập ví dụ cho Vi điều khiển Atmega8 (P1)”