Home > Personal > Program Assembler untuk ngetest LCD 2×16

Program Assembler untuk ngetest LCD 2×16

Program ini di gunakan untuk mengetest apakah lcd bekerja dengan bener atau gak.
dalam program ini lcd di hubungkan dengan port 2 mikrokontroller dan untuk mengkompiler program ini di gunakan asm51.exe dan di writer ke mikrokontroller nya dengan menggunakan serial programming interface menggunakan asp_ic.exe

Program untuk mengetest lcd
code :


;Program ini untuk mencoba mengontrol LCD 2x16
;Nama Program : lcd.asm

p1		equ	090H		; port 1
data_lcd 	equ	0A0h	; DB0 - DB7 LCD dihubungkan dengan Port 2
p3		equ	0B0h		;keypad dihubungkan dengan Port 3

rs		equ	090h		;sinyal RS dengan P1.0
rw		equ	091h		;sinyal RW dengan P1.1
en		equ	092h		;sinyal E  dengan P1.2
psw		equ	0D0h		;psw = program status word
tmod		equ	089h		;timer mode register
th0		equ	08Ah		;timer 0 High Byte
tl0		equ	08Bh		;timer 0 Low Byte
th1		equ	08Ch		;timer 1 High Byte
tl1		equ	08Dh		;timer 1 Low Byte
tcon		equ	088H		;timer control register
acc		equ	0E0h		;

	org 0h

start:
	lcall delay_1_s
	lcall init_lcd
message:
	lcall clear_lcd
	mov dptr,#pesan1	;
	lcall kirimpesan_lcd
	lcall tulis_dibaris_bawah
	mov dptr,#pesan2	;
	lcall kirimpesan_lcd

	jmp selesai
kirimpesan_lcd:
;==============

loopkirimpesan_lcd:
	mov a,#00h
	movc a,@a+dptr
	cjne a,#0fh,kirim_lcd
	ret
kirim_lcd:
	lcall kirim_karakter
	inc dptr
	ajmp loopkirimpesan_lcd
kirim_karakter:
	lcall write_text

init_lcd:
;=======

	clr rw
	clr rs
	setb en
	mov data_lcd,#38h
	clr en
	call wait_lcd

	clr rw
	clr rs
	setb en
	mov data_lcd,#08h
	;cle en
	clr en
	call wait_lcd

	clr rs
	setb en
	mov data_lcd,#0eh
	clr en
	call wait_lcd

	clr rs
	setb en
	mov data_lcd,#06h
	clr en
	call wait_lcd
	ret

tulis_dibaris_bawah:
	clr rw
	clr rs
	setb en
	mov data_lcd,#0c0h
	clr en
	lcall wait_lcd
	ret

clear_lcd:
	setb en
	clr rs
	mov data_lcd,#01h
	clr en
	lcall wait_lcd
	ret

wait_lcd:
;========
	clr rs
	setb rw
	setb en
	mov data_lcd,#0ffh
	mov a,data_lcd
	jb acc.7,wait_lcd
	clr en
	clr rw
	ret

write_text:
;==========
	clr rw
	setb rs
	setb en
	mov data_lcd,a
	clr en
	lcall wait_lcd
	ret

pesan1:
	db 'SAHIR',0fh
pesan2:
	db 'Teknik Elektro',0fh

delay_50_ms:
	mov	tmod,#01h
	mov	th0,#034h
	mov	tl0,#08ch
;	setb	tr0
	setb	tcon.4		; tcon.4 = tr0
count_50_ms:
;	jbc	tf0,finish_50_ms
	jbc	tcon.5,finish_50_ms	; tcon.5 = tf0
	sjmp	count_50_ms
finish_50_ms:
	ret
;============
delay_200_us:
	mov	tmod,#01h
	mov	th0,#0ffh
	mov	tl0,#02fh
;	setb	tr0
	setb	tcon.4		; tcon.4 = tr0
count_200_us:
;	jbc	tf0,finish_200_us
	jbc	tcon.5,finish_200_us	; tcon.5 = tf0
	sjmp	count_200_us
finish_200_us:
	ret
;============
delay_1_s:
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	call delay_50_ms
	ret
selesai:

end	;end program
Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
Categories: Personal Tags:
  1. Tablo
    July 10th, 2005 at 00:20 | #1

    Trims atas contoan programnya

  2. November 17th, 2005 at 10:00 | #2

    mohon bantuannya.
    Saya ada masalah di tugas akhir saya.
    Membuat sistem keamanan harddisk dengan menyisipkan program master boot record. kira – kira bisa tidak saya melihat beberapa contoh code atau potongan code untuk membongkar paket MBR baik di windows maupun di linux?.
    Kira – kira tools yang sesuai untuk ini apa ya?
    Terima kasih sebelumnya

  3. ken
    December 13th, 2005 at 13:19 | #3

    mohon bantuannya…..
    saya ada masalah untuk membuat program yang didalamnya merupakan gabungan antara bahasa assembler dengan pascal….
    bisa tidak saya melihat contoh programnya….terutama untuk program2 yang source code-nya panjang
    terima kasih sebelumnya….

  4. irawan
    April 1st, 2006 at 18:33 | #4

    tolong !!!!!!!!!!!!!!!!!!!!!!
    contoh program untuk menampilkan angka dari sensor ke LCD ?

  5. April 27th, 2006 at 20:09 | #5

    Halo,semua yang ada disini,….tolong donk bantuin gue ,gimana cara nya membuat program gabungan
    misal
    ============ |
    Program Gabungan|
    ============ |
    AAA |
    BB |
    C |
    ============ |

    Tolong yah bantuin gue,kirim ke email saya saja!

  6. andhee
    May 11th, 2006 at 21:23 | #6

    ;keypad pke p1
    ;lcd pke p0
    DB0 EQU P0.0
    DB1 EQU P0.1
    DB2 EQU P0.2
    DB3 EQU P0.3
    DB4 EQU P0.4
    DB5 EQU P0.5
    DB6 EQU P0.6
    DB7 EQU P0.7
    EN EQU P2.7
    RS EQU P2.3
    RW EQU P2.5

    ORG 00H
    JMP UTAMA
    ORG 13H
    JMP KEYPAD
    UTAMA:
    MOV A,#1
    MOV R1,#0E1H
    MOV @R1,A
    MOV A,#2
    MOV R1,#0E2H
    MOV @R1,A
    MOV A,#3
    MOV R1,#0E3H
    MOV @R1,A
    MOV A,#4
    MOV R1,#0E4H
    MOV @R1,A
    MOV A,#5
    MOV R1,#0E5H
    MOV @R1,A
    MOV A,#6
    MOV R1,#0E6H
    MOV @R1,A
    MOV A,#7
    MOV R1,#0E7H
    MOV @R1,A
    MOV A,#8
    MOV R1,#0E8H
    MOV @R1,A
    MOV A,#9
    MOV R1,#0E9H
    MOV @R1,A
    MOV A,#0
    MOV R1,#0E0H
    MOV @R1,A
    CLR A
    MOV R1,#00H
    MOV IE,#84H
    MOV P1,#10101001B
    CALL INIT_LCD
    CALL CLEAR_LCD
    TEST:
    CJNE R1,#00H,CHECK
    JMP TEST
    CHECK:
    MOV R0,#0F0H
    CJNE @R0,#00H,CHECK1
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK1:
    MOV R0,#0F1H
    CJNE @R0,#00H,CHECK2
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK2:
    MOV R0,#0F2H
    CJNE @R0,#00H,CHECK3
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK3:
    MOV R0,#0F3H
    CJNE @R0,#00H,CHECK4
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK4:
    MOV R0,#0F4H
    CJNE @R0,#00H,CHECK5
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK5:
    MOV R0,#0F5H
    CJNE @R0,#00H,CHECK6
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK6:
    MOV R0,#0F6H
    CJNE @R0,#00H,CHECK7
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK7:
    MOV R0,#0F7H
    CJNE @R0,#00H,CHECK8
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK8:
    MOV R0,#0F8H
    CJNE @R0,#00H,CHECK9
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK9:
    MOV R0,#0F9H
    CJNE @R0,#00H,CHECK10
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK10:
    MOV R0,#0FAH
    CJNE @R0,#00H,CHECK11
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK11:
    MOV R0,#0FBH
    CJNE @R0,#00H,CHECK12
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST
    CHECK12:
    MOV R0,#0FCH
    CJNE @R0,#00H,FULL
    MOV A,@R1
    MOV @R0,A
    MOV R1,#00H
    JMP TEST

    FULL:
    MOV A,#’D’
    CALL WRITE_TEXT
    MOV A,#’A’
    CALL WRITE_TEXT
    MOV A,#’T’
    CALL WRITE_TEXT
    MOV A,#’A’
    CALL WRITE_TEXT
    MOV A,#’_’
    CALL WRITE_TEXT
    MOV A,#’F’
    CALL WRITE_TEXT
    MOV A,#’U’
    CALL WRITE_TEXT
    MOV A,#’L’
    CALL WRITE_TEXT
    MOV A,#’L’
    CALL WRITE_TEXT
    MOV R1,#00H
    JMP TEST

    SELESAI:
    MOV A,#’S’
    CALL WRITE_TEXT
    MOV A,#’E’
    CALL WRITE_TEXT
    MOV A,#’L’
    CALL WRITE_TEXT
    MOV A,#’E’
    CALL WRITE_TEXT
    MOV A,#’S’
    CALL WRITE_TEXT
    MOV A,#’A’
    CALL WRITE_TEXT
    MOV A,#’I’
    CALL WRITE_TEXT
    MOV R1,#00H
    JMP TEST

    KEYPAD:
    ;CALL CLEAR_LCD
    MOV P1,#0FFH
    CLR P1.6
    KEY1:
    JB P1.5,KEY2
    CALL DELAY
    MOV A,#’1′
    CALL WRITE_TEXT
    MOV R1,#0E1H
    RETI
    KEY2:
    JB P1.7,KEY3
    CALL DELAY
    MOV A,#’2′
    CALL WRITE_TEXT
    MOV R1,#0E2H
    RETI
    KEY3:
    JB P1.3,ROW2
    CALL DELAY
    MOV A,#’3′
    CALL WRITE_TEXT
    MOV R3,#0E3H
    RETI
    ROW2:
    SETB P1.6
    CLR P1.1
    KEY4:
    JB P1.5,KEY5
    CALL DELAY
    MOV A,#’.0′
    CALL WRITE_TEXT
    MOV R1,#0E4H
    RETI
    KEY5:
    JB P1.7,KEY6
    CALL DELAY
    MOV A,#’5′
    CALL WRITE_TEXT
    MOV R1,#0E5H
    RETI
    KEY6:
    JB P1.3,ROW3
    CALL DELAY
    MOV A,#’6′
    CALL WRITE_TEXT
    MOV R1,#0E6H
    RETI
    ROW3:
    SETB P1.1
    CLR P1.2
    KEY7:
    JB P1.5,KEY8
    CALL DELAY
    MOV A,#’7′
    CALL WRITE_TEXT
    MOV R1,#0E7H
    RETI
    KEY8:
    JB P1.7,KEY9
    CALL DELAY
    MOV A,#’8′
    CALL WRITE_TEXT
    MOV R1,#0E8H
    RETI
    KEY9:
    JB P1.3,ROW4
    CALL DELAY
    MOV A,#’9′
    CALL WRITE_TEXT
    MOV R1,#0F9H
    RETI
    ROW4:
    SETB P1.2
    CLR P1.4
    KEY0:
    JB P1.7,PAGAR
    CALL DELAY
    MOV A,#’0′
    CALL WRITE_TEXT
    MOV R1,#0F0H
    RETI
    PAGAR:
    JB P0.3,BACK
    CALL DELAY
    CALL SELESAI
    RETI
    BACK: JMP KEYPAD
    DELAY:
    MOV R2,#150
    MOV R3,#200
    DELAY1:

    DJNZ R3,DELAY1
    DJNZ R2,DELAY1
    RET
    INIT_LCD:
    CLR RS
    CLR EN
    CLR RW
    MOV P0,#3AH
    SETB EN
    CLR EN
    LCALL WAIT_LCD
    CLR RS
    MOV P0,#0FH
    SETB EN
    CLR EN
    LCALL WAIT_LCD
    CLR RS
    MOV P0,#06H
    SETB EN
    CLR EN
    LCALL WAIT_LCD
    CLR RS
    MOV P0,#14H
    SETB EN
    CLR EN
    LCALL WAIT_LCD
    RET
    WAIT_LCD:
    CLR EN
    CLR RS
    SETB RW
    MOV P0,#0FFH
    SETB EN
    MOV A,P0
    JB ACC.7,WAIT_LCD
    CLR EN
    CLR RW
    RET
    CLEAR_LCD:
    CLR RS
    MOV P0,#01H
    SETB EN
    CLR EN
    LCALL WAIT_LCD
    RET
    WRITE_TEXT:
    SETB RS
    MOV P0,A
    SETB EN
    CLR EN
    LCALL WAIT_LCD
    RET

    ini adalah script untuk input keypad ke LCD dan hasil inputannya disimpan ke memory internal ucontroller, dengan inputan no HP.jmlah digit=12 jka lebih muncul kata data_full di LCD tapi hal ini belum berhasil.tolong bantuannya kirim email saya.tolong banget ya

  7. dave
    July 2nd, 2006 at 15:04 | #7

    mohon bantuanya untuk memberitahukan kepada saya mengenai contoh program assebly untuk mereset komputer, atau apa saja yang ketika di run dapat mempengaruhi kinerja komputer. kalau bisa jangan yang menggunakan interface.
    saya butuh contoh kode yang sederhana dan berdampak langsung pada komputer yang saya pakai pada saat menjalan kan kode tersebut.
    devillitto@yahoo.com

  8. Indra
    July 4th, 2006 at 21:55 | #8

    Mohon bantuannya….
    saya ada masalah dalam tugas akhir saya, saya sedang membuat program sistem keamanan rumah….sistem keamanan ini menggunakan infra merah…jika infra merah mendeteksi benda yang melewatinya, mikrokontroler memberikan data atau sinyal melalui gelombang frekuensi (RF) ke rangkaian mikro yang lain yang terdapat LCD…dan juga rangkaian mikro yang pertama memberikan data ke komputer berupa kode biner melalui serial port….
    saya mohon bantuannya….
    apa yang harus saya buat terlebih dahulu…..komponen apa aja yang diperlukan untuk membuat pemancar gelombang frekuensi (RF) terus source kodenya bagaimana….saya harap teman-teman bisa bantu saya…untuk jawabannya bisa melalui email saya di : nice_papiloen@yahoo.co.id

  9. July 25th, 2006 at 14:22 | #9

    saya mempunyai project untuk pemrograman ic serial, CL, LE, Data, dengan fasilitas tampilan LCD kalau ada yg bisa dengan berbagai macam fiture akan saya ganti ongkosnya trims

  10. August 7th, 2006 at 11:26 | #10

    Mohon bantuannya…
    Tugas akhir saya memprogram input keypad ke LCD yang berupa karakter dari keypad 4×3 dan LCD 16×2, apa ada yang punya program nya…
    Terimakasih atas bantuannya………..

    untuk jawabannya boleh melalui e-mail saya di m0v4n@yahoo.com

  11. erdy
    August 21st, 2006 at 23:42 | #11

    halo, saya sangat tertarik dengan Assembler, bisa gak minta literatur untuk pembelajaran mulai awal sampai jadi maut nguasain program ini?. tolong yaaaa…….
    klo ada yang terketuk hatinya untuk membantu kirim jawabannya lewat e-mail saya ya.
    di……….
    Gondhezz@yahoo.com

  12. SONY
    September 16th, 2006 at 10:24 | #12

    Saya mohon bantuannya gimana? cara menampilkan hasil adc0808 ke LCD menggunakan uK AT89s52/ATmega8 Terima kasih

  13. subko
    December 6th, 2006 at 07:34 | #13

    gimana programnya supaya mirko itu bisa di interfacekan dengan visual basic,melalui sebuah kabel serial?

  14. OMENK
    November 26th, 2007 at 15:03 | #14

    saya mohon bantuannya untuk tugas seminar saya.
    saya ingin membuat pintu otomatis yang bisa digerakkan dengan keyboard
    (seperti pinti parkir).saya ingin tahu seperti apa source codenya menggunakan assembler..
    atas bantuannya saya mengucapkan banyak terima kasih.

  15. iwan
    December 19th, 2007 at 10:57 | #15

    saya orang awam yang gx ngrti apa2 tntang asembler,
    tapi pengen banget bljr asmbler,
    saya minta tolong referensi mngenai asmbler mlai dari awal(tool2 yg dbutuhkan smpai program2 sderhananya)
    atas bantuannya saya ucapkan terima kasih.
    tlong kirimkan ke email saya.

  16. Afriyani
    March 18th, 2008 at 16:21 | #16

    Mas tolong kasih semua source code pada pemograman mikrokontroler AT89S52 dan jenis kabel data apa yang mendukung untuk melakukan interface antara mikon ke HP selain jenis yang serial?

  17. br4ndal IT
    April 24th, 2008 at 12:07 | #17

    aku minta tolong jelasin kegunaan program assembler dan apa kelebihanya, soalnya aku penasaran ne n bisa ga tuk hack password aplikasi ato lainya

  18. anselmus
    June 17th, 2008 at 15:37 | #18

    mas, mnt prog untuk tampilan dari adc 0804 ke seven segment atau lcd. makasih y mas..

  19. bangun hadi
    June 26th, 2008 at 09:25 | #19

    saya sedang membuat penampil pesan dengan menggunakan LCD 2×16
    tapi saya kesulitan dalam program assembler-nya. jika saya ingin menampilkan kalimat dengan program entry geser ke kiri pada baris kedua, bagaimana listing programnya? kemudian jika ingin menampilkan kalimat pada baris pertama dengan penampilan perkata kemudian ditampilkan secara keseluruhan kalimat dengan mode entry geser ke kiri, bagaimana listing programnya?

  20. lia
    July 18th, 2008 at 13:38 | #20

    saya lagi ngerjain Tugas Akhir. saya ingin membuat program vending machine dengan menggunakan RFID berbasis mikrokontroler AT89S51. saya ingin tahu seperti apa program RFID-nya agar bisa di baca oleh mikrokontroler.
    trimakasih banyak atas bantuannya.

  21. natadi
    July 31st, 2008 at 22:00 | #21

    saya sedang buat tugas akhir kuliah yang judul nya catu daya digital, yang nilai tegangan kelurannya di tampilkan oleh media 7 segment…
    dan dah lama blom siap-siap..krn terbentur di program/bhs assembley
    saya mohon bantuanny.,
    saya menggunakan aTmel kosong..
    gmn cara program nya agar bisa alat saya berjalan dan sukses…
    thank’s terlebih dahulu

  22. July 31st, 2008 at 22:03 | #22

    saya punya TA (tgs akhir)..yg judul ny”catu daya digital”..
    yang nilai keluarannya di tampilkan melalui sevent segment…
    jd saya hrs menggunakan ATmel tipe brapa agar bisa dan lbih efisien…
    dan bagaimana program nya…
    please…..!!!!!

  23. lukman hakim
    August 3rd, 2008 at 13:27 | #23

    saya ada kesulitan dalam tugas akhir tentang source kode dengan bahasa assembler untuk menampilkan dari sensor ke lcd

  24. manda oktavia kusminarti
    August 3rd, 2008 at 13:34 | #24

    saya mau tanya bagaimana source kode dengan bahasa assembly untuk akuisisi data 3 level input yang ditampilkan ke pc dengan port serial dan adcnya 0809 mode kontrol.ada 3 input ketika saya pilih input 1 maka data input 1 yang akan dikonversi,jika input 2 maka data input 2 yang dikonversi sampai input 3.dan bagaimana source kode untuk konversi data biner menjadi data integer pada visual basic sehingga data yang muncul pada komputer berupa angka.dan bisa minta referensi tentang lcd.

  25. December 6th, 2008 at 19:20 | #25

    aq mau buat jam digital pakai rtc ds1302 dan hasilnya ditampilkan di lcd.
    kira2 programnya gimana….

  26. December 23rd, 2008 at 18:18 | #26

    ada program yang lebih sederhana gak boss?

  27. jhon
    February 13th, 2009 at 09:44 | #27

    saya mohon bantuan nya…

    saya punya tugas ni untuk menghitung akar-akar persamaan kuadrat,
    mohon dibalas cepat ya..
    thanks..
    salam

  28. Lily
    February 17th, 2009 at 11:24 | #28

    toLong dunK Bantuin proGram untuk piNtu geser otomatis……….please….

  29. Lily
    February 17th, 2009 at 11:29 | #29

    KaLo da yang mw Bantuin Ly,kirim ke email Ly yaCh…..contoh pRogram pintu otomatis,skalian ma alat@ ny2

    selvia.selvi@yahoo.co.id

  30. nikent
    March 21st, 2009 at 21:34 | #30

    hallo smua ada yang bisa bantu saya ga..?

    saya ada tgs mk orgkom ne..
    disuruh buat coding lewat tasm buat nampilin angka 26 sampai 1

    kalo nampilin huruf z sampe a udah bisa

    tolong siapa yang tau jawaban dari tugas saya kirim ke e-mail saya yya.. nikent.hk@gmail.com

    terimakasih banyak yya =)

  31. sehat
    April 16th, 2009 at 14:37 | #31

    lisning program dalam pembuat jam digital raksasa dengan out put alarm dengan menggunakan atemega 3835

  32. sella
    May 4th, 2009 at 18:00 | #32

    mohon bantuannya ya……..
    saya mau membuat program assembler dengan emulator 8086,memakai .asm nih….
    yang outputnya akan menghasilkan kotak yg bisa pindah2 tempat…
    mohon bantuannya ya….?????????
    kirim aja ke email aku………

  33. sella
    May 4th, 2009 at 18:01 | #33

    mohon bantuannya ya……..
    saya mau membuat program assembler dengan emulator 8086,memakai .asm nih….
    yang outputnya akan menghasilkan kotak yg bisa pindah2 tempat…
    mohon bantuannya ya….?????????
    kirim aja ke email aku……… cheilhaa@yahoo.com

  34. tarsud
    December 22nd, 2009 at 21:49 | #34

    mohon bantuanya saya sedang membuat tugas akhir mengenai inisialisasi lcd karakter 16×2 pada single chip, tolong bantuanya kirimin aku program asm inisialisasi lcd untuk single chip AT89c51.terimakasih atas bantuannya………….

  35. fortuna
    December 25th, 2009 at 09:16 | #35

    butuh bantuan desain hardware dan program hun 0888 0276 7057

  1. October 25th, 2008 at 17:38 | #1