Giao tiếp LCD với AVR chế độ 4 bit
LCD có thể được giao tiếp với vi điều khiển ở chế độ 8 bit hoặc ở chế độ 4 bit. Chế độ 8 bit sử dụng 8 bus dữ liệu và chân RS, R / W, E để hoạt động. Tuy nhiên chế độ 4 bit chỉ sử dụng 4 bus dữ liệu cùng với các chân điều khiển. Điều này sẽ giúp tiết kiệm số lượng chân GPIO nhằm phục vụ cho mục đích khác.
Sơ đồ mạch
Như thể hiện trong sơ đồ mạch, PortB và Port D của bộ điều khiển được sử dụng để giao tiếp với mô-đun LCD. Trong chế độ 4 bit, chỉ có 4 đường D4-D7, cùng với các chân RS, R / W và E được sử dụng. Việc này giúp chúng ta tiết kiệm được 4 chân của bộ điều khiển đẻ sử dụng cho những mục đích khác. Ở đây chúng ta chỉ cần ghi vào mô-đun LCD. Vì vậy, chân R / W có thể được nối đất .
Theo cách này, tổng số chân giảm xuống còn 6 chân. Trong chế độ 4 Bit, các byte dữ liệu được chia thành hai bốn bit và được chuyển dưới dạng một nibble. Việc truyền dữ liệu tới LCD được thực hiện bằng cách gán trạng thái logic cho các chân điều khiển RS và E. Mạch đặt lại, mạch dao động và nguồn điện phải được cung cấp để mạch hoạt động đúng.
Dowload chương trình: Tại đây
Phần lập trình được viết bằng phần mềm Atmel studio 7. Khi bắt đầu chương trình, bộ xử lý có tên là "F_CPU" có chức năng là khai báo với một số mã thư viện có bao nhiêu chu kỳ CPU mỗi giây mà bộ xử lý đang thực thi. Ở đây đã xác định F_CPU là 16 MHz.“#include
DDRx – thanh ghi cấu hình hướng dữ liệu của Port (Đầu vào / đầu ra).
PORTx - Thanh ghi cổng là để gán các giá trị phù hợp cho các chân Port.
Ghi vào PORTx.n sẽ ngay lập tức thay đổi trạng thái của các chân theo giá trị đã cho.
Port và các chân tương ứng sử dụng được xác định ở đầu. Tùy theo thiết kế mạch có thể thay đổi tên Port và số pin trong chương trình.
Một chương trình con có tên là “LCD_CmdWrite ()” được sử dụng để gửi lệnh tới LCD. Trong hàm này, dữ liệu 8 bit được chia thành hai dữ liệu 4 bit và gửi tới LCD dưới dạng nibble. Thanh ghi lệnh của LCD được chọn bằng cách ghi '0' vào chân RS. Thao tác viết được thực hiện bằng cách đơn giản là kích hoạt chân E của LCD trong vài micro giây. Tương tự, chương trình con có tên là “LCD_DataWrite ()” được sử dụng để gửi dữ liệu tới LCD. Thanh ghi dữ liệu của LCD được chọn bằng cách ghi '1' vào chân RS.
Hàm “LCD_Init ()” là được sử dụng để khởi tạo LCD. Và “LCD_Disp()” là để hiển thị các chuỗi. Hàm “LCD_setCursor” có chức năng để đặt vị trí con trỏ.
Nguồn: http://www.circuitstoday.com/interfacing-lcd-module-avr-4-bit-mode
Hotline: 0979 466 469