6. Menggunakan Port Serial AT89S51 (II)
6.1 (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…
Kalau kamu mau belajar mikrokontroler langsung dengan kami, klik aja di sini.





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
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…
ok…bngt mas….!!!(-_-)
okay banget….sy jadi lebih tertarik belajar mikro.agar bisa mikro apa ada tempat kursusnya???mohon infonya.trimc
minta tolong untuk membantu saya dalam menyelesaikan tugas sensor ultrasonik yang digunakan untuk mengukur ketinggian air di bendungan..
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.