Tutorial Microcontroller MCS-51 ATMEL ISP


Microcontroller Kits

Programmer and Target 89s51

Simple Mikrokontroller 89s51 Trainer


Standart
Mikrokontroller 89s51 Trainer

Super Mikrokontroller Trainer 89s51

Dot matrix Trainer
ATMEGA8

All Kits
+
Programmer via USB Port

 

 

Percobaan 5.2. ADC0804 dan Display ke LCD Karakter 2x16

Pada percobaan ini, Data ADC dalam desimal akan ditampilkan pada LCD Karakter 2x16 pada Baris 1, Colom 1, 2 dan 3, yang masing-masing menampilkan data ratusan, puluhan dan satuan.

Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pada saat langkah pemrograman posisikan saklar togle ke posisi PROG
2. Posisikan saklar togle ke RUN untuk mengaktifkan ADC0804 CS=0
3. Hubungkan modul Microcontroller Trainer dengan power supply +5V
4. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
5. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
6. Ketik program berikut ini: (download file prog52a.asm)

           ratusan equ 30h
           puluhan equ 31h
           satuan equ 32h
           ;
           org 0h
           call init_LCD
           call write_char
           start: call ADC
           call Bin2Dec
           call Write2LCD
           sjmp start
           ;
;=================================================
;Subrutin ini digunakan untuk mengambil data ADC
;=================================================
ADC: clr P3.3
           nop
           nop
           nop
           setb P3.3
           eoc: jb P3.2,eoc
           clr P3.4
           mov A,P1
           cpl A
           mov P0,A
           setb P3.4
           ret 
           ;
;============================================
;Subrutin untuk menampilkan data ke LCD character 2 x16
;pada DDRAM 0C9 0CA 0CB untukratusan, puluhan, and satuan
 ;============================================
Write2LCD:
           mov r1,#0c9h
           call write_inst
           mov a,ratusan
           add a,#30h
           mov r1,a
           call write_data
           ;
           mov r1,#0cah
           call write_inst
           mov a,puluhan
           add a,#30h
           mov r1,a
           call write_data
           ;
           mov r1,#0cbh
           call write_inst
           mov a,satuan
           add a,#30h
           mov r1,a
           call write_data 
           ret
           ;
;==================================
;Subrutin ini untuk merubah data biner ke desimal
;menjadi 3 digit = ratusan-puluhan-satuan
;==================================
Bin2Dec:
           mov b,#100d
           div ab
           mov ratusan,a
           mov a,b
           mov b,#10d
           div ab
           mov puluhan,a
           mov satuan,b
           ret 
           ;
;===================================
;Subrutin untuk menampilkan tulisan Data ADC0804
; pada baris 1
;===================================
write_char: 
           mov dptr,#word1 ;DPTR = [ address word1 ]
           mov r3,#16 ;R3=16,number character to be display
           mov r1,#80h ;R1=80h,address DDRAM start position
           acall write_inst
           ;
write1:clr a ; A = 0
           movc a,@a+dptr ; A = [A+ DPTR]
           mov r1,A ; R1 = A 
           inc dptr ; DPTR = DPTR +1 
           acall write_data ; 
           djnz r3,write1 ; R3 = R3-1, 
           ret
           ;
Init_lcd:
           mov r1,#00000001b ;Display clear
           call write_inst 
           mov r1,#00111000b ;Function set,Data 8 bit,2 line font 5x7
           call write_inst 
           mov r1,#00001100b ;Display on, cursor off,cursor blink off
           call write_inst
           mov r1,#00000110b ;Entry mode, Set increment
           call write_inst
           ret
           ;
write_inst:
           clr P3.6 ; RS = P2.0 = 0, write mode instruction
           mov P0,R1 ; D7 s/d D0 = P0 = R1
           setb P3.7 ; EN = 1 = P2.1 
           call delay ; call delay time
           clr P3.7 ; EN = 0 = P2.1
           ret
           ;
Write_data:
           setb P3.6 ; RS = P2.0 = 1, write mode data
           mov P0,R1 ; D7 s/d D0 = P0 = R1
           setb P3.7 ; EN = 1 = P2.1
           call delay ; call delay time
           clr p3.7 ; EN = 0 = P2.1
           ret
           ;
delay: mov R0,#0
delay1:mov R2,#0fh
           djnz R2,$
           djnz R0,delay1
           ret
           ;
word1: DB ' Data ADC0804 '
           end

7. Simpanlah program yang anda ketik dan beri nama : prog52a.asm
8. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
9. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)
10. Lakukan modifikasi pada program tersebut dengan manambahkan kata SUHU: , pada Baris 2 diikuti dengan data ADC.

 

BACK NEXT

Komentar, pertanyaan dan diskusi tentang topik tersebut. Klik disini

 

 

PERCOBAAN 1
LED

PERCOBAAN 2
SAKLAR

PERCOBAAN 3
7 Segmen

PERCOBAAN 4
LCD Character

PERCOBAAN 5
ADC

PERCOBAAN 6
DAC

PERCOBAAN 7
Keypad

PERCOBAAN 8
Motor Stepper

PERCOBAAN 9
Timer Counter

PERCOBAAN 10
Komunikasi Serial

PERCOBAAN 11
Interupsi

PERCOBAAN 12
Keyboard PC

PERCOBAAN 13
Printer Dot Matr.

PERCOBAAN 14
RTC12C887

PERCOBAAN 15
P W M

APLIKASI