Kamis, 16 Januari 2014

Responsi Mikroprosesor



RESPONSI MICROPOSESOR
NAMA : ALIF MAULANA
NIM     : 11.11.2571
KELAS : TI 11 E

TULIS NAMA DAN NIM KARAKTER PADA LCD KARAKTER
Ketik program berikut ini untuk menulis nama : ALIF MAULANA & 11.11.2571

$mod51
org 0h
CLR P3.5
           call init_LCD
start: mov R1,#80h ; Lokasi Display RAM, Row=1 Col=1
           call write_inst
           mov R1,#'A'
           call write_data
           mov R1,#'L'
           call write_data
           mov R1,#'I'
           call write_data
           mov R1,#'F'
           call write_data
           mov R1,#' '
           call write_data
           mov R1,#'M'
           call write_data
           mov R1,#'A'
           call write_data
           mov R1,#'U'
           call write_data
           mov R1,#'L'
           call write_data
           mov R1,#' A'
           call write_data
           mov R1,#'N'
           call write_data
           mov R1,#'A'
           call write_data
           mov R1,#0C0h ; Lokasi Display RAM, Row=2 Col=2
           call write_inst
           mov R1,#'1'
           call write_data
           mov R1,#'1'
           call write_data
           mov R1,#'.'
           call write_data
           mov R1,#'1'
           call write_data
           mov R1,#'1'
           call write_data
           mov R1,#'.'
           call write_data
           mov R1,#'2'
           call write_data
           mov R1,#'5'
           call write_data
           mov R1,#'7'
           call write_data
           mov R1,#'1'
           call write_data
           stop: sjmp stop
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 ; P3.6 = RS =0
           mov P0,R1 ; P0 = D7 s/d D0 = R1
           setb P3.7 ; P3.7 =EN = 1
           call delay ; call delay time
           clr P3.7 ; P3.7 =EN = 0
           ret
           ;
 Write_data:
           setb P3.6 ; P3.6 = RS =1
           mov P0,R1 ; P0 = D7 s/d D0 = R1
           setb P3.7 ; P3.7 =EN = 1
           call delay ; call delay time
           clr p3.7 ; P3.7 =EN = 0
           ret
           ;
delay: mov R0,#0
delay1:mov R7,#0fh
           djnz R7,$
           djnz R0,delay1
           ret
           ;
           End

Hasil :



output


Jumat, 27 Desember 2013

Seven Segment Mikrokontroler

            Seven segment adalah diode LED sebanyak 7 buah yang disusun dan dikemas membentuk penampil angka, dan biasanya ditambahkan 1 buah LED untuk koma (Dot Point). Karena dibentuk dari kumpulan LED maka ada dua jenis seven segment, yaitu Common Anode (CA) dan Common Catode (CC).

            Untuk penyalakan seven segment jenis CC maka masukan segment a s/d Dp harus diberi logika tinggi dan bagian CC dihubungkan dengan Ground. Sedangkan jika ingin menyalakan seven segment jenis CA maka masukan segment a s/d Dp harus diberi logika LOW dan CA harus dihubungkan ke +5 VCC.


 Skema Rangkaian

  P1 sbg input PA sebagai output




ALAMAT PENTING MODUL DT-51 adalah sbb:

 1. PA (port A)       = 2000h
 2. PB (port B)       = 2001h
 3. PC (port C)      = 2002h
 4. Reg CW (Control Word)  = 2003h
 5. DIGIT1        = 80h
 6. DIGIT2        = 40h

Dari gambar rangkaian di atas saluran data tampilan angka menggunakan P1 yang dipakai bersama antara digit1 dan digit 2 sehingga jika ingin menampilkan angka bersama (tampil 2 digit sekaligus) dilakukan secara bergantian secara cepat sehingga tampil seolah-olah berbarengan. Catatan penting untuk tampilan secara bergatian dari digit1 ke digit2 harus diselingi dengan mematikan semua sesaat, karena jika tidak dimatikan sesaat maka tampilan angka akan tumpang tindih.


PROGRAM 1 
 contoh scanning seven segment ;
 menampilkan angka 51 ;

$mod51
 PORTC  EQU  2002H
 CW        EQU  2003H 

               CSEG
               ORG     4000H
                LJMP   START 

DELAY:               MOV     R6,     #0FH
LUP:                    MOV     R7,     #0FFH
                             DJNZ    R7,      $
                             DJNZ    R6,     LUP
                             RET 
START: MOV       SP,           #30H
              MOV       DPTR,     #CW
              MOV       A,            #80H
              MOVX   @DPTR,  A

LOOP:
 ;menampilkan angka 5 di seven segment 1 
              MOV   DPTR,  #PORTC
              MOV   A,  #80H
              MOVX @DPTR,  A
              MOV   P1,  #6DH   LCALL  DELAY 
              MOV   P1, #00H

;menampilkan angka 7 di seven segment 2
             MOV A,  #40H
             MOVX @DPTR,   A
             MOV P1,   #07H
             LCALL DELAY
             MOV P1,   #00H
             SJMP LOOP 

END