Multi LCD - Menggunakan Lebih Dari 1 LCD Pada Mikrokontroler

Dalam project mikrokontroler, kita kerap kali menggunakan lcduntuk media penampil / display . Baik itu berupa text maupun grafik. Umum nya dalam 1 project kita hanya bisa memasang 1 buah lcd. Lalu bagaimana kalau kita ingin memasang lebih dari 1 Lcd dalam 1 buah mikro?

What?? mungkin kah?

Jawaban nya, tentu saja mungkin. Dengan memainkan 1 buah pin , yaitu pin EN kita bisa memasang beberapa lcd pada project mikro kita. Tentu dengan tampilan tulisan yang berbeda - beda di tiap Lcd nya.

Berikut Source Code nya menggunakan Pascal :


program ADC_on_LEDs;


// LCD module connections
var LCD_RS : sbit  at PORTB0_bit;
var LCD_EN : sbit  at PORTD3_bit;
var LCD_D4 : sbit  at PORTD4_bit;               // untuk percobaan nanti
var LCD_D5 : sbit  at PORTD5_bit;
var LCD_D6 : sbit  at PORTD6_bit;
var LCD_D7 : sbit  at PORTD7_bit;

var LCD_RS_Direction : sbit at DDB0_bit;
var LCD_EN_Direction : sbit at DDD3_bit;
var LCD_D4_Direction : sbit at DDD4_bit;
var LCD_D5_Direction : sbit at DDD5_bit;
var LCD_D6_Direction : sbit at DDD6_bit;
var LCD_D7_Direction : sbit at DDD7_bit;
// End LCD module connections


var adc_rd : word;
    des: real;
    bool : byte;
var uart_rd : byte;

var txt1 : array[16] of char;
var txt2 : array[16] of char;
var txt3 : array[16] of char;

procedure coba(); iv IVT_ADDR_INT0; ics ICS_AUTO;
begin

 if bool = 1 then
 begin
   PORTB1_bit := true;
   delay_us (1);
   PORTB1_bit := false;
 end;

if bool = 2 then
 begin
   PORTB2_bit := true;
   delay_us (1);
   PORTB2_bit := false;
 end;

if bool = 3 then
 begin
   PORTB3_bit := true;
   delay_us (1);
   PORTB3_bit := false;
 end;

end;

  begin
     DDB1_bit := true;
     DDB2_bit := true;
     DDB3_bit := true;
     GICR :=0x40;
     MCUCR :=0x03;
     GIFR :=0x40;
     SREG_I_bit := 1;
     Delay_ms(100);

     bool:= 1;
     Lcd_Init();
     Lcd_Cmd(_LCD_CLEAR);                       // untuk percobaan nanti
     Lcd_Cmd(_LCD_CURSOR_OFF);

     bool:= 2;
     Lcd_Init();
     Lcd_Cmd(_LCD_CLEAR);                       // untuk percobaan nanti
     Lcd_Cmd(_LCD_CURSOR_OFF);

     bool:= 3;
     Lcd_Init();
     Lcd_Cmd(_LCD_CLEAR);                       // untuk percobaan nanti
     Lcd_Cmd(_LCD_CURSOR_OFF);

     UART1_Init(9600);
     Delay_ms(100);
     txt1 := 'SANDI';
     txt2 := 'RUSLAN';
     txt3 := 'www.MIKRODB.com!!';
     UART1_Write_Text('SILAHKAN MASUKKAN HURUF KECIL :');
     UART1_Write(13);UART1_Write(10);

     bool := 1;
     LCD_Out(1,1,txt1);                 // Write text in first row

     bool := 2;
     LCD_Out(1,1,txt2);                 // Write text in first row

     bool := 3;
     LCD_Out(1,1,txt3);                 // Write text in first row

      while (TRUE) do
          begin
            if (UART1_Data_Ready() <> 0) then
              begin
                uart_rd := UART1_Read();
                uart_rd := uart_rd - 32;
                UART1_Write(13);UART1_Write(10);
                UART1_Write_Text('MAKA KEMBALINYA :');
                UART1_Write(uart_rd);
                UART1_Write(13);UART1_Write(10);
                UART1_Write_Text('SILAHKAN MASUKKAN HURUF KECIL :');
              end;
          end;
  end.

Atau Langsung klik disni untuk unduh Simulasi dan Source Code nya

 

 

Add comment


Security code
Refresh