Xin chào các bạn!
Trong bài viết này mình xin hướng dẫn các bạn giao tiếp LCD128x64 sử dụng chíp KS0108: hiển thị text, hình ảnh, các hình khối…Sử dụng Atmega16.Project chạy trên KIT AVR V4.
Chú ý : Source code bài viết dưới đây được biên dịch bằng phần mềm CodeVisionAVR để biên dịch code không lỗi xin vui lòng Download bản CodeVisionAVR Tại Đây
I.MÔ TẢ PHẦN CỨNG
KIT AVR V4 cung cấp cho các bạn khối GLCD128x64 có sơ đồ nguyên lý như sau:
GLCD128x64 sử dụng chíp điều khiển KS0108 gồm có 20 chân, chức năng các chân được nêu trong bảng sau:
GLCD128x64 có:
Ø512 byte RAM.
ØRAM truy cập theo byte dữ liệu, dữ liệu nhập vào RAM sẽ được hiển thị trực tiếp lên GLCD, 8 bit của 1 byte dữ liệu nhập vào nằm trên cùng 1 cột :
II.LẬP TRÌNH PHẦN MỀM
Tập lệnh cho chíp KS0108:
Các bước giao tiếp với GLCD:
Các bạn cấu hình GPIO: PORTC3:7 (các chân điều khiển LCD128x64), PORTB (các chân dữ liệu LCD128x64) là OUTPUT với mức điện áp logic đầu ra ban đầu là mức 1:
// Port B initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out
// State7=1 State6=1 State5=1 State4=1 State3=0 State2=0 State1=0 State0=0
PORTB=0xFF;
DDRB=0xFF;
// Port C initialization
// Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=In Func1=In Func0=In
// State7=0 State6=0 State5=0 State4=0 State3=0 State2=T State1=T State0=T
PORTC=0xF8;
DDRC=0xF8;
Thực hiện chương trình chính:
LCD128X64_Init(LCD128X64_ON);
LCD128X64_DrawImage(Logo_MH); // Hien thi hinh anh
LCD128X64_WriteText57(9,0,"Dammedientu.vn",1,1); // Co chu 5x7
LCD128X64_WriteText57(9,57,"dientuvn",1,1);
LCD128X64_WriteText57(80,1,"ABCD",2,1); // Co chu 10x14
LCD128X64_DrawLine(80,20,80,60,1); // Ve duong thang
LCD128X64_DrawRect(90,20,120,30,1,1); // Ve hinh chu nhat co to mau
LCD128X64_DrawRect(90,32,120,42,0,1); // Ve hinh chu nhat khong to mau
LCD128X64_DrawCircle(105,53,9,1,1); // Ve hinh tron co to mau
delay_ms(2000);
LCD128X64_DrawImage(SongTu);
while (1)
{
// Place your code here
}
Link download File Code của chương trình TẠI ĐÂY: