PEMROGRAMAN INTERUPSI SERIAL

Buatlah rangkaian menggunakan Proteus, tambahkan sebuah virtual terminal pada pin TxD dan lakukan pengujian untuk permasalahan berikut:

Tulis program agar 8051 dapat membaca data dari port P1 yang terhubung dengan sebuah tombol tekan dan menuliskannya pada Port P2 yang terhubung dengan LED secara terus menerus, sambil memberikan salinan data tersebut pada port COM serial untuk dikirimkan dengan cara serial. Anggaplah menggunakan XTAL = 12 MHz. Atur baud rate pada 9600.

Jawaban:

        ORG   0
        LJMP  PROGRAM_UTAMA
       
        ORG   23h
        LJMP  SERIAL
       
        ORG   30h
PROGRAM_UTAMA:
        MOV   P1,#0FFh        ;Buat P1 sebagai Port Input
        MOV   TMOD,#20h       ;Timer-1, Mode-2 (autoreload)
        MOV   TH1,#0FDh       ;baud rate 9600
        MOV   SCON,#50h       ;8-bit, 1-stop, ren = 1
        SETB  TR1             ;jalankan Timer-1
ULANG:  MOV   A,P1            ;Baca data pada P1
        MOV   SBUF,A          ;Kirim data ke COM seroal
        MOV   P2,A            ;Tulis ke Port 2
        SJMP  ULANG

;-----------------------ISR untuk Serial Port
SERIAL: JB   TI, TRANS        ;lompat jika TI =1
        MOV  A,SBUF           ;menyimpan data dari COM serial
        CLR  RI               ;reset RI
        RETI                  ;kembali dari ISR
TRANS:  CLR  TI               ;reset TI
        RETI                  ;kembali dari ISR

        END



hasil kerja dikirim dalam bentuk File Proteus dan File ASM
ke email. aidi_alaziz@yahoo.co.id
paling lambat hari kamis tanggal 10 April 2014 jam: 12.00

Komentar