newducduy
16-04-2013, 10:39 AM
Điều khiển LCD (AVR)
Trong bài này chúng ta sẽ thực hiện viết một chương trình đơn giản điều khiển hoạt động của LCD sử dụng vi điều khiển AVR. LCD được sử dụng rất phổ biến đảm nhận vai trò hiển thị thông tin được lập trình sẵn hoặc các thông tin đã qua xử lý của bộ điều khiển hoặc vi xử lý. Giúp dễ dàng giao tiếp, điều khiển cũng như giám sát hoạt động của hệ thống. Chúng ta sử dụng loại LCD 16x02, có 2 dòng trên màn hình và mỗi dòng có thể hiển thị 16 ký tự. LCD được nối với PORTD như hình sau:
http://i1082.photobucket.com/albums/j361/diendandien/LCD.jpg
Trong đó:
Các chân 1,2: Cấp nguồn cho LCD hoạt động.
Chân 3 (VSS): Điều chỉnh độ tương.
Chân 15,16: Đây là 2 chân cấp nguồn đèn nền.
Chân 4 đến 14: Các chân điều khiển, truyền dữ liệu.
Sử dụng CodeVisionAVR để lập trình phần mềm cho vi điều khiển.
Để bắt đầu một project mới, bạn làm như sau:
1. Chọn Open ở Menu New hoặc bấm Ctrl + O, chọn Project để tạo một project mới.
http://i1082.photobucket.com/albums/j361/diendandien/2.jpg
2. Ở cửa sổ mới hiện ra, chọn Yes để sử dụng CodeWizard
http://i1082.photobucket.com/albums/j361/diendandien/3.jpg
3. Chọn Vi điều khiển là Atmega8, tần số thạch anh là 8MHz
http://i1082.photobucket.com/albums/j361/diendandien/4.jpg
4. ở tab LCD, bạn chọn sử dụng PORTD.
http://i1082.photobucket.com/albums/j361/diendandien/5.jpg
6. Chọn File/Generate, Save and Exit. Lưu project và các file liên quan vào thư mục bạn muốn.
7. Trong vòng while(1) ở hàm main ta viết các câu lệnh như sau:
while (1)
{
lcd_clear();
lcd_putsf("Hello world");
lcd_gotoxy(0,1);
lcd_putsf("dangsonbk");
delay_ms(1000);
}
Hoặc bạn có thể xóa vòng while(1) và thay bằng:
lcd_clear();
lcd_putsf("Hello world");
lcd_gotoxy(0,1);
lcd_putsf("dangsonbk");
Để biên dịch chương trình bạn vừa viết, bạn nhấn Ctrl + F9 hoặc trong menu Project/Build All. Nếu không có lỗi xảy ra, chương trình của bạn đã sẵn sàng để nạp vào vi điều khiển. Khi bạn đã làm việc quen với AVR, bạn có thể không cần dùng tới CodeWizard nữa, khi đó bạn sẽ phải tự khai báo các thanh ghi, các hàm ngắt cần thiết. Dĩ nhiên đó là khi bạn đã hiểu về cấu trúc của AVR và sử dụng khá thành thạo CodeVisionAVR. Làm việc với Proteus để vẽ và mô phỏng.
http://i1082.photobucket.com/albums/j361/diendandien/LCD.jpg
Bạn cần chọn các linh kiện và vẽ mạch như hình trên. Gồm có vi điều khiển Atmega8 và LCD 16x2. Bạn có thể download file đính kèm ở bài viết và sử dụng nếu chưa quen với việc sử dụng Proteus. Tiếp đó, bạn double click vào con chíp, chọn như hình dưới: http://i1082.photobucket.com/albums/j361/diendandien/6.jpg
Bấm nút chạy ở góc dưới bên phải màn hình.
http://cc7.upanh.com/27.195.34456106.fuU0/7.jpg
Kết quả chương trình: http://cc9.upanh.com/27.195.34456108.Fx50/8.jpg
Ngoài ra để lập trình cho AVR bạn có thể sử dụng trình biên dịch AVR Studio do chính hãng Atmel cung cấp miễn phí trên trang chủ. Chúc các bạn thành công.
Link download bản vẽ : http://www.mediafire.com/?dl9xon5x4p3sj5k (http://diendandien.com/links.php?url=http://www.mediafire.com/?dl9xon5x4p3sj5k)
Trong bài này chúng ta sẽ thực hiện viết một chương trình đơn giản điều khiển hoạt động của LCD sử dụng vi điều khiển AVR. LCD được sử dụng rất phổ biến đảm nhận vai trò hiển thị thông tin được lập trình sẵn hoặc các thông tin đã qua xử lý của bộ điều khiển hoặc vi xử lý. Giúp dễ dàng giao tiếp, điều khiển cũng như giám sát hoạt động của hệ thống. Chúng ta sử dụng loại LCD 16x02, có 2 dòng trên màn hình và mỗi dòng có thể hiển thị 16 ký tự. LCD được nối với PORTD như hình sau:
http://i1082.photobucket.com/albums/j361/diendandien/LCD.jpg
Trong đó:
Các chân 1,2: Cấp nguồn cho LCD hoạt động.
Chân 3 (VSS): Điều chỉnh độ tương.
Chân 15,16: Đây là 2 chân cấp nguồn đèn nền.
Chân 4 đến 14: Các chân điều khiển, truyền dữ liệu.
Sử dụng CodeVisionAVR để lập trình phần mềm cho vi điều khiển.
Để bắt đầu một project mới, bạn làm như sau:
1. Chọn Open ở Menu New hoặc bấm Ctrl + O, chọn Project để tạo một project mới.
http://i1082.photobucket.com/albums/j361/diendandien/2.jpg
2. Ở cửa sổ mới hiện ra, chọn Yes để sử dụng CodeWizard
http://i1082.photobucket.com/albums/j361/diendandien/3.jpg
3. Chọn Vi điều khiển là Atmega8, tần số thạch anh là 8MHz
http://i1082.photobucket.com/albums/j361/diendandien/4.jpg
4. ở tab LCD, bạn chọn sử dụng PORTD.
http://i1082.photobucket.com/albums/j361/diendandien/5.jpg
6. Chọn File/Generate, Save and Exit. Lưu project và các file liên quan vào thư mục bạn muốn.
7. Trong vòng while(1) ở hàm main ta viết các câu lệnh như sau:
while (1)
{
lcd_clear();
lcd_putsf("Hello world");
lcd_gotoxy(0,1);
lcd_putsf("dangsonbk");
delay_ms(1000);
}
Hoặc bạn có thể xóa vòng while(1) và thay bằng:
lcd_clear();
lcd_putsf("Hello world");
lcd_gotoxy(0,1);
lcd_putsf("dangsonbk");
Để biên dịch chương trình bạn vừa viết, bạn nhấn Ctrl + F9 hoặc trong menu Project/Build All. Nếu không có lỗi xảy ra, chương trình của bạn đã sẵn sàng để nạp vào vi điều khiển. Khi bạn đã làm việc quen với AVR, bạn có thể không cần dùng tới CodeWizard nữa, khi đó bạn sẽ phải tự khai báo các thanh ghi, các hàm ngắt cần thiết. Dĩ nhiên đó là khi bạn đã hiểu về cấu trúc của AVR và sử dụng khá thành thạo CodeVisionAVR. Làm việc với Proteus để vẽ và mô phỏng.
http://i1082.photobucket.com/albums/j361/diendandien/LCD.jpg
Bạn cần chọn các linh kiện và vẽ mạch như hình trên. Gồm có vi điều khiển Atmega8 và LCD 16x2. Bạn có thể download file đính kèm ở bài viết và sử dụng nếu chưa quen với việc sử dụng Proteus. Tiếp đó, bạn double click vào con chíp, chọn như hình dưới: http://i1082.photobucket.com/albums/j361/diendandien/6.jpg
Bấm nút chạy ở góc dưới bên phải màn hình.
http://cc7.upanh.com/27.195.34456106.fuU0/7.jpg
Kết quả chương trình: http://cc9.upanh.com/27.195.34456108.Fx50/8.jpg
Ngoài ra để lập trình cho AVR bạn có thể sử dụng trình biên dịch AVR Studio do chính hãng Atmel cung cấp miễn phí trên trang chủ. Chúc các bạn thành công.
Link download bản vẽ : http://www.mediafire.com/?dl9xon5x4p3sj5k (http://diendandien.com/links.php?url=http://www.mediafire.com/?dl9xon5x4p3sj5k)