Hướng dẫn in hình ảnh trong LCD đồ họa (GLCD) bằng Atmega32

In ảnh trong GLCD

LCD đồ họa được gọi là GLCD là các thiết bị hiển thị có khả năng hiển thị hình ảnh đồ họa, ký tự tùy chỉnh, v.v ... Điều này mở đường cho bất kỳ hệ thống nào trình bày thông tin cho người dùng cuối bằng phương tiện đồ họa tương tác như in hình ảnh. Chán việc sử dụng màn hình LCD 16 × 2 cũ, có lẽ bạn nên thử cái này để làm cho các dự án của bạn tương tác hơn.

Hướng dẫn này tập trung để dạy bạn về việc in một hình ảnh đơn giản trong GLCD này bằng Vi điều khiển AVR (Atmega32).

HÌNH ẢNH IN TẠI 128 x 64 GLCD:

Sơ đồ chân GLCD

GLCD này bao gồm 128 cột và 64 hàng trong đó được chia thành hai nửa bằng nhau. Tương tự như LCD 16 × 2 LCD này bao gồm 8 chân dữ liệu từ (DB0-DB7) và các chân điều khiển khác. Đọc toàn bộ hoạt động của GLCD trước khi bạn chuyển sang phần mã hóa của hướng dẫn này.

GIẢI TRÌNH:

Chúng ta đều biết rằng mọi hình ảnh đều được tạo thành từ các khối cơ bản được gọi là pixel và chúng ta sẽ sử dụng nó cho hình ảnh mong muốn của mình trong GLCD này. Nhưng GLCD này sẽ không hỗ trợ bất kỳ màu nào nên chúng tôi phải chuẩn bị hình ảnh trước khi in nó vào màn hình đồ họa này. Vì thiết bị này chỉ hỗ trợ độ phân giải 128 x 64, chúng tôi phải thay đổi kích thước hình ảnh của chúng tôi thành độ phân giải 128 x 64.

Sau đó, như tôi đã nói trước đây, các màn hình LCD này sẽ không hỗ trợ màu sắc, vì vậy bạn phải thay đổi hình ảnh của mình có định dạng Bitmap đơn sắc và cuối cùng bạn sẽ có được một hình ảnh đen trắng Vì vậy, hình ảnh được xử lý cuối cùng của bạn sẽ trông giống như hình dưới đây.

Hình ảnh đơn sắc 

Bây giờ bạn phải gán từng giá trị pixel vào một mảng trong mã của bạn, điều này sẽ làm cho hình ảnh được in trong GLCD của bạn. Đừng lo lắng, một công cụ được gọi là máy phát bitmap đồ họa LCD đồ họa từ Mikrocelectronica sẽ giúp bạn hoàn thành công việc của mình.

Ảnh chụp của Trình tạo Bitmap

Đây là ảnh chụp màn hình của trình tạo Bitmap, tất cả những gì bạn phải làm là tải hình ảnh đã xử lý của mình trong ứng dụng này và nó sẽ tự động tạo các giá trị pixel của hình ảnh cung cấp đầu ra dưới dạng giá trị mảng như bạn thấy trong ảnh chụp màn hình. Bạn cũng có thể đảo ngược các pixel nếu bạn nghĩ rằng hình ảnh không đủ tốt để in. Bây giờ bạn phải sao chép mã và đặt nó vào mã nguồn của vi điều khiển của bạn.

Bạn có thể tải xuống ứng dụng tạo Bitmap tại đây . Đừng lo lắng nếu nó không hỗ trợ cho bạn, có rất nhiều phần mềm tương tự có sẵn trực tuyến.

CODE:

This code was built using AVR studio 4.
#include<avr/io.h>
#define F_CPU 8000000UL
#include<util/delay.h>
void glcd_picture(const unsigned char *);
void select_chip(int);
int i;
unsigned char photo[1024]={"Your image Array here"}; Your image pixels
void glcd_int();
void glcd_data(unsigned char);
void glcd_cmd(unsigned char);
void glcd_cmd(unsigned char cmd) //subroutine for command
 {
 PORTC=cmd;
 _delay_ms(2);
 PORTD&=~(1<<2);
 PORTD&=~(1<<1);
 PORTD|=(1<<0);
 _delay_ms(2);
 PORTD&=~(1<<0);
 }
void glcd_data(unsigned char dat) //subroutine for data
 {
 PORTC=dat;
 _delay_ms(2);
 PORTD|=(1<<2);
 PORTD&=~(1<<1);
 PORTD|=(1<<0);
 _delay_ms(2);
 PORTD&=~(1<<0);
 }
void glcd_init() //subroutine for initialaization
{
 unsigned char command[4]={0x10,0xb8,0x40,0x3f};
 select_chip(1); //Chip selection
 for(i=0;i<4;i++)
 glcd_cmd(command[i]);
 select_chip(0);
 for(i=0;i<4;i++)
 glcd_cmd(command[i]);
 }
void select_chip(int chip) //Chip selection
 {
 if(chip==1)
 {
 PORTD|=(1<<4);
 PORTD&=~(1<<3);
 }
 else
 {
 PORTD&=~(1<<4);
 PORTD|=(1<<3);
 }
}
void glcd_picture(const unsigned char *ip) //Subroutine for printing
 {
 int page,column;
 for(page=0;page<8;page++)
{
 select_chip(0);
 glcd_cmd(0xb8|page);
 glcd_cmd(0x40);
 for(column=0;column<128;column++)
 {
if(column==64)
{
 select_chip(1);
 glcd_cmd(0xb8|page);
 glcd_cmd(0x40);
}
glcd_data(*ip++); //acessing array values using pointers
 }
 }
 }
int main(void)
{
 DDRC=DDRD=0xff;
 _delay_ms(2);
 PORTD&=~(1<<5);
 _delay_ms(10);
 PORTD|=(1<<5);
 _delay_ms(2);
 while(1)
 {
 glcd_init(); //initialization
 _delay_ms(1);
 glcd_picture(photo); //Printing image pixels
 while(1);
 }
}

GHI CHÚ:

  • Thay thế các từ Giá trị pixel hình ảnh của bạn bằng các giá trị mà phần mềm của bạn đã tạo cho hình ảnh cụ thể của bạn.
  • Bạn cũng có thể vẽ hình ảnh mong muốn của mình trên GLCD này bằng cách tính toán pixel cho từng khối của LCD đồ họa này.
huong dan in hinh anh trong LCD do hoa graphic bang atmega32 ,tlc47 truong cong ly, trương công lý

Nhận xét

Mới hơn Cũ hơn