BAB13 - MCS51 - Aplikasi DIP - LCD

download BAB13 - MCS51 - Aplikasi DIP - LCD

of 6

Transcript of BAB13 - MCS51 - Aplikasi DIP - LCD

  • 8/9/2019 BAB13 - MCS51 - Aplikasi DIP - LCD

    1/6

    Mikrokontroler MCS51 112

    13. Input DIPSWITCH dan ditampilkan di LCD

    gambar 13.1. Aplikasi tampilan LCD dengan input DIPSWITCH

    Percobaan ini gabungan dari percobaan pengambilan data lewat

    DIPSWITCH dengan percobaan 3. Mula-mula data diambil dari DIPSWITCH

    lewat port 0 kemudian dikirim ke LCD melalui logika sebagai berikut :

    Data DIPSWITCH mempunyai range 0 -255 dan diambil dengan

    perintah sbb: Data dari P0 dipindah ke akumulator

    MOV A,P0

  • 8/9/2019 BAB13 - MCS51 - Aplikasi DIP - LCD

    2/6

    Mikrokontroler MCS51 113

    Karena LCD terdiri dari kolom dan setiap kolom mewakili 1 karakter,

    maka data harus diambil dalam ratusan, puluhan dan satuan kemudian

    ditempatkan di lokasi yang diinginkanMOV B,#10DIV ABMOV R2,B ; R2 : SATUAN

    MOV B,#10DIV ABMOV R1,B ; R1 : PULUHANMOV R0,A ; R0 : RATUSAN

    Misal satuan ditampilkan di baris 2 kolom 15MOV A,#0CFH

    ACALL CONTROLOUTMOV A,R2

    ADD A,#30H ; ASCII DARI SATUAN ACALL DATAOUT

    Misal puluhan ditampilkan di baris 2 kolom 14

    MOV A,#0CEH ACALL CONTROLOUTMOV A,R1

    ADD A,#30H ; ASCII DARI PULUHAN ACALL DATAOUT

    Misal ratusan ditampilkan di baris 2 kolom 13

    MOV A,#0CDH ACALL CONTROLOUTMOV A,R0

    ADD A,#30H ; ASCII DARI RATUSAN ACALL DATAOUT

    LCD bisa digunakan jika sudah diinisialisasi

    Untuk melakukan percobaan ini, lakukan langkah-langkah sebagai berikut:

    1. Hubungkan modul MICROTRAINER dengan memasang kabel DB25

    dengan LPT1 pada PC. Mode printer adalah SPP atau output only .

    2. Ketikkan di sembarang editor yang anda miliki listing program berikut:

  • 8/9/2019 BAB13 - MCS51 - Aplikasi DIP - LCD

    3/6

    Mikrokontroler MCS51 114

    ; PROG06.ASM DIGUNAKAN UNTUK MENGAMBIL DATA DARI DIPSWITCH; DAN DITAMPILKAN KE LCD; JUMPER OUTPUT : DI LCD PADA POSISI '0'; JUMPER INPUT : DI DIPSWITCH POSISI '0'

    ORG 00HSJMP START

    ;--------------------------------------; LCD CONSTANTA;--------------------------------------DISPCLR EQU 00000001BFUNCSET EQU 00111000BENTRMOD EQU 00000110BDISPON EQU 00001100B

    START: ACALL INIT_LCDMOV DPTR,#BARIS1

    ACALL PRINTSTRING1MOV DPTR,#BARIS2

    ACALL PRINTSTRING2MAIN:

    ACALL DIPSWITCHSJMP MAIN

    ;-----------------------------------------------------------------; PENGAMBILAN DATA DARI DISPSWITCH;-----------------------------------------------------------------DIPSWITCH:

    MOV A,P0MOV B,#10

    DIV ABMOV R2,B ; R2 : SATUAN

    MOV B,#10DIV ABMOV R1,B ; R1 : PULUHANMOV R0,A ; R0 : RATUSAN

    MOV A,#0CFH ; PESAN TEMPAT DI KOLOM 15 BARIS 2 ACALL CONTROLOUTMOV A,R2

    ADD A,#30H ; ASCII DARI SATUAN ACALL DATAOUT

    MOV A,#0CEH ; PESAN TEMPAT DI KOLOM 14 BARIS 2 ACALL CONTROLOUTMOV A,R1

    ADD A,#30H ; ASCII DARI PULUHAN ACALL DATAOUT

    MOV A,#0CDH ; PESAN TEMPAT DI KOLOM 13 BARIS 2 ACALL CONTROLOUTMOV A,R0

    ADD A,#30H ; ASCII DARI RATUSAN ACALL DATAOUTRET

  • 8/9/2019 BAB13 - MCS51 - Aplikasi DIP - LCD

    4/6

    Mikrokontroler MCS51 115

    ;--------------------------------------------------------; PROSEDUR PEMESANAN TEMPAT;--------------------------------------------------------; RS : 0 : P3.5

    ; E : 0 - 1 - 0 : P3.4; DATA : P2CONTROLOUT:

    CLR P3.5 ; RS = 0 ACALL DELAYCLR P3.4

    ACALL DELAYSETB P3.4

    ACALL DELAYMOV P2,ACLR P3.4

    ACALL DELAYRET

    ;----------------------------------------------------------; PROSEDUR PENEMPATAN DATA;----------------------------------------------------------; RS : 0 : P3.5DATAOUT:

    SETB P3.5 ; RS = 1 ACALL DELAYCLR P3.4 ; E = 0

    ACALL DELAYSETB P3.4 ; E = 1

    ACALL DELAYMOV P2,ACLR P3.4 ; E = 0

    ACALL DELAYRET;--------------------------------------------; PROSEDUR DELAY LCD;--------------------------------------------DELAY.INIT.LCD:

    MOV R6,#20HDLY.LCD.LP:

    MOV R7,#10HDJNZ R7,$DJNZ R6,DLY.LCD.LPRET

    ;-----------------------------------------------; PROSEDUR INISIALISASI LCD;-----------------------------------------------INIT_LCD:

    MOV A,#FUNCSET ACALL CONTROLOUT ACALL DELAY.INIT.LCD

    MOV A,#DISPON ACALL CONTROLOUT ACALL DELAY.INIT.LCD

    MOV A,#DISPCLR

  • 8/9/2019 BAB13 - MCS51 - Aplikasi DIP - LCD

    5/6

    Mikrokontroler MCS51 116

    ACALL CONTROLOUT ACALL DELAY.INIT.LCD

    MOV A,#ENTRMOD

    ACALL CONTROLOUT ACALL DELAY.INIT.LCDRET

    ;----------------------------------------------------------; PROCEDURE LCD BARIS KOLOM LCD;----------------------------------------------------------POSISI2.1:

    MOV A,#1POSISI2:

    ADD A,#11000000B ; BARIS KEDUADEC A

    ACALL CONTROLOUT ACALL DELAY.INIT.LCDRET

    POSISI1.1:MOV A,#1

    POSISI1: ADD A,#10000000B ; BARIS PERTAMADEC A

    ACALL CONTROLOUT ACALL DELAY.INIT.LCDRET

    PRINTSTRING2: ACALL POSISI2.1

    CLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP

    PRINTSTRINGLOOP: ACALL DATAOUT ACALL DELAY.INIT.LCDINC DPTRCLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOPRET

    PRINTSTRING1: ACALL POSISI1.1CLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP2

    PRINTSTRINGLOOP2:LCALL DATAOUT

    ACALL DELAY.INIT.LCDINC DPTRCLR AMOVC A,@A+DPTRJNZ PRINTSTRINGLOOP2RET

  • 8/9/2019 BAB13 - MCS51 - Aplikasi DIP - LCD

    6/6

    Mikrokontroler MCS51 117

    ;------------------------------------------; PROCEDURE DELAY;------------------------------------------

    DELAY: MOV R5,#0U1: MOV R6,#0U2: MOV R7,#0U3: INC R7

    CJNE R7,#5,U3INC R6CJNE R6,#5,U2INC R5CJNE R5,#5,U1RET

    BARIS1:DB 'INPUT DIPSWITCH ',0

    BARIS2:DB 'DIPSWITCH: ',0

    3. Simpanlah program yang anda ketik dan beri nama prog06.asm

    4. Kemudian keluarlah ke DOS prompt dan ketikkan

    A PROG06

    Jika tidak ada kesalahan, tekan

    5. Anda akan langsung masuk ke program AEC_ISP, kemudian pilihlah option

    A. Load HEX File to flash buffer,

    kemudian ketik PROG04.HEX dan tekan

    sebarang tombol

    6. Pilih E.Program dan tunggu sebentar sampai ada indikator 100

    % dan tekan sebarang tombol

    7. Pilih I. Reset . Putarlah potensiometer 1 dan lihatlah tampilan di LCD nya

    8. Berilah kesimpulan anda

    ............................................................................................................................

    ......................................................................................................................