Menggunakan Port Serial AT89S51 (II)

(Lanjutan)

Berikut salah satu contoh program list penggunaan port serial AT89S51:

Org 0000h

Inisialisasi:

mov scon, #01010000b

mov a, pcon

setb acc.7

mov pcon, a

mov tmod, #20h

mov th1, #-3

setb tr1

Main:

acall RecCh

acall SendCh

sjmp Main

RecCh:

Jnb ri, $

Clr ri

Mov a, sbuf

Ret

SendCh:

Mov a, sbuf

Jnb ti, $

Clr ti

Ret

Program di atas akan menampilkan karakter keyboard yang kita tekan ke monitor. Catatan: dalam menggunakan program di atas, program “Hyperterminal” di windows harus diaktifkan. Selamat Mencoba…


*Modul Depok Instruments yang Memudahkan Pembelajaran:

Iklan

9 thoughts on “Menggunakan Port Serial AT89S51 (II)

  1. bagaimana bentuk diagram alir(flowchart) dari program “pembangkit 220v ac dari 12v dc” dibawah ini:

    ;—————————————-
    DT_OUT EQU 10H
    ;—————————————-
    ORG 0
    SJMP START
    ORG 0BH
    SJMP CLK_OUT
    ;—————————————–
    ; PROGRAM UTAMA PEMBANGKIT
    ;—————————————–
    START: MOV SP,#70H ;MENENTUKAN POSISI AWAL SP
    CALL INIT_TIME
    MOV A,#1
    MOV P1,A
    MOV DT_OUT,A ;NILAI AWAL
    ;———————————
    ULANG: SJMP ULANG ; RANGKAIAN MENUNGGU INTERUPSI TIMER
    ; ———————————————–
    ; AKHIR PROGRAM UTAMA PEMBANGKIT
    ;————————————————
    ; PROGRAM CLOCK
    ;———————————————–
    CLK_OUT: PUSH PSW
    PUSH ACC
    ;—————————-
    MOV TH0,#0DB
    MOV TL0,#0FFH ; ISI ULANG TH/TL
    ;————————————————
    CALL PORT_OUT
    ;———————————————-
    CLKN: POP ACC
    POP PSW
    RET1
    ;—————————————————————-
    ; PROGRAM MENENTUKAN OUTPUT PADA P3.0 DAN P3.1
    ;—————————————————————-
    PORT_OUT: PUSH PSW
    PUSH ACC
    ;———————————————–
    MOV A,DT_OUT ; AMBIL DATA DARI DT_OUT
    XRL A,#3
    MOV DT_OUT,A ; DIISIKAN KEMBALI KE DT_OUT
    MOV P1,A ; KIRIM KE PORT 1
    ;——————–
    PORTN: POP ACC
    POP PSW
    RET
    ;——————————————–
    ;INISIALISASI TIMER 10 MILLI DETIK=1/100 DETIK
    ;——————————————–
    INIT_TIME: PUSH PSW
    ;—————————–
    ;IE 0 0 S T1 I1 T0 I0 REG INTERUPSI
    ;1 0 0 0 0 0 1 0
    ;———————————-
    MOV IE,#10000010 ; AKTIFKAN INTERUPSI TIMER0
    ;———————————-
    ;- – – S T1 I1 T0 I0 REG INTERRUPT PRIORITY
    ;0 0 0 0 0 0 1 0
    ;————————–
    MOV IP,#02H ; PRIORITASKAN TIMER0
    ;—————————–
    ;G1 C/T1 M1.1 M0.1 G0 C/T0 M1.0 M0.0 ; REG TMOD
    ;0 0 0 0 0 0 0 1
    ;———————————————-
    MOV TMOD,#01H ; AKTIFKAN MODE 1 TIMER0
    MOV TH0,#0DBH
    MOV TL0,#0FFH ; ISI REG. TX=56319=DBFFH
    ; T=11,059200/12/(65535-56319)
    ; T=921600/9216=100
    ;————————————————–
    ;TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 REG TIMER CONTROL
    ;————————————————–
    SETB TCON.4 ; SET TCON.4 (TR0)
    ;—————————————————
    POP PSW
    RET
    ;——————————————————–
    END

    Suka

  2. Terima kasih atas pertanyaannya, saudara koko. Tapi sepertinya kami tidak dapat membantu, karena program tersebut bukan kami yang membuat. Saran kami, silakan konfirmasikan kepada pembuat program-nya…

    Suka

  3. Untuk saudara praditya:
    > Terima kasih atas pujiannya. Sayangnya kami belum mempunyai tempat kursus mikro untuk umum. Sedang dalam pengembangan.

    Untuk saudara didik:
    > Rumus dasar dari pengukuran ketinggian air dengan menggunakan ultrasonic:
    Level Air = Ketinggian maximal bendungan – Jarak permukaan air thd ultrasonic.
    Untuk informasi selanjutnya, silakan langsung email ke depokinstruments@yahoo.com.

    Suka

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s