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 4.4. Perintah Geser Satu Karakter
Pada percobaan ini, karakter ”A” akan ditampilkan pada layar LCD Karakter dan dilakukan proses geser ke kanan.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:

geserL equ 00011011b ; 0 0 0 1 S/C R/L X X
geserR equ 00011111b ; 0 0 0 1 S/C R/L X X
           ;
           org 0h
           call init_LCD
start: mov R1,#80h
           call write_inst
           mov R1,#'A'         ; Karakter yang akan digeser
           call write_data
           ;
           mov R3,#40          ; 40x geser ke kanan
Next: mov R1,#geserR
           call write_inst
           call ldelay
           djnz R3,next
           sjmp start
           ;
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 =  0, write mode instruction
           mov P0,R1 ; D7 s/d D0 = P0 = R1
           setb P3.7 ; EN = 1  
           call delay ; call delay time
           clr P3.7 ; EN = 0 
           ret
           ;
Write_data:
           setb P3.6 ; RS =  1, write mode data
           mov P0,R1 ; D7 s/d D0 = P0 = R1
           setb P3.7 ; EN =1
           call delay ; call delay time
           clr p3.7 ; EN = 0 
           ret
           ;
Ldelay: mov R2,#030h
Ld1:      call delay
              djnz R2,Ld1
              ret
           ;
delay:  mov R0,#0
delay1:mov R7,#0fh
             djnz R7,$
             djnz R0,delay1
             ret
           ;
           end
         

 

Percobaan 4.5. Perintah Geser Kalimat
Pada percobaan ini, kalimat ”Welcome home” akan ditampilkan pada layar LCD Karakter dengan menggunakan look up table dan dilakukan proses geser ke kiri.
Untuk melakukan percobaan ini lakukan beberapa langkah sebagai berikut:
1. Pasang jumper LCD_EN, yang berfungsi untuk memberikan power supply +5V
2. Hubungkan modul Microcontroller Trainer dengan power supply +5V
3. Hubungkan modul Microcontroller Trainer dengan rangkaian programmer
4. Buka Program M-IDE Studio for MCS-51, sebagai editor dan compiler program
5. Ketik program berikut ini:

geserL equ 00011011b ; 0 0 0 1 S/C R/L X X
geserR equ 00011111b ; 0 0 0 1 S/C R/L X X
           org 0h
           call init_LCD
start: call write_char
           call geser
           sjmp start
           ;
geser: 
           mov R6,#40         ;R7 = 40; geser sebanyak 40 karakter
 lagi: mov R1,#geserL ;R1 = GeserLeft
           call write_inst 
           call ldelay 
           djnz R6,lagi        ;R7=R7-1, jika R7 ? 0 maka lompat ke lagi
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
           call write_inst
           ;
write1:clr a ; A = 0
           movc a,@a+dptr ; A = [A+ DPTR]
           mov r1,A             ; R1 = A 
           inc dptr               ; DPTR = DPTR +1 
           call 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
           ;
Ldelay: mov R2,#030h
Ld1: acall delay
           djnz R2,Ld1
           ret
delay: mov R0,#0
delay1: mov R7,#0fh
           djnz R7,$
           djnz R0,delay1
           ret
           ;
word1: DB ' Welcome Home '; here is the data to be look up
           ;
           end

6. Simpanlah program yang anda ketik dan beri nama : prog44a.asm
7. Pada program MIDE tersebut pilih Build /F9 atau untuk melakukan kompilasi program dari *.asm ke *.hex.
8. Lakukan pemrograman mikrokontroller dengan menggunakan Program ISP Software ( Lihat Petunjuk Penggunaan)

BACK

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